【UE4】ポストプロセスをブループリントで動的に制御してみる
このようにポストプロセスをBPでリアルタイムに制御するための方法をメモしてみました。
ポストプロセスの準備
適当なブループリント(ここではActor)を作成 & ワールドに配置し、
「コンポーネントを追加」からPost Processコンポーネントを追加。
ブループリントによる制御方法
ポストプロセス全体のOn・Off、適用度変化だけなら
Post Processコンポーネント → 「Set Enabled」「Set Blend Weight」ノードで値を変更でOK!
もう少し細かな箇所のパラメータ値を変更したい場合は
「Set members in PostProcessSettings」ノードを使用。
ノードをクリック → 詳細タブから変更したいパラメータへの入力ピンを追加できます。
なお、「ポストプロセスセッティング内のArray」=「ポストプロセスボリューム → Rendering Features → Post Process Materials内のArray」。
「Set members in PostProcessSettings」ノードで変化させる場合は後者を。
実際に制御してみる
今回の目標は、自作のポストプロセスの適用度をBPでリアルタイムに制御すること。
まず「Set members in PostProcessSettings」ノードを配置し、
ノードをクリック → 詳細タブ → 「Rendering Features → Post Process Materials」にチェックを入れ、入力ピンを追加。
追加した入力ピンから「変数へ昇格」を実行。
Weighted Blendable型の配列変数が追加されるので、
コンパイル後、「デフォルト値」欄に自作のポストプロセスをセット。
「Set members in PostProcessSettings」ノードで、配列変数の中身をPost Processコンポーネント本体に適用。
ノード実行時に、先ほど配列変数にセットした自作ポストプロセスが画面に適用されればOK!
あとはリアルタイムにパラメータを変化させるだけ。
「TimeLine」ノードと「Set Array Enum」ノードで配列変数の中身を時間とともに変化させ、
「Set members in PostProcessSettings」ノードで変化を適用させれば、動的なポストプロセス制御処理の完成!👍
配列変数を用意せず、Make Arrayノードで直接ポストプロセス設定をセットする方法も。
ポストプロセス制御例
自作ポストプロセスの適用度を変化。
Bloom → 「Intensity」の値 を変化。
「Color Grading LUT」を事前にセットしておき、
「Color Grading LUT Intensity」の値を変化。
[参考ポストプロセス]
・ドット絵風モザイク https://youtu.be/tJTdgoXZWcM?t=4757
・【UE4】お手軽白黒ドット表現 【★☆】 | キンアジのブログ
・UE4.20.3でブラウン管ポストエフェクトを作るの巻 - 🌥制作記録🌥
・UE4でRGBずらしPostProcessMaterialを作る - 🌥制作記録🌥
関連記事:
rwiiug.hatenablog.com
rwiiug.hatenablog.com