CinemachineとはUnity公式のカメラ制御システム。画面の揺れとか、カメラの動きを設定できる。
2dゲームにおいては特定のキャラクタにズーム、画面の揺れ、チュートリアル的なムービー、ピクチャインピクチャを使い二つの画面を1画面に映すなどが考えられる。
キャラクタにだけ焦点をあてるならProCamera2Dという有料アセットがあるのでそれを使用したほうがよさそう。
Virtual Cameraとは
Cinemachineでは複数のVirtualCameraを作成し、それを切り替えることでカメラの切り替えを実現している。
どのVirtualCameraを使用するか切り替えているのがCinemachineBrainと呼ばれるもの
これがカメラ設定の中心になる。
カメラを切り替えてみる
新しくGameObjectを作成し、Component>Cinemachine>CinemachineVirtualCameraを追加する
再生中に使用している方の VirtualCameraを非アクティブにする。
するとカメラ切り替わる。
別の方法ではPriorityを変更する。数が多いものほど優先してカメラが切り替わる。この値とスクリプトで制御することもできる。
カメラ切り替わり方を変更する
パッと切り替えたり、じわっと切り替えたの設定はCinemachineBrainのDefault Blendで設定する。
パッと切り替えたい時は0にしたり、Customで好きなEaseで切り替えることもできる。
複雑な制御をしかっこいいカメラの動かし方をする。
複雑な制御をするにあたってTimeLineを使う。TimeLineは2秒間はこのカメラ、その後3秒間は次のカメラ、のようのな制御をすることができる。
Projectで右クリック> Create > Timeline
適当なオブジェクトにPlayableDirectorを追加
作成したTimeLineを追加
Window > Sequencing > Timelineを開く
VirtualCameraのゲームオブジェクトをTimeLine上にD&Dすると追加できる。カメラを2個と追加した。
シークの橋をかぶせるように移動させるとブレンド具合が変化する。
再生するとカメラが切り替わるのがわかる。これを応用すれば好きなにカメラを置いて、好きなタイミングで切り替えることができる。
カメラを複数同時に1画面に表示する。
Cinemachineでは複数のカメラを切り替えるというのが基本的な制御方法になっているため同時に表示するには別の方法が必要。
新しいカメラを追加する。
Hierarchy右クリック>Cameraを追加
画面上のどの位置にカメラを表示するかの設定はViewporRactで設定する
再生で確認してみると左上に全体小さくした部分が出来ている。これで複数の画面を同時に表示できた。
Tips
Camera設定が動かない
CameraのSizeや設定はVirtualCameraの設定に紐づけされているため設定値を変えるときはVirturalCamera側を変更する。
カメラになにも映らない。
2Dだとよくありがち、カメラがどこからどこまでを映しているのかを確認する。一度3Dにするとわかりやすい。
ここらへんや
ポジションの位置(z軸など)を変更して調整する
参考サイト