エフェクト

煙(のろし)の作り方

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

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」設定
「Fountain」の「SimTarget」設定
Emitter Stateの編集

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

煙エフェクトに必要な「Fountain」の「LifeCycleMode」設定
「Fountain」の「LifeCycleMode」設定
Spawn Rateの編集(煙の量の設定)

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

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

Spawn Rateは、1秒間に生み出すエフェクトの個数(今回で言えば煙の量)の設定です。

ポイント

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

既存機能の削除
削除対象
削除対象

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

Curl Noise Forceの追加1(煙の揺らめき具合を設定)

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

Curlを追加
Curlを追加

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

問題の修正
問題の修正

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

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

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

ポイント

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

Gravity Forceの編集

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

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

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

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

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

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

Initialize Particleの編集(煙の高さ・太さ・色の設定)

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

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

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

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

Spriteの編集
Spriteの追加
Spriteの追加

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

Sprite Key設定
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を追加
Curlを追加

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

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

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

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

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

Pan Noise Field設定
Pan Noise Field設定
項目設定値
Scale Curve500
Noise Frequency200
Pan Noise Field(XYZ全て)2

ポイント

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

ベースが完成!

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

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

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

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

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

狼煙(のろし)っぽく背の高い煙にする

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

狼煙のような煙
狼煙のような煙

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

  • この記事を書いた人
  • 最新記事
クルエイチ

クルエイチ

NextClueLabの代表・管理者。 (Clue + 英知・叡智・叡知)でクルエイチ。 平日は会社員。 土日は副業でWeb・スマホアプリの開発やブロガーをこなす。 祝日は休み、UE5で3DCG動画制作などをして過ごす。

人気記事

Unreal Engine(UE)で、フリーフォントや購入したフォントを使ってみよう!とてもシンプルなテクニックですが、他のUE製作者と簡単に差をつけることができます! 1

フリーフォントや購入したフォントを使ってみよう!とてもシンプルなテクニックですが、他のUE製作者と簡単に差をつけることができます!

Windows用にパッケージ化するとエラーが出る場合があります。当記事の対処方法で解決する場合があるので参考にしてみてください。 2

Windows用にパッケージ化するとエラーが出る場合があります。当記事の対処方法で解決する場合があるので参考にしてみてください。

Unreal Engine(UE)で鏡のマテリアルを作ってみよう!壁や床、箱などにも設定可能で自由度の高い鏡マテリアルの作り方を、初心者向けに解説します! 3

鏡のマテリアルを作ってみよう!壁や床、箱などにも設定可能で自由度の高い鏡マテリアルの作り方を、初心者向けに解説します!

-エフェクト
-