[UE4]CustomDepthによるPostProcess適用選択

概要

ゲーム画面を暗転させる際、所望の3Dオブジェクトだけ暗転から除外したい場合の1手法の紹介。

下記画像のような結果を得る。手前側のオブジェクトのみ明るく、背後の3D空間は暗い状態にある。

手法

    • 暗転はPost Processで行う。

    • 暗転からの除外は、対象をCustomDepthに登録→上記暗転ポスプロの処理でCustomDepthを考慮する。

※描画負荷を考慮していないので、最適な手法ではない点に注意

以下、ver.4.19.2 での手順となる。

ポストプロセス用のMaterialを作成

新規Materialを作成し、Material DomainをPost Processにする。

あとは下記画像のように設定する。

Post Process適用

2つ方法がある。

  • Post Process Volumeをレベルに配置して、カメラをその中に突っ込む

  • カメラのPost Processプロパティに直接値を設定する

今回は前者で説明する。

ポストプロセス除外対象をCustomDepthに登録

今回のケースでは、対象アクターに以下のインタフェースを設けて選別した。

暗転除外したいアクターだけ以下のイベントを呼ぶ事になる。

Dynamic Material InstanceとPost Process Volumeの関連付け

上記MaterialのDynamic Material Instanceを適当なタイミングで作成して、配置したPost Process Volumeに適用する。

Blueprint変数の”Pp Volume”は公開設定で、レベルから先ほどのPost Process Volumeが割り当ててある。

上記処理を通った時点でポストプロセスが適用され始める。

上記画像では透明なLinearColorを設定しているので見た目上の変化はない。

任意のタイミングで改めて暗転用のカラーを設定すれば、本ページ頭の画像のような結果を得る。