花火では、まず花火のヘッドから作成します。このエミッタは他のエミッタを制御し、イベントを使用してイベント情報を他のエミッタに送信し、エフェクト フェーズで特定の時点で動作するように通知します。
-
空のエミッタで [Properties (プロパティ)] をクリックすると、[Details (詳細)] パネルに空のエミッタのプロパティが表示されます。
-
[Requires Persistent IDs (永続的な ID が必要)] を有効にします。この例では、必要な ID によって、他のエミッタがこのエミッタのパーティクルを確実に参照できるようになります。
エミッタの更新
Emitter Update (エミッタの更新) モジュールは、エミッタが CPU 上でティックするたびに実行されます。このグループのモジュールで、このフレームの、[Particle Spawn (パーティクルのスポーン)] パラメータまたは [Update (更新)] パラメータの値を計算する必要があります。モジュールは、スタックの上から下の順に実行されます。
これらの設定では、スポーンされたエフェクトの数とエフェクトのスポーン回数を決定します。
-
Emitter Update グループを選択し、[Details] パネルにある Emitter Update モジュールの設定を開きます。
-
Emitter Update の隣にある プラス記号 (+) のアイコンをクリックし、ドロップダウン メニューから [Spawn Burst Instantaneous (スポーン瞬間バースト)] を選択します。[Details] パネル内で [Spawn Burst Instantaneous (スポーン瞬間バースト)] 設定が自動的に開きます。
-
[Spawn Count (スポーン数)] 設定が「1」であることを確認します。これにより、エミッタは一度に 1 つのパーティクルをスポーンします。
パーティクルのスポーン
Particle Spawn (パーティクルのスポーン) モジュールは、パーティクルが作成されるごとに一度実行されます。このセクションに記載されているモジュールでは、各パーティクルの初期値を設定します。[Use Interpolated Spawning (補間スポーニングを使用する)] を設定すると、Particle Spawn ステージの代わりに、Spawn ステージで複数の Particle Spawn モジュールが更新されます。モジュールは、スタックの上から下の順に実行されます。
これらの設定は、パーティクルがスポーンされるときにどのように表示される必要があるかをエミッタに指示します。
-
[Particle Spawn (パーティクル スポーン)] > [Initialize Particle (パーティクルの初期化)] を選択して、[Details] パネルにある Initialize Particle (パーティクルの初期化) モジュールの設定を開きます。
-
[Lifetime Mode (Lifetime モード)] を [Random (ランダム)] に設定します。これにより、存続期間がパーティクルごとに異なるようになります。
-
[Lifetime Minimum (Lifetime 最小値)] 値を「2.0」に変更します。
-
[Lifetime Maximum (Lifetime 最大値)] 値を「3.0」に変更します。最小値と最大値では、パーティクルの存続期間のランダム値を決定します。
-
[Color Mode (カラー モード)] を [Direct Set (直接設定)] に設定し、ランダム スプライトのカラー パレットを選択します。
-
[Color (カラー)] の横にある空のボックスをダブルクリックして、カラー ピッカー を開きます。
-
カラー ホイールの中央にある円を動かして、ヘッドとトレイルの色を選択します。
-
[V] 値を「50.0」に設定します。これにより、エミッシブ値がパーティクルの色に追加されます。
-
[OK] をクリックして、スプライトの色を設定します。
-
[Sprite Attributes (スプライト属性)] まで下にスクロールします。
-
[Sprite Size Mode (スプライト サイズ モード)] を [Non-Uniform] に設定します。
-
[Sprite Size X (スプライト サイズ X)] 値を「3.0」に変更し、[Y] 値を「30.0」に変更します。これにより、均一ではない、縦長のパーティクルが作成されます。
-
Particle Spawn の隣の [+] アイコンをクリックして、ドロップダウン メニューから [Add Velocity (速度の追加)] を選択します。[Add Velocity (速度の追加)] により、パーティクルは上方向に移動します。
この設定を行うと、Particle Update モジュールに Solve Forces and Velocity モジュールを追加するまで、エラー メッセージが表示されます。エラー メッセージ内の [Fix Issue (問題を修正)] をクリックして、不足しているグループを Particle Update エミッタに自動的に追加し、エラー メッセージを解決します。
-
[Velocity Mode (速度モード)] を [In Cone (コーン形状)] に設定します。これにより、スプライトは逆三角形の形状で上に飛びます。
-
[Velocity Strength (速度強度)] フィールドの下向き矢印をクリックして、ドロップダウン メニューから [Random Range Float (ランダムな範囲内の浮動小数)] を選択します。これにより、パーティクルはランダムな速度で空中に飛び出します。
-
[Minimum (最小値)] 値を「2500」に変更し、[Maximum (最大値)] 値を「3000」に変更します。
-
[Distribution Along Cone Axis (コーン軸に沿って分布)] を有効にし、値を「0.2」に設定します。
-
[Cone Axis (コーン軸)] 値を次のように変更します。
-
X = 0
-
Y = 0
-
Z = 1
これにより、パーティクルはまっすぐ上方向に発射されます。
-
-
[Cone Angle (コーン角)] を「50.0」に設定して、花火が広がる範囲を調整します。
パーティクルの更新
Particle Update (パーティクルの更新) モジュールは、フレームごと、パーティクルごとに呼び出されます。このセクションに記載されているモジュールは、このフレームごとの新しい値を更新します。モジュールはスタックの上から下の順に実行されます。
これはエミッタにパーティクルの動作を指示します。
-
Particle Update の隣にある プラス記号 (+) のアイコンをクリックして、ドロップダウン メニューから [Drag (抗力)] を選択します。[Details] パネルで [Drag] 設定が開きます。
この設定により、エラー メッセージが表示されます。エラー メッセージ内の [Fix Issue (問題を修正)] をクリックして、不足しているグループを Particle Update エミッタに自動的に追加し、エラー メッセージを解決します。
-
[Drag] の隣にある下向き矢印をクリックして、ドロップダウン メニューから [Random Range Float] を選択します。これにより、パーティクルに抵抗が追加されます。抗力は、パーティクルが落下するときに、ランダムな量の抵抗と重力を追加します。
-
[Minimum (最小値)] 値を「0.8」に変更し、[Maximum (最大値)] 値を「1.2」に変更します。これにより、花火が空に向かって上昇する様子を模倣して、パーティクルがさらにゆっくりと空中を上昇します。
-
[Rotational Drag (回転抗力)] を無効にします。
-
Particle Update の隣の [+] アイコンをクリックして、[Events (イベント)] > [Generate Location Event (Location イベントを作成)] を選択します。これは、このエミッタのパーティクルに関するデータ (位置など) を送信するイベントを作成します。このイベントを後で別のエミッタで受信 (読み取り) します。
-
Particle Update の隣の [+] アイコンをクリックして、[Events (イベント)] > [Generate Death Event (Death イベントを生成)] を選択します。このエミッタの death イベントは、爆発エミッタにアクティベートするように通知します。
Location イベント は、イベントが実行されている場所であり、そのイベントに追従するように他のエミッタに通知します。
Death イベント は、パーティクルの経過時間が存続期間 (このチュートリアルの [Initialize Particle] で設定) を超えたときにトリガーされ、別のエミッタにそのエミッタ フェーズを開始するように通知します。
レンダラ
Niagara レンダラでは、Unreal Engine がスポーンされた各パーティクルをどのように表示するかを記述します。なお、これは視覚化する必要はありません。モジュールとは異なり、スタック内のレンダラの配置は、描画順序とは必ずしも関係ありません。
これにより、ゲーム内でスプライトがどのようにレンダリングされるかを定義します。
-
[Renderer (レンダラ)] > [Sprite Renderer (スプライト レンダラ)] を選択して、[Details] パネルで [Sprite Renderer] 設定を開きます。
-
[Material (マテリアル)] ドロップダウン メニューから作成した [Firework] マテリアルを選択します。
-
[Alignment (アライメント)] を [Velocity Aligned (速度を合わせる)] に設定します。[Velocity alignment (速度アライメント)] は、パーティクルを回転させてその速度ベクターの方向を向かせます。
このチュートリアルでは、パーティクルは Add Velocity (速度を追加) モジュールから発射されると上方向に「移動」しますが、Particle Update に [Gravity (重力)] を追加すると、そのスプライトは最終的に回転するようになり、落下するときに下向きに移動します。
花火のヘッドによって、花火の他のエミッタまたはパーツを操作する準備が完了しました。最後に、大爆発の前、ヘッドの後の トレイルを作成 します。