Events werden beim Visual Effect Graph für die Erstellung von visuellen Effekten eingesetzt.
Events sind die Eingaben für den Verarbeitungsablauf eines visuellen Effektdiagramms. Durch diese Ereignisse kann ein visueller Effekt: Das Spawnen von Partikeln starten und stoppen, Von C # gesendete Attributnutzdaten lesen Ereignisse werden im Diagramm als Eingaben für Spawn-Kontexte und Initialisieren verwendet.
Events erstellen
Du kannst Events mithilfe von Ereigniskontexten erstellen. Diese Kontexte haben keine Flow-Eingabe und stellen eine Verbindung zu Spawn- oder Initialize-Kontexten her.
Um einen Ereigniskontext zu erstellen, klicke mit der rechten Maustaste in einen leeren Bereich des Arbeitsbereichs und wählen Sie "Knoten erstellen" und dann "Ereignis (Kontext) auswählen" aus dem Menü "Knotenerstellung".
Standardevents
Visuelle Effektdiagramme stellen zwei Standardereignisse bereit, die implizit an die Start- und Stop-Flow-Eingaben der Spawn-Kontexte gebunden sind:
OnPlay für die Absicht "Spawn von Partikeln aktivieren" ist implizit an die Eingabe "Start Flow" eines beliebigen Spawn-Kontexts gebunden.
OnStop ist implizit an die Eingabe "Stop Flow" eines beliebigen Spawn-Kontexts gebunden.
Durch das Verbinden von Ereigniskontexten mit den Eingängen "Start" und "Stop Flow" eines Spawn-Kontexts wird die implizite Bindung an die Ereignisse "OnPlay" und "OnStop" entfernt.
Standard-VisualEffect-Ereignis
Das standardmäßige visuelle Effektereignis definiert den Namen des Ereignisses, das implizit gesendet wird, wenn ein Reset für eine visuelle Effektinstanz ausgeführt wird (dies kann beim ersten Start oder bei einem Neustart des Effekts geschehen).
Das Standard-VisualEffect-Ereignis wird im Asset-Inspektor für Visual Effect-Grafiken definiert, kann jedoch in jedem Visual Effect-Inspektor für jede Instanz in der Szene überschrieben werden.
GPU-Events
GPU-Ereignisse sind eine experimentelle Funktion des visuellen Effektdiagramms: Sie ermöglichen das Erzeugen von Partikeln, die auf anderen Partikeln basieren. Du kannst diese Option in den Einstellungen für visuelle Effekte aktivieren.
GPU-Events sind Ereigniskontexte, die auf Daten basieren, die von anderen Systemen gesendet werden, beispielsweise wenn ein Partikel stirbt oder unter anderen Bedingungen. Die folgenden Aktualisierungsblöcke können GPU-Ereignisdaten senden:
Trigger Event On Die: Löst N Partikel auf einem anderen System aus, wenn ein Partikel stirbt
Trigger Event Rate: N Partikel pro Sekunde (oder zurückgelegte Strecke), basierend auf einem Partikel aus einem System
Trigger Event always: Löst in jedem Frame N Partikel aus.
Diese Blöcke verbinden sich mit einem GPU-Event-Kontext. Dieser Kontext bezieht sich nicht auf Blöcke, sondern stellt eine Verbindung zu einem Initialisierungskontext eines untergeordneten Systems her.
Um Daten aus dem übergeordneten Partikel zu erfassen, muss das untergeordnete System in seinem Initialisierungskontext auf Quellattribute verweisen, indem der Operator "GetSource Attribute Operator" oder "Inherit Attribute Block" verwendet wird: Das untergeordnete System erbt die Quellposition des Teilchens, das es erzeugt hat, und erbt ungefähr 50% seiner Geschwindigkeit.
Ein Attribut ist ein Datenelement, das an Elemente in einem System angehängt ist. Beispielsweise sind die Farbe eines Partikels, die Position eines Partikels oder die Menge an Partikeln, die ein Spawn-System erzeugen soll, alle Attribute.
Systeme können aus Attributen lesen oder in Attribute schreiben, um ein benutzerdefiniertes Verhalten durchzuführen und zwischen Elementen zu unterscheiden.
Ein System speichert Attribute nur dann, wenn es sie benötigt. Dies bedeutet, dass das System keine unnötigen Daten speichert und somit Speicherplatz spart.
Attribute schreiben: Verwende einen Block, um in ein Attribut zu schreiben. Blöcke sind die einzigen Diagrammelemente, die Attribute in das System schreiben können.
Das visuelle Effektdiagramm speichert nur dann ein Attribut, in das Simulationsdaten geschrieben werden, wenn ein späterer Kontext das Attribut liest.
Das bedeutet, dass:
Attribute schreiben: Verwende einen Block, um in ein Attribut zu schreiben. Blöcke sind die einzigen Diagrammelemente, die Attribute in das System schreiben können.
Das visuelle Effektdiagramm speichert nur dann ein Attribut, in das Simulationsdaten geschrieben werden, wenn ein späterer Kontext das Attribut liest.
Das bedeutet, dass:
Verwende einen Operator oder einen Block, um aus einem Attribut zu lesen:
Verwende einen Get Attribute Operator.
Verwenden Sie in einem Set Attribute Block verschiedene Kompositionsmodi, die vom vorherigen Wert des Attributs abhängen.
Anmerkungen:
Wenn du aus einem Attribut liest, dass das visuelle Effektdiagramm nicht in den Simulationsdaten gespeichert ist, übergibt das Attribut seinen standardmäßigen konstanten Wert.
Derzeit können nur aus Attributen in den Partikelsystemen lesen. Verwende Spawner Callbacks, um Attribute in Spawn-Systemen zu lesen.
Der aktuelle Attributspeicherort bezieht sich auf den aktuellen Systemdatencontainer, aus dem der Wert gelesen wurde.
Beispielsweise:
Der Quellattributspeicherort bezieht sich auf den vorherigen Systemdatencontainer, aus dem der Wert gelesen wurde. Aus einem Quellattribut kann nur im ersten Kontext eines Systems nach einer Änderung der Systemdaten gelesen werden. Zum Beispiel kann auf EventAttributes und GPU EventAttributes in Contexts für die Initialisierung von Partikeln / Strips zugegriffen werden.
Einige Attribute besitzen Variadic-Eigenschaften. Diese Attribute können ein Skalar oder ein Vektor mit unterschiedlichen Dimensionen sein, abhängig von den Komponenten, die Sie zum Simulieren und / oder Rendern benötigen.
Wenn aus einem variadischen Attribut gelesen wird, werden alle anderen impliziten Komponenten mit ihren Standardwerten gelesen.
Beispielsweise kann die Skalierung eines Quad-Partikels mit Vektor2 (als Breite und Länge des Quad) ausgedrückt werden. Um die Skalierung eines Box-Partikels auszudrücken, kann ein Vektor3 (als Breite, Länge, und Tiefe des Würfels) verwendet werden. Wenn verschiedene Attribute festgelegt werden, können in einer Dropdown-Liste aller Kanalkombinationen nur auf die erforderlichen Kanäle geschrieben werden.
Ein weiteres Beispiel ist die Drehung eines Sprites um seine Normalen. Du benötigst nur die Z-Komponente des Angle-Attributs (AngleZ), sodass AngleX und AngleY nicht gespeichert werden müssen.
Ein Visual Effect Subgraph ist ein Asset, das einen Teil eines Visual Effect Graph enthält, der in einem anderen Visual Effect Graph oder Subgraph verwendet werden kann. Untergraphen werden als ein einzelner Knoten angezeigt.
Untergraphen können in Diagrammen als drei Hauptverwendungen verwendet werden:
Mithilfe von Untergraphen können häufig verwendete Knotensätze in einem Diagramm in wiederverwendbare Assets zerlegt und der Bibliothek hinzugefügt werden.
Visuelle Effektgrafiken, die als Untergraphen verwendet werden, werden als Kontext angezeigt, der Folgendes darstellt:
Sie können einen System-Subgraphen wie folgt erstellen:
Du kannst deinem Diagramm einen System-Subgraph-Knoten hinzufügen, indem du ein visuelles Effektdiagramm aus der Projektansicht in das Fenster des visuellen Effektdiagramms ziehst.
Du kannst Eigenschaften wie in einer Visual Effect Graph-Komponente anpassen, aber du kannst auch Operatoren zum Erstellen benutzerdefinierter Ausdrücke verwenden, um das Verhalten der als Subgraph verwendeten Systeme zu erweitern.
Ereignisse können mithilfe von Ereignis- oder Spawn-Kontexten an die Workflow-Eingänge des System-Subgraph-Knotens gesendet werden.
Block Subgraphs sind spezifische Untergraphen, die nur Operatoren und Blöcke enthalten und als Blöcke in einem anderen visuellen Effektdiagramm oder Untergraphen verwendet werden können.
Du kannst einen Block-Untergraphen wie folgt erstellen:
Asset/Create/Visual Effects/Visual Effect Subgraph BlockDu kannst einen Blockuntergraphen bearbeiten, indem du ihn im Fenster "Visual Effect Graph" öffnest:
Block Subgraphs zeigen einen nicht entfernbaren Kontext mit dem Namen "Block Subgraph" an, in dem Blöcke hinzugefügt werden können.
Du kannst Eigenschaften wie in einem regulären Block anpassen, aber du kannst auch Operatoren zum Erstellen benutzerdefinierter Ausdrücke verwenden, um das Verhalten des als Subgraph verwendeten Blocks zu erweitern.
Operator Subgraphs sind spezifische Subgraphs Assets die nur Operatoren enthalten und als Operatoren in einem anderen visuellen Effektdiagramm oder Unterdiagramm bzw. Subgraph verwendet werden können.
Asset/Create/Visual Effects/Visual Effect Subgraph OperatorSie können die Eingabe- und Ausgabeeigenschaften für den Operator über das Blackboard-Fenster einrichten:
Du kannst Eigenschaften wie in einem regulären Block anpassen, aber du kannst auch Operatoren zum Erstellen benutzerdefinierter Ausdrücke verwenden, um das Verhalten des als Subgraph verwendeten Blocks zu erweitern.