NiagaraSystemでマジックボールを作る(学習メモ)
NiagaraSystemでマジックボールを作る
今日はUE5のNiagaraSystemを使って三つのマジックボールを作った。作る時のキーポイントを記録したいと思う。
「1」エレクトリックボール(Electric Ball)
このボールは、主に二つのパーツで組み合わせて完成された。一つ目は、外のボールの殻で、二つ目は、中の雷の渦巻きである。
ボールの殻を作る
まず、マテリアルの基本設定をし、それは「BlendMode」を「Translucent」にすることと「ShadingMode」を「Unlit」にすることだ。
殻の外部が色を付けられ、内部が透明にするため、「VertexNormalWS」と「CameraVector」をドット積で計算する。それで、カメラに向いているほど、計算結果が「1」に近い。そして「OneMinus」で、内部が「0」に近い、その数字を透明度にすると、望みの効果が出来る。
そして、殻が周りの風景を映すため、一つのCubeMapを使った。そのCubeMapをサンプリングするため、Node「Reflection Vector」を使った。そのノードは、カメラから表面までの射線を反射したベクターだ。
最後に、二つのパーツを組み合わせて完成する。
雷の渦巻きを作る
まず、デフォルトのUVの原点は左上なので、渦巻きを作るため、[UV.xy-(.5, .5)]*nの計算をする。その結果は以下である。
そして、転換したUVを、「VectorToRadialValue」を使って、極座標に転換する。その極座標を使って、ちょっと乱雑なテキスチャーをサンプリングすると、渦巻っぽいの交換が出る。
この効果を基にし、透明度とパーティクルカーラーを設定すると完了だ。
NiagaraSystemで組み合わせ
ここで注意すべきのポイントはいくつある。
まず、このボールをマップの中で自由に移動するため、これらのEmitterで「Local Space」をチェックする(でないと、一つのパーティクルのライフタイムが終わるまでずっと同じ場所にいる)。
次は、色を調整する時、HSVの「V」は明度であり、その数値を上げるほど、色の「強さ」も上がる。その「強さ」は、PostEffectでのBloom効果を調整する時に役に立つ。
「2」火球(ファイアボール)
この火球の効果は主に三つのパーツの組み合わせで完成された。一つ目は真ん中の火炎の球体で、二つ目は球体の後ろにうっすりと点滅している放射線状な効果で、三つ目は周囲にある渦巻のような効果である。
火炎の球体
火炎の球体は球体のMesh+マテリアルで完成する。MaterialのShaderの基本設定は下図のようにする。
今回はBlendModeをTranslucentやAdditiveではなく、Maskedに設定するのは、「透明度」の数字を調整する必要がないからだ(「見える(1)」と「見えない(0)」だけで十分)。設定完了すると、Material Graphに以下のように、二つの煙のテキスチャーをサンプリングして乗算すると、効果が出る。
その灰色の球体を「OpacityMask」に設定し、基本設定の「Opacity Mask Clip Value」を調整し、火球が見える。
そして、球体を着色する時、「Two Sided Sign」というノードを使った。このノードはMeshの表と裏のサーフェイス(triangle)に対するアウトプットは違い、表は「1」、裏は「-1」をアウトプットする。これを用いて火球の全体を完成する。
放射線状の効果
SpriteのUVを調整するだけで、この効果が実現できる。
上図のように、まずUVから(.5, .5)のバーテックス(Vertex)を引き(原点が真ん中にし)、そしてNormalizeと、原点から同じ方向のすべてのポイントは同じ数値を持っている。この数値で任意模様のテキスチャーをサンプリングすると、放射線みたいな効果が出る。
渦巻
一番目のエレクトリックボールの渦巻きに類似するので、上の文章を参考してください。
「3」波のボール
このボールは主に上記の二つのボールで使われたパーツの組み合わせで完成できる。しかし、緑色のリングの部分は少し記録しなければならないものがある。
緑色のリング
まずは、リングを作る。「RadialGradientExponential」ノードにCosine計算を加えると、リングのような効果が出る。この結果に、Powerで計算すると、より細いリングが出来る。
そして、UVにテキスチャーでNoiseを加えると、リングが歪んでる感じができる。ここのトリックは、一つの「Dynamic Parameter」を使って、その「歪み」の程度をコントロールする。
そうすると、Niagara Systemでこのパラメータを操作することができる。下図のようにカーブを設定し、ライフタイムの最後に歪みながら消える効果が出る。
ディストーション(Distortion)効果を作る
以上三つのボールの共通点は、バックグラウンドにはディストーション(Distortion)の効果がある。その効果をじつげんするため、Refractionを使う。下図のように基本設定をする。
しかし、デフォルトで「Refraction」のチェックは不可能の状態であり、基本設定で「Refraction Method」を設定しなければならない。ここは「Noramlを使う」にした。
そして下図のようにグラフを繋ぐと完成する。グラフの一番下の「Dynamic Parameter」を使った原因は、Niagara Systemでこのマテリアルを使う時、ディストーションの強さを調整しやすくしたいからだ。
以上で全てのボールの紹介が完了した~