CinemachineのClear ShotとCinemachine Colliderの合わせ技で対象が近くに来た時だけカメラを切り替える方法をまとめました。
Unity2018.4.0
Cinemachine2.2.9
やりたいこと
CinemachineのClear ShotとColliderを組み合わせるとあるカメラの近くに対象が来た時だけそのカメラに切り替えるようなカメラワークを実現できます。
この記事ではこの方法についてまとめます。
ちなみにColliderとClear Shotについてはそれぞれ下記にまとめていますので、必要に応じて参照してください。
やり方
まず普通にClear Shotを作り、子のVirtual Cameraを適宜セットアップしておきます。
デフォルトで使うカメラのPriorityを上げておき、対象が近くに来たら映すカメラのPriorityを下げておきます。
このあたりの手順がわからない場合はClear Shotの記事を参照してください。
Clear Shotをセットアップする上でCinemachine Colliderが必要になります。
これはClear ShotのGame Objectにアタッチすることもできますが、今回の用途には適していません。
今回は各Virtual Cameraに対してCinemachine Colliderをアタッチしておきます。
注意点として、今回は障害物との当たり判定は行わないためAvoid Obstaclesのチェックを外しておきます。
これを付けたままにしておくと無駄に衝突判定が処理されてしまうため注意が必要です。
さて次に、対象が近くに来たら映すカメラのColliderのOptimal Target Distanceに、
「対象がどのくらい近づいたらこのカメラに切り替えるか」の距離を入力します。
これでこの距離以内に対象が入ってきたらこのカメラに切り替わるようになります。