CinemachineとPost Processingを組み合わせて使う方法をまとめました。
- 準備
- Post Processing Adapterをインポートする
- まずはメインカメラをセットアップする
- Virtual Camera毎にポストエフェクトを掛ける場合
- すべてのVirtual Cameraに共通のポストエフェクトを掛ける場合
- Virtual Camera固有のエフェクトも共通のエフェクトも使いたい
- Depth Of Fieldの焦点距離をVirtual Cameraの対象に合わせる
- 関連
- 参考
Unity2018.4.0
Cinemachine2.2.9
Post Processing2.1.7
準備
まず、CinemachineとPostprocessingをPackage Manager経由でインストールします。
Package Managerの使い方は次の記事でまとめているので必要に応じて参照してください。
インストールが終わったらシーンにVirtual Cameraを置いてCinemachineでカメラを操作できる状態にしておきます。
このあたりの手順はCinemachineの記事を参照してください。
ちなみに、ポストエフェクトの簡単な使い方は次の記事にまとめています。
こちらも一読してから本記事を読んでいただくと理解しやすいかと思います。
Post Processing Adapterをインポートする
さて次にPost Processingと連携するためのCinemachineのExtensionコンポーネントをインポートします。
上部メニューからCinemachine > Import Post Processing V2 Adapter Asset Packageを選択します。
インポート確認画面が表示されるのでImportボタンを押してインポートします。
まずはメインカメラをセットアップする
さて次にメインカメラのセットアップを行います。
ここまでの手順でメインカメラにはCinemachine Brainがアタッチされているはずです。
これに加えて、このGame ObjectにPost Process Layerをアタッチします。
Volume blendingのLayerにはPostProcessingを指定しておきます(どのレイヤーでもいいですが)。
これでメインカメラのセットアップは完了です。
Virtual Camera毎にポストエフェクトを掛ける場合
さてここからは、ポストエフェクトをVirtual Camera毎に掛ける場合と
全てのVirtual Cameraに共通のポストエフェクトを掛ける場合で手順が異なります。
まずVirtual Camera毎に掛ける方法について説明します。
Virtual CameraにPost Processingを適用する場合、Virtual Camera最下部のExtensionsからCinemachinePostProcessingを選択してアタッチします。
あとはPost-process Profileを作って好きなように設定するだけです。
このカメラ用のProfileがまだない場合はNewボタンを押してProfileを作ります。
Profileが追加されたらAdd effect... から好きなエフェクトを追加します。
今回はビネットを追加してみました。
再生すると次のようになります。
あくまでエフェクトはカメラごとにかかるため、カメラを切り替えると効果が消えていくことが確認できます。
すべてのVirtual Cameraに共通のポストエフェクトを掛ける場合
次にすべてのVirtual Cameraに共通のポストエフェクトを掛ける手順を紹介します。
まず、Hierarchyで右クリック > Create > 3D Object > Post-process VolumeからPost-process Volumeオブジェクトを作成します。
次にこのGameObjectのレイヤーをPost Process Layerで設定したもの(今回はPostProcessing)にします。
さらに、Post Process VolumeコンポーネントのIs Grobalにチェックを入れます。
あとは前節と同様にPost-process Profileを作って好きなように設定するだけです。
今回は色相をずらしました。
カメラが切り替わっても共通のポストエフェクトがかかっていることが確認できます。
なお、Post-processing Volumeの細かい使い方は本記事では割愛していますので以下の記事を参照してください。
Virtual Camera固有のエフェクトも共通のエフェクトも使いたい
それではVirtual Camera毎に固有のポストエフェクトと共通のポストエフェクトの両方を使いたい場合はどうでしょうか。
これについては固有のエフェクトと共通のエフェクトの種類が異なる場合には両方有効にできます。
ビネットと色相変更の両方のエフェクトがかかっていることが確認できます。
ただし、固有のエフェクトと共通のエフェクトに種類が同じものが指定されている場合には注意が必要です。
たとえばVirtual CameraにもPost-process Volumeにもブルームが設定されている場合などです。
この場合にはVirtual Cameraに設定されているものが優先され、Post-process Volumeの方は無視されます。
Depth Of Fieldの焦点距離をVirtual Cameraの対象に合わせる
CinemachineとPost processingを組み合わせた時の特徴として、Depth Of Fieldのポストエフェクトを掛けた時に
焦点距離を自動的にVirtual Cameraが設定してくれるという機能があります。
これを使うためにはCinemachine Post ProcessingのFocus Tracks Targetにチェックを入れます。
この状態でDepth Of Fieldを掛けると、Virtual Cameraの対象に焦点が合うようにFocus Distanceが調整されます。
この機能によりDepth Of Fieldの調整がお手軽にできるようになっています。