広告 エフェクト関連テク

煙(のろし)の作り方

Unreal Engine(UE)で煙のエフェクトを作ってみよう!
ちょっとした応用も含めて、初心者向けに解説します!

煙(狼煙)の例
完成イメージ

動作環境

当記事の動作環境は以下の通りです。
バージョンや環境によっては、正常に動作しない可能性があります。

ポイント

OS:Windows11 (Ver 22H2)

GPU:NVIDIA GeForce RTX 3060 Ti (Ver 3.27.0.112)

UE:UnrealEngine5 (Ver 5.3.0)

また、プロジェクトはサードパーソンプロジェクトの使用を前提とします。

【ベース】煙エフェクトの作成方法

Niagaraエフェクトの作成

まずはNiagaraエフェクト(以下、ナイアガラ)を作成します。

コンテンツブラウザにて、何もない部分を右クリックして、「Niagara システム」をクリックします。
「選択したエミッタに基づく新しいシステム」を選択します。
「Fountain」を選んだ状態で+ボタンを押下して、終了します。

Niagaraエフェクトの作成ダイアログ
Niagaraエフェクトの作成ダイアログ

※上図では「Empty」を選択していますが、「Fountain」を選択してください。

ナイアガラを追加後、その作成したナイアガラを開きます。

エフェクトの編集

ここからエフェクトを編集していきます。
ナイアガラは細かい設定が多いので、漏らさず確実に対応してください!

プロパティの編集

「Fountain」のプロパティを選択します。
SimTarget欄に「GPUCompute Sim」を設定します。
また、Local Space欄がTrue(チェック)状態であることを確認してください。(もしFalseならTrueに変更)

煙作成時に必要な「Fountain」の「SimTarget」設定

Emitter Stateの編集

「Fountain」のEmitter Steteを選択します。
Life Cycle Mode欄に「System」を設定します。

煙エフェクトに必要な「Fountain」の「LifeCycleMode」設定

Spawn Rateの編集

「Fountain」のSpawn Rateを選択します。
Spawn Rate欄に任意の値を設定します。

Spawn Rateは、1秒間に生み出すエフェクトの個数の設定です。
煙の量を調整します。

ポイント

一旦エフェクトを作成して、最後にこの値を微調整します。
現段階では2000~4000くらいの、やや高めな数値を適当に入れてください。

煙作成時に必要な「Fountain」の「SpawnRate」設定

既存機能の削除

削除対象

「Fountain」のパーティクルのスポーンから「Shape Location」と「Add Velocity」を選択します。
この2つを削除します。(キーボートのDeleteキーでOK!)

Curl Noise Forceの追加1

「Fountain」のパーティクルのスポーンの右側の+ボタンを押下します。
検索欄に「curl」と打ち込み、「Curl Noise Force」を選択します。

Curlを追加

環境によっては、問題が発生することがあります。その場合は、問題を修正してください。
(大概は”問題を修正”ボタンを押下するだけで解決します)

問題の修正

「Fountain」のCurl Noise Forceを選択します。
「Noise Strength」と「Pan Noise Field」に適当な値を設定します。

煙作成時に必要な「Fountain」の「CurlNoise」設定

これらの設定は煙の揺らめき度を設定します。
煙の揺れが多い/少ないを好みで変更してください。

ポイント

一旦エフェクトを作成して、最後にこの値を微調整します。
現段階では「Noise Strength」には15、「Pan Noise Field」には0.5を入れておいてください。

Gravity Forceの編集

「Fountain」のGravity Forceを選択します。
Gravity欄の右側にある下向き矢印をクリックし、検索欄に”Make”を打ち込んで「Make Vector」を追加します。

煙作成時に必要な「Fountain」の「Vector」を追加

追加したMakeVectorのZ軸に対し、「Froat form Curve」を追加します。

煙作成時に必要な「Fountain」の「FloatCurve」を追加
煙作成時に必要な「Fountain」の「FloatCurve」を追加

追加したFroat form Curveに対し、時間0・値1の点(グラフに2点ある▲の左側)を右クリックします。
3次補間-自動接線を有効化します。

さらに、「Scale Curve」の値を200ほどに設定します。(この数値は好みで変更して構いません)

Initialize Particleの編集

「Fountain」の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」を追加します。

Curlを追加
煙作成時に必要な「Fountain」のDragに「FloatCurve」を追加

追加したFroat form Curveに対し、時間0・値1の点(グラフに2点ある▲の左側)を右クリックします。
3次補間-自動接線を有効化します。

さらに、「Scale Curve」の値を5ほどに設定します。(この数値は好みで変更して構いません)

Sprite

「Fountain」のパーティクルの更新の右側にある+ボタンを押下します。
検索欄に”sprite”を打ち込んで「ScaleSpriteSize」を追加します。

Spriteの追加

追加したグラフを以下のように変更します。

Sprite Key設定
  • 右クリックして、頂点を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を追加
Curlを追加

追加した方のCurl Noise Forceを、Scale Colorの下になるように順番を変更します。
ドラッグアンドドロップで移動可能です。

Noise Strength欄の右側にある下向き矢印をクリックし、検索欄に”cur”を打ち込んで「Float from Curve」を追加します。

StrengthにCurlを追加
3次補間-自動接線

左点を0.0と0.0に、右点を1.0と1.0に設定します。

さらに、3次補間-自動接線を有効化します。

Scale Curveに500を、Noise Frequencyに200を設定します。
さらに、Pan Noise Fieldを有効化してXYZ全てに2を設定します。

Pan Noise Field設定

ポイント

一旦エフェクトを作成して、最後にこの値を微調整します。

一旦完成!各種調整

ここまでで一旦エフェクトは完成です。
一度、完成したエフェクトをレベルに置いてみましょう。

煙(狼煙)の例
完成イメージ

ここからは、先述の各種設定を変更して、煙の大きさや色・揺らめき具合などを調整しましょう。
少し設定を変えるだけでも、かなり見栄えが変わることもあります。
細かく調整してみましょう!

【応用】いろいろな煙を作る

ここからは、先ほどの【ベース】から値を変更した例をいくつかご紹介します。

狼煙(のろし)っぽくする

狼煙のような、遠くからでも分かる煙を作ってみます。

狼煙のような煙

方法はいくつかありますが、Initialize Particleの「Lifetime」を50などの大きな数値にすると良いでしょう。

煙のサイズ自体を大きくする方法などもありますが、狼煙のように直線に近く、且つ上空に行くほど煙が風の影響を受けているように見えるのは、Lifetimeの調整が一番近いと思います。

もっと根本から揺らす

もっと地面に近い根本から煙を揺れるように見せます。

根元から揺れる煙
根元から揺れる煙の例

煙が細いと、特に根元に近い部分の動きが小さく見えます。
そのため、煙自体を太くしてみます。
Initialize ParticleのUniform Sprite Sizeを20程度に設定します。

さらに、「Fountain」の「Noise Strength」を20などもっと大きい値にすると、さらに根元から動いて見えます。

煙の太さを変える

煙の太さを変える方法はいくつかありますが、変える設定によって雰囲気が変わります。

「ScaleSpriteSize」にある「Uniform Curve Scale」を変えた例
「ScaleSpriteSize」にある「Uniform Curve Scale」を変えた例

「Fountain」の「ScaleSpriteSize」にある「Uniform Curve Scale」を10に変えてみます。
全体的にボヤっと太めになるため、薄めにエフェクトが掛かりっ放しになり、煙の揺れによる隙間があまり無く、向こう側がほぼ見えないことが特徴です。

「Initialize Particle」にある「Uniform Sprite Size」を替えた例
「Initialize Particle」にある「Uniform Sprite Size」を替えた例

「Fountain」の「Initialize Particle」の「Uniform Sprite Size」を20に変えてみます。
煙が揺れてもエフェクトがしっかり無くなる瞬間があるため、向こう側が見えます。

風の影響を強める

風の影響を強めた例
風の影響を強めた例

風の影響を強めて、早い段階で揺れるようにします。
Dragの「Scale Curve」の値を20に設定した例が上図です。

最後に

UEのナイアガラエフェクトは有能で、工夫次第でいろいろなエフェクトを作成可能です。
だからこそ、別の開発者と差をつける近道にもなります。
自分なりのアレンジを加えて、ぜひ実装してみましょう!

-エフェクト関連テク
-