【UE4】ノイズ+スクロールによるフェードアウト
Verは
UE4.21.2
となります。
今回作ったものは、このような動きを作るためのものとなります。
#UE4
— moyasi@マテフォの中の人 (@torisutamoyasi) May 13, 2019
漸くやりたいことが、いい感じでできるように
メインは上から消えていくのですが
そこにノイズを混ぜてみました。 pic.twitter.com/IG5Ujdev7i
調整していくと、このようにグラデーションでのフェードアウトに対して
ノイズを混ぜたような描画を作ることが可能となります。
全体の構造はこのようになっています。
構造の解説
まずは左側のこの部分から
ここは、フェードアウトに使うノイズの調整となります。
今回は、ベースと歪み用は、同じテクスチャを使用しています。
上部の方は、タイリング数をXとYでそれぞれ調整する為の場所となります。
TexCoordに、定数を乗算すればその分がタイリングされるので
XとYをそれぞれパラメータ化して、インスタンス側でもいじれるように設定し。
それをタイリング数となるようにしているので
インスタンス側から、自由にタイリング数を変更させる事ができます。
下側は、テクスチャに追加するノイズとなります。
歪みには、XとYがRとGのみ必要になるので、この二つのチャンネルを取り出します。
ノイズはそのまま歪みに適用すると、大きすぎる事が多いので
低めの定数を乗算して、ノイズの強度を調整しておくと綺麗になりやすいです。
今回は、インスタンス側でも調整できるように、パラメータ化してあります。
こうして出来上がった、タイリングと歪みの処理を加算してから
テクスチャのUVsに接続します。
次にこの部分となります。
ここは、グラデーションとノイズを混ぜ合わせる役割となっております。
テクスチャからSqrtに接続しています、これは必須ではありません
使用するテクスチャに大きく影響しますが、フェードアウトの調整として、入れたほうが自然になりやすいかなと思います。
TexCordからGチャンネルを抜き出しているのは、単純にグラデーションを持ってくる為です。
当然ですが、ここを自身で容易したテクスチャを使っても構いません。
その後は、ノイズとグラデーションを乗算します。
その後に再度Sqrtに接続します。
2回Sqrtを使っていますが、このノードは平方根を出してくれます。
最後に平方根を入れているのは
グラデーションとノイズを乗算すると、かなり色が黒くなってしまうので、そこからの調整をする為となります。
グラデーションとノイズを混ぜた結果がこのようになっています。
ノイズの模様も維持しつつ、グラデーションが掛かっているのが解ると思います。
最後にこの部分となります
OPMとなるパラメータが、フェードアウトさせる場合の基準となる部分になります。
エフェクトで使う場合は、ここを動かすことになるので
DynamicParameterに置き換えてください
BPで制御する場合は、ScaleParameterで問題ありません。
OPMは基本的に0~1でフェードアウトの範囲を決定します。
そこに対して、先ほど作ったノイズとグラデーションを合成したものも、0~1の数値になっています。
また、グラデーションを混ぜているので、上は数値が低く、下が数値が高くなっています。
OPMのパラメータから減算する事により
1から0になるにつれて、全体の数値が少なくなります。
グラデーションが混ざっているので、下のほうから少しづつ0になる領域が増えていきます。
最後に、Clampを使い0~1からはみ出た部分を0~1に収めます。
エミッシブカラーは今回はあくまで機能説明なので、単色を使っています。
是非ParticleColorやノイズを混ぜたりしてみてください。
マテリアルとしては終わりですが、最後に一つやることがあります。
デフォルト設定の場合、オパシティマスクの数値は、1/3以下で消される設定になっています。
今回の、この設定の場合では、制御がどうしてもしにくいので
ここを変更しておきます。
作成したマテリアルから、インスタンスを作り
下にある、ここのパラメータを変更してください。
0にしたいところですが、0にした場合、うまく描画されないようなので
小さめの数値を入れておきます。
あとは、インスタンスのOPMのパラメータをいじると、ノイズが混ざったようなフェードアウトになってくれていると思います。
ただし、今回比較的に使用するテクスチャに依存する部分がどうしても大きいので、そこはご了承ください...
今回はここまでとなります。
今回文字ばっかりで、解りにくくてごめんなさい...