【Unity2019.4】ポストプロセス:非URPとURPの適応の仕方の違い

URPと普通の3Dテンプレートから作ったプロジェクト(以下、非URPと書きます)で、
ポストエフェクトの適応方法が違うのでまとめました。


この記事を書いたときの環境

・Unit 2019.4.23f1 (Windows)

URPか確認する方法

Settingフォルダに設定ファイルがある

URPのテンプレートからプロジェクトを作成したのに誤って上記ファイルを消してしまった場合は、
URPになっていないので注意!

カメラの設定項目が異なる

▼URP

▼非URP

非URP

光るオブジェクトを用意

ここではStanderd シェーダーを使ってEmission をOn にしたオブジェクトを用意しました。

適応方法

・(画面上部メニューの)Window -> PackageManager より ポストプロセスをインストールする

・カメラに ‘Post-process Layer‘ を適応

・HDR を有効にする

(画面上部メニューの)Edit -> ProjectSettings -> Graphics -> 開発しているPratfomの `Use HDR` にチェックをいれる


android等は、Use Defaults にチェックが入っているので外してから行う
「Standaloneだと適応されるのに、androidやIOSにすると適応されない!」という場合はコレが原因かも。

・‘Post-process Layer‘ の Layer に、ポストプロセスを適応するレイヤーを設定する

・(ヒエラルキーで右クリック) -> 3D Object -> Post-process Volume からPost-process Volumeのゲームオブジェクトを作成

 →Profile の New を押し、Bloom等のポストエフェクトの設定を追加する
  →この設定ファイルは、Scenes/シーン名_Profiles に配下に作られます
 →カメラがどの位置にいてもこのポストエフェクトを適応したい場合はIsGrobalをチェックする
 →カメラがコライダーの範囲内にいた時のみポストエフェクトを適応したい場合はIsGrobalを外す。
 →Layerを先程、‘Post-process Layer‘ の Layerに設定したレイヤーにする必要がある

URP

光るオブジェクトを用意

ここでは、URPのLit シェーダーを使ってエミッションを設定しています。

適応方法

・カメラのPost Processing をチェック

・(ヒエラルキーで右クリック) -> Volume-> 任意のVolume を選び、Volumeがアタッチされたゲームオブジェクトを作成

 →Profile の New を押し、Bloom等のポストエフェクトの設定を追加する
  →この設定ファイルは、Scenes/シーン名 に配下に作られます

違いまとめ

・URPの場合は、PackageManagerからポストプロセスをインストールする必要はない
・URPの場合、レイヤーを設定することができない(しなくても負荷的に問題ない?)
・プロファイルの作り方は同じ
URPで、Post-process VolumePost-process Layer を使っても正常に動作しないので注意!