テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】CinemachineのFreeLook Cameraが楽しい

f:id:tsubaki_t1:20171023202338g:plain

今回はCinemachineのFreeLook Cameraを使ってみます。

CinemachineのFreeLook Camera

カメラの動きを制御するCinemachineのアセットには、FreeLook Cameraなるカメラを自由に操作出来る系の機能があります。

この機能では、昨今の三人称視点ゲームで良くあるようなカメラの位置を自由に上下左右出来る…という機能みたいです。

 

Cinemachineなので、既存のカメラとのブレンドも出来て、割と良い感じです。

f:id:tsubaki_t1:20171023213014g:plain

見上げる時は視界を狭く、見下ろす時は視界を広く

この機能の面白い所は、視点の位置によってカメラの動きをある程度調整できる点です。調整できる項目は、視点の先や位置、それとFOVが調整出来ます。

 

 

例えば下から眺める時はキャラクターの近くに持っていき、上から見下ろす時は視界を広く持つ…といった感じです。

f:id:tsubaki_t1:20171023204239g:plain

使ってみる

CinemachineのCreateFreeLookCameraでFree Look Cameraを作成します。

f:id:tsubaki_t1:20171023204752j:plain

作成したカメラ(多分CM FreeLook1)のFollowとLookAtを設定します。

Followはキャラクターを動かした時に追跡してもらう為の設定。出来ればキャラクターのルートのGameObjectがオススメです。

LookAtはカメラが見つめる対象を指定します。こちらは足元を設定すると足元を眺めてしまうので、頭を指定しておくのが良いんじゃないかなと。

f:id:tsubaki_t1:20171023205147j:plain

後はカメラの向きと半径の大きさを指定します。

図では見難いですが、CinemachineのFreeLookCameraには3本の輪が設定されています。この範囲がキャラクターのカメラの動く範囲です。

それぞれ上から順にTop Rig、Middle Rig、Bottom Rigのパラメータが対応しており、この値を設定することで、カメラが見下ろしている時や見上げている時のキャラクターとの距離や、FOV等が設定できます。

f:id:tsubaki_t1:20171023205239j:plain

個人的にはTopRigは少し高めでRadiusを多めに、Middleは割と広めに、BottomRigは狭く…といった感じにすると気持ちのよい操作になるかな…と。

f:id:tsubaki_t1:20171023205739g:plain

コントローラーを反転させたい

素晴らしいカメラ操作だ素晴らしい…と言いたいですが、このFreeLook Camera、自分の何時も使ってる操作と逆の操作になるので、非常にストレスフルです。

残念ながらコレを解決するオプションはFreeLookCameraには無いのですが、解決する方法が有志により公開されていました。

f:id:tsubaki_t1:20171023212541g:plain

要するにコントローラーの動きをオーバーライドすれば良いみたいです。

gist.github.com

https://forum.unity.com/threads/overriding-freecamera-cinemachine-inputs-or-freecamera-axis-inversion.484819/

関連

blog.applibot.co.jp

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp