イベントおよびイベント ハンドラの概要

このページでは、Niagara でのイベントおよびイベント ハンドラの使用に関する基本情報を提供します。

多くの場合、希望するエフェクトを作成するためには 1 つのシステムの中の複数のエミッタ間でお互いに作用させる必要があります。これは通常、1 つのエミッタがいくつかのデータを生成すると別のエミッタがその生成されたデータをリッスンし、そのデータに対する反応として動作を実行することを意味します。Niagara では、この一連の動作は イベント および イベント ハンドラ を使用して行われます。イベント とは、パーティクルの存続期間に実行される特定のイベントを生成するモジュールのことです。イベント ハンドラ とは、生成されたイベントをリッスンし、そのイベントに反応して動作を開始するモジュールのことです。

現在、GPU シミュレーションを使用したイベントは機能しません。CPU シミュレーションを使用したイベントのみ機能します。

イベント

イベントを使用するには、エミッタの [Emitter Properties (エミッタのプロパティ)] にある [Requires Persistent IDs (永続的な ID が必要)] を有効にします。

イベントはパーティクルの存続期間が経つに連れて動的に起こるため、Particle Update グループに追加されます。Particle Update の横にある [+] ボタンをクリックすると、スタックにイベント モジュールを追加できる イベント というセクションが表示されます。

イベント モジュールにはいくつかの種類があります。

  • Location

  • Death

  • コリジョン

Location イベント

Generate Location Event モジュールをエミッタの Particle Update (パーティクルの更新) グループに配置すると、そのエミッタにスポーンする各パーティクルがその継続期間中の位置データを生成します。次に、イベント ハンドラを設定して位置データを受信し、別の動作をトリガーすることができます。

たとえば、ロケット花火のトレイル エフェクトを作成する場合、Generate Location Event モジュールをロケットのエミッタの Particle Update グループに配置できます。そうすると、トレイル エミッタは位置データを使用してロケットに追従するパーティクルをスポーンすることができます。

画像をクリックするとフルサイズで表示されます。

Death イベント

Generate Death Event モジュールをエミッタの Particle Update グループに配置すると、エミッタにスポーンする各パーティクルがその存続期間の終了時にイベントを生成します。このデータはさまざまな方法で使用することができます。最初のエミッタのパーティクルが終了する時に別のエミッタのパーティクル エフェクトをトリガーしたり、前のエミッタのパーティクルが終了する時に各エミッタがそれぞれのエフェクトをスポーンする連鎖反応を作成することもできます。Location と Death イベントを組み合わせて、複雑な相互作用を作成することもできます。

先ほどの花火の例で言うと、ロケット花火のパーティクルが消滅する時にスポーンする爆発エフェクトを生成できます。Location イベントでロケット花火のパーティクルが爆発を起こす位置を判断し、Death イベントでパーティクルの存続期間が終了して爆発エフェクトがスポーンするタイミングを判断します。

画像をクリックするとフルサイズで表示されます。

Collision イベント

Generate Collision Event モジュールをエミッタの Particle Update グループに配置すると、パーティクルがスタティック メッシュやスケルタル メッシュなどのアクタと衝突する時にイベントを生成します。たとえば、花火エフェクトを武器エフェクトに変更して、ロケット花火のパーティクルがスタティック メッシュやスケルタル メッシュと衝突する時に爆発をスポーンさせることもできます。

画像をクリックするとフルサイズで表示されます。

エミッタに Generate Collision Event を追加するには、その前に Collision モジュールをエミッタに追加する必要があります。それにより、エミッタのパーティクルがワールドにあるオブジェクトに衝突できるようになります。

イベント ハンドラ

イベント ハンドラは 2 つのパート、Event Handler Properties (イベント ハンドラのプロパティ)Receive Event (Receive イベント) で構成されます。エミッタが対応するイベントごとに、Event Handler Properties の項目と Receive Event モジュールを追加します。

エミッタ プロパティの横の プラスマーク (+) をクリックすると、Event Handler ステージをエミッタの横に追加することができます。

画像をクリックするとフルサイズで表示されます。

Event Handler Properties では、使用可能な Generate Event モジュールがすべてリストされているドロップダウンでイベントの Source (ソース) を設定します。次に、イベントの影響を受けるパーティクル、フレームごとに発生するイベントの回数を選択することができます。さらに、イベントがパーティクルをスポーンする場合はパーティクルがスポーンする数も選択できます

画像をクリックするとフルサイズで表示されます。

イベント ハンドラのプロパティを設定した後は、Event Handler の横の プラスマーク (+) をクリックして Receive Event モジュールを追加します。このイベントは、イベントを生成するエミッタの Particle Update グループに配置した生成済みのイベント モジュールと一致する必要があります。

画像をクリックするとフルサイズで表示されます。

たとえば、エミッタに Generate Location Event を配置した場合は、イベント ハンドラに Receive Location Event モジュールを選択します。

画像をクリックするとフルサイズで表示されます。

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