UnityのCinemachineでのFollow
とLookAt
は、カメラの動きや向きを制御する重要なプロパティで、それぞれの役割が異なります。
Follow
は、カメラがどのオブジェクトを追尾するかを指定します。つまり、このプロパティに指定したオブジェクトを、カメラが自動的に追いかけて移動するようになります。
Follow
に設定します。すると、カメラはプレイヤーに追従して移動しますが、プレイヤーが移動してもカメラは一貫して特定の距離や位置を保ちます。LookAt
は、カメラがどのオブジェクトを常に見続けるか(注視するか)を指定します。このプロパティに指定されたオブジェクトの方向を向いて、カメラが回転します。
LookAt
に設定します。すると、カメラはそのオブジェクトを常に見続けるように回転します。Follow
とLookAt
の違いまとめプロパティ | 機能 | 主に制御するもの | 使用例 |
---|---|---|---|
Follow | カメラが追従する対象 | カメラの位置 | キャラクターを追いかけるカメラ |
LookAt | カメラが注視する対象 | カメラの向き(回転) | カメラが常に特定のオブジェクトを注視 |
Follow
とLookAt
を両方指定すると、カメラは指定したオブジェクトを追いかけつつ、そのオブジェクトの方向を常に見続けます。例えば、プレイヤーキャラクターを追従(Follow
)しながら、キャラクターの顔を注視(LookAt
)するようなカメラ動作が可能になります。例えば、3Dアクションゲームにおいて、キャラクターの背後からカメラが追従し、キャラクターの向いている方向を注視する場合には、以下のように設定します。
これにより、カメラは常にキャラクターを追尾し、かつキャラクターの方向を向くようになります。
CinemachineでFollow
とLookAt
の片方だけを設定した場合、以下のような動作になります。
Follow
だけを設定した場合動作:
カメラは指定したオブジェクト(通常はプレイヤーなど)を追尾して移動しますが、カメラの向き(回転)は自動では変わりません。つまり、カメラは追いかける対象を移動で追従しますが、向きが固定されるため、注視していない可能性があります。
シチュエーション例:
Follow
に設定しているが、カメラが固定された方向を向いていると、キャラクターが移動してカメラの視界から外れることもあります。特定の位置を保ちながらカメラの向きはプレイヤーの移動に左右されずに動かない状況です。LookAt
だけを設定した場合設定 | 結果 |
---|---|
Followだけ | カメラはオブジェクトを追尾するが、注視しない。カメラの向きが変わらず、対象が視界外に出る可能性がある。 |
LookAtだけ | カメラはオブジェクトを注視するが、追尾しない。カメラの位置が変わらないため、対象が遠くへ行くと見づらくなる。 |
Followだけを使うケース: 例えば、上から俯瞰する戦略ゲームのように、カメラの向きは固定で、プレイヤーの移動に応じてカメラが追従するが、常に地面のある一方向を向き続けるような場合。
LookAtだけを使うケース: 特定のシーンで、カメラは固定位置からオブジェクトを見続けたい場合。例えば、カメラが重要なオブジェクトを静止した状態で追跡するシネマティックなシーンなど。
Follow
とLookAt
を両方設定すると、カメラが追いかけつつ視線も合わせてくれるため、自然なカメラワークになりますが、片方だけにすると特定の用途に特化した動きになります。