概要
プレイヤーを追従するカメラ、特定のターゲットを注視するカメラ、カットシーンでのドラマチックなカメラ切り替えなど、カメラ制御はゲームの没入感とプレイフィールを決定づける重要な要素です。従来、これらの動きはLateUpdate内でtransform.positionを調整するような、手書きのスクリプトで実装されることが多く、滑らかで自然な動きを実現するには多くの調整と試行錯誤が必要でした。
Cinemachineは、そんな複雑なカメラ制御をモジュール化し、プログラマーでなくてもデザイナーが直感的に、かつ非常に高度なカメラワークを構築できるようにするUnity公式のパッケージです。2D・3Dを問わず、単純な追従カメラから、複数のターゲットを考慮した構図の自動調整、手ブレ効果、カメラ間のスムーズなブレンドまで、映画的なカメラワークを実現するための機能が満載されています。
この記事では、Cinemachineの基本的な概念と、最もよく使われるフォローカメラ (Follow Camera) の設定方法について解説します。
Cinemachineの基本構成
Cinemachineを使い始めるには、まずPackage Manager (Window > Package Manager) からCinemachineパッケージをプロジェクトにインストールします。
Cinemachineのシステムは、主に2つの要素で構成されます。
-
Cinemachine Brain: メインカメラにアタッチするコンポーネント。どの
Virtual Cameraが現在アクティブかを判断し、そのVirtual Cameraの状態をUnityのメインカメラに適用する「頭脳」の役割を果たします。シーンにVirtual Cameraを配置すると、メインカメラに自動的に追加されます。 -
Virtual Camera (仮想カメラ): これがCinemachineの主役です。
Virtual Cameraは、それ自体が何かを描画するわけではなく、「どのようにカメラを配置し、動かすか」という振る舞いを定義したものです。シーン内に複数のVirtual Cameraを配置し、それらの優先度 (Priority) を変更することで、アクティブなカメラを切り替えることができます。優先度が最も高いVirtual Cameraが、Cinemachine Brainによって選ばれ、その設定がメインカメラに反映されます。
2D/3Dフォローカメラの作成
プレイヤーキャラクターを追従するカメラは、最も一般的なカメラワークです。Cinemachineを使えば、数クリックで非常に高品質なフォローカメラを実装できます。
Step 1: Virtual Cameraの作成
メニューからGameObject > Cinemachine > Virtual Cameraを選択します。シーンに新しいVirtual Cameraが作成され、同時にメインカメラにCinemachine Brainがアタッチされます。
Step 2: ターゲットの設定
作成したVirtual Cameraを選択し、Inspectorで以下の2つの重要なプロパティに、追従させたいオブジェクト(プレイヤーキャラクターなど)のTransformをドラッグ&ドロップします。
- Follow: カメラの位置をこのターゲットに追従させます。カメラはターゲットとの相対位置を保とうとします。
- Look At: カメラの向きを常にこのターゲットに向けます。3Dゲームでキャラクターを常に画面の中心に捉えたい場合などに設定します。
Step 3: 振る舞いの調整
Virtual CameraのInspectorには、カメラの振る舞いを細かく調整するための多くのプロパティがあります。
-
Bodyセクション:
Followターゲットに対するカメラの「位置」の振る舞いを定義します。Framing Transposer: 2D・3D両方で使える非常に強力なモード。画面内のターゲットの位置(Screen X,Screen Y)を維持しようとします。Dead Zone(遊び領域)を設定すると、ターゲットがその範囲内にいる間はカメラが動かなくなり、不必要なカメラの揺れを抑えられます。Damping: カメラの追従の「滑らかさ」を設定します。値が大きいほど、カメラはゆっくりと、滑らかにターゲットを追いかけます。0にすると、遅延なくピッタリと追従します。
-
Aimセクション:
Look Atターゲットに対するカメラの「向き」の振る舞いを定義します。Followと同様にDampingを設定して、振り向きを滑らかにすることができます。 -
Noiseセクション:
Perlin Noise(パーリンノイズ)を適用して、擬似的な手ブレ効果を追加できます。カットシーンや、緊迫した場面の演出に効果的です。
複数のカメラの切り替えとブレンド
Cinemachineの真価は、複数のVirtual Cameraを扱う際に発揮されます。
-
優先度による切り替え: シーンに複数の
Virtual Cameraを配置し、それぞれ異なる振る舞い(例: 通常時のカメラ、ズームアップするカメラ、固定カメラ)を設定します。スクリプトやイベントから、アクティブにしたいVirtual CameraのPriorityプロパティを、他のカメラよりも高 い値に設定するだけで、Cinemachine Brainが自動的にカメラを切り替えてくれます。 -
スムーズなブレンド: カメラが切り替わる際、
Cinemachine BrainのDefault Blend設定に基づいて、前のカメラから次のカメラへスムーズに遷移(ブレンド)します。これにより、瞬間的にパッと切り替わるのではなく、映画のように滑らかにカメラが移動・回転します。
まとめ
Cinemachineは、現代のUnity開発におけるカメラ制御のデファクトスタンダードと言えるほど強力なツールです。
- 手書きのカメラ追従スクリプトは不要。Cinemachineを使えば、より高品質なカメラワークを簡単に実現できる。
- メインカメラには
Cinemachine Brain、振る舞いを定義するのがVirtual Camera。 Virtual CameraのFollowとLook Atにターゲットを設定し、BodyとAimセクションで追従の仕方を調整する。- 複数の
Virtual CameraのPriorityを切り替えることで、カメラを簡単にスイッチングできる。
カメラワークはゲームの品質を大きく左右します。Cinemachineを導入することで、開発者はカメラの複雑なロジックから解放され、より創造的な絵作りに集中することができます。