前提条件:この操作説明では、Niagara プラグインのコンテンツに含まれている DefaultRibbonMaterial を使用します。ただし、「バルーン エフェクトを作成する」のチュートリアルをすでに完了している場合は、そこで使用した M_Balloon マテリアルを使用することもできます。
Niagara では、リボンがビームとして使用されていることを示す特定のモジュールとともにリボン レンダラが使用されます。このガイドでは稲妻をシミュレートするビームの作成方法を習得します。
システムとエミッタを作成する
Niagara では、システムとエミッタは独立しています。現時点では、既存のエミッタまたはエミッタ テンプレートからシステムを作成するワークフローが推奨されています。
-
まず、コンテンツ ブラウザ内で右クリックし、[FX] > [Niagara System (Niagara システム)] を選択して Niagara システムを作成します。
画像をクリックするとフルサイズで表示されます。
-
[New system from selected emitters (選択したエミッタに基づく新規システム)] を選択します。[Next (次へ)] をクリックします。
画像をクリックするとフルサイズで表示されます。
-
[Templates (テンプレート)] で [Static Beam] を選択します。プラス記号 (+) をクリックして、このテンプレートを追加します。次に、[Finish (完了)] をクリックします。
画像をクリックするとフルサイズで表示されます。
-
新しいシステムに「BeamSystem」と名前を付けます。これをダブルクリックして Niagara エディタで開きます。
-
レベルに BeamSystem をドラッグします。
画像をクリックするとフルサイズで表示されます。
パーティクル エフェクトを作成する際は、システムをレベル内にドラッグすることをお勧めします。それにより、すべての変更をコンテキスト内で確認して編集することができます。システムに加える変更は、レベル内にあるシステムのインスタンスにも自動的に適用されます。
-
新しいシステム内のエミッタ インスタンスには、デフォルトで「StaticBeam」という名前が付けられていますが、この名前は変更することができます。[System Overview (システムの概要)] でエミッタ インスタンスの名前をクリックすると、このフィールドが編集可能になります。エミッタの名前を「FX_Beam」に変更します。
画像をクリックするとフルサイズで表示されます。
レンダリング設定を変更する
Render グループはスタック内の最後にありますが、エフェクトが想定どおりに表示されるように、いくつかの変更を行う必要があります。
-
[System Overview] にある [Render] をクリックすると、[Selection (選択項目)] パネルで開かれます。
画像をクリックするとフルサイズで表示されます。
このシステムのエミッタ テンプレートには、すでにリボン レンダラが含まれています。このガイドの後の手順で、そのリボンがビームとして使用されていることを表すために特定のモジュールを追加します。
-
このレンダラで使用するマテリアルは DefaultRibbonMaterial です。別のマテリアルを使用する場合は、ドロップダウンをクリックして目的のマテリアルを検索し、選択することができます。
-
[Ribbon Rendering (リボンのレンダリング)] セクションの設定の先までスクロールすると、[Tessellation (テッセレーション)] セクションがあります。そのセクションにある [Curve Tension (カーブ テンション)] を「0.5」に設定します。この設定はライトニング エフェクトのギザギザの度合いに影響を及ぼし、その値を増減するとエフェクトが変化します。
画像をクリックするとフルサイズで表示されます。
Emitter Update グループの設定を編集する
まず Emitter Update グループでモジュールを編集します。これらの動作はエミッタに適用され、それぞれのフレームを更新します。
-
[System Overview] にある Emitter Update グループをクリックすると、[Selection (選択)] パネルで開かれます。
画像をクリックするとフルサイズで表示されます。
-
「Static Beam」エミッタ テンプレートでは、[Life Cycle Mode (ライフ サイクル モード)] がデフォルトで [Self (自身)] に設定されています。これは、エミッタのライフサイクルとループ動作がシステムによって処理されるのではなく、直接設定されることを意味します。このエフェクトでは、値に浮動小数を追加することで [Loop Duration (ループ持続時間)] にランダム性を持たせることができます。[Loop Duration] のドロップダウン矢印をクリックして、[Dynamic Inputs (動的入力)] > [Random Ranged Float (ランダムな範囲内の浮動小数)] を選択します。そうすると、[Loop Duration] の下に [Minimum (最小値)] と [Maximum (最大値)] フィールドが追加されます。
画像をクリックするとフルサイズで表示されます。
-
[Loop Duration] の [Minimum] と [Maximum] の値を次のように設定します。
画像をクリックするとフルサイズで表示されます。
設定 値 Minimum 0.1 Maximum 0.2 -
このエフェクトでビームを使用していることを示す最初のモジュールは Beam Emitter Setup モジュールです。今回は「Static Beam」テンプレートを使用して作業を開始したので、このモジュールはすでに含まれています。[Beam Start (ビーム開始)] および [Beam End (ビーム終了)] の位置はデフォルトのままにしておきます。[Absolute Beam Start (ビーム絶対開始位置)] および [Absolute Beam End (ビーム絶対終了位置)] のボックスをチェックして有効にします。
ビームの開始位置は、シーン内の Niagara システムの位置によって決まります。終了位置は、[Beam End] に設定されている静的座標によって決まりますが、その値を直接編集することで変更できます。このチュートリアルの最後で、ビームの終了点をアクタにつなぐ方法について説明します。 画像をクリックするとフルサイズで表示されます。
-
エフェクトに円弧やカーブを追加するには、[Use Beam Tangents (ビーム接線を使用)] のボックスをチェックして有効にします。そうすると、[Beam Start Tangent (ビーム接線開始)] および [Beam End Tangent (ビーム接線終了)] 設定が表示されます。[Beam Start Tangent] の [Reset to Default (デフォルトにリセット)] アイコン (小さな黄色い矢印) をクリックすると、値が [Multiply Vector by Float] に変わります。
画像をクリックするとフルサイズで表示されます。
-
[Beam Start Tangent] の [Vector (ベクター)] と [Float (浮動小数)] の値を次のように設定します。
画像をクリックするとフルサイズで表示されます。
設定 値 Vector X:0、Y:0、Z:1 Float 0.5 -
[Beam End Tangent] の [Vector] と [Float] の値を次のように設定します。
画像をクリックするとフルサイズで表示されます。
設定 値 Vector X:0、Y:0、Z:1 Float 1 -
Spawn Burst Instantaneous モジュールで、[Spawn Count (スポーン数)] を「35」に設定します。
画像をクリックするとフルサイズで表示されます。
Particle Spawn グループの設定を編集する
次に、Particle Spawn グループのモジュールを編集します。これらはパーティクルが初めてスポーンされるときに適用される動作です。
-
[System Overview] にある Particle Spawn グループをクリックして [Selection (選択)] パネルで開きます。
画像をクリックするとフルサイズで表示されます。
-
Initialize Particle モジュールの *Lifetime パラメータを表示します。このパラメータでは、パーティクルが消滅するまでの表示期間を指定します。Lifetime を 0.2 に設定します。このように存続期間を短くすると、ビームがちらつくようになって、稲妻がよりリアルになります。
画像をクリックするとフルサイズで表示されます。
-
ビーム固有のモジュールの 2 つ目は Spawn Beam です。このモジュールでは何も設定する必要はありませんが、このモジュールが存在している必要があります。
-
3 つ目のビーム固有のモジュールは Beam Width です。この Beam Width は [Float from Curve] に設定されています。ルです。Beam Width は [Float from Curve (カーブに基づく浮動小数)] に設定されています。
画像をクリックするとフルサイズで表示されます。
-
カーブの図の下には、いくつかの追加設定があります。[Scale Curve] を「5」に設定します。
Particle Update グループの設定を編集する
次に Particle Update グループのモジュールを編集します。これらの挙動はエミッタのパーティクルに適用され、それぞれのフレームを更新します。
-
[System Overview] にある Particle Update グループをクリックすると、[Selection] パネルで開かれます。
画像をクリックするとフルサイズで表示されます。
-
Color モジュールで RGB の値を次のように設定します。
画像をクリックするとフルサイズで表示されます。
-
カーブを分断してビームを稲妻のようにギザギザで跳ねるようにするには、[Particle Update] の プラス記号 のアイコン (+) をクリックして [Location (位置)] > [Jitter Position (ジッターの位置)] を選択することで、Jitter Position モジュールを追加します。
画像をクリックするとフルサイズで表示されます。
-
Jitter Position モジュールを適切に機能させるには、Update Beam モジュールが必要です。Particle Update の プラス記号 (+) のアイコンをクリックして [Beam] > [Update Beam] を選択することで、Update Beam モジュールを追加します。[System Overview] で、Update Beam モジュールをスタックの Jitter Position モジュールの上の位置にドラッグします。
画像をクリックするとフルサイズで表示されます。
-
次に、Jitter Position モジュールに戻ります。[Jitter Amount] のデフォルト設定は「10」であり、[Jitter Delay] のデフォルト設定は「0.25」です。[Jitter Delay] の値を「0.1」に減らすと、ビームが角度のあるギザギザの動きで曲がり始めます。ただし、0.1 の値では、ギザギザのビームの下に元の円弧が表示されているので、理想的とはいえません。これを修正するには、[Jitter Delay] を負の数に設定する必要があります。[Jitter Delay] を「-.01」に設定します。[Jitter Amount] は「15」にします。
画像をクリックするとフルサイズで表示されます。
ビームの終了位置を調整する
ビームも開始位置と終了位置は、Emitter Update グループにある Beam Emitter Setup モジュールで設定できます。デフォルトではビームの終了位置は静的ワールド位置の値に設定されていて、その値を調整することで手動で編集できます。
しかし、終了位置をシーン内のアクタにリンクできると便利です。そうしておけば、ビームの終了位置を編集する際に、そのアクタを動かすだけで済みます。そうするための一つの方法は、ブループリントを使用することです。もう一つのもっと簡単な方法は、スクラッチ パッドを使用して動的入力を設定することです。
-
Beam Emitter Setup モジュールをクリックして、[Selection] パネルでそれを選択します。
画像をクリックするとフルサイズで表示されます。
-
[Beam End] の横にあるドロップダウン矢印をクリックし、「scratch」を検索して [New Dynamic Scratch Input] を選択します。
画像をクリックするとフルサイズで表示されます。
-
そうすると、基本設定を使用したスクラッチ パッドが開きます。そのスクラッチ パッドには、1 つの入力、何らかの値を取り込むために使用できる 1 つの Map Get ノード、および 1 つの出力があります。デフォルト入力は不要なので、デフォルト入力を右クリックして [Remove Pin (ピンを削除)] を選択します。
-
プラス記号 (+) をクリックして新しいピンを追加し、「actor」を検索して [New Actor Component Interface] を選択します。そうすると、Niagara オブジェクトを選択したときに レベル エディタ の [Details (詳細)] パネルにセクションが追加されて、リンク先とするオブジェクトを選択できるようになります。
画像をクリックするとフルサイズで表示されます。
-
New Actor Component Interface からピンを引き出してマウスの左ボタンを離し、Get Transform を選択します。そうすると、リンク先のオブジェクトの変換情報が表示されます。
画像をクリックするとフルサイズで表示されます。
-
Position を Output につなぎます。
画像をクリックするとフルサイズで表示されます。
-
Position ->Vector 3f ノードが自動的に追加されます。これは、大規模なワールド座標でベクターを適切な形式に変換するのに役立ちます。キャンバスを整理して、ノードが重ならないようにしておきます。
画像をクリックするとフルサイズで表示されます。
-
これでスクラッチが完成したので、変更内容が Niagara システムに反映されるように、[Apply (適用)] をクリックする必要があります。
画像をクリックするとフルサイズで表示されます。
-
Niagara エディタで、Beam Emitter Setup モジュールを選択します。今度は、[Beam End] にリンクされている New Actor Component Interface があります。ドロップダウン矢印をクリックして、[Make (作成)] > [Read from new User parameter (新しいユーザー パラメータから読み取る)] を選択します。そうすると、Niagara システムの外部から設定できる新しいユーザー パラメータが作成されます。
画像をクリックするとフルサイズで表示されます。
-
デフォルトでは、作成されるユーザー パラメータの名前は、オブジェクトの名前とパラメータの名前が組み合わされるので、かなり長い名前になります。その名前を変更する場合は、[Parameters (パラメータ)] パネルに移動します。
画像をクリックするとフルサイズで表示されます。
-
New Actor Component Interface_Beam End をダブルクリックして、短い名前 (例:「Beam_End」) に変更します。
画像をクリックするとフルサイズで表示されます。
-
Niagara システムを保存してからエディタを終了し、レベル エディタ に戻ります。以前にレベルにドラッグしたビーム システムが表示されているはずです。ビームの開始位置は、Niagara システムの開始点を動かすことで操作できるようになっていますが、終了点は固定されています。次に行うのは、終了点をシーン内のオブジェクトにアタッチすることです。
-
まず、終了点のリンク先となる基本球体を作成します。[Create (作成)] メニューで [Shapes (形状)] > [Sphere (球体)] を選択します。
画像をクリックするとフルサイズで表示されます。
-
アウトライナ で、作成した球体を選択してダブルクリックし、「Sphere_BeamEnd」という名前に変更します。
画像をクリックするとフルサイズで表示されます。
-
アウトライナ で、Niagara システム BeamSystem を選択します。[Details] パネルで、[Override Parameters (パラメータのオーバーライド)] まで下にスクロールします。そこに、スクラッチ モジュールを作成したときにセットアップした Beam_End ユーザー パラメータがあります。[Source Actor (ソース アクタ)] のドロップダウン メニューをクリックして、Sphere_BeamEnd を選択します。そうする代わりに、スポイト アイコンを使用して、レベル内にある任意のオブジェクトを選択することもできます。これで、そのオブジェクトを動かすと、ビーム終了位置がそれに連動するようになりました。
画像をクリックするとフルサイズで表示されます。
最終結果
おつかれさまでした!これで、稲妻をシミュレートするビーム エフェクトが作成されました。次のビデオで、稲妻のビーム エフェクトの例を確認できます。ビームを使用すると、レーザー、武器光線、テスラ コイルなど、あらゆる種類のビジュアル エフェクトを作成できます。
