Niagara でスプライト パーティクル エフェクトを作成する方法

このドキュメントでは、Niagara を使用してスタティック メッシュ パーティクル エフェクトを作成する方法を説明します。

Choose your operating system:

Windows

macOS

Linux

前提トピック

このページは以下のトピックへの知識があることを前提にしています。まず以下のトピックの内容についてご確認をお願いします。

スプライトとは頻繁に使用されるビジュアル エフェクト (VFX) 技法の一つで、テクスチャおよびマテリアルを 2D カメラ方向平面にレンダリングします。以下のチュートリアルでは、スプライトと連携するよう Niagara エミッタを設定する方法を紹介します。Niagara エミッタを含む Niagara システムをレベル内に配置すると、そのエフェクトがレベル内で表示されるようになります。

前提条件:

このドキュメントでは Starter Content (スターター コンテンツ) に含まれる M_smoke_subUV マテリアルを使用します。このマテリアルまたは Starter Content をプロジェクトに追加していない場合は、先に進む前に追加してください。

プロジェクト設定

  1. 最初に、エフェクトのアセットを保存するためのフォルダをコンテンツ ブラウザで新たに作成します。トップ レベル (Content) を選択している状態で、 コンテンツ ブラウザ 内で右クリックして [New Folder (新規フォルダ)] を選択します。このフォルダに「 SpriteEffect 」などと名前を付けます。

    プロジェクトで複数の Niagara エフェクトを作成する場合は、「NiagaraFX」もしくは似たような名前のフォルダを作成し、スプライト エフェクト用にサブフォルダを作成することをお勧めします。

  2. このエフェクトを作成する前に、エミッタのスプライトに使用するマテリアルを作成するか指定する必要があります。この例では Starter Content のマテリアルを使用します。このマテリアルを指定もしくは移動しなくても取り込むことは可能ですが、元のマテリアルのコピーを作成し、エフェクト用のフォルダまたは他の既存のマテリアル用フォルダのいずれかに保存するほうが便利な場合もあります。これについては、以下の手順に従ってください。

    1. コンテンツ ブラウザの検索バーに「 m_smoke 」と入力します。検索結果に M_smoke_subuv マテリアルが表示されます。

    2. コピーを別のフォルダに保存するには、目的のマテリアルをクリックして希望のフォルダにドラッグし、ポップアップ メニューの [Move Here (ここに移動)] または [Copy Here (ここにコピー)] のいずれかを選択します。 移動 すると、前の場所にあった元のマテリアルが削除されて新しい場所に移動されます。 コピー すると、新しい場所にマテリアルのコピーが作成されます。元のマテリアルは元の場所に維持されます。

    3. スプライト用に独自のマテリアルを作成する際は、「 マテリアル入門 」ページや、ドキュメントの「 Materials (マテリアル) 」セクションに含まれる他のページを参照してください。

システムとエミッタを作成する

次に Niagara システムを作成し、その中にエミッタを作成します。このシステムは、1 つ以上のエミッタを置くことができるコンテナです。エミッタは生成された新規パーティクルのソースです。

  1. まず、コンテンツ ブラウザ内で右クリックし、表示されるメニューから [FX] > [Niagara System] を選択して Niagara System を作成します。Niagara System ウィザードが起動します。[Niagara System] ウィザードが開きます。

    画像を画像をクリックしてフルサイズ表示。

  2. [New system from selected emitters (選択したエミッタに基づく新規システム)] を選択します。 [Next] をクリックします。

    画像をクリックしてフルサイズ表示。

  3. [Template (テンプレート)] [Simple Sprite Burst] を選択します。 プラス記号 ( + ) のアイコンをクリックして、システムに追加するエミッタのリストに目的のエミッタを追加します。次に [Finish] をクリックします。

    画像をクリックしてフルサイズ表示。

  4. 新しいシステムに「 SmokeSystem 」と名前を付けます。これをダブルクリックして Niagara エディタで開きます。

    Name System

  5. 新しいシステム内のエミッタ インスタンスには、デフォルトで「 SimpleSpriteBurst 」という名前が付けられていますが、これは変更することができます。[System Overview (システム概要)] でエミッタ インスタンスの名前をクリックすると、このフィールドが編集可能になります。エミッタの名前を「 FX_Smoke 」に変更します。

    画像をクリックしてフルサイズ表示。

レンダリング設定を変更する

  1. このドキュメントでは、Emitter モジュール グループについて、スタック内での表示順に従って説明していきます。ただし、マテリアルは [Renderer (レンダラ)] で設定するまで、プレビューやレベル内には表示されないので、まず [System Overview (システム概要)] にある [Sprite Renderer (スプライト レンダラ)] を選択して、 [Selection (選択項目)] パネルで開きます。

    画像をクリックしてフルサイズ表示。

  2. ここでエフェクト用のマテリアルを選択します。SubUV マテリアルなので、画像グリッド内の画像数をレンダラに伝える必要があります。以下のプロパティを次の図に示す値に設定します。

    画像をクリックしてフルサイズ表示。

    プロパティ名

    Material

    M_smoke_subUV

    Sub Image Size

    X:8.0, Y:8.0

    Sub UV Blending Enabled

    チェックを入れる

  3. SmokeSystem をレベル内にドラッグします。

    パーティクル エフェクトを作成する際は、システムをレベル内にドラッグすることをお勧めします。こうすることで、すべての変更をコンテキスト内で確認して編集することができます。システムに加える変更は、レベル内にあるシステムのインスタンスにも自動的に適用されます。

Emitter Update グループの設定を編集する

まず Emitter Update グループでモジュールを編集します。挙動には、エミッタに適用されるものと各フレームを更新するものがあります。

  1. [System Overview (システム概要)] にある [Emitter Update (エミッタ更新)] グループをクリックして、 [Selection (選択)] パネルで開きます。

    画像をクリックしてフルサイズ表示。

  2. スモーク (煙) のバーストではなくスモークの定数列を作成します。 ゴミ箱 のアイコンをクリックして Spawn Burst Instantaneous モジュールを削除します。

    画像をクリックしてフルサイズ表示。

  3. プラス記号 アイコン ( + ) をクリックして [Spawning (スポーン)] > [Spawn Rate] を選択することで、 Spawn Rate モジュールを Emitter Update に追加します。

    画像をクリックしてフルサイズ表示。

  4. Spawn Rate モジュールの [Spawn Rate (スポーン率)] の値を「 50 」に設定します。これによって、ちょうどいいサイズの膨らんだ煙の形状が作成されます。エフェクト作成のベースとして適した設定です。

    画像をクリックしてフルサイズ表示。

  5. 現時点では、エフェクトの作成時には、シミュレーションを無限ループするよう設定しておくことをお勧めします。こうすることで、エフェクトに影響を及ぼす設定を評価する時間をより多く確保できます。 Emitter State モジュールで、 [Life Cycle Mode (ライフ サイクル モード)] のドロップダウンをクリックして [Self (自身)] を選択します。次に [Loop Behavior (ループの挙動)] のドロップダウンをクリックし、 [Infinite (無限)] を選択します。

    画像をクリックしてフルサイズ表示。

Particle Spawn グループの設定

次に、 Particle Spawn グループのモジュールを編集します。これらの挙動は、初回スポーン時にパーティクルに適用されます。

  1. [System Overview] [Particle Spawn] をクリックして [Selection] パネルで開きます。

    画像をクリックしてフルサイズ表示。

  2. Initialize Particle モジュールを展開します。このモジュールでは、関連するいくつかのパラメータを 1 つのモジュールにまとめてスタック内を整理します。 [Point Attributes (ポイント属性)] にある Lifetime パラメータを見つけます。

    画像をクリックしてフルサイズ表示。

  3. Lifetime パラメータでは、パーティクルが消滅するまでの表示期間を指定します。現実味のある煙を生み出すために、[Lifetime] パラメータには多少のランダム性を持たせることをお勧めします。 [Lifetime] の横にあるドロップダウン矢印をクリックし、 [Dynamic Inputs (動的入力)] > [Random Ranged Float] を選択します。[Minimum] と [Maximum] フィールドが追加されます。

    画像をクリックしてフルサイズ表示。

  4. [Lifetime] の [Minimum] および [Maximum] の値を以下のとおりに設定します。

    画像をクリックしてフルサイズ表示。

    プロパティ名

    Minimum

    2.0

    Maximum

    3.0

  5. 次は、ランダム性を加えるために別の動的入力を追加します。 [Value (値)] の横にあるドロップダウン矢印をクリックし、検索バーに「 random 」と入力します。 Random Range Float を選択します。[Value] に [Minimum] [Maximum] フィールドが追加されます。それらの値を以下のとおりに設定します。

    画像をクリックしてフルサイズ表示。

  6. [Sprite Size] の [Minimum] および [Maximum] の値を以下のとおりに設定します。

    画像をクリックしてフルサイズ表示。

    プロパティ名

    Minimum

    75.0

    Maximum

    200.0

  7. これで煙のサイズが大きくなり、より現実に近いものになりました。次に回転を加えて、パーティクルの形状にバリエーションを与えます。さらに、回転にもランダム性を加えてバリエーションを増やします。 Sprite Rotation Mode の横のドロップダウンを Direct Normalized Angle (0-1) に設定します。 [Sprite Rotation Angle] の横にある下向き矢印をクリックして、 [Dynamic Inputs] > [Normalized Angle to Degrees] を選択します。 [Normalized Angle (正規化された角度)] フィールドが追加されます。つまり、回転角度は度ではなく 0 と 1 の間の数字として変換されます。

  8. 次に [Sprite Rotation Angle] の横にあるドロップダウン矢印をクリックして [Dynamic Inputs] > [Random Ranged Float] を選択します。[Normalized Angle] に [Minimum] [Maximum] フィールドが追加されます。それらの値を以下のとおりに設定します。パーティクルのスポーン時に、パーティクルがランダムな角度で回転します。

  9. [Minimum] および [Maximum] の値を以下のとおりに設定します。

    プロパティ名

    Minimum

    0.25

    Maximum

    0.5

  10. 煙のサイズはちょうど良くなりましたが、現時点では同じ場所で回転するのみです。煙のパーティクルがスポーンされたときにすぐに拡散するように、初期速度を加えます。 プラス記号 ( + ) のアイコンをクリックして [Velocity (速度)] > [Add Velocity (速度の追加)] を選択し、 Add Velocity モジュールを [Particle Spawn] グループに追加します。

    画像をクリックしてフルサイズ表示。

  11. [Velocity] の横にあるドロップダウン矢印をクリックして [Dynamic Inputs] > [Random Ranged Vector] を選択します。[Velocity] に [Minimum] [Maximum] フィールドが追加されます。繰り返しになりますが、多少のランダム性を加えることで、エフェクトのバリエーションが増えて、自然な感じも高まります。

    画像をクリックしてフルサイズ表示。

  12. [Velocity] の [Minimum] および [Maximum] の値を以下のとおりに設定します。

    画像をクリックしてフルサイズ表示。

    プロパティ名

    Minimum

    X:0, Y:0, Z:50

    Maximum

    X:1, Y:1, Z:200

  13. Sphere Location (球体の場所) では、スプライトがスポーンする場所の形状と原点を制御します。 Sphere Location モジュールを追加することで、スプライトを球体形状でスポーンすることができ、半径を指定してそのサイズも設定できるようになります。 プラス記号 ( + ) のアイコンをクリックして [Location (場所)] > [Sphere Location] を選択し、 Sphere Location モジュールを [Particle Spawn] セクションに追加します。

    画像をクリックしてフルサイズ表示。

  14. Sphere Location は、スプライトがスポーンする場所の形状と原点を制御します。Sphere Location モジュールを追加することで、スプライトは球体形状でスポーンすることができ、半径を指定することでその球体形状のサイズも設定できます。 [Sphere Radius (球体の半径)] の値を「 64 」に設定します。 [Sphere Distribution] を必ず [Random] に設定してください。

    画像をクリックしてフルサイズ表示。

  15. このスモーク エフェクトに使用するスプライト マテリアルは、まとめて並べられてアニメートされる複数の画像がついているスプライト シートを使用します。これを含まない場合、レンダラはシートの最初のスプライトのみを使用します。この問題を解決するために SubUV Animation モジュールを追加することができます。Particle Spawn の プラス記号 ( + ) をクリックして、 [Sub UV] > [SubUV Animation] を選択します。

    画像をクリックしてフルサイズ表示。

  16. Sub UV Animation モジュールで、 [SubUV Animation Mode] のドロップダウンをクリックして [Linear] を選択します。 [Number of Frames] タイプは 64 です。スプライト シートの画像は 8x8 グリッドなので、画像の合計数は 64 です。

    画像をクリックしてフルサイズ表示。

Particle Update グループの設定

次に Particle Update グループのモジュールを編集します。これらの挙動はパーティクルに適用され、それぞれのフレームを更新します。

  1. [System Overview] [Particle Update] をクリックして [Selection] パネルで開きます。

    画像をクリックしてフルサイズ表示。

  2. Particle Spawn に追加したベロシティにより、パーティクルが最初にスポーンされた際に動きが加わります。次は時間の経過に伴う動きを加えて、 煙が立ち上るようにします。 Particle Update プラス記号 ( + ) のアイコンをクリックして [Forces (フォース)] > [Acceleration Force (加速力)] を選択し、 Acceleration Force モジュールを追加します。

    画像をクリックしてフルサイズ表示。

  3. Niagara では新しいモジュールをグループのスタックの下部に追加するため、「モジュールの依存関係が解決していません」というエラーが発生します。これは、Acceleration Force モジュールが Solve Forces and Velocity モジュールの後に配置されたことが原因のエラーです。 [Fix Issue (問題を修正)] ボタンをクリックしてモジュールを移動します。

    画像をクリックしてフルサイズ表示。

  4. [X] および [Y] の値をそれぞれ「 0 」に、 [Z] の値を「 500 」のままにしておきます。これにより、時間の経過とともに煙がまっすぐ上に立ち上るようになります。希望するスモーク エフェクトのタイプに応じてこの設定を調整するか、このモジュールを削除できます。

    画像をクリックしてフルサイズ表示。

  5. スモーク エミッタをシステム内で再使用できるようにするには、スモーク エミッタを別のアセットとして保存します。 歯車 のアイコンをクリックして [Emitter Settings (エミッタの設定)] メニューを開き、 [Create Asset From This (これからアセットを作成)] を選択します。これにより、独立した Niagara エミッタ アセットが作成されます。

    画像をクリックしてフルサイズ表示。

  6. 次に [Save (保存)] ボタンをクリックして、変更を適用して保存します。

    Save System

最終結果

これでスプライトを使ってシンプルなスモーク エフェクトを作成しました。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル