Unreal Engine(UE)で煙のエフェクトを作ってみよう!
ちょっとした応用も含めて、初心者向けに解説します!
動作環境
当記事の動作環境は以下の通りです。
バージョンや環境によっては、正常に動作しない可能性があります。
また、プロジェクトはサードパーソンプロジェクトの使用を前提とします。
【ベース】煙エフェクトの作成方法
Niagaraエフェクトの作成
まずはNiagaraエフェクト(以下、ナイアガラ)を作成します。
コンテンツブラウザにて、何もない部分を右クリックして、「Niagara システム」をクリックします。
「選択したエミッタに基づく新しいシステム」を選択します。
「Fountain」を選んだ状態で+ボタンを押下して、終了します。
※上図では「Empty」を選択していますが、「Fountain」を選択してください。
ナイアガラを追加後、その作成したナイアガラを開きます。
エフェクトの編集
ここからエフェクトを編集していきます。
ナイアガラは細かい設定が多いので、漏らさず確実に対応してください!
プロパティの編集
「Fountain」のプロパティを選択します。
SimTarget欄に「GPUCompute Sim」を設定します。
また、Local Space欄がTrue(チェック)状態であることを確認してください。(もしFalseならTrueに変更)
Emitter Stateの編集
「Fountain」のEmitter Steteを選択します。
Life Cycle Mode欄に「System」を設定します。
Spawn Rateの編集
「Fountain」のSpawn Rateを選択します。
Spawn Rate欄に任意の値を設定します。
Spawn Rateは、1秒間に生み出すエフェクトの個数の設定です。
煙の量を調整します。
既存機能の削除
「Fountain」のパーティクルのスポーンから「Shape Location」と「Add Velocity」を選択します。
この2つを削除します。(キーボートのDeleteキーでOK!)
Curl Noise Forceの追加1
「Fountain」のパーティクルのスポーンの右側の+ボタンを押下します。
検索欄に「curl」と打ち込み、「Curl Noise Force」を選択します。
環境によっては、問題が発生することがあります。その場合は、問題を修正してください。
(大概は”問題を修正”ボタンを押下するだけで解決します)
「Fountain」のCurl Noise Forceを選択します。
「Noise Strength」と「Pan Noise Field」に適当な値を設定します。
これらの設定は煙の揺らめき度を設定します。
煙の揺れが多い/少ないを好みで変更してください。
Gravity Forceの編集
「Fountain」のGravity Forceを選択します。
Gravity欄の右側にある下向き矢印をクリックし、検索欄に”Make”を打ち込んで「Make Vector」を追加します。
追加したMakeVectorのZ軸に対し、「Froat form Curve」を追加します。
追加したFroat form Curveに対し、時間0・値1の点(グラフに2点ある▲の左側)を右クリックします。
3次補間-自動接線を有効化します。
さらに、「Scale Curve」の値を200ほどに設定します。(この数値は好みで変更して構いません)
Initialize Particleの編集
「Fountain」のInitialize Particleを選択します。
Lifetime Modeを「Direct Set」に変更し、Lifetimeを5程度に変更します。(エフェクトが消えるまでの時間で、長いほど煙が消えないので結果的に高い煙になります)
ColorのAを0.005程度に変更します。(透明度を高めます)
煙に色を付けたい場合は、RGBの値を変更します。
最後にSprite Size Modeを「Uniform」に変更し、Uniform Sprite Sizeを3~5程度に設定します。(煙の太さが変わります)
Dragの編集
「Fountain」のDragを選択します。
Drag欄の右側にある下向き矢印をクリックし、検索欄に”cur”を打ち込んで「Float from Curve」を追加します。
追加したFroat form Curveに対し、時間0・値1の点(グラフに2点ある▲の左側)を右クリックします。
3次補間-自動接線を有効化します。
さらに、「Scale Curve」の値を5ほどに設定します。(この数値は好みで変更して構いません)
Sprite
「Fountain」のパーティクルの更新の右側にある+ボタンを押下します。
検索欄に”sprite”を打ち込んで「ScaleSpriteSize」を追加します。
追加したグラフを以下のように変更します。
- 右クリックして、頂点を1つ追加。(▲が3点になるはず)
- 左の点のキーデータを0.0と0.5に設定。
- 中の点のキーデータを0.5と1.0に設定。
- 右の点のキーデータを1.0と0.0に設定。
左図のように”へ”の字型にします。
左点と中点に対して、右クリックして、3次補間-自動接線を有効化します。
Curl Noise Forceの追加2
「Fountain」のパーティクルのスポーンの右側の+ボタンを押下します。
検索欄に「curl」と打ち込み、「Curl Noise Force」を再度追加します。
追加した方のCurl Noise Forceを、Scale Colorの下になるように順番を変更します。
ドラッグアンドドロップで移動可能です。
Noise Strength欄の右側にある下向き矢印をクリックし、検索欄に”cur”を打ち込んで「Float from Curve」を追加します。
左点を0.0と0.0に、右点を1.0と1.0に設定します。
さらに、3次補間-自動接線を有効化します。
Scale Curveに500を、Noise Frequencyに200を設定します。
さらに、Pan Noise Fieldを有効化してXYZ全てに2を設定します。
一旦完成!各種調整
ここまでで一旦エフェクトは完成です。
一度、完成したエフェクトをレベルに置いてみましょう。
ここからは、先述の各種設定を変更して、煙の大きさや色・揺らめき具合などを調整しましょう。
少し設定を変えるだけでも、かなり見栄えが変わることもあります。
細かく調整してみましょう!
【応用】いろいろな煙を作る
ここからは、先ほどの【ベース】から値を変更した例をいくつかご紹介します。
狼煙(のろし)っぽくする
狼煙のような、遠くからでも分かる煙を作ってみます。
方法はいくつかありますが、Initialize Particleの「Lifetime」を50などの大きな数値にすると良いでしょう。
煙のサイズ自体を大きくする方法などもありますが、狼煙のように直線に近く、且つ上空に行くほど煙が風の影響を受けているように見えるのは、Lifetimeの調整が一番近いと思います。
もっと根本から揺らす
もっと地面に近い根本から煙を揺れるように見せます。
煙が細いと、特に根元に近い部分の動きが小さく見えます。
そのため、煙自体を太くしてみます。
Initialize ParticleのUniform Sprite Sizeを20程度に設定します。
さらに、「Fountain」の「Noise Strength」を20などもっと大きい値にすると、さらに根元から動いて見えます。
煙の太さを変える
煙の太さを変える方法はいくつかありますが、変える設定によって雰囲気が変わります。
「Fountain」の「ScaleSpriteSize」にある「Uniform Curve Scale」を10に変えてみます。
全体的にボヤっと太めになるため、薄めにエフェクトが掛かりっ放しになり、煙の揺れによる隙間があまり無く、向こう側がほぼ見えないことが特徴です。
「Fountain」の「Initialize Particle」の「Uniform Sprite Size」を20に変えてみます。
煙が揺れてもエフェクトがしっかり無くなる瞬間があるため、向こう側が見えます。
風の影響を強める
風の影響を強めて、早い段階で揺れるようにします。
Dragの「Scale Curve」の値を20に設定した例が上図です。
最後に
UEのナイアガラエフェクトは有能で、工夫次第でいろいろなエフェクトを作成可能です。
だからこそ、別の開発者と差をつける近道にもなります。
自分なりのアレンジを加えて、ぜひ実装してみましょう!