■UV
■UVオフセット
下図、Scalar ParameterをDynamicParameterやMaterialParameterCollectionに置き換えると、ナイアガラやシーケンサーなどからUVスクロールを表現することもできる。ナイアガラでランダム値を入力すると、パーティクルごとにランダムなUV座標を適用できる。

■UVスクロール
UVスクロール+スクロールスピード制御を組んだノード。たいていはセットで使う。

パラメータに緩急を付けると(加速・減速しようとすると)破綻した見た目になるので注意
■UVタイリング(UE 5.7)

ちなみに、ScaleUVsByCenterを使うと、中心を基準にタイリングができる

■UV回転
UE4デフォルトで用意されている「CustomRotator」が使える。
「Rotation Angle」に0~1の値を入力することで、テクスチャが回転。例えば0.25だと90度回転、0.5だと180度回転になる。

■UVランダム(UE5.7)

■マテリアル関数に集約
処理をたくさん使いまわす時は、マテリアル関数化します。

■上記MF(MF_UVCommon)の中身(UE5.7)
こんな感じです





MFの外側は、各項目の制御用パラメータを繋げます。
これによりマテリアル
個別で名前を付けたり、グループを分け易くするためです。

■歪み(Distortion)
テクスチャを歪ませる方法です。
歪み用テクスチャの濃淡に応じてUV座標に変化を付けるような処理を組みます。
※歪み用テクスチャは白と黒のグラデーション分布が均等に近くないと、歪み強度を強くするほど歪みの方向が偏るので注意


下図のような感じでマテリアル関数化するのも良いでしょう。


■ソフトパーティクル
パーティクルがメッシュと接触(交差)する部位において、透明度を高めてパーティクルがメッシュに刺さっている印象をやわらげてくれる効果を足せます。
「Depth Fade」ノードをオパシティに繋げます。
▼参考:UE4公式ドキュメント「Depth 表現式」
https://docs.unrealengine.com/ja/RenderingAndGraphics/Materials/ExpressionReference/Depth/index.html
こんな感じ

■ちぎれ処理(Dissolve) UE5.5.3
テクスチャの濃淡を、真っ黒から真っ白まで推移させるような処理です。
これを用いることで、パーティクルがちぎれて消えていく/出現するような表現ができます。
下図のような処理を、Opacity関連の処理の最後の方に入れます。

※稀に、BrokenThresholdに0など最大値が入っているにも関わらず、わずかにテクスチャの濃淡が出ることがあるが(バグ?)、その際はテクスチャノードの直後にsaturateを入れて、強制的に0~1の範囲内に値を収めることで解消できた。
■屈折
パーティクルに屈折効果を付けたい時は、下図のような処理を「屈折」に入力します。使いたい時と使いたくない時があるので、SwitchでON/OFF切り替えられるようにすることも多いです。LerpのAlphaには、下図の場合はOpacityの値を入力しています。

上図のLerpのAlphaに、屈折用のテクスチャを繋げることで、オパシティに左右されない屈折表現ができる。ただ、オパシティと切り離すと、パーティクルの消滅時に屈折表現がパッと消えて見えてしまうため、屈折値の出力はディゾルブの出力に乗算するなどすると良い。
エフェクトで使う屈折方式は、PixelNormalOffsetが向いてそう・・・。
(Index of Refractionは自然の法則を取り入れているが、発光を多く扱うエフェクトでは発光の屈折がノイズになることがある)
■フレネル
カメラと物体表面の角度によって濃淡を付ける効果。
輪郭線を付けたり透明度の高い物体によく使う。

下図のような処理を、オパシティやエミッッシブ値に掛け算で入力する。エフェクト制作ではオパシティのみに使用することが多い印象。

マテリアル関数化する時は以下のような感じに組む。


▼昔は以下の組み方をしていましたが、いまいち調整がしづらくて今は使っていません。(自分が使い方を理解しきれていなかった可能性があるので記載は残しておきます・・・)

上記処理をマテリアル関数化し、スイッチでフレネルをON/OFFできるようにすることも多い。
