In vielen Fällen möchtest du mehrere Emitter in einem System haben, die miteinander interagieren, um den Effekt deiner Wahl zu erzeugen. Dies bedeutet normalerweise, dass ein Emitter einige Daten generiert und dann andere Emitter auf diese Daten hören und als Reaktion auf diese Daten ein bestimmtes Verhalten ausführen. In Niagara wird dies durch die Verwendung von Events und Event-Handler erreicht. Events sind die Module, bestimmte Ereignisse generieren, die zur Lebenszeit eines Partikels auftreten. Event-Handler sind Module, die auf diese generierten Ereignisse hören und dann als Antwort auf dieses Ereignis ein Verhalten initiieren.
Derzeit funktionieren Events nicht mit GPU-Simulationen. Events funktionieren nur mit der CPU-Simulation.
Events
Um Events verwenden zu können, musst du sicherstellen, dass „Erfordert persistente IDs" in den Emitter-Eigenschaften deiner Emitter aktiviert ist.
Da Events dynamisch ablaufen, während das Partikel altert, werden die Ereignisse der Gruppe „Partikelaktualisierung" hinzugefügt. Wenn du auf das Pluszeichen (+) neben „Partikelaktualisierung" klickst, siehst du einen Abschnitt namens Events, in dem du dem Stapel Event-Module hinzufügen kannst.
Es sind mehrere Arten von Event-Modulen verfügbar:
- Position
- Tod
- Kollision
Positions-Events
Wenn du ein Modul vom Typ Positions-Event generieren in der Gruppe „Partikelaktualisierung" deines Emitters platzierst, generiert jedes in diesem Emitter erzeugte Partikel während seines Lebenszyklus Positionsdaten. Du kannst dann einen Event-Handler festlegen, um die Positionsdaten zu empfangen und ein anderes Verhalten auszulösen.
Wenn du beispielsweise einen Flugbahneffekt für eine Feuerwerksrakete erstellen möchtest, kannst du ein Modul vom Typ Positions-Event generieren in der Gruppe „Partikelaktualisierung" deines Raketen-Emitters platzieren. Dann kann der Flugbahn-Emitter Partikel hervorbringen, die der Rakete folgen, indem sie die Positionsdaten verwenden.
Klicke auf das Bild für volle Größe.
Lebensende-Events
Wenn du ein Modul vom Typ Lebensende-Event generieren in der Gruppe „Partikelaktualisierung" deines Emitters platzierst, generiert jedes in diesem Emitter erzeugte Partikel während seines Lebenszyklus Positionsdaten. Es gibt viele Möglichkeiten, diese Daten zu verwenden. Du kannst den Partikeleffekt eines anderen Emitters auslösen, wenn die Partikel des ersten Emitters erlöschen oder du kannst Kettenreaktionen erstellen, in denen jeder Emitter seinen Effekt spawnt, wenn die Partikel des vorherigen Emitters erlöschen. Du kannst auch Positions- und Lebensende-Events kombinieren, um komplizierte Interaktionen zu erzeugen.
Um unser Feuerwerk-Beispiel zu verwenden, kannst du einen Explosionseffekt generieren, der am Ende der Lebensdauer des Raketenpartikels erscheint. Das Event „Position" legt fest, wo sich das Raketenpartikel befindet, also wo die Explosion stattfindet. Das Event „Lebensende" legt fest, wann die Lebensdauer des Partikels endet, d. h. wann der Explosionseffekt ausgelöst wird.
Klicke auf das Bild für volle Größe.
Kollisions-Events
Wenn du ein Modul vom Typ Kollisions-Event generieren in der Gruppe „Partikelaktualisierung" deines Emitters platzierst, generieren Partikel ein Event, wenn sie mit einem Actor, wie z. B. ein statisches Mesh oder Skelett-Mesh, kollidieren. Wenn du zum Beispiel den Feuerwerkseffekt in einen Waffeneffekt ändern möchtest, könntest du die Explosion spawnen, wenn die Raketenpartikel mit einem statischen oder Skelett-Mesh kollidieren.
Klicke auf das Bild für volle Größe.
Du musst einem Emitter ein Modul vom Typ Kollision hinzufügen, bevor du diesem Emitter ein Kollisions-Event generieren hinzufügen kannst. Dadurch werden die Partikel des Emitters aktiviert, damit sie mit Objekten in der Welt kollidieren.
Event-Handler
Event-Handler bestehen aus zwei Teilen: Event-Handler-Eigenschaften und Empfangs-Event. Für jedes Event, auf das der Emitter reagieren soll, fügst du ein Element Event-Handler-Eigenschaften und ein Modul Empfangs-Event hinzu.
Wenn du auf das Plus (+) neben den Emitter-Eigenschaften klickst, kannst du deinem Emitter eine Bühne vom Typ Event-Handler hinzufügen.
Klicke auf das Bild für volle Größe.
Lege in den Event-Handler-Eigenschaften die Quelle des Events mit der Dropdown-Liste fest, in der alle verfügbaren Module vom Typ „Event erzeugen" aufgeführt sind. Dann kannst du wählen, welche Partikel von dem Event beeinflusst werden, wie oft das Event pro Frame auftritt und wenn das Event Partikel spawnt, kannst auswählen, wie viele gespawnt werden.
Klicke auf das Bild für volle Größe.
Nachdem du die Eigenschaften für den Event-Handler festgelegt hast, klickst du auf das Plus (+) neben Event-Handler, um ein Modul vom Typ Empfangs-Event hinzuzufügen. Es muss mit dem generierten Event-Modul übereinstimmen, das du in der Gruppe „Partikelaktualisierung" des Emitters platziert hast, das das Event generiert.
Klicke auf das Bild für volle Größe.
Wenn du beispielsweise ein Positions-Event generieren in einem Emitter platziert hättest, würdest du das Modul Positions-Event empfangen für deinen Event-Handler auswählen.
Klicke auf das Bild für volle Größe.