【Unity】【Cinemachine】Virtual Cameraをブレンドしながら切り替える方法まとめ

CinemachineでVirtual Cameraをブレンドしながら切り替える方法をまとめました。

Unity2018.4.0
Cinemachine2.2.9

はじめに

この記事ではCinemachineのVirtual Cameraをブレンドする方法について説明します。

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

light11.hatenadiary.com

ブレンドするにはPriorityの高いVirtual Cameraをオフにするだけ

CinemachineではPriorityの高いVirtual CameraのGameObjectやコンポーネントをオフにすることで次のカメラに自動的にブレンドされます。

f:id:halya_11:20190630123233g:plain

基本はこれだけです。とても簡単。

ブレンドのイージングを切り替える

さてこのブレンドのイージングはCinemachine Brainで調整することができます。
まずイージングを切り替えるにはDefault Blendのドロップダウンを選択します。

f:id:halya_11:20190630123401p:plain

Cutを選択すればパッと切り替わるカメラが作れます。

f:id:halya_11:20190630123657g:plain

Hard Outを選択すれば初速が速くなります。

f:id:halya_11:20190630123836g:plain

またCustomを選択すれば、自身でAnimationCurveを定義することも可能です。

ブレンドの時間を切り替える

ブレンドの時間を切り替えるにはDefault Blendの左にあるsという名前のフィールドに遷移時間を入力します。

f:id:halya_11:20190630130832p:plain

時間を前節の倍にしたところ、ゆっくりブレンドするようになりました。

f:id:halya_11:20190630131101g:plain

ブレンドを遷移ごとに指定する

ここまでの方法では、指定したブレンド方法がすべてのカメラ遷移時に使われます。
特定の遷移だけブレンド方法を変えたい場合にはCustom BlendsのCreate Assetボタンを押します。

f:id:halya_11:20190630132846p:plain

するとブレンド設定用のアセットがアサインされ、ブレンド方法を細かく設定できるようになります。
+ボタンを押して遷移情報を追加していきます。

f:id:halya_11:20190630133401p:plain

今回は、Virtual Camera01からVirtual Camera02に遷移するときには1秒でEase In Outするようにしました。
また、Virtual Camera01への遷移はどのカメラからでもCutでパッと切り替わります。
再生してこの挙動を確認してみます。

f:id:halya_11:20190630133610g:plain

正常に設定できていることが確認できました。

ブレンド時の軌道を設定する

いま、FollowとLook Atに同じ対象を入れたVirtual Cameraが二つあることを考えます。
二つを普通に遷移させるとこんな感じになります。

f:id:halya_11:20190630165512g:plain

二つのカメラの位置が線形補間されているため、対象に一時的にかなり近寄ります。
ここでいずれかのVirtual CameraのTransitions > Blend HintをSpherical Positionに変更します。

f:id:halya_11:20190630165652p:plain

すると、対象を中心とした円状をカメラが動くようなブレンド方法になります。

f:id:halya_11:20190630165820g:plain

またBlend HintをCylindrical Positionにすると対象を中心とした円柱状を動くようなブレンド方法になります。

f:id:halya_11:20190630165949g:plain

参考

docs.unity3d.com