【Unity】Post Processing Stack Version 2.x を使用する

概要
-
Post Processing Stackを使っている人が Post Processing Stack Version2.x に移行するための手順です。


はじめに
- 
Unityで絵作りをするときに欠かせないのが[Post Processing Stack](https://assetstore.unity.com/packages/essentials/post-processing-stack-83912)です。
![2019-01-15_014004.png](https://qiita-image-store.s3.amazonaws.com/0/59911/b26e652a-0f2d-282e-2a8c-9a48e9d01614.png)

ちょっとした設定をするだけで見た目の印象がかなり変わるので、使用している方も多いかと思います。
![2019-01-15_010013.jpg](https://qiita-image-store.s3.amazonaws.com/0/59911/80e43ec1-ded5-323c-dd4f-b1ab03f9b639.jpeg)

現在は Version 2 が UnityのPackage Managerからインストールできる標準機能となっています。

できることが増え、融通が利くようになった分、設定も若干面倒になり、以前のでいいや・・・と旧バージョンを使い続けている方も多いかと思います。

今回の記事は、以前のPost Processing Stack と同様のことをVersion 2.xで行うまでの手順となります。

Version 2.x のインストール
-
Post Processing Stack Version 2.x のインストールはAsset Storeからではなく、Package Managerから行います。
Window>Package Managerを選択してPackage Managerウインドウを開きます。
![2019-01-15_011018.png](https://qiita-image-store.s3.amazonaws.com/0/59911/8e758b00-736c-4903-58a1-20c38dbf0aec.png)

[All]ボタンを押しPost Processingを選択、[Install]ボタンを押してインストールします。
![2019-01-15_011458.png](https://qiita-image-store.s3.amazonaws.com/0/59911/8904ab65-f69c-9d8c-6d2d-567b389c30f2.png)
インストールが完了するとPackages にPostProcessingが追加されます。
![2019-01-15_011613.png](https://qiita-image-store.s3.amazonaws.com/0/59911/bc23733d-50f4-c7fb-ad3c-6b0303056fd0.png)

カメラに Post-Process Layerを追加する
- 
以前はカメラにPost-Processを追加して完了、でしたが、今回はLayerとVolumeに分かれています。カメラにはLayerを追加します。

![2019-01-15_011820.png](https://qiita-image-store.s3.amazonaws.com/0/59911/7dd11b32-05d7-2780-1215-b057c289b4bc.png)

Post-Process Layerを追加すると、PostProcess対象レイヤーがNothingとなっているので、これをDefaultに変更します

![2019-01-15_012005.png](https://qiita-image-store.s3.amazonaws.com/0/59911/4ff73e1b-e6ec-fa50-dec3-3ddeab5a6f67.png)

「Default やEveruthing を指定すると処理が重くなるから、必要なレイヤーにだけ設定してね」と言われますが、今回は以前のバージョンとの置き換えが目的なのでとりあえず目をつぶります。

![2019-01-15_012126.png](https://qiita-image-store.s3.amazonaws.com/0/59911/6ce990d9-5ef7-f4d9-d2d0-05aa35f80d60.png)

Global Post Process Volume を作成する
-
新しいバージョンではPostProcessの範囲を指定できますが、とりあえずは以前のバージョンと同様、全体を対象にします。
空のGameObjectを作成してGlobalPostProcessVolumeといったわかりやすい名前をつけ、
![2019-01-15_012356.png](https://qiita-image-store.s3.amazonaws.com/0/59911/69d2954f-6d75-077a-8b1d-40fd83f41723.png)

[Add Component] >Rendering>Post-process Volume を追加します。
![2019-01-15_012436.png](https://qiita-image-store.s3.amazonaws.com/0/59911/a814b2d1-09c2-dcc7-1246-9113036967c0.png)

追加された Post-process Volume のIs Globalにチェックを入れ、[New]ボタンを押して新しい設定ファイルを作ります
![2019-01-15_012739.png](https://qiita-image-store.s3.amazonaws.com/0/59911/dfd0bfd9-5e71-64d2-ed34-44895a7fd926.png)

[New]ボタンを押すと新しい設定ファイルが作成されて自動的にセットされます。
![2019-01-15_012825.png](https://qiita-image-store.s3.amazonaws.com/0/59911/65e883b3-ecb6-2121-61af-134ed5508d5d.png)

エフェクトを追加する
-
ここまで来ればあとは以前のバージョンと同じです。
[Add effect]を押して必要なエフェクトを追加していきます。
![2019-01-15_012955.png](https://qiita-image-store.s3.amazonaws.com/0/59911/d26f74c4-bd45-9036-090b-d11391fba03d.png)

![2019-01-15_013740.png](https://qiita-image-store.s3.amazonaws.com/0/59911/9fb22dbd-e6d8-4e38-ccdc-8321f685ae8a.png)

複数のPostProcessを使い分けたい場合は
-
Post-process Volume の Is Globalからチェックをはずし、Post-process VolumeオブジェクトにColliderをアタッチすると、カメラ（Target)がその中に入ったときにだけ発動するようになります。
BlendDistanceを適切に設定することで距離に応じた強度で発動させることができます。
![2019-07-22_174900.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59911/d3102103-e804-83b4-120c-2caca15614c1.jpeg)
アタッチしたColliderはそのまま通常のColliderとしても機能してしまうので、
オブジェクトに衝突させたくない場合はレイヤーを分けて設定します
![2019-07-22_180011.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59911/c543258c-bf2d-9de5-45ea-cb388ab10d14.jpeg)

レイヤーを分けた場合はカメラにアタッチした側のPost-Process LayerのPostProcess対象レイヤーにも同じレイヤーをセットします。

さいごに
- 
とりあえず以前のバージョンと同様のことができるところまで来ました。
慣れてくると、エフェクトが必要な場所のみで発動させる等、効率的かつ効果的なエフェクトを追加していけるようになるかと思います。

![2019-01-15_022808.png](https://qiita-image-store.s3.amazonaws.com/0/59911/220e288b-20da-bf01-793a-cf1ea5b47ed5.png)