Choose your operating system:
Windows
macOS
Linux
多くの場合において、希望するエフェクトを作成するために 1 つのシステムにある複数のエミッタ間でお互いに作用させる必要があります。これは通常、1 つのエミッタがいくつかのデータを生成すると別のエミッタがその生成されたデータをリッスンし、そのデータに対する反応としてビヘイビアを実行することを意味します。ナイアガラでは、この一連の動作が イベント および イベント ハンドラ を使用して行われます。イベント とは、パーティクルの存続期間に実行される特定のイベントを生成するモジュールのことです。イベント ハンドラ とは、生成されたイベントをリッスンし、そのイベントに反応してビヘイビアを開始するモジュールのことです。
現在、GPU シミュレーションを使用したイベントは機能しません。CPU シミュレーションを使用したイベントのみ機能します。
イベント
イベントを使用するには、エミッタの [Emitter Properties (エミッタのプロパティ)] にある [Requires Persistent IDs (永続的な ID が必要)] を有効にします。
Location イベント
Generate Location Event モジュールをエミッタの Particle Update (パーティクルの更新) グループに配置すると、そのエミッタにスポーンする各パーティクルがその継続期間中の位置データを生成します。次に、イベント ハンドラを設定して位置データを受信し、別のビヘイビアをトリガーすることができます。たとえば、ロケット花火のトレイル エフェクトを作成する場合、Generate Location Event モジュールをロケットのエミッタの Particle Update グループに配置できます。そうすると、トレイル エミッタは位置データを使用してロケットに追従するパーティクルをスポーンすることができます。
クリックしてフルサイズ表示。
Death イベント
Generate Death Event (Death イベントを生成) モジュールをエミッタの 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 Properties では、使用可能な Generate Event モジュールがすべてリストされているドロップダウンでイベントの Source (ソース) を設定します。次に、イベントの影響を受けるパーティクル、フレームごとに発生するイベントの回数を選択することができます。さらに、イベントがパーティクルをスポーンする場合はパーティクルがスポーンする数も選択できます
クリックしてフルサイズ表示。
イベント ハンドラのプロパティを設定した後は、Receive イベントを選択します。このイベントは、イベントを生成するエミッタの Particle Update グループに配置した生成済みのイベント モジュールと一致する
クリックしてフルサイズ表示。
たとえば、エミッタに Generate Location Event を配置した場合は、イベント ハンドラに Receive Location Event モジュールを選択します。
クリックしてフルサイズ表示。