[UE4]CustomDepthによるPostProcess適用選択
概要
概要
ゲーム画面を暗転させる際、所望の3Dオブジェクトだけ暗転から除外したい場合の1手法の紹介。
下記画像のような結果を得る。手前側のオブジェクトのみ明るく、背後の3D空間は暗い状態にある。
手法
手法
暗転はPost Processで行う。
暗転からの除外は、対象をCustomDepthに登録→上記暗転ポスプロの処理でCustomDepthを考慮する。
※描画負荷を考慮していないので、最適な手法ではない点に注意
以下、ver.4.19.2 での手順となる。
ポストプロセス用のMaterialを作成
ポストプロセス用のMaterialを作成
新規Materialを作成し、Material DomainをPost Processにする。
あとは下記画像のように設定する。
Post Process適用
Post Process適用
2つ方法がある。
Post Process Volumeをレベルに配置して、カメラをその中に突っ込む
カメラのPost Processプロパティに直接値を設定する
今回は前者で説明する。
ポストプロセス除外対象をCustomDepthに登録
ポストプロセス除外対象をCustomDepthに登録
今回のケースでは、対象アクターに以下のインタフェースを設けて選別した。
暗転除外したいアクターだけ以下のイベントを呼ぶ事になる。
Dynamic Material InstanceとPost Process Volumeの関連付け
Dynamic Material InstanceとPost Process Volumeの関連付け
上記MaterialのDynamic Material Instanceを適当なタイミングで作成して、配置したPost Process Volumeに適用する。
Blueprint変数の”Pp Volume”は公開設定で、レベルから先ほどのPost Process Volumeが割り当ててある。
上記処理を通った時点でポストプロセスが適用され始める。
上記画像では透明なLinearColorを設定しているので見た目上の変化はない。
任意のタイミングで改めて暗転用のカラーを設定すれば、本ページ頭の画像のような結果を得る。