【Unity】【Cinemachine】Free Look Cameraでユーザが対象をあらゆる角度から見回せるカメラを作る

CinemachineでFree Look Cameraを使ってユーザが対象をあらゆる角度から見回せるカメラを作る方法をまとめました。

Unity2018.4.0
Cinemachine2.2.9

はじめに

この記事ではCinemachineのFree Look Cameraという機能について説明します。

Cinemachineの基本的な使い方やVirtual Cameraの設定方法は本記事では説明しません。
これらは以下の記事にまとめていますので、必要に応じて参照してください。

light11.hatenadiary.com

Free Look Camera?

Free Look CameraはCinemachineで複数のVirtual Cameraをまとめて
一つのVirtual Cameraのように振舞わせるManager Cameraという機能の一つです。

Free Look Cameraを使うとユーザの入力によって対象をあらゆる角度から見回せるようなカメラワークを作れます。

f:id:halya_11:20190706122422g:plain

設定方法としてはVirtual CameraのOrbital Transposerを応用したものになるので、
Orbital Transposerを先に理解することをおすすめします。

light11.hatenadiary.com

Free Look Cameraを作る

Free Look Cameraを使うにはまず上部のメニューからCinemachine > Create FreeLook Cameraを選択します。

f:id:halya_11:20190706122614p:plain

するとHierarchy上にFree Look CameraのGame Objectが作られます。
このFree Look CameraのFollowとLook Atに対象をアサインします。

f:id:halya_11:20190706123441p:plain

するとSceneビューが次のような表示なります。

f:id:halya_11:20190706123644p:plain

赤色の円が三つ描かれていることがわかります。
Orbital Transposerではこの円が一つで、X軸の入力に応じてこの円上をカメラが移動しました。
Free Look Cameraでは三つの円の一つ一つがOrbital Transposerのように振舞います。
そしてY軸の入力に応じてどの円上(あるいは円と円の間)を動くかが決まります。

要するにFree Look Cameraとは、「上下移動もできるOrbital Tranposer」ということになります。

軌道を設定する

さてそれでは細かい設定をしていきます。
まずそれぞれの円の高さと半径をOrbitsのRig設定から調整します。

f:id:halya_11:20190706124739p:plain

Spline Curvatureを変えるとカメラがY軸方向に移動する際に通る軌道を調整できます。

f:id:halya_11:20190706125037g:plain

そしてこれらの設定の下に軌道ごとの設定項目があります。

f:id:halya_11:20190706125240p:plain

Bodyには自動的にOrbital Transposerが設定されるので変更できなくなっています。
Dampingだけが設定できます。

f:id:halya_11:20190706125502p:plain

AimにはComposer以外も何でも設定できます。

f:id:halya_11:20190706125431p:plain

ただ用途を考えるとComposerにすることが多いのではないかと思います。
Composerの設定方法は次の記事を参照してください。

light11.hatenadiary.com

また軌道ごとに注視対象を変えたければLook At Overrideを使えます。
あまり使わなさそうですが。

f:id:halya_11:20190706125640p:plain

結果

上記の設定が終わったら再生して挙動を確認します。

f:id:halya_11:20190706122422g:plain

ユーザ入力により対象をあらゆる角度から見回せるカメラを作れました。

関連

light11.hatenadiary.com

light11.hatenadiary.com