📝

【Unity備忘録】 ポストプロセスの始め方

2024/04/09に公開

Unityで一部のオブジェクトを光らせたかったので、ポストプロセスの始め方を調べてみました。この記事は初学者向けの備忘録で、私のように古いバージョンのUnityを使っている方には参考になるかと思います。Unity2019.4、Built-in RP向けの内容です。調べ始めたときに、URPやHDRPとは手順が異なるため最初は戸惑いました。

ポストプロセスの詳細についてはReferencesに記載している、Post Processing Stack v2のマニュアルを参照すると良さそうです。英語ですが。

環境

Unity 2019.4.40f1 / Built-in RP / Post Processing 3.2.2
Windows 10

ポストプロセスの使用例

Bloomで窓や電灯、星などを発光させています。

Color SpaceをLinearに

まずは、Edit> Project Setting> PlayerでColor SpaceをLinearにします。ここをリニアにしないと色や明るさのコントロールしづらくなります。詳しくはUnityマニュアルの”リニアのワークフローとガンマのワークフロー”をご参照ください。

Post Processingパッケージのインストール

Built-in RPではPost Processingがあらかじめインストールされていないので、Package ManagerでPost Processingをインストールする必要があります。

Window> Package ManagerからPackage Managerを開き、Unity RegistryからPost Processingを探します。ダイアログ左下のボタンからインストールします。

Layerを追加

Edit>Project Settings>Tag and Layers>Layersで空いているUser Layerに”PostProcessing”などを設定します。

カメラにPost Processingのコンポーネントを追加

Main Camera(任意のカメラ)でAdd Componentして、Post Processingを追加します。インスペクターに追加されたPost Processing Layer > Volume blending > Layerのプルダウンから”PostProcessing”レイヤーを選択します。<ここ重要

Defaultレイヤーでもポストプロセスを効かせることはできますが、以下のアラートがでます。パフォーマンスが悪くなるので、止めた方が良いようです。

ボリュームブレンディングプロセスが遅くなるので、”Everything”や”Default”を使用しないでください。最高のパフォーマンスを得るために、ポストプロセスボリュームを独自の専用レイヤーに配置してください。

Post-process Volumeを作成

ヒエラルキーで右クリック(または+ボタンから)でPost-process Volumeを作成します。

Post-process Volumeのインスペクターで、Layerを上記で作成した”PostProcessing”レイヤーにセットします。<ここ重要

続いて、Post-process VolumeコンポーネントのProfileが”None (Post Process Profile)”になっていれば、Newを押しPost-process Volume Profileが新規に作成されセットされます。Profileファイルは、シーンファイルフォルダ以下に作成されます。

Bloomエフェクトを適用する

Post-process Volumeコンポーネントで、Add Effectを押します。今回はオブジェクトを光らせたいので、Bloomを選択します。

Bloomエフェクトの調整例

追加されたBloomコンポーネントの設定を以下のようにしてみました。

マテリアルのEmissionを設定する

ところが、このままではBloomで発光しません。

BloomのThresholdを下げると床など明度が高いところ全体から発光してしまいます。狙ったところだけを発光させたいです。

そこで、マテリアルのEmissionの数値を調整します。ここではStandardシェーダーを使用しています。単にテクスチャが貼ってあるだけでは不十分で、HDRと書かれたところをクリックし、Intensityを1. 0以上にします。ここに気がづかず苦労しました。(EXR画像などで1.0以上の値があれば発光する?)

以上の手順で、窓や電灯、星などを発光させることができました。

お疲れ様でした!

References

以下のサイトを参考にさせていただきました。ありがとうございました。
https://docs.unity3d.com/Packages/com.unity.postprocessing@3.4/manual/Quick-start.html
https://styly.cc/ja/tips/unity_postprocessing_master/
https://qiita.com/sudare222/items/5be4b93de07dc3d7fd02
https://note.com/info_/n/n4c44d03c1e8a
https://qiita.com/tatsuya1970/items/49d4c3795892349db12a

Discussion