今回はCinemachineのFreeLook Cameraを使ってみます。
CinemachineのFreeLook Camera
カメラの動きを制御するCinemachineのアセットには、FreeLook Cameraなるカメラを自由に操作出来る系の機能があります。
この機能では、昨今の三人称視点ゲームで良くあるようなカメラの位置を自由に上下左右出来る…という機能みたいです。
Cinemachineなので、既存のカメラとのブレンドも出来て、割と良い感じです。
見上げる時は視界を狭く、見下ろす時は視界を広く
この機能の面白い所は、視点の位置によってカメラの動きをある程度調整できる点です。調整できる項目は、視点の先や位置、それとFOVが調整出来ます。
例えば下から眺める時はキャラクターの近くに持っていき、上から見下ろす時は視界を広く持つ…といった感じです。
使ってみる
CinemachineのCreateFreeLookCameraでFree Look Cameraを作成します。
作成したカメラ(多分CM FreeLook1)のFollowとLookAtを設定します。
Followはキャラクターを動かした時に追跡してもらう為の設定。出来ればキャラクターのルートのGameObjectがオススメです。
LookAtはカメラが見つめる対象を指定します。こちらは足元を設定すると足元を眺めてしまうので、頭を指定しておくのが良いんじゃないかなと。
後はカメラの向きと半径の大きさを指定します。
図では見難いですが、CinemachineのFreeLookCameraには3本の輪が設定されています。この範囲がキャラクターのカメラの動く範囲です。
それぞれ上から順にTop Rig、Middle Rig、Bottom Rigのパラメータが対応しており、この値を設定することで、カメラが見下ろしている時や見上げている時のキャラクターとの距離や、FOV等が設定できます。
個人的にはTopRigは少し高めでRadiusを多めに、Middleは割と広めに、BottomRigは狭く…といった感じにすると気持ちのよい操作になるかな…と。
コントローラーを反転させたい
素晴らしいカメラ操作だ素晴らしい…と言いたいですが、このFreeLook Camera、自分の何時も使ってる操作と逆の操作になるので、非常にストレスフルです。
残念ながらコレを解決するオプションはFreeLookCameraには無いのですが、解決する方法が有志により公開されていました。
要するにコントローラーの動きをオーバーライドすれば良いみたいです。