【Unityアセット】Game Creator -③Camera Motor編-
目次
はじめに

「Game Creator」はUnityアセットストアにて購入できる有料アセットです。
3Dゲーム製作に便利なツールで、ビジュアルスクリプティングでコードを書かずにゲームを製作することができます。
今回このブログでご紹介するのはGame Creatorの無印版で、
2021年9月にGame Creator2がリリースされています。
2021年9月時点ではベータ版であり、拡張モジュールとの互換性はまだ無い様なのでご注意ください。
環境
記事内での環境は以下の通りです。
Unity 2020.3.5f1 Personal
Game Creator Version 1.1.13 May 18,2021
Camera Motorについて
今回はGame Creatorの特徴的な機能のひとつ、
Camera Motorについてご紹介いたします。
Game CreatorではCamera Motorをつかって様々なタイプのカメラの挙動をインスペクターで選択し、
設定を調整するだけで実装可能です。

また、Camera Motor同士も一つのアクションで簡単に切り替えが可能。
トリガーをプレイヤーが通過したときや、特定の条件が揃った時になど、
ゲームの演出を際立たせることも可能です。
追加方法はその他の手順通りヒエラルキーからオブジェクトとして生成します。
※Camera MotorをPlayerやMain Cameraの子オブジェクトに配置してしまうとカメラの挙動がおかしくなってしまうので注意が必要です。

追加後はインスペクターにて調整が可能です。
Changeを押すと様々なタイプがあるので選択するとCameraのタイプが変更されます。

ひとまずそのままの状態でPlayerがいる状態で再生してみます。↓
TargetがPlayerのAdventure Cameraのデフォルト状態で、
既にターゲットに追従、マウス操作で視点移動が使える様になっています。
Adventure Camera
ターゲットに設定した対象を追従しながらマウス操作で視点移動が可能な3人称カメラです。
Sensitivityで感度を変えたり、無操作時に対象の後ろに回るカメラの速さなど、
細かいパラメーターを設定できます。

First Person Camera
First Person Cameraでは1人称視点にすることができます。
所謂FPS視点です。
デフォルトのままの状態でも十分問題なく使える仕様になっています。
Offsetのポジションなどを変えたりもできます。
Rotate InputをHold Left Mouseなどにすると、
左クリックしながらの視点移動にしたりすることもできます。

ExperimentalでHide 3D Modelになっているときはターゲットのモデルは非表示になっています。
Noneにすると表示されたままになります。
Fixed Camera
Fixed Cameraではカメラの位置を設置しているポジションで固定したまま、
ターゲットを注視しつづけます。
プロパティは至ってシンプル。
Camera Motor自身のポジションを任意の位置にあらかじめ設置しておいて、
Look Atでターゲットを設定します。
動画ではPlayerを設定しています。

Follow Camera
Follow Cameraはアンカーを置いた上でターゲットを注視します。
動画ではPlayerにアンカーを設定して
ターゲットに丸い床を設定しています。

一時的にゲームプレイヤーに意識を対象に向けさせるなどの演出でも使えそうです。
Railway Camera
Railway Cameraでは視点と終点を設定して対象が移動するとそれに合わせてカメラが移動します。
少しEnd Pointをデフォルトから調整しています。

プレイヤーが通路を通る際のカメラワークなどに使えます。
Target Camera
Target Cameraでは設定したターゲットを追跡します。
デフォルトの状態からAnchor OffsetのY軸を2に設定しています。

AnchorからTargetを見続ける様な形になるので、
敵との戦闘シーンでロックオンカメラとして使えます。
Tween Camera
Tween Cameraでは設定しておいた時間をかけて用意した始点終点に、カメラ自身が移動します。
Railwayも同様ですが、白い丸になっているポイントをあらかじめシーン上で移動して設置しておきます。

そしてDuraitionでどのくらいかけて〜を設定して、
再生するとカメラが自分で移動しながらターゲットを注視し続けます。

カットシーンなどで使えそうです。
Change Cameraについて
これらのCamera Motorをアクションで切り替えてゲームの演出を作ることができます。
Actionsの中にChange Cameraというアクションがあります。

Camera Motorのところに変更先のCamera Motorを指定すれば、
Transition Timeで設定した時間をかけてカメラが切り替わります。
例えば、3DアドベンチャーゲームでメインのCamera MotorをAdventure Cameraに設定していたとします。
基本がこのカメラにするのであれば、Is Main Camera Motorにチェックをつけます。

プレイヤーが少し進んだところにTriggerを置き、On Player Enterで接触するとアクションを発動する様にします。↓

新たにCamera Motorを作成し、Fixed Cameraとします。
Change Cameraアクションで、新しいCamera Motorオブジェクトをアタッチします。

同じ要領でRailway Cameraも作成して、トリガーをもう一つ作りChange Cameraで設定します。
この状態で再生し、Playerをトリガーに通してみます↓
このようにカメラが切り替わる様にできました。
Railway Cameraに切り替わる際はTransition Timeを1に設定しているので、
瞬時に切り替わるのではなく流れるように切り替わっています。
あるタイミングでメインのカメラに戻したい時は、Main Camera Motorにチェックを入れたアクションを実行してあげれば良いです。

まとめ
種類も豊富にありセッティングも簡単で、
チェンジの実装もアタッチとTimeを変えるだけという簡単設計です。
あとはTrigger次第で、誰かが通った時なのか、敵とエンカウントした時なのか、会話のシーンなのかなど、
切り替わるタイミングを直感的に決めることができます。
3Dゲームでは非常に便利な機能です!
ちなみに、
よろしければ全てこのGame Creatorでコードを使わずに製作したゲームを
Unity1weekの「ちゅう」のお題で提出していたものがあるので
改めてみると改善点色々ありますが、参考までにみていただけると幸いです笑
こちら↓
「energy soul」
https://unityroom.com/games/energysoul

それでは💤