Post Processing Stack v2を使ってポストエフェクトを掛けるまでの手順をわかりやすくまとめます。
Unity2018.2
PostProcessing2.0.10
はじめに
まずはじめに、Unityにおけるポストエフェクトの掛け方は二通りの方法があります。
Post Processing Stackという公式アセットを使う方法と、使わない方法です。
本記事ではPost Processing Stackを使ってポストエフェクトを実装する方法を紹介します。
二つの方法の違いについては以下の記事で紹介していますので、必要に応じて参照してください。
またこの記事ではPost Processing Stackの基本的な使い方のみ説明します。
各エフェクトの説明は下記の記事で行っていますので、必要に応じて参照してください。
インストール
まずPackage ManagerでPostProcessingをインストールします。
Window > Package Manager > Allタブにあります。
基本の使い方
まず、下記の手順でPost-process Volumeオブジェクトをセットアップします。
- Hierarchyで右クリック > Create > 3D Object > Post-process Volume
- 1で作られたGameObjectのレイヤーをPostProcessingのものにする
- Post Process VolumeコンポーネントのIs Grobalにチェックを入れる
レイヤーは別にPostProcessingでなくてもいいですが、
Unity2018.2では最初から用意されているようなのでこれを使います。
続いてMainCameraをセットアップします。
- MainCameraにPost Process Layerをアタッチする
- Volume blendingのLayerにPostProcessingを指定する
あとはPost-process Profileを作って好きなように設定するだけです。
- Post Process VolumeのProfileのNewボタンを押してProfileを作る
- Add effect... から好きなエフェクトを追加する
色収差を適用してみました。
ポストエフェクトの掛かり具合を調整する
Post Process VolumeのWeightパラメータを調整すると掛かり具合が変わります。
複数のポストエフェクトをブレンドする
Weightを利用するとポストエフェクトをブレンドすることもできます。
まず、一つ目と同様にPost Process Volumeをもう一つつくり、異なるProfileを適用しておきます。
そしてこのPost Process VolumeのPriorityを上げて1にします。
その上でWeightパラメータを編集することでポストエフェクトをブレンドすることができます。
なお実際にはGlobalなPost-process Volumeを二つ使うのは重くなるだけなので、
この通りの使い方はしないかなとは思います。
Cameraが特定範囲に入った時だけポストエフェクトを掛ける
コライダーを利用するとポストエフェクトの適用範囲を指定できます。
- Post Process VolumeのIs Globalを外す
- Post Process VolumeのGameObjectにコライダーをアタッチする
コライダーは何でもいいです。
このコライダー内にカメラが入るとポストエフェクトが掛かります。
滑らかにブレンドしたい場合はBlendDistanceの値を上げます。
ちなみにPriorityも適用されますが、Collider同士が大きく重なるケースがなければ特に気にしなくていいと思います。