BLOG ブログ

2023-03-22

「Unity」カメラワークを高クオリティに作る方法

「Unity」カメラワークを高クオリティに作る方法

こんにちは。プログラマーのIです。

今回はUnityの「Cinemachine」についてご紹介させていただきます。

・Cinemachineとは?
Cinemachineはカメラを動きを簡単に制御するためのUnityの公式アセットです。
Cinemachineを使うと複雑なコードなしで色んなカメラ演出を作れます。
カメラワークの設定を簡単に行えます。

 

・インストール方法
Unity 2018.1.0b7以上のバージョンを使用する場合はUnity内のPackage ManagerからCinemachineをインポートできます。

インストールはPackage Managerから行えます。
Window -> Package ManagerからCinemachineと検索してインストールします。

・基本的な使い方

Cinemachine Brain
Cinemachine Brainはカメラ自体に含まれるコンポーネントです。
シーン内の全てのアクティブなVirtual Cameraを監視します。
そして、カメラを制御する次のVirtual Cameraを選択します。
UnityのMain Cameraにアタッチして使用します。

Cinemachine Brainはゲーム画面上に反映されるVirtual Cameraを複数設定可能ですが、
この際は一番最初にアクティブしたVirtual Cameraや優先順位の高いVirtual Cameraを映してくれます。
Main CameraにCinemachine Brainというコンポーネントをアタッチします。

Virtual Camera
Virtual CameraはCinemachine Brainの分身でシーンでは複数存在出来ます。
空のGame Objectを作ってCinemachine Virtual Cameraをアタッチします。

Follow
Virtual CameraはFollowにアサインされたゲームオブジェクトに追従します。
追従させるためにVirtual Cameraの位置を変更します。
Look At
Look Atにアサインされたゲームオブジェクトを注視します。
注視するためにVirtual Cameraの回転を変更します。

Virtual CameraのFollowとLook Atにカメラに映したいオブジェクトをアサインします。

次はVirtual CameraのBodyとAimを設定します。


プロパティーの説明は下記に記載します。

Bodyプロパティー
Body プロパティーは、シーン内で Virtual Cameraを動かすアルゴリズムを指定するために使用します。

Cinemachineは、Virtual Cameraの移動のアルゴリズムとして以下を提供しています。

  • Transposer ― Follow ターゲットに対して一定の距離を維持しながら移動します。
  • Do Nothing ― バーチャルカメラは移動しません。
  • Framing Transposer ― Follow ターゲットに対して一定の (スクリーンスペースにおける) 距離を維持しながら移動します。
  • Orbital Transposer ― Follow ターゲットに対して可変の距離で移動します。オプションでプレイヤー入力を受け取ることも可能です。
  • Tracked Dolly ― 事前定義されたパスに沿って移動します。
  • Hard Lock to Target ― Follow ターゲットと同じ位置を使用します。

Aimプロパティー
Aim プロパティーはVirtual Cameraの回転をどのように行うかを設定するものです。

  • Composer: Look At ターゲットをカメラフレーム内に維持します。
  • Group Composer: 複数の Look At ターゲットをカメラフレーム内に維持します。
  • Do Nothing: バーチャルカメラのプロシージャルな回転を実行しません。
  • POV: ユーザーの入力に基づいてバーチャルカメラを回転させます。
  • Same As Follow Target: カメラの角度を Follow ターゲットの角度と同じに設定します。
  • Hard Look At: Look At ターゲットをカメラフレームの中央に維持します。

とりあえず、BodyをTransposerに、AimをComposerに設定して動作を確認しましょう。

この状態で再生をすると設定したオブジェクトにカメラが追従することを確認できます。

高クオリティになるためには調整は必要ですが、とりあえずオブジェクトを追従するカメラワークが簡単に作れました。

こちらのサンプルアセットもインストール出来るので、是非参考していただければと思います。

以上、Unityの「Cinemachine」の基本的な概念の話でした。

いかがでしょうか?
素晴らしいカメラ演出を作れることが出来るので
皆さんも是非一度試してみてください!

トリサンをもっと知る