カスタム深度パスを使用して、
ポストプロセスマテリアルの適用先を特定のアセットにします。
キャラクターにはベースカラーだけをレンダリングして、
環境にはPBRレンダリングします。
右クリック > [Material(マテリアル)]
名前を「PPMM_BaseColor_CH」にします。
ファイルを開きます。
[Details(詳細)]タブの
[Material(マテリアル)] > [Material Domain(マテリアルドメイン)]で
[Surface(サーフェス)]を[Post Process(ポストプロセス)]に変更します。
[Blendable Location]を
[Before Translucency(透過処理前)]に変更します。
カスタム深度はレンダリングに透過処理を必要とします。
そのためBlendable Locationを透過処理前に設定します。
SceneTextureノードを配置します。
[Details]タブ > [SceneTexture ID(シーンテクスチャID)]で
[CustomDepth(カスタム深度)]に設定します。
カスタム深度ノードは、
[Custom Depth]がオンのアセットを検索して
そのアセットだけをレンダリングします。
適用先のキャラクターを選択します。
[Details(詳細)]パネルで
[Rendering(レンダリング)] > [Render CustomDepth Pass(カスタム深度パスのレンダリング)]を
有効にします。
SceneTextureノードを配置します。
[Details]タブ > [SceneTexture ID(シーンテクスチャID)]で
[SceneDepth(シーン深度)]に設定します。
カスタム深度からシーン深度を減算します。
Clamp(クランプ)ノードをつなぎます。
Clampノードは入力InをMinとMaxで定義される最小値と最大値の間の範囲に固定して返します。
一旦保存します。
ポストプロセスマテリアルをポストプロセスボリュームに追加します。
[Rendering Featues(レンダリング機能)]タブの
[Post Process Materials(ポストプロセスマテリアル)] > [Array(配列)]で
「+」ボタンで追加します。
メニューより[Asset reference(アセット参照)]を選択します。
作成した[PPMM_BaseColor_CH]マテリアルを指定します。
現在、環境は白で、キャラクターは黒です。
これを逆にします。
OneMinusノードを配置します。
SubtractノードとClampノードの間に入れます。
これを接続して保存すると
キャラクターが白、環境が黒になります。
キャラクターの白に、ベースカラーをレンダリングします。
Lerpノードを配置します。
Alphaピンにつなぎます。
SceneTextureノードを配置します。
[Details]タブ > [SceneTexture ID(シーンテクスチャID)]で
[PostProcessInput0]に設定します。
LerpノードのAピンにつなぎます。
もう一つ
SceneTextureノードを配置します。
[Details]タブ > [SceneTexture ID(シーンテクスチャID)]で
[BaseCplor(ベースカラー)]に設定します。
LerpノードのBピンにつなぎます。
エミッシブカラーにつなぎます。
保存します。
キャラクターにベースカラーがレンダリングされ、
環境にはレンダリングされません。
また環境が暗いので
マテリアルに戻り
PostProcessInput0ノードにMultiplyノードをつなぎます。
今回「6」を乗算して明るくします。
保存します。
PPMM_BaseColor_CH_