パーティクルにパーティクル周辺のワールドを照らす機能を追加すると、プロジェクトのビジュアル エフェクトのリアルさが一段と高まります。このチュートリアルでは、パーティクルとライトが同時にスポーンされるように、Niagara エミッタを設定する方法を説明します。このチュートリアルでは、最終的に以下のようなエフェクトを作成します。

前提条件:このチュートリアルでは Starter Content (スターター コンテンツ) に含まれる「M_Radial_Gradient」マテリアルを使用します。そのため、Starter Content を含む 新規プロジェクトを作成する か、Starter Content を含めて作成されているプロジェクトを使用する必要があります。
システムとエミッタを作成する
Niagara エミッタとシステムは独立しています。現時点では、既存のエミッタまたはエミッタ テンプレートからシステムを作成するワークフローを推奨します。
- まず、コンテンツ ブラウザ内で右クリックし、表示されるメニューから [FX] > [Niagara System] を選択して Niagara System を作成します。Niagara System ウィザードが起動します。Niagara Emitter ウィザードが起動します。
画像をクリックするとフルサイズで表示されます。
- [New system from selected emitters (選択したエミッタに基づく新しいシステム)] を選択して [Next (次へ)] をクリックします。
画像をクリックするとフルサイズで表示されます。
- [Templates (テンプレート)] から [Fountain] を選択します。
画像をクリックするとフルサイズで表示されます。
- プラス記号 (+) のアイコンをクリックして、システムに追加するエミッタのリストに目的のエミッタを追加して、[Finish] をクリックします。
画像をクリックするとフルサイズで表示されます。
-
新しいシステムに「ParticleLight」と名前を付けます。これをダブルクリックして Niagara エディタで開きます。
- 新しいシステム内のエミッタ インスタンスには、デフォルトで「Fountain」という名前が付けられていますが、これは変更することができます。[System Overview (システム概要)] でエミッタ インスタンスの名前をクリックすると、このフィールドが編集可能になります。エミッタの名前を「FX_ParticleLight」に変更します。
画像をクリックするとフルサイズで表示されます。
- ParticleLight システムをレベルにドラッグします。
パーティクル エフェクトを作成する際は、システムをレベル内にドラッグすることをお勧めします。こうすることで、すべての変更をコンテキスト内で確認して編集することができます。システムに加える変更は、レベル内にあるシステムのインスタンスにも自動的に適用されます。
Emitter Update グループの設定を編集する
まず Emitter Update グループでモジュールを編集します。挙動には、エミッタに適用されるものと各フレームを更新するものがあります。
- [System Overview (システム概要)] にある [Emitter Update (エミッタ更新)] グループをクリックして、[Selection (選択)] パネルで開きます。
画像をクリックするとフルサイズで表示されます。
- [Emitter State (エミッタの状態)] モジュールを展開します。前に Fountain テンプレートを使用したため、[Life Cycle Mode (ライフ サイクル モード)] が [Self (自身)] に設定されています。ドロップダウンをクリックして、[Life Cycle Mode] を [System (システム)] に設定します。こうすることでシステムによってライフサイクルの設定が計算されるようになり、通常はパフォーマンスが最適化されます。
画像をクリックするとフルサイズで表示されます。
- Spawn Rate モジュールでは、エミッタが有効な間、パーティクルのストリームを継続して作成します。このモジュールは Fountain テンプレートにすでに含まれています。[Spawn Rate] を「500」に設定します。
画像をクリックするとフルサイズで表示されます。
Particle Spawn グループの設定を編集する
次に、Particle Spawn グループのモジュールを編集します。これらの挙動は、初回スポーン時にパーティクルに適用されます。
- [System Overview] で [Particle Spawn] をクリックして [Selection] パネルで開きます。
画像をクリックするとフルサイズで表示されます。
- Initialize Particle モジュールを展開します。このモジュールでは、関連するいくつかのパラメータを 1 つのモジュールにまとめてスタック内を整理します。Point Attributes で Lifetime Mode ドロップダウンから Random を設定します。このパラメータでは、パーティクルが消滅するまでの表示期間を指定します。このエフェクトでは Uniform Ranged Float と呼ばれる動的入力を使用して、パーティクルの表示期間をランダム化します。Fountain テンプレート内の Lifetime パラメータにはすでに Random Ranged Float が適用されています。[Minimum (最小値)] および [Maximum (最大値)] を以下の値に設定します。
画像をクリックするとフルサイズで表示されます。
設定 値 Lifetime Mode Random Minimum 1.75 Maximum 2.5 - さらに [Point Attributes] において Color パラメータを確認します。ここで、パーティクルがスポーンする時の初期カラーを設定します。[RGB] フィールドを次の値に設定します。
Unreal Engine のカラーピッカーは、RGB カラー値を「0」から「1」の間の整数に正規化します。ただし、カラー値を「1」より大きく設定すると、エミッシブカラーになります。システムがレベルに設置されると、パーティクルはその色で輝きます。
画像をクリックするとフルサイズで表示されます。
設定 | 値 |
---|---|
Red | 0.1 |
Green | 0.3 |
Blue | 50 |
- [Sprite Attributes (スプライト属性)] で Sprite Size パラメータを確認します。Sprite Size Mode を調節して、噴水のパーティクルのサイズを多少ランダムにすることもできます。ドロップダウンをクリックして [Random Uniform] を選択します[Value] に [Minimum] と [Maximum] フィールドが追加されます。[Sprite Size] の **[Minimum] 値と [Maximum] 値を以下に設定します。
画像をクリックするとフルサイズで表示されます。
設定 値 Sprite Size Mode Random Uniform Minimum 2.5 Maximum 8.0 - Sphere Location は、スプライトがスポーンする場所の形状と原点を制御します。半径を指定することでその球体形状のサイズも設定できます。Sphere Location モジュールは Fountain テンプレートにすでに含まれています。[Sphere Radius (球体の半径)] の値を「15」に設定します。
画像をクリックするとフルサイズで表示されます。
- 「Fountain」テンプレートには、 Add Velocity in Cone モジュールも含まれています。このモジュールを使用して、パーティクルがスポーンする時の動きを追加します。コーンの位置がパーティクルのスポーン位置です。[X]、[Y]、および [Z] の値を設定してコーンが展開する方向を指定することができます。Velocity Strength には Random Ranged Float と呼ばれる動的入力が適用されます。[Minimum (最小値)] および [Maximum (最大値)] を以下の値に設定します。他の設定はデフォルト値のままにしておきます。
画像をクリックするとフルサイズで表示されます。
設定 値 Minimum 300 Maximum 600
Particle Update グループの設定を編集する
次に Particle Update グループのモジュールを編集します。これらの挙動はエミッタのパーティクルに適用され、それぞれのフレームを更新します。
- [System Overview] の [Particle Update] をクリックして [Selection] パネルで開きます。
画像をクリックするとフルサイズで表示されます。
-
Gravity Force モジュールは、オブジェクトへの重力の影響をシミュレートします。Drag モジュールでは抗力をパーティクルに適用して、パーティクルの動きを遅くします。このエフェクトは [Gravity Force] および [Drag] のデフォルト設定で十分機能するため、そのまま使用することができます。
- コリジョンを設定しないと、エフェクトのパーティクルはフロアやレベルにある他の固定オブジェクトをすり抜けてしまいます。Collision モジュールを追加するには、Particle Update の **プラス 記号 (+) アイコンをクリックして [Forces (フォース)] > [Drag (抗力)] を選択します。
画像をクリックするとフルサイズで表示されます。
- Collision モジュールはスタックの一番下、Solve Forces and Velocity モジュールの後に挿入されますが、このことが原因となってエラーが発生します。[Fix Issue (問題を修正)] をクリックして Collision モジュールを移動させ、エラーを解決します。
画像をクリックするとフルサイズで表示されます。
- Collision モジュールのデフォルト設定はそのままにしておきます。
ライト レンダラを追加する
次に、噴水エフェクトにライト レンダラを追加します。
- System Overview で [Renderer] グループをクリックして [Selection (選択)] パネルで開きます。
画像をクリックするとフルサイズで表示されます。
- [Render] の プラス記号 (+) のアイコンをクリックして、[Light Renderer] を選択します。
画像をクリックするとフルサイズで表示されます。
- [Radius Scale] の値を「5.0」に設定します。これにより、パーティクルのスポーン位置からライトが広がる距離を指定します。
画像をクリックするとフルサイズで表示されます。
- Color Add (色の追加) の値により、エフェクトによって放出されるライトの色を変更することができます。これらの値は X、Y、Z にラベル付けされていますが、それらは RGB 値に対応しています。X は Red (赤色)、Y は Green (緑色)、Z は Blue (青色) です。ライトの色をパーティクルの色と一致させるため、値を次のように設定します。
設定 値 Red 0 Green 0 Blue 15
最終結果
おつかれさまでした!パーティクル ライトを含み、シーンにライトを放射するエフェクトが作成できました。
