ネリスさん備忘録

主にUE4の備忘録を残すよ!

【UE4】時止め演出で使ったポストプロセスマテリアルの話

lunanelis.hatenablog.com

前回からの続き。
 
時止め演出の演出で使ったポストプロセスマテリアルの話をば
まずは全体像。これだけだけど、初めて見るとすげー複雑に見えるかも。

f:id:LunaNelis:20200509022900p:plain

というわけで分解して考えてみることに。
まずはここ

f:id:LunaNelis:20200509023044p:plain

第一目的は画面全体をグレースケール化して、白黒な画面に変えること。
「グレースケール」というコメントの中がその対応。
RGBをそれぞれDotノードで掛け合わせるといい感じに灰色になる。
この際、Maskノードをかけておかないと怒られちゃうので注意。
 
でも、これだけだと自分も灰色になってしまい、「世界」っぽくないので
自分だけは色を残したい。
そこで使うのがCustomDepthなるもの
キャラクターのMeshの設定のRenderingの▽の中に
RenderCustomDepthPassという名前の項目があるので、チェックを入れると
設定完了。マテリアルで使えるように。
 
SceneTexture:CustomDepthという赤いノードで取得することができ
CustomDepthが設定されているMeshは白く、それ以外は黒いという情報になる。
これを使い、「自分だけグレースケールの範囲外」にする
 
1.自分がいる場所は通常の色を適応する
2.自分以外の場所をグレースケール化する
3.1と2を足し合わせて、「自分だけが色のある状態」が完成する
 
ただ、自分の手前にモノがあった場合、その色が出ちゃうのでそこはカットしないといけない…
 
そして、下段の部分について

f:id:LunaNelis:20200509025518p:plain

時を止めたとき、グワーッと広がるような演出にしたいと思ったので作る。
やってること自体は単純で、円を拡大していくことと
その円をマスクとして使って上記のグレースケールの表示範囲を拡げること。
 
特に考えることもないんだけど、1個だけ注意点が。
ポストプロセスマテリアルはほかのマテリアルと違って値を直接渡せない。
なので、円がどれくらい広がったかをこちらから指定するには一工夫必要
 
それがマテリアルパラメータコレクションなるもの。
これを作成し、パラメータを作成し
マテリアル内で呼び出す。(画像ではPowerという名前の緑のでっかいやつ)
呼び出すときはCollectionParameterという名前のノード。

f:id:LunaNelis:20200509030220p:plain

中を見てみると、CollectionとParameterNameという項目があり
Collectionには自分が作成したマテリアルパラメータコレクションを
ParameterNameには作成したパラメータの名前を選択していれる。
 
そして、どこかでこのコレクションのパラメータに対して数値を設定すると
マテリアル内のパラメータも変化させられるのだ
 
で、数値の設定方法がこれ

f:id:LunaNelis:20200509030613p:plain

今回は徐々に大きくしたいので、パラメータを取得し、ちょっと数値を変化させてそれを設定するということにした。
これだけで変わるなんて楽だなぁ…
 
というわけで雑だけどこれ以上丁寧にしたら長くなりすぎちゃうのでここまで。
まぁ備忘録みたいなもんだしええか…ええか…?