Cinemachineで2Dのプレイヤーをカメラで追従させる実装方法

Cinemachineとは

Cinemachineとはカメラの操作をスクリプトをかかずにプレイヤーの追従などをコンポーネントを追加するだけで実装できるものです。さらにただプレイヤーを追従するだけでなく、カメラ移動の細かい挙動であったりを調整することもできて、プレイヤーの遊んでいる体験を向上させるようなスムーズなカメラの挙動などができたりと機能が豊富な点が便利です。

現時点では Cinemachine のバージョンが 3 になり、インスペクター内の表示も変わったので、それについても見ていきます。

Cinemachineの実装方法

パッケージマネージャーから Cinemachine をインストール

ヒエラルキー上で Cinemachine > Targeted Cameras > 2D Camera を追加

追加した Cinemachine のオブジェクトのインスペクターの設定から、Tracking Target に追従するオブジェクトを割り当てる

Position Control を Position Composer を設定。

ペンギンさん
Followという設定にすると細かい設定はできないけど、プレイヤーを追従するだけならこちらの設定で問題ないよ!

Cinemachine Position Composerの設定

CameraPostition

カメラとターゲットの距離を指定できます。

  • CameraDistance
    透視投影のときのみ、値を大きくするとプレイヤーが遠く表示され、小さくすると近くになります。
  • DeadZoneDepth
    奥行きの設定ができます。2D では使用しません。

Composition

構図の設定ができます。プレイヤーが視覚的にどのように映るかの設定です。

  • ScreenPosition
    カメラ上でターゲットが表示される位置の設定です。
  • DeadZone
    プレイヤーが動いてもカメラが揺れない範囲を指定できます。
ペンギンさん
Dead Zone を設定すると、プレイヤーがジャンプをしたときにカメラが動かないので、視覚的にどの程度ジャンプしたか分かりやすくなるよ!

 

  • HardLimits
    カメラの移動制限の設定。背景の外にカメラがいかないようにします。
  • CenterOnActivate
    カメラがアクティブになったらプレイヤーを中央に合わせるかどうか。

TargetTracking

ターゲットの追従の設定ができます。

  • TargetOffset
    プレイヤーからのカメラの位置のオフセットを設定できます。
  • 減衰
    カメラの追従速度を設定できます。0 だと即時、1 だとスムーズに追従します。
ペンギンさん
移動先が見えるとプレイヤーが動きの予測ができて遊びやすくなるよ!移動速度の速いゲームとも相性がいいですね。
  • Lookahead
    プレイヤーの移動方向に応じてカメラが先読みします。
    Timeでプレイヤーの動きの何秒先を予測するか設定します。
    Smoothingはカメラの移動がスムーズになる度合いの調整です。
    IgnoreYはプレイヤーのY方向の動きを追従するかどうかの設定です。

実装デモ

カメラがプレイヤーを先行して追従し、ジャンプ時にはゆっくりと追従するように設定されています。これにより、ジャンプの高さが視覚的にわかりやすくなり、アクションゲームとしての操作感が向上します。

まとめ

以上が Cinemachine でプレイヤーを追従するカメラを設定する手順でした。バージョンが変わり設定の項目が簡潔になり見やすくなりましたが、それでも設定できる項目が多いので、必要に応じて設定を変えられるといいですね。3D のゲームもいずれ作る予定ですので、その際にまた 3D 用のカメラ設定の仕方を載せようと思います!

最新情報をチェックしよう!
>
CTR IMG