Ein System bezieht sich auf einen oder mehrere Kontexte, die einen eigenständigen Teil eines visuellen Effekts definieren.
Systeme
Ein System kann ein Partikelsystem, ein Partikelstreifensystem, ein Netz oder eine Spawn-Maschine sein. In der Diagrammansicht zeichnet ein System einen gestrichelten Rahmen um die Kontexte, aus denen es besteht.
In einem visuellen Effektdiagramm können mehrere Systeme miteinander interagieren:
Ein Spawn-System kann Partikel in einem oder mehreren Partikelsystemen erzeugen. Dies ist die Hauptmethode zum Erschaffen von Partikeln.
Partikelsysteme können GPU-Ereignisse verwenden, um Partikel in anderen Partikelsystemen zu erzeugen. Diese alternative Methode kann Partikel aus anderen Partikeln erzeugen, basierend auf Simulationsereignissen wie dem Tod von Partikeln.
Ein Spawn-System kann andere Spawn-Systeme aktivieren und deaktivieren. Auf diese Weise kann ein Master-Spawn-System verwendet werden, das andere Spawn-Systeme verwaltet, um die Partikelemission zu synchronisieren.
Systeme aus Vorlagen erstellen
Das visuelle Effektdiagramm wird mit vorgefertigten Systemvorlagen geliefert, die dem Diagramm hinzugefügt werden können. So wird ein System aus einer Vorlage erstellt:
Klicke mit der rechten Maustaste in einen leeren Bereich des Arbeitsbereichs und wähle Knoten erstellen.
Wähle im Menü System.
Wähle eine Vorlage aus der Liste aus.
Systemsimulationsräume
Lokale Raumsysteme simulieren den Effekt lokal für das GameObject, das die Visual Effect-Komponente enthält.
World Space Systems simulieren den Effekt unabhängig von dem GameObject, das die Visual Effect-Komponente enthält.
Unabhängig vom Simulationsbereich des Systems können mit Spaceable Properties auf Local- oder World-Werte zugegriffen werden.
Festlegen eines Systemsimulationsbereichs
Ein System zeigt seinen Simulationsbereich in der rechten oberen Ecke jedes Kontexts an, aus dem es besteht. Dies ist die Simulationsraumkennung des Systems. Wenn in einem Kontext kein Prozess verwendet wird, der vom Simulationsbereich abhängt, wird die Simulationsbereichskennung nicht angezeigt.
Um den Simulationsraum für ein System zu ändern, klicken Sie auf die Simulationsraum-ID des Systems, um durch die kompatiblen Räume zu blättern.
Simulationsraumbezeichnung in Eigenschaften
Einige Spaceable Properties zeigen eine kleinere Version der Simulationsraumkennung an. Dies ändert nicht den Simulationsbereich des Systems, sondern ermöglicht es, einen Wert in einem Bereich auszudrücken, der sich vom Simulationsbereich des Systems unterscheidet. Zum Beispiel könnte ein System im Weltraum simulieren, aber eine Eigenschaft könnte eine lokale Position sein.
Contexts
Kontexte sind die Hauptelemente der Grafik-Workflow-Logik (vertikal) und definieren die Abfolge und die Beziehungen von Operationen und Simulationen. Jeder Kontext definiert eine Stufe des Rechnens, zum Beispiel das Berechnen, wie viele Partikel erzeugt werden müssen, das Erstellen neuer Partikel oder das Aktualisieren aller lebenden Partikel.
Kontextverbindung herstellen, wenn es eine Bedeutung gibt: Nach dem Erstellen neuer Partikel kann ein Initialisierungskontext eine Verbindung zu einem Aktualisierungspartikelkontext oder direkt zu einem Ausgabepartikelkontext herstellen, um die Partikel zu rendern, ohne sie zu simulieren.
Kontexte erstellen und verbinden
Kontexte sind Diagrammelemente. Sie können daher mit der rechten Maustaste> Knotenmenü hinzugefügt, mit der Leertaste oder durch Herstellen einer (vertikalen) Workflowverbindung aus einem anderen Kontext erstellt werden (wobei nur kompatible Kontexte bereitgestellt werden).
Kontexte werden über die Ports oben und unten miteinander verbunden.
Kontexte konfigurieren
Durch Anpassen der Kontexteinstellungen in der Knoten-Benutzeroberfläche oder im Inspector können das Aussehen und Verhalten des Operators geändert werden.
Wenn beispielsweise der UV-Modus eines Kontexts mit vier Ausgängen von „Einfach“ in „FlipbookMotionBlend“ geändert wird, werden dem Kontext-Header die Eigenschaften „Zusätzliche Flipbook-Größe“, „Bewegungsvektorkarte“ und „Bewegungsvektorskala“ hinzugefügt.
Durchflusskompatibilität
Nicht alle Kontexte können in beliebiger Reihenfolge miteinander verbunden werden. Es gelten einige Regeln, um einen konsistenten Workflow aufrechtzuerhalten:
- Kontexte werden nach kompatiblem Eingabe- / Ausgabedatentyp verbunden.
- Ereignisse können sich mit einem oder mehreren Ereignissen verbinden / Kontexte initialisieren.
- Initialisierungskontexte können eine oder mehrere SpawnEvent-Quellen oder eine oder mehrere GPUSpawnEvent-Quellen enthalten, diese Datentypen schließen sich jedoch gegenseitig aus.
- Es kann nur eine Initialisierung mit einem Aktualisierungskontext verbunden werden
- Es können beliebige Ausgabekontexte mit einem Initialisierungs- / Aktualisierungskontext verbunden werden.
Die Kontextkompatibilität:
Event | Keiner | SpawnEvent (1+) | |
Spawn | SpawnEvent (1+) | SpawnEvent (1+) | Zwei Input-Pins starten und stoppen den Spawn-Kontext |
GPU Event | Keiner | SpawnEvent | Ausgaben zum Initialisieren des Kontexts |
Initialize | SpawnEvent (1+) / GPUSpawnEvent (1+) | Particle (1) | Kann zur Partikelaktualisierung oder zur Partikelausgabe ausgegeben werden. Die Eingabetypen SpawnEvent / GPUSpawnEvent schließen sich gegenseitig aus. |
Update | Particle (1) | Particle (1+) | Kann auf eine Partikelaktualisierung oder eine Partikelausgabe ausgegeben werden |
Particle Output | Particle (1) | Keiner | Kann entweder Eingaben von einem Initialize- oder UpdateOutput-Objekt haben |
Static Mesh Output | Keiner | Keiner | Eigenständiger Kontext |
Übersicht über den Kontexttyp
Dieser Abschnitt behandelt alle allgemeinen Einstellungen für jede Art von Kontext.
Event
Ereigniskontexte zeigen nur einen Namen als Zeichenfolge an, die in der Komponenten-API aufgerufen werden muss, um dieses Ereignis an das Diagramm zu senden und einen Workflow von diesem Knoten aus zu aktivieren.
Spawn
Spawn definiert, wie viele Partikel in welcher Zeit erschaffen werden. Spawn-Blöcke sind für die Verarbeitung von Spawn-Events ausgelegt.
Spawn-Kontexte sind eigenständige Systeme mit drei Zuständen: Abspielen, Anhalten und Verzögert.
- Looping (Running) -Zustand bedeutet, dass die Blöcke berechnet werden und neue Partikel erzeugt werden
- Beendet (Leerlauf) bedeutet, dass die Spawn-Maschine ausgeschaltet ist und keine Partikel erzeugt
- Der Zustand DelayingBeforeLoop / DelayingAfterLoop (Waiting) stoppt das Spawnen von Partikeln bis zum Ende einer vom Benutzer festgelegten Verzögerung und startet das Spawnen von Partikeln erneut.
Ein- und Ausschalten vom Spawn-Kontext
Spawn-Kontexte haben zwei Flow-Eingabefelder: Start und Stop:
- Start input setzt das Spawn-System zurück und / oder startet es: Wenn keine Verbindung besteht, ist es implizit an das OnPlay-Ereignis gebunden. Das mehrmalige Drücken von Start hat den gleichen Effekt wie das einmalige Drücken.
- Eingabe stoppen hält das Spawn-System an: Wenn keine Verbindung besteht, ist es implizit an das OnStop-Ereignis gebunden
Looping und Verzögerung
Spawn-Kontexte enthalten einen Status und führen das Spawnen von Partikeln, basierend auf einem Schleifensystem durch.
- Der Spawn-Kontext kann während definierter Dauer für die Schleifen ausgegeben werden (dh die interne Spawn-Zeit wird zu Beginn jeder Schleife zurückgesetzt). Standardmäßig ist die Dauer unendlich. Um den Loop-Modus einzustellen, wählen Sie den Kontext in der Grafik aus und ändere das Popup-Fenster für die Loop-Dauer im Inspektor.
(Mögliche Werte: Unendlich, Konstant, Zufällig)
- Spawn-Kontexte können eine, mehrere oder unendlich viele Schleifen ausführen.
Um diese Einstellung festzulegen, wähle den Spawn-Kontext im Diagramm aus und ändern Sie das Popup-Fenster „Loop count“ im Inspector (Mögliche Werte: Infinite, Constant, Random). - Spawn-Kontexte können vor und / oder nach jeder Schleife verzögert werden. Während einer Verzögerung (Delay Mode) läuft die Spawn-Zeit normal ab, es wird jedoch kein Spawn durchgeführt.
Um diese Einstellung festzulegen, wählen Sie den Spawn-Kontext im Diagramm aus und ändere im Popup-Menü Verzögerung vor Loop und Verzögerung nach Loop im Inspector (Mögliche Werte: Keine, Konstante, Zufällig)
Durch Festlegen einer Schleifenzahl, einer Schleifendauer und / oder von Verzögerungen werden neue verbindbare Eigenschaften im Header des Kontexts angezeigt.
Die Bewertung dieser Werte erfolgt nach folgenden Regeln:
Wenn gesetzt: Loop Count wird ausgewertet, wenn die Eingabe Start Workflow des Kontexts getroffen wird.
Wenn gesetzt: Loop Duration wird bei jedem Start eines Loops ausgewertet
Wenn gesetzt: Die Schleifenverzögerung (Vorher / Nachher) wird bei jedem Start einer Verzögerung ausgewertet.
Spawn-Kontexte können mit kompatiblen Blöcken angepasst werden.
Constant Rate: Die konstante Spawnrate erschafft N Partikel in der Sekunden
Variable Rate: Eine variable Rate gibt ein zeitbasiertes Minimum und Maximum für das Spawnen der Partikel an.
Single Burst: Eine bestimmte Menge von partikeln wird einmal zu einem festgelegten Zeitpunkt erzeugt
Einstellungen:
Spawn-Modus: Konstant / Zufällig – Wird verwendet, um zu steuern, ob der Burst eine konstante oder eine zufällige Zählung ausgibt.
Verzögerungsmodus: Konstant / Zufällig – Wird verwendet, um zu steuern, ob der Burst gleichzeitig oder mit einer zufälligen Verzögerung erfolgt.
Periodische Bursts haben etwas dasselbe Verhalten wie Single Bursts, treten jedoch im Laufe der Zeit wiederholt auf. Bei jedem Burst kommt es zu einer zufälligen Verzögerung und / oder Zählung.
Diese Blöcke können für viele Zwecke verwendet werden:
- Spawn-Ausgabe steuern (einschließlich der Lese-Ausgabe von vorherigen Blöcken)
- Steuerung der Ereignisattributausgabe
- Spawn-Kontext steuern (Abspielen, Stoppen, Zugriff auf DeltaTime und TotalTime)
GPU-Ereignisse
GPU-Ereigniskontexte sind experimentelle Kontexte, die Eingaben mit GPU-Ausgangsereignissen anderer Systeme verbinden. Sie unterscheiden sich vom traditionellen Spawn, da sie von der GPU berechnet werden. Es kann nur eine Art von Spawn mit einem Initialisierungskontext verbunden werden (GPU-Ereignis und Spawn / Ereignisse schließen sich gegenseitig aus)
GPU-Ereigniskontexte können nicht mit Blöcken angepasst werden.
Initialize Contexts
Durch das Initialisieren von Kontexten werden neue Partikel basierend auf SpawnEvent-Daten generiert, die aus Ereignissen, Spawn- oder GPU-Ereigniskontexten berechnet werden.
Beispiel: Wenn du den Befehl zum Erstellen von 200 neuen Partikeln aus einem Spawn-Kontext erstellst, wird der Kontext verarbeitet und führt die Kontextblöcke für alle 200 neuen Partikel aus.
Initialisierungskontexte können mit kompatiblen Blöcken angepasst werden.
Initialisierungskontexte sind der Einstiegspunkt für neue Systeme. Als solche zeigen sie Informationen und Konfiguration in ihrer Kopfzeile an:
Grenzen (Eigenschaft): Steuert die Begrenzungsbox des Systems
Capacity: Kapazität (Einstellung): Bestimmt, wie viele Partikel gleichzeitig im System existieren können
Aktualisieren (Update)
Update-Kontexte aktualisieren alle lebenden Partikel basierend auf Partikeldaten, die aus dem Initialisieren und Aktualisieren von Kontexten berechnet wurden. Diese Kontexte werden in jedem Frame ausgeführt und aktualisieren jeden Partikel.
Partikelaktualisierungskontexte verarbeiten auch automatisch einige Berechnungen für Partikel, um die allgemeinen Bearbeitungsaufgaben zu vereinfachen.
Aktualisierungskontexte können mithilfe kompatibler Blöcke angepasst werden.
Integration:
Keine: Keine Geschwindigkeitsintegration
Euler: Wendet eine einfache Euler-Geschwindigkeitsintegration auf die Partikelpositionen in jedem Frame an.
Winkelintegration (Angular Integration):
Keine: Keine Geschwindigkeitsintegration
Euler: Wendet eine einfache Euler-Winkelgeschwindigkeitsintegration auf die Partikelwinkel in jedem Frame an.
Alterspartikel (Age Particles):
Wenn das Attribut „Alter“ verwendet wird, wird gesteuert, ob durch die Aktualisierung Partikel im Laufe der Zeit altern
Particle beseitigen (Reap Particles):
Wenn die Attribute „Alter“ und „Lebensdauer“ verwendet werden, kann gesteuert werden, ob bei der Aktualisierung alle Partikel getötet werden, deren Alter über der Lebensdauer liegt.
Output
Ausgabekontexte rendern ein System mit verschiedenen Modi und Einstellungen, abhängig von den aus einem Initialisierungs- oder Aktualisierungskontext eingehenden Partikeldaten. Jedes Element wird mit einer bestimmten Konfiguration als bestimmtes Grundelement gerendert.
Ausgabekontexte können mit kompatiblen Blöcken angepasst werden.
Originally posted 2020-01-18 13:29:00.