【Unity】【Cinemachine】Clear Shot + Cinemachine ColliderのShot Evaluationで対象が近くに来た時だけカメラを切り替える

CinemachineのClear ShotとCinemachine Colliderの合わせ技で対象が近くに来た時だけカメラを切り替える方法をまとめました。

Unity2018.4.0
Cinemachine2.2.9

やりたいこと

CinemachineのClear ShotとColliderを組み合わせるとあるカメラの近くに対象が来た時だけそのカメラに切り替えるようなカメラワークを実現できます。

f:id:halya_11:20190707020229g:plain

この記事ではこの方法についてまとめます。

ちなみにColliderとClear Shotについてはそれぞれ下記にまとめていますので、必要に応じて参照してください。

light11.hatenadiary.com

light11.hatenadiary.com

やり方

まず普通にClear Shotを作り、子のVirtual Cameraを適宜セットアップしておきます。
デフォルトで使うカメラのPriorityを上げておき、対象が近くに来たら映すカメラのPriorityを下げておきます。

f:id:halya_11:20190707020658p:plain

このあたりの手順がわからない場合はClear Shotの記事を参照してください。

light11.hatenadiary.com

Clear Shotをセットアップする上でCinemachine Colliderが必要になります。
これはClear ShotのGame Objectにアタッチすることもできますが、今回の用途には適していません。
今回は各Virtual Cameraに対してCinemachine Colliderをアタッチしておきます。

f:id:halya_11:20190707020725p:plain

注意点として、今回は障害物との当たり判定は行わないためAvoid Obstaclesのチェックを外しておきます。

f:id:halya_11:20190707021129p:plain

これを付けたままにしておくと無駄に衝突判定が処理されてしまうため注意が必要です。

さて次に、対象が近くに来たら映すカメラのColliderのOptimal Target Distanceに、
「対象がどのくらい近づいたらこのカメラに切り替えるか」の距離を入力します。

f:id:halya_11:20190707021221p:plain

これでこの距離以内に対象が入ってきたらこのカメラに切り替わるようになります。

f:id:halya_11:20190707021930g:plain

関連

light11.hatenadiary.com

light11.hatenadiary.com

参考

docs.unity3d.com