Dieses Tutorial ist eine Einführung in Notizblock-Module in Unreal Engine. Es baut auf dem Niagara-System auf, um die Grundlagen dieser Funktion zu erkunden. Im Tutorial geht es weniger um die Ergebnisse, sondern mehr darum, verschiedene Möglichkeiten zur Verwendung der Funktion zu erlernen.
Bereich
Notizblock-Module sind lokale Niagara-Module, die mithilfe von visuellen Skripting-Diagrammen erstellt werden können. Es gibt zwei Asset-Typen, die die Erstellung von Notizblock-Modulen unterstützen: Niagara-Emitter und Niagara-Systeme. Die Module sind im Bereich auf das System oder den Emitter beschränkt, in dem sie erstellt werden, und erscheinen nicht als eigenständige Assets im Inhaltsbrowser.
Emitterbasiertes Notizblock-Modul
Wenn ein Notizblock-Modul in einem Niagara-Emitter-Asset erstellt wird, wird es auf alle Verwendungen dieses Emitters in den Niagara-Systemen angewendet, denen es hinzugefügt wurde. Im folgenden Emitter-Asset NE_Example erscheint das ScratchModuleInEmitter-Modul in der Modulliste und sein Stapeleintrag kann im Emitter bearbeitet werden.
Allerdings kann ein Notizblock-Modul, das in einem Emitter erstellt wurde, nicht von anderen System- oder Emitter-Assets verwendet werden und erscheint nicht in der Modulliste eines Niagara-Systems. Das folgende Beispiel zeigt das NE_Example-Emitter Asset, das im NS_Example-Niagara-System verwendet wird. Wie andere Module ist das Notizblock-Modul gesperrt (kann deaktiviert, aber nicht gelöscht werden), wenn der Emitter in einem Niagara-System instanziiert ist.
Systembasiertes Notizblock-Modul
Wenn das Notizblock-Modul in einem Niagara-System-Asset erstellt wurde, kann es für jeden Emitter innerhalb dieses Systems verwendet werden. Wie alle Notizblock-Module sind sie für Emitter in anderen Niagara-Systemen nicht verfügbar.
Niagara-Modul-Script
Ein Notizblock-Modul kann als Niagara-Modul-Script-Asset exportiert werden. Dieser Exportprozess wird im Abschnitt BLANK dieses Tutorials ausführlicher behandelt. Niagara-Modul-Scripts sind komplett separate Assets, die im Inhaltsbrowser angezeigt werden und von jedem Niagara-Emitter und in jedem Niagara-System innerhalb Ihres Projekts verwendet werden können. Das ist vergleichbar mit der Umwandlung von Material-Knoten in Material-Funktionen, die dann von separaten Material-Assets im Projekt verwendet werden können.
Erste Schritte
Um ein Notizblock-Modul zu erstellen, müssen Sie in einem Niagara-System-Asset oder einem Niagara-Emitter-Asset arbeiten. Dieses Tutorial verwendet ein einfaches, raster-gespawntes Niagara-System als Grundlage für die Arbeit mit Notizblock-Modulen.
Erstellen eines Niagara-Systems
Dieser Abschnitt erläutert für neue Benutzer und diejenigen, die diesem Tutorial von Anfang bis Ende folgen wollen, wie ein Niagara-System erstellt wird. Wenn Sie bereits ein Niagara-System erstellt haben, können Sie dieses verwenden, um dem Rest des Tutorials zu folgen.
Befolgen Sie diese Schritte, um ein neues Niagara-System zu erstellen:
Rechtsklicken Sie im Inhaltsbrowser und klicken Sie dann auf „Niagara-System“.
Wählen Sie im Vorlage-Menü die Option Minimal und klicken Sie dann auf Erstellen.
Geben Sie dem neuen Niagara-System einen Namen (z. B. NS_Minimal). Öffnen Sie das Asset durch einen Doppelklick oder drücken Sie die Eingabetaste.
Standardmäßig verfügt das System über einen Systemknoten (blau) und einen einzelnen Minimal-Emitter (orange).
Partikel-Spawns
Befolgen Sie diese Schritte, um den Emitter Partikel spawnen zu lassen:
Navigieren Sie zum Minimal-Emitter.
Klicken Sie im Abschnitt „Emitter-Aktualisierung“ auf „Hinzufügen (+)“.
Suchen Sie nach der Option „Spawn Particles in Grid“ und klicken Sie darauf.
Sie können häufig verwendete Module ganz oben im Menü Neues Modul hinzufügen hinzufügen. Fahren Sie mit der Maus über den Modulnamen und klicken Sie auf das Symbol Stern (⭐). Das Symbol ändert seine Form von einem Umriss zu einem ausgefüllten Stern. Schließen und öffnen Sie das Menü erneut, um Ihr Modul im Abschnitt Empfohlen zu sehen. Klicken Sie erneut auf das Stern-Symbol, um es zu entfernen.
Beheben von Abhängigkeitsproblemen
Neben dem Namen des neuen Moduls wird ein roter Punkt angezeigt, der auf einen Fehler hinweist. In diesem Fall benötigt das Modul Spawn Particles in Grid auch ein Modul Grid Location, um korrekt zu arbeiten.
Klicken Sie auf das Modul, um dieses Problem zu beheben. Überprüfen Sie das Problem im Details-Panel und klicken Sie dann auf Problem beheben.
Ein Grid Location-Modul wird dem Abschnitt Partikel-Spawn des Emitters hinzugefügt. Danach ist die Abhängigkeit erfüllt und das Fehlersymbol im Modul Spawn Particles in Grid wird entfernt.
Emitter-Einstellungen
Befolgen Sie diese Schritte, um den Emitter für dieses Tutorial zu konfigurieren:
Wählen Sie im Minimal-Emitter die Option Spawn Particles in Grid aus.
Gehen Sie im Details-Panel wie folgt vor:
Setzen Sie „X Count“ auf 10.
Setzen Sie „Y Count“ auf 1.
Setzen Sie „Z Count“ auf 1.
Setzen Sie „Spawn Time“ auf 0.
Wählen im Minimal-Emitter die Option „Initialize Particle“.
Legen Sie im Details-Panel Folgendes fest:
Setzen Sie Lifetime Mode auf Direct Set.
Setzen Sie Lifetime auf 5.
Setzen Sie Color Mode auf Direct Set.
Setzen Sie Color auf 1, 0, 0.
Setzen Sie Position Mode auf Simulation Position.
Setzen Sie Position Offset auf 0, 0, 0.
Setzen Sie Mass Mode auf Unset / (Mass of 1).
Setzen Sie Sprite Size Mode auf Uniform.
Setzen Sie Uniform Sprite Size auf 10.
Setzen Sie Sprite Rotation Mode auf Unset.
Setzen Sie Sprite UV Mode auf Unset.
Setzen Sie alle anderen Mesh- und Ribbon-Attribute auf Unset.
In diesem Beispiel bleibt das Modul Grid Location auf seinen Standardwerten.
Erstellen eines Notizblock-Moduls
Klicken Sie im Minimal-Emitter neben dem Header Partikel-Spawn auf Hinzufügen (+). Suchen Sie nach der Option New Scratch Pad Module und wählen Sie diese aus.
Das Scratch-Modul-Diagramm wird automatisch als ein Tab neben dem ursprünglichen Systemübersicht-Tab geöffnet. Unter dem Vorschau-Fenster erscheint der Tab Lokales Modul neben den Tabs Parameter und Benutzer.
Benennen Sie Ihr Scratch-Modul mit einem beschreibenden Namen um (zum Beispiel ApplyOffset).
Modulnamen erscheinen in der Modulliste zwar immer als ein Wort (ApplyOffset), allerdings werden sie in Suchmenüs und für Stapeleinträge mit Leerzeichen basierend auf Groß- und Kleinschreibung angezeigt (Apply Offset).
Im Systemübersicht-Diagramm wird das Modul Apply Offset nun als Modul im Minimal-Emitter aufgeführt. Das neue Scratch-Modul wird auch in den Suchmenüs angezeigt und als Notizblock-Element (anstatt Niagara) bezeichnet.
Navigation
Um das Diagramm des Notizblock-Moduls zu öffnen, können Sie einen der folgenden Schritte ausführen:
Klicken Sie auf den Tab des Scratch-Moduls, der sich neben dem Tab Systemübersicht befindet.
Wählen Sie das Scratch-Modul im Emitter aus und klicken Sie im Details-Panel auf die Notizblock-Schaltfläche.
Doppelklicken Sie auf den Scratch-Modul-Stapeleintrag im Emitter.
Doppelklicken Sie auf das Scratch-Modul in der Liste Lokale Module > Module.
Datenfluss
Wie in anderen Diagrammen in Unreal Engine fließen die Daten in einem Modul von links nach rechts. Die Daten starten beim roten Input Map-Knoten, fließen durch die weiße Niagara-Parameter-Map-Linie und enden beim grünen Output Module-Knoten.
Sie können Map Get-Knoten verwenden, um Daten aus dieser Niagara-Parameter-Map-Zeile zu extrahieren, und Map Set-Knoten verwenden, um Daten hinein zu setzen.
Hinzufügen von Positionsversatz
Fügen Sie als Nächstes dem Notizblock-Modul einige Funktionalität hinzu, beginnend mit einem Positionsversatz.
Abrufen des Position-Attributs von Partikeln
Klicken Sie auf dem Map Get-Knoten auf den Pin Hinzufügen +, suchen Sie nach dem Parameter PARTICLES Position und klicken Sie darauf. Diese Daten werden in jedem einzelnen Partikel gespeichert.
Diese Parameter werden als ein Wort geschrieben, mit einem Punkt zwischen dem Namensraum und dem Namen ( NAMESPACE.Name). Wenn Sie auf Parameter (insbesondere Benutzerparameter) über Code oder Blueprints zugreifen, verwenden Sie die Version mit dem Punkt, nicht mit Leerzeichen.
Hinzufügen eines Vektor-Inputs
Klicken Sie auf dem Map Get-Knoten auf den Pin Hinzufügen (+), suchen Sie nach der Option Vector (INPUT.Vector) und klicken Sie darauf.
Daten-Namensräume
Der Text in den farbigen Blöcken der Parameternamen gibt an, aus welchem Namensraum die Daten stammen.
Die Position stammt aus dem PARTICLES-Namensraum, was bedeutet, dass die Daten auf den Partikeln enthalten sind. Diese Daten bleiben während der gesamten Partikel-Lebenszeit von Frame zu Frame beständig.
Der INPUT-Namensraum, der für den Vector verwendet wird, gibt an, dass die Daten aus dem Modul stammen, das der Benutzer direkt modifizieren kann.
Berechnen des Positionsversatzes
Ziehen Sie vom Pin PARTICLES.Position, suchen Sie nach dem Knoten Add und klicken Sie darauf.
Standardmäßig sind die Inputs des Add-Knotens dunkelblau, um zu zeigen, dass es sich um einen Platzhaltertyp namens Niagara Numeric handelt. Er akzeptiert Positionen, Vektoren, Floats und Ganzzahlen. Bei der Verbindung mit anderen Knoten mit bestimmten Typen ändern sich Pin und Verbindungsdraht, um den in diesen Pins verwendeten Datentyp widerzuspiegeln.
Ziehen Sie vom Pin INPUT.Vector zum zweiten Pin des Add-Knotens. Er wird gelb, um zu zeigen, dass es ein Vektor-Typ ist.
Aktualisieren der Daten
Nach dem Hinzufügen des Versatzbetrags (INPUT.Vector) zu PARTICLES.Position müssen die Partikel-Daten mit einem Map Set-Knoten aktualisiert werden.
Klicken Sie im bestehenden Map Set-Knoten auf den Pin Hinzufügen (+), suchen Sie PARTICLES.Position und klicken Sie darauf.
Verbinden Sie den Output des Add-Knotens mit dem „PARTICLES Position“-Pin des „Map Set“-Knotens. Dadurch wird der Wert „PARTICLES.Position“ (Zugriff über den „Map Get“-Knoten) mit dem neuen Wert aktualisiert (überschrieben).
Anwenden von Diagramm-Änderungen
Klicken Sie entweder auf die Schaltfläche Übernehmen oder Übernehmen und speichern, um die Änderungen im Diagramm in das Scratch-Modul und seine Stapeleinträge im Niagara-System zu übernehmen.
Wählen Sie im Systemübersicht-Diagramm den Scratch-Modul-Stapeleintrag Apply Offset im Minimal-Emitter aus. Der in den vorherigen Schritten erstellte Vector-Input ist nun ein gültiger Modul-Input.
Um die Funktionalität des Moduls zu testen, geben Sie einen Wert in den Vector-Input ein und beobachten, wie dieser den visuellen Output des Systems im Niagara-Viewport verändert. In diesem Beispiel verschiebt eine Änderung des Z-Werts von 0 zu 200 die roten Partikel um 200 Einheiten (Zentimeter) nach oben.
Modul-Kontext
Sie können Module so einrichten, dass sie nur in bestimmten Emitter-Kontexten sichtbar und anwendbar sind.
Festlegen der Modulnutzungs-Bitmaske
Klicken Sie im Modul-Diagramm Apply Offset auf eine beliebige Position im Hintergrund des Diagramms. Dadurch werden die Modul-Einstellungen im Details-Panel aufgerufen. Die erste Einstellung in dieser Liste ist die Modulnutzungs-Bitmaske, die definiert, wo das Modul erstellt und wohin es verschoben werden kann. Klicken Sie auf das Dropdown-Menü, um die verschiedenen Kontext-Optionen zu prüfen, zu suchen und festzulegen.
Die folgenden Kontexte sind verfügbar:
Funktion
Modul (standardmäßig aktiviert)
Dynamic Input
Particle Spawn Script (standardmäßig aktiviert)
Particle Update Script (standardmäßig aktiviert)
Particle Event Script (standardmäßig aktiviert)
Particle Simulation Stage Script (standardmäßig aktiviert)
Emitter Spawn Script
Emitter Update Script
System Spawn Script
System Update Script
Sie können beschränken, wo und wie das Modul verwendet werden kann, indem Sie die Elemente im Dropdown-Menü aktivieren oder deaktivieren.
Um dies auszuprobieren, deaktivieren Sie die Option Particle Update Script und klicken dann auf die Schaltfläche Übernehmen.
Wechseln Sie zur Diagrammansicht Systemübersicht und versuchen Sie, den Modul-Stapeleintrag Apply Offset in den Abschnitt Partikelaktualisierung zu ziehen. Die blaue Ablegen-Linie wird nicht zwischen den Einträgen des Emitters angezeigt und es wird ein Warnung-Tooltipp angezeigt: „This module can't be moved to this section of the stack because it's not valid for this usage context.“
Außerdem gilt diese Kontextbeschränkung für die Suchergebnisse dieses eingeschränkten Abschnitts. In diesem Fall erscheint das Modul Apply Offset nicht in der Suche des Abschnitts Partikel-Aktualisierung.
Das Modul „Apply Offset“ ist weiterhin in den Partikel-Spawn-Suchergebnissen verfügbar.
Aktiviere Sie den Kontext Particle Update Script, um diesem Tutorial weiter zu folgen.
Partikel-Spawn und Partikel-Aktualisierung
Module, die sich im Abschnitt Partikel-Spawn des Emitters befinden, werden nur ausgeführt, wenn das Partikel erstellt (gespawnt) wird.
Module aus dem Abschnitt Partikel-Aktualisierung des Emitter werden bei jedem Tick ausgeführt.
Um dies zu demonstrieren, ziehen Sie den Stapeleintrag Apply Offset vom Partikel-Spawn an einen Punkt im Abschnitt Partikel-Aktualisierung. Ändern Sie den Wert des Vektor-Inputs Z zu 1. Im Viewport bewegen sich die roten Punkte nach oben, da der Versatz von 1 cm bei jedem Tick auf die Partikel angewendet wird.
Wenn Sie fertig sind, ziehen Sie es zurück in den Partikel-Spawn-Abschnitt, um dem Tutorial weiter zu folgen.
Drehungsversatz
Es gibt mehrere Möglichkeiten, dem Benutzer (in diesem Fall einem Grafikeffekt-Künstler) die Möglichkeit zu geben, den Versatz um eine Achse zu drehen. In diesem Abschnitt fügen Sie eine Drehung im Modul hinzu. Später im Tutorial lernen Sie, wie Sie dynamische Inputs für von Benutzern eingegebene Daten nutzen können.
Hinzufügen eines Knotens
Rechtsklicken Sie auf den Diagrammhintergrund, suchen Sie nach „Rotation“ und klicken Sie dann auf XYZRotationToQuaternion.
Erstellen von Inputs
Der nächste Schritt ist die Erstellung von Inputs, auf die der Benutzer zugreifen und in die er Werte eingeben kann. Am einfachsten ist es, eine Linie vom gewünschten Pin (in diesem Beispiel X, Y und Z) zum Symbol Hinzufügen (+) im Map Get-Knoten zu ziehen. Dadurch wird ein entsprechender INPUT-Parameter mit demselben Namen und dem korrekten Typ erstellt. Machen Sie das für alle drei Float-Werte (grüne Pins, XYZ) im Knoten Rotation to Quaternion.
Berechnen des Rotationsversatzes
Ziehen Sie vom Pin INPUT.Vector von Map Get, suchen Sie nach dem Knoten Multiply Vector With Quaternion und klicken Sie darauf. Ziehen Sie den Output-Pin des Knotens XYZRotation to Quaternion zum Input-Pin Quaternion im Knoten Multiply Vector with Quaternion.
Verbinden Sie den Output-Pin des Knotens Multiply Vector with Quaternion mit dem zweiten Pin des Add-Knotens und ersetzen Sie den einfachen Wert INPUT.Vector durch den neuen multiplizierten Vector- und Quaternion-Wert.
Anwenden von Rotationsversatz-Änderungen
Klicken Sie auf Übernehmen und speichern und öffnen Sie das Diagramm Systemübersicht.
Wählen Sie den Stapeleintrag Apply Offset aus (im Abschnitt Partikel-Aktualisierung des Emitters) und legen Sie den Y-Wert auf 30 fest. Das bewirkt, dass sich die roten Partikel nach oben und nach rechts verschieben.
Parameter-Tabs
Unter dem Viewport eines Niagara-Systems befinden sich zwei Tabs mit unterschiedlichen Daten- und Interaktionsoptionen.
Parameter
Der Parameter-Tab zeigt sämtliche Parameter, die in einem Niagara-System enthalten sind. Diese umfassen Folgendes:
Systemattribute (wie SYSTEM.Age, SYSTEM.LoopCount)
Emitter-Attribute (wie EMITTER.Age, EMITTER.DistanceTraveled)
Partikel-Attribute (wie PARTICLES.Position, PARTICLES.SpriteSize)
Modul-Outputs (wie OUTPUT.GRIDLOCATION.GridSpacing, OUTPUT.PARTICLESTATE.FirstFrame)
Von Engine geliefert (wie ENGINE.DeltaTime, ENGINE.EMITTER.NumParticles, ENGINE.OWNER.Velocity)
Stadium-Transienten (wie TRANSIENT.FirstFrame, TRANSIENT.ScalabilityExecutionState)
Es gibt auch Überschriften in diesem Tab, die standardmäßig leer sind:
Benutzer-exponiert (identisch mit dem Tab „Benutzerparameter“)
Stapelkontext-sensitiv
Niagara-Parametersammlung
Benutzerparameter
Der Benutzerparameter-Tab zeigt sämtliche Benutzerparameter, die in einem Niagara-System erstellt wurden. Er ist standardmäßig leer. Die Benutzerparameter hier sind dieselben wie im Abschnitt Benutzer-exponiert des Parameter-Tabs.
Ansichtsabhängige Änderungen und Umbenennung
Wenn Sie das Diagramm für ein bestimmtes Modul, wie Apply Offset, betrachten, wird die Parameter-Liste bis zu den Inputs gefiltert, die Ihnen aktuell zur Verfügung stehen.
In diesen Tabs können Sie Ihre Inputs umbenennen (zum Beispiel INPUT.RotationAngleX). Wie in anderen Bereichen von Unreal Engine müssen Sie doppelt auf den Input-Namen klicken oder F2 drücken.
Wenn Sie auf Übernehmen und speichern klicken, werden die neuen Namen im Stapeleintrag des Moduls sichtbar.
Werkzeug „Hierarchie bearbeiten“
Im Fenster Hierarchie bearbeiten können Sie die Inputs ordnen, Tooltipps hinzufügen und Abhängigkeiten verwalten.
Um auf das Interface Hierarchie bearbeiten zuzugreifen, öffnen Sie das Notizblock-Modul, das Sie bearbeiten möchten (in diesem Fall das Modul Apply Offset).
Klicken Sie im Parameter-Tab auf Input-Hierarchie bearbeiten.
Dadurch wird das Fenster Hierarchie bearbeiten geöffnet.
Ziehen Sie die relevanten Inputs aus der linken Spalte in die mittlere Spalte, wo die blaue Hervorhebung erscheint.
Ziehen Sie die Inputs in der mittleren Spalte, um ihre Reihenfolge zu ändern.
Standardwerte
Wie im Details-Panel können Sie auch auf die Standardwerte und Variablen-Einstellungen des Elements zugreifen.
Standardmodus: Zu den Optionen gehören Bindung, Benutzerdefiniert, Fehler wenn zuvor nicht festgelegt sowie der Standardwert.
Standardwert: Basierend auf dem Typ, etwa Float oder Vektor.
Tooltipp (und Lokalisierungsoptionen): Fügen Sie hilfreiche Implementierungsdetails, Einheiten, Vorbehalte oder andere Hinweise hinzu, die für Benutzer nützlich sind.
Anzeigeeinheit: Zu den Optionen gehören Zentimeter, Lumen, Stunden, Gigabyte, Gramm, Grad und die Voreinstellung Nicht festgelegt.
Erweiterte Anzeige: Standardmäßig False.
Anzeige im Übersichtsstapel: Standardmäßig False.
Sortierpriorität für Inline-Parameter und Farbüberschreibung: Standardmäßig deaktiviert.
Bedingung bearbeiten und Sichtbarer Zustand (Input-Name and Zielwerte): Standardmäßig Keine und 0 Elemente.
Eigenschaft-Metadaten: Standardmäßig 0 Elemente.
Alternative Aliase für Variable: Standardmäßig 0 Elemente.
Widget-Typ: Standard.
Min. Wert: Standardmäßig 0.
Max. Wert: Standardmäßig 1.
Stufenbreite: Standardmäßig 1.
Wertänderung nur bei Commit senden: False (auf „True“ setzen, wenn Werte nur bei Übertragung aktualisiert werden sollen, nicht bei Eingabe).
Tooltipps
Fügen Sie Text im Feld Tooltipp des Inputs Rotation Angle X hinzu und klicken Sie auf Übernehmen oder Übernehmen und speichern.
Wechseln Sie dann zum Diagramm Systemübersicht, wählen Sie das Modul Apply Offset aus und ziehen Sie den Mauszeiger auf die Option Rotate Angle X im Details-Panel. Ihr Tooltipp ist die erste Zeile im Popup, gefolgt von den Name- und Typ-Informationen des Inputs, über den Sie mit der Maus fahren.
Anzeigeeinheit
Ändern Sie im Fenster Hierarchie bearbeiten (oder im Details-Panel) die Anzeigeeinheit des Werts. Wählen Sie den Input Rotation Angle X aus und ändern Sie die Anzeigeeinheit von Nicht festgelegt zu Grad.
Ändern Sie dann die Anzeigeeinheit des Vektor-Inputs zu Zentimeter.
Lokale Parameter
Beim Erstellen komplexer Module können Sie lokale Parameter nutzen, um Ihr Moduldiagramm übersichtlich und gut lesbar zu gestalten. Die Aufteilung des Diagramms nach Operationen ist eine gängige und allgemein empfohlene Herangehensweise.
Lokale Parameter existieren nur im Modul und sind nicht von Frame zu Frame beständig. Sie werden oft zur temporären Speicherung von Werten in einem Diagramm genutzt.
Geteilte Inputs zwischen verschiedenen „Map Get“ und „Map Set“
Rechtsklicken Sie auf den Pin PARTICLES.Position von Map Get und klicken Sie auf Entfernen. Trennen Sie den Knoten (Alt + Klicken).
Fügen Sie in der Nähe des Knotens Multiply Vector with Quaternion einen Map Set-Knoten hinzu (im Kontextmenü aufgeführt als Parameter Map Set). Verbinden Sie ihn mit der Linie Niagara Parameter Map zwischen dem Input-Knoten und dem Knoten Map Set.
Ziehen Sie den Output-Pin Multiply Vector with Quaternion zum Symbol Hinzufügen (+) auf Map Set. Dadurch wird ein lokaler Parameter mit demselben Namen und Typ wie der Pin erstellt, von dem Sie gezogen haben. In diesem Fall wird LOCAL.Vector erstellt. Benennen Sie dies mit einem beschreibenderen Namen um (z. B. LOCAL.Offset).
Ziehen Sie auf der rechten Seite des Map Set-Knotens vom weißen Dest-Pin, suchen Sie nach der Option Map Get und klicken Sie darauf.
Klicken Sie auf Hinzufügen (+) und wählen Sie dann LOCAL.Offset aus dem vorherigen Schritt aus.
Jetzt können Sie diesen zwischengespeicherten Wert in einem anderen organisierten Abschnitt des Diagramms verwenden.
Umbrechen und neu anordnen
Beim Neuanordnen oder Hinzufügen von Knoten in einem Unreal Engine-Diagramm müssen Sie möglicherweise die Drähte trennen, die bestimmte Knoten verbinden. Verwenden Sie Alt + Linksklick auf einem Pin oder Draht, um die Verbindung zu trennen.
Um eine Pin-Verbindung stattdessen zu greifen und zu verschieben, halten Sie Strg + Linksklick gedrückt, um den Draht aufzunehmen. Lassen Sie über einem gültigen Pin los. Die Verbindung wird gelöscht, wenn Sie sie über einem leeren Diagrammraum freigeben.
Um einen Pin zu entfernen, umzubenennen, neu anzuordnen oder andere Aktionen an ihm durchzuführen, rechtsklicken Sie, um ein Menü aufzurufen, und klicken dann auf die gewünschte Aktion.
Transformationsraum und Positionsversatz
Es gibt drei verschiedene Transformationsraum-Arten:
Simulation: Berechnungen werden in dem Kontext (lokal oder Welt) durchgeführt, der im Eigenschaften-Abschnitt des Emitters festgelegt ist, wobei Lokaler Raum entweder auf True oder False gesetzt wird.
Welt: Berechnungen werden im Kontext der Weltwerte durchgeführt.
Lokal: Berechnungen werden im Kontext des Systems selbst durchgeführt, unabhängig davon, wo es sich in der Welt befindet.
Vom Benutzer festgelegter Transformationsraum
Geben Sie dem Benutzer in diesem Beispiel die Option, zu wählen, welcher Transformationsraum in diesem Modul verwendet werden soll.
Erstellen Sie einen Knoten Transform Vector. Ziehen Sie den Versatz-Pin von Map Get zum InVector-Pin des Transform Vector-Knotens.
Damit der Benutzer Source Space als Input festlegen kann, ziehen Sie den Pin Source Space des Knotens Transform Vector zurück zum Symbol Hinzufügen (+) des Knotens Map Get. Dies erstellt einen Input mit demselben Namen und Typ.
Fügen Sie einen weiteren Map Set-Knoten hinzu und verbinden Sie ihn zwischen dem vorherigen „Map Set“ und dem finalen „Map Set“. Erstellen Sie einen LOCAL.Offset-Eintrag auf dem Map Set-Knoten und ziehen Sie ihn zum OutVector-Pin von Transform Vector.
Neuimplementierung des Positionsversatzes
Erstellen Sie vom neuen Map Set-Knoten einen Map Get-Knoten und klicken Sie auf die Schaltfläche Hinzufügen (+), um auf die LOCAL.Offset-Variable zuzugreifen.
Klicken Sie anschließend auf die Schaltfläche Hinzufügen (+) , um auf den Parameter PARTICLES.Position zuzugreifen.
Fügen Sie LOCAL.Offset zu PARTICLES.Position hinzu, indem Sie den zuvor verwendeten Add-Knoten verwenden.
Möchten Sie die Reihenfolge der Elemente in einem Knoten ändern, rechtsklicken Sie auf eines der Elemente und klicken dann auf Pin verschieben.
Verbinden Sie den Add-Knoten mit dem Map Set-Knoten über den PARTICLES.Position-Pin und ziehen Sie Dest zum letzten Output-Modul.
Übernehmen der Änderungen
Klicken Sie auf Übernehmen oder Übernehmen und Speichern und öffnen Sie dann das Systemübersicht-Diagramm. Wählen Sie den Minimal-Emitter und dann den Stapeleintrag Apply Offset darauf. Im Details-Panel gibt es nun eine Source Space-Input-Option.
Hinzufügen von Kommentaren
Kommentare gruppieren Knoten visuell und umfassen oft Text, der diesen Teil des Diagramms beschreibt, oder andere Hinweise, die für den entsprechenden Abschnitt relevant sind. Wie bei textbasiertem Code ist es auch hier ein bewährtes Verfahren, während der Arbeit Kommentare zu ergänzen. Kommentare machen es anderen Entwicklern einfacher, Ihre Entscheidungen zu verstehen.
Öffnen Sie das Diagramm Scratch-Modul. Wählen Sie Knoten im Diagramm aus und drücken Sie C, um einen Kommentar zu erstellen. Benennen Sie ihn um, sodass er beschreibend ist (z. B. Initial Offset Vector).
Wenn das Kommentarfeld ausgewählte ist, zeigt das Detail-Panel die verfügbaren Einstellungen an: Farbe, Schriftgröße, Blase beim Zoomen anzeigen, Farbblase, Verschiebemodus und das Details-Feld.
Durch das Kommentieren liefern Sie visuelle und Text-Informationen dazu, was in den einzelnen Abschnitten des Diagramms passiert. Kommentare zu diesem Beispieldiagramm könnten folgende sein: Initial Offset Vector, Transform Into Space und Set Position. Jedes Kommentarfeld enthält den anfänglichen Map Get- und den nachfolgenden Map Set-Knoten, wobei der nächste Map Get den nächsten Abschnitt beginnt.
Modul-Outputs
Modul-Outputs können dem Benutzer zusätzliche Daten liefern, ohne Partikeldaten eingeben zu müssen. Da Emitter Stapeleinträge von oben nach unten ausgeführt werden, sind die Modul-Output-Daten nur für Stapeleinträge darunter verfügbar. Es kann hilfreich sein, die Outputs und andere Parameter zu kennen, die in sie geschrieben wurden, wenn Sie herausfinden, wie Sie mit den Daten in Ihrem Partikel-System arbeiten können.
Anzeigen von Parameter-Schreibvorgängen
Wählen Sie ein beliebiges Modul im Minimal-Emitter aus. Wählen Sie im Details-Panel das Zahnrad-Symbol (⚙️) und aktivieren Sie Anzeigen von Parameter-Schreibvorgängen. Der Abschnitt Parameter-Schreibvorgänge ist standardmäßig eingeklappt. Klicken Sie auf den Pfeil (🔽), um die Liste zu erweitern und alle Outputs zu sehen, in die der Stapeleintrag schreibt.
Im Notizblock-Modul-Stapeleintrag Apply Offset unten enthält der Abschnitt Parameter-Schreibvorgänge nur PARTICLES.Position.
Verwenden von Modul-Outputs
Wählen Sie den Modul-Stapeleintrag Grid Location aus und vergrößern Sie den Abschnitt Parameter-Schreibvorgänge. Er schreibt in PARTICLES.Position und in andere Output-Parameter.
Als Beispiel verwenden wir OUTPUT.GRIDLOCATION.GridUVW, um die Farbe unserer Partikel zu ändern.
Um das zu demonstrieren, öffnen Sie den Stapeleintrag Spawn Particles in Grid und ändern die X-, Y- und Z-Werte zu 10. Sie sehen eine würfelförmige Gruppe von Partikeln, anstatt einer Linie.
Klicken Sie dann im Abschnitt Partikel-Spawn des Emitters auf die Schaltfläche Hinzufügen (+), um ein Farb-Modul zu erstellen.
Verwenden Sie das Dropdown-Menü neben dem Farb-Auswahlfeld, suchen Sie nach Make Linear Color from Vector und Float und klicken Sie darauf.
Verwenden Sie das Dropdown-Menü neben dem neuen Feld Vektor (RGB) und klicken Sie auf OUTPUT.GRIDLOCATION.GridUVW.
Nun werden die RGB-Werte durch die OUTPUT.GRIDLOCATION.GridUVW-Informationen bestimmt.
Erstellen von Modul-Outputs
Öffnen Sie das Notizblock-Modul-Diagramm Apply Offset. Ziehen Sie im Kommentarabschnitt Set Position (das letzte Map Get und Map Set) den Pin „LOCAL.Offset“ von „Map Get“ zum Pin Hinzufügen (+) des Map Set-Knotens.
Doppelklicken Sie auf einen Verbindungsdraht, um einen Umleitungsknoten zu erstellen, und verschieben Sie ihn anschließend nach Bedarf, um die Überlappung zu verringern und die Sichtbarkeit im Diagramm zu erhöhen. Sie können auch manuell Umleitungsknoten über das Kontextmenü des Diagramms erstellen.
Rechtsklicken Sie auf den neuen LOCAL.Offset-Pin im Map Set-Knoten. Klicken Sie auf Change Namespace > Output.
Dies ändert den Namensraum LOCAL zu OUTPUT. Es fügt außerdem einen Namensraum-Modifikator (z. B. MODULE) hinzu und hängt den Modulnamen an (Apply Offset). Das Ergebnis ist OUTPUT.MODULE.Offset im Map Set-Knoten.
Klicken Sie auf Übernehmen und öffnen Sie das Diagramm Systemübersicht. Wählen Sie den Stapeleintrag Apply Offset des Minimal-Emitters und erweitern Sie den Abschnitt Parameter-Schreibvorgänge im Details-Panel. Der Parameter OUTPUT.APPLYOFFSET.Offset befindet sich in der Liste und kann von allen Modul-Stapeleinträgen darunter verwendet werden.
Direktes Festlegen des Parameters
Fragen wir zum Beispiel den Versatz ab. Klicken Sie auf die Schaltfläche Hinzufügen (+), um einen Stapeleintrag Set Parameters unter dem Stapeleintrag Apply Offset zu erstellen. Dieses Modul erscheint als Set new or existing parameter directly im Suchmenü.
Klicken Sie im Details-Panel auf die Schaltfläche Hinzufügen (+), um ein Vektor-Element (PARTICLES.Vector) in der Liste zu erstellen.
Klicken Sie in dem neuen Eintrag auf den Pfeil, um das Typ-Menü zu öffnen. Suchen Sie OUTPUT.APPLYOFFSET.Offset und klicken Sie darauf.
Dynamische Modul-Inputs
Beim Schreiben eines Modul-Scripts gibt es einige Optionen, bei denen die Funktionalität eingerichtet werden kann. Es sind viele dynamische Inputs verfügbar, die dem Benutzer bei der Implementierung mehr Optionen und Möglichkeiten geben können.
Zum Beispiel können Sie das Quaternion im Modul Apply Offset nachbearbeiten. Öffnen Sie das Diagramm Apply Offset und navigieren Sie zum ersten Map Get im Diagramm (das mit den separaten X-, Y- und Z-Map-Get-Inputs, die mit dem Quaternion-Knoten verbunden sind).
Die Handhabung des Quaternion auf diese Weise hat einige Einschränkungen. Der Drehwinkel wird separat als X, Y und Z angegeben und setzt voraus, dass der Winkeltyp in Grad angegeben wird. Das sind die einzigen Optionen, die dem Benutzer zur Verfügung gestellt werden.
Es könnte für den Benutzer praktischer sein, das Quaternion als Input freizugeben und dann die bereits bestehenden dynamischen Inputs die Arbeit erledigen zu lassen. In diesem Fall können Sie statt der Drehung im ersten Map Get das Quaternion direkt verwenden.
Einrichten dynamischer Inputs
Rechtsklicken Sie und entfernen Sie die X-, Y- und Z-Pins vom ersten Map Get-Knoten. Löschen Sie außerdem den Knoten XYZRotation to Quaternion.
Klicken Sie in „Map Get“ auf den Pin Hinzufügen (+), um nach INPUT.Quaternion (Quat) zu suchen, und klicken Sie darauf. Geben Sie ihm einen beschreibenden Namen (z. B. INPUT.RotationQuaternion). Ziehen Sie den Pin zum Quaternion-Pin des Knotens Multiply Vector With Quaternion.
Klicken Sie auf Übernehmen und öffnen Sie das Diagramm Systemübersicht. Rotation Quaternion ist nun im Details-Panel des Moduls Apply Offset verfügbar, und die separaten X-, Y- und Z-Optionen wurden entfernt.
Verwenden dynamischer Inputs
Öffnen Sie im Stapeleintrag Apply Offset des Emitters die Dropdown-Liste für das Element Rotation Quaternion, suchen Sie nach Make Quaternion und klicken Sie darauf.
Ein Benutzer kann nun alle durch den dynamischen Input vordefinierten Optionen wählen. Er kann den Angle Typ ändern, XYZ Rotations als Quaternion From auswählen und einen anderen Koordinatenraum angeben. Das sind alles integrierte Optionen, die Niagara bereitstellt.
Überlegungen
Wenn Sie herausfinden, wie Sie die Module erstellen und präsentieren, bedenken Sie, was am einfachsten zu verwalten ist und was für den Benutzer am mächtigsten und am besten anwendbar ist. Versuchen Sie, ein Gleichgewicht zwischen dem, was für Ihren Endbenutzer flexibel ist, und dem, was nicht zu offen ist, zu finden.
Der Nachteil in diesem Fall ist, dass ein „Rotation Quaternion“ für den Benutzer etwas esoterisch oder unklar sein könnte.
Fügen Sie Ihren Inputs Tooltipps hinzu, um solche potenziellen Hindernisse anzugehen. Wählen Sie den Input aus der Parameter-Liste aus und geben Sie einen Tooltipp in das Tooltipp-Feld des Details-Panel ein. Für diesen Input können Sie etwas eingeben wie „Dynamischen Input Make Quaternion verwenden“. Dies gibt dem Benutzer einen klaren nächsten Schritt vor.
Klicken Sie auf Übernehmen. Öffnen Sie das Diagramm Systemübersicht, wählen Sie das Modul Apply Offset aus und fahren Sie mit der Maus über das Element Rotation Quaternion im Details-Panel. Der benutzerdefinierte Text wird als erste Zeile im Tooltipp angezeigt.
Modul-Notizen
Jedes Modul, einschließlich Notizblock-Modulen, hat ein Notiz-Feld. Diese Modul-Verwendungshinweise erscheinen oben im Details-Panel, wenn der Stapeleintrag eines Moduls in einem Emitter ausgewählt wird. Sie können hier Informationen über die Funktionsweise des Moduls eintragen, einschließlich Eigenheiten der Nutzung und Hinweise zur Abhängigkeit.
Hinzufügen von Modulnotizen
Um die Option zu finden und zu bearbeiten, klicken Sie auf den Diagramm-Hintergrund, um die Auswahl möglicher Knoten aufzuheben. Dadurch wird das Details-Panel mit Informationen zum Modul als Ganzes gefüllt und nicht nur zu einem bestimmten Teil davon. Geben Sie Informationen über das Modul in das Feld Hinweis-Meldung ein.
Für das Scratch-Modul Apply Offset könnte ein hilfreicher Tooltipp lauten: „Dieses Modul wendet einen Versatz auf die Partikelposition an. Verwenden Sie den dynamischen Input Make Quaternion als Werkzeug zur Bereitstellung des Quaternion.“
Anzeigen der Modulhinweise
Klicken Sie auf „Übernehmen“ und öffnen Sie dann das Diagramm Systemübersicht. Wählen Sie den Scratch-Modul-Stapeleintrag Apply Offset aus. Der Modulverwendungshinweis erscheint dann oben im Details-Panel.
Verwerfen und Anzeigen von Notizen
Hinweise (und andere Probleme oder Warnungen) im oberen Bereich des Details-Panel können durch einen Klick auf Verwerfen ausgeblendet werden.
Hinweise können wieder sichtbar gemacht werden, indem Sie oben im Modul auf das Zahnrad-Symbol (⚙️) und dann auf Verwerfen aller Stack-Probleme aufheben klicken.
Wenn er bei einem Stapeleintrag verworfen wird, erscheint der Abschnitt Hinweise bei neu hinzugefügten Stapeleinträgen desselben Modultyps.
Verwalten von Parametern
Alle Parameter und Inputs werden im Parameter-Tab aufgeführt.
Die Liste kann Parameter und Inputs umfassen, die in Ihrem Modul nicht mehr verwendet werden.
Parameter-Verwendungsstatistiken
Am einfachsten erkennen Sie, welche Parameter und Inputs bereinigt werden müssen, indem Sie das Feld rechts neben jedem Input prüfen. Dies zeigt die Referenzen für Lese- und Schreibvorgänge für jeden Input. In diesem Fall werden alle drei INPUT.RotationAngle-Parameter (X, Y und Z) nicht verwendet, da diese Einträge alle mit 0 Lese- und 0 Schreibvorgängen (0|0) aufgeführt sind.
Entfernen nicht verwendeter Parameter
Auch wenn ihre Verwendungen aus einem Moduldiagramm gelöscht werden, verbleiben Parameter in der Parameter-Liste. Sie müssen sie manuell löschen, wenn Sie sie nicht mehr benötigen.
Um nicht verwendete Parameter wie diese zu entfernen, wählen Sie sie in der Parameterliste aus und drücken die Entf-Taste. Sie können auch einen Rechtsklicken auf den Parameter machen und dann auf Entfernen klicken.
Daten-Interfaces
Diese besonderen Datentypen nehmen Informationen aus dem allgemeinen Editor und leiten sie an Niagara weiter, damit Sie diese nutzen können, um Ihre Partikel zu steuern oder Ihre Simulation zu beeinflussen.
Zugreifen auf Daten-Interfaces
Um Zugriff auf Daten-Interfaces zu erhalten, öffnen Sie Ihr Scratch-Modul-Diagramm. Klicken Sie auf einem Map Get-Knoten auf den Pin Hinzufügen (+), um das Dropdown-Menü Make New zu öffnen. Klicken Sie auf Daten-Interface, um eine Liste der Optionen anzuzeigen.
Die meisten dieser Daten-Interfaces verfügen Module, die bereits in der Engine geschrieben wurden. Manchmal möchten Sie diese Funktionalität vielleicht direkt zu Ihrem Scratch-Modul hinzufügen.
Arbeiten mit Daten-Interfaces
Für dieses Beispiel erzeugen Sie Raum zwischen den Abschnitten „Transform Into Space“ und „Set Position“ im Diagramm.
Fügen Sie einen Map Set-Knoten vor dem Set Position-Abschnitt hinzu und leiten Sie die Pins um. Verbinden Sie Map Set von Transform Into Space mit dem neuen Map Set-Knoten und ziehen Sie den Dest-Pin von „Map Set“ in das Map Get in Set Position und das nachfolgende Map Set.
Erstellen Sie einen Map Get-Knoten und fügen Sie einen INPUT.CameraQuery-Input hinzu.
Ziehen Sie den Pin INPUT.CameraQuery auf einen leeren Bereich im Diagramm, um das Menü Source Filtering zu öffnen. Der erste Eintrag ist spezifisch für das ausgewählte Daten-Interface und listet im erweiterten Zustand alle Methoden auf, die für dieses Daten-Interface verfügbar sind.
Klicken Sie für dieses Beispiel auf Get Camera Properties CPU/GPU. Dadurch erhalten Sie Camera Position, Forward Vector, Up Vector und Right Vector (alle im Welt-Kontext). Sie können diese Daten verwenden, um einen Versatz zur Kamera hin oder von ihr weg anzuwenden.
Fügen Sie einen INPUT.Float zu Map Get hinzu und geben Sie ihm einen beschreibenden Namen (z. B. CameraOffsetScale).
Verwenden Sie einen Multiply-Knoten, um Forward Vector World mit dem neuen Float INPUT.CameraOffsetScale zu multiplizieren.
Fügen Sie LOCAL.Offset zum Knoten Map Get hinzu. Fügen Sie ihn zum Ergebnis des Multiply-Knotens hinzu.
Fügen Sie im „Map Set“-Knoten in diesem neuen Abschnitt LOCAL.Offset hinzu. Verbinden Sie dann das Ergebnis des Hinzufügen-Knotens mit dem Pin LOCAL.Offset.
Verwenden des Daten-Interface
Klicken Sie auf Übernehmen und öffnen Sie das Diagramm Systemübersicht. Wählen Sie den Scratch-Modul-Stapeleintrag Apply Offset aus. Das Details-Panel hat nun einen Abschnitt Camera Query mit zusätzlichen Optionen für den Benutzer, einschließlich des Float-Inputs Camera Offset Scale.
Ändern Sie die Kamera-Versatz-Skalierung zu -200, um den Versatz in Aktion zu sehen.
Ausblenden der Felder
Als Modul-Autor können Sie Felder ausblenden, die Sie nicht erwarten oder die der Benutzer nicht verändern soll.
In diesem Beispiel können Sie davon ausgehen, dass der Benutzer die Felder Player Controller Index und Require Current Frame Data nicht bearbeiten muss. Daher können Sie diese Optionen ausblenden.
Öffnen Sie das Notizblock-Modul-Diagramm Apply Offset. Aktivieren Sie im Details-Panel (oder in der Ansicht Hierarchie bearbeiten) die Option Erweiterte Anzeige. Damit legen Sie fest, ob der Input sichtbar sein soll, wenn der Benutzer den Abschnitt Erweitert erweitert hat.
Wählen Sie im Systemübersicht-Diagramm den Stapeleintrag Apply Offset. Im Details-Panel sind die zusätzlichen Daten-Interface-Informationen nun im Abschnitt „Erweiterte Optionen“ ausgeblendet. Die Informationen können angezeigt werden, indem Sie den Abschnitt „Erweitert“ des Panels öffnen. Klicken Sie auf die Pfeil-Schaltfläche, um diesen Abschnitt zu erweitern. Klicken Sie erneut, um ihn einzuklappen.
Dieser Aufbau erlaubt es fortgeschrittenen Benutzern, diese Einstellungen zu ändern, etwa wenn sie mit einem Splitscreen-Spiel arbeiten und die Kamera manuell einstellen wollen, während er für die meisten Benutzer, die diese Einstellungen nicht ändern müssen, übersichtlicher ist.
Sie können das Interface Hierarchie bearbeiten nutzen, um den Input Camera Offset Scale im Details-Panel verfügbar zu machen, auch wenn sich Ihre Camera Query im Abschnitt Advanced befindet.
Öffnen Sie im Notizblock-Moduldiagramm den Tab Parameter und danach das Panel Hierarchien bearbeiten. Ziehen Sie INPUT.CameraOffsetScale aus der linken Spalte in die mittlere Spalte, um die Reihenfolge zu ändern.
Klicken Sie auf Übernehmen. Wählen Sie im Systemübersicht-Diagramm den Modul-Stapeleintrag Apply Offset aus. Im Details-Panel ist der Input Camera Offset Scale in der Hauptliste der Inputs enthalten, auch wenn das Erweitert-Panel eingeklappt ist.
Benutzerparameter
Mit Benutzerparametern können Sie Niagara-Einstellungen ändern, ohne das Niagara-System oder das Modul-Diagramm öffnen und bearbeiten zu müssen. Wenn ein Niagara-System zu einem Level hinzugefügt wird, sind die Benutzerparameter im Details-Panel des Assets verfügbar. Dies kann Workflows beschleunigen, da Benutzer diese Parameter direkt im Kontext der Szene anpassen können.
Mit den Benutzerparametern sind Kosten verbunden. Jedes Mal, wenn ein Benutzerparameter angepasst wird, werden die Parameter an den entsprechenden Ausführungskontext übertragen und alle Parameter innerhalb desselben Kontexts werden aktualisiert:
System- und Emitter-Spawn
System- und Emitter-Aktualisierung
Partikel-Spawn und Partikel-Aktualisierungen (nach Emitter)
Simulationsphasen
Von der Verwendung eines Daten-Interface als Benutzerparameter wird aus Performance-Gründen allgemein abgeraten. Die Engine erstellt pro Instanz eine Kopie des Daten-Interface und da sie UObjects sind, werden sie von der Garbage Collection bereinigt. Die Hauptkosten eines Daten-Interface entstehen bei der Erstellung einer Instanz. Nachdem sie erstellt wurde, hat sie den gleichen Overhead, als befände sie sich an einer anderen Stelle im Stapel.
Heraufstufen eines Modul-Inputs
Modul-Inputs können zu Benutzerparametern heraufgestuft werden. Befolgen Sie diese Schritte, um einen Modul-Input heraufzustufen.
Wählen Sie im Minimal-Emitter des Systemübersicht-Diagramms den Stapeleintrag „Apply Offset“ aus.
Klicken Sie auf die Dropdown-Liste „Dynamischer Input“ neben dem „Camera Offset Scale“-Input.
Suchen Sie nach der Option „Read from new User parameter“ und klicken Sie darauf.
Ein neuer Benutzerparameter wird mit demselben Namen und Wert wie im Details-Panel-Feld erstellt. Der Anzeigename für diesen Parameter ist USER Camera Offset Scale. Wenn Sie auf diesen oder andere Benutzerparameter im Code oder in Blueprints zugreifen möchten, muss er als USER.CameraOffsetScale oder User.CameraOffsetScale formatiert werden.
Bearbeiten von Benutzerparametern
Der Parameter-Tab zeigt Benutzerparameter, aber sie können im Interface nicht bearbeitet werden. Der Benutzerparameter-Tab bietet ein Feld zur Bearbeitung von Werten. Ändern Sie für dieses Tutorial USER Camera Offset Scale zurück auf 0.
Verwenden der Benutzerparameter
Öffnen Sie ein Level und ziehen Sie das Niagara-System (in diesem Beispiel NS_Minimal) in die Szene. Wählen Sie das Niagara-System im Outliner aus. Erweitern Sie im Details-Panel den Abschnitt Benutzerparameter. Der Benutzerparameter Camera Offset Scale ist in der Liste enthalten. Das bedeutet, dass ein Benutzer diese Parameter interaktiv im Kontext der Welt festlegen kann, statt im Niagara-Viewport.
Statische Schalter
Statische Schalter steuern den Script-Ablauf. Sie sind hilfreich, wenn Sie bestimmte Teile Ihres Diagramms im Modul nur unter bestimmten Umständen kompilieren wollen.
Implementieren statischer Schalter
In diesem Beispiel erstellen Sie einen Schalter für den Parameter USER.CameraOffsetScale. Vielleicht soll der Endbenutzer ihn selten verwenden, sodass der Code meistens nicht im Emitter verfügbar sein muss.
Öffnen Sie das Scratch-Modul-Diagramm Apply Offset und navigieren Sie zu dem Abschnitt mit USER.CameraOffsetScale.
Rechtsklicken Sie in diesem Abschnitt und erstellen Sie einen Static Switch-Knoten.
Benennen Sie den statischen Schalter mit einem beschreibenden Namen um (z. B. Use Camera Offset).
Der statische Schalter erwartet einen Typ (oft nummerisch, aber nicht immer). Fügen Sie einen Typ hinzu, indem Sie auf den Pin Hinzufügen (+) klicken. Suchen Sie in diesem Beispiel nach dem Typ Niagara Parameter Map und wählen Sie ihn aus.
Ziehen Sie den Map Set-Output von „Camera Offset“ zum „Static Switch“-Knoten. Ziehen Sie dann den „Static Switch“-Output zu Map Get und Map Set im Abschnitt „Set Position“.
Verwenden Sie Strg + Klicken, um Verbindungsdrähte aufzunehmen und zu einem anderen Pin zu verschieben.
Verbinden Sie dann Map Set des Abschnitts „Transform Into Space“ mit dem False-Pin des Static Switch-Knotens.
Wenn der Static Switch False ist, überspringt er den Abschnitt Camera Offset (bzw. kompiliert ihn aus) und geht direkt vom Abschnitt Transform Into Space zum Schalter und dann zum folgenden Abschnitt Set Position. Ist er True ist, werden die „Camera Offset“-Knoten verwendet.
Einstellungen des statischen Schalters
Standardmäßig ist der Typ von Static Switch Boolean. Andere Optionen stehen zur Verfügung, aber in diesem Beispiel verwenden wir den Standard Boolean. Der Standardwert kann auf True oder False gesetzt werden. Belassen Sie ihn für dieses Beispiel auf False. Der Pin Expose as kann für dieses Tutorial auch auf False belassen werden. Wird er auf True gesetzt, wird ein Pin für die Einstellung auf dem Knoten im Diagramm angezeigt, was eine Möglichkeit schafft, diesen Wert mithilfe der Daten im Diagramm festzulegen.
Verwenden des statischen Schalters
Öffnen Sie das Systemübersicht-Diagramm und wählen Sie den Scratch-Modul-Stapeleintrag Apply Offset. Das Details-Panel enthält nun die Option Use Camera Offset. Solange die Option auf False gesetzt ist, werden keine anderen Kamera-Versatz-Optionen in der Liste erscheinen, und die übersprungenen Knoten wirken sich nicht auf den Emitter aus. Die Informationen zu Camera Data Interface wurden ebenfalls aus dem Optionsabschnitt Erweitert entfernt.
Solange die Option auf True gesetzt ist, werden die Knoten Camera Offset kompiliert und alle relevanten Optionen (sowohl innerhalb als auch außerhalb des Abschnitts Erweitert) sind im Details-Panel verfügbar.
Freigeben von Scratch-Modulen
Um Ihr Modul mit anderen Niagara-Systemen oder dem Rest Ihres Teams zu teilen, müssen Sie Ihr Scratch-Modul als Niagara-Modul-Script-Asset exportieren.
Öffnen Sie das Diagramm Apply Offset und klicken Sie auf den Tab Lokale Module. Rechtsklicken Sie auf den Namen des aufgelisteten Moduls und dann auf Asset erstellen.
Dadurch wird das Fenster Script erstellen als geöffnet. Benennen Sie Ihr Modul (z. B. NMS_ApplyOffset) und wählen Sie den Ordner aus, in dem dieses Asset gespeichert werden soll. Klicken Sie dann auf Speichern.
Das Asset wird erstellt und Sie können über den Inhaltsbrowser darauf zugreifen.
Die Engine öffnet dann automatisch das neue Niagara-Modul-Script-Asset.
Sichtbarkeit der Bibliothek
Das Erste, was Sie im Niagara-Modul-Skript-Asset ändern sollten, ist das Flag Library Visibility im Script-Details-Panel.
Standardmäßig ist die Sichtbarkeit auf „Unexposed“ gesetzt, was bedeutet, dass die Bibliothek nicht in Menüs und Suchen mit der aktivierten Option Library Only erscheint (was standardmäßig der Fall ist).
Um dies zu demonstrieren, öffnen Sie Ihr Niagara-System und suchen über die Schaltfläche „Hinzufügen +“ nach ApplyOffset. Das einzige Ergebnis ist der Notizblock und nicht das gerade erstellte NMS-Asset (das als Spiel gelistet würde).
Es gibt zwei verschiedene Möglichkeiten, das zu handhaben, abhängig davon, wie auffindbar das Niagara-Modul-Script-Asset sein soll.
„Unexposed“ und „Library Only“ deaktiviert
Eine Option ist es, das Modul auf Unexposed gesetzt zu lassen und die Filteroption Library Only in Ihrer Workstation auf False zu setzen. Das kann wünschenswert sein, wenn Sie möchten, dass das Modul über die Standard-Filtereinstellungen nicht so einfach für die Benutzer zugänglich ist. Wenn jemand anderes dieses Modul verwenden möchte, muss er wissen, dass er die Option Library Only in seinem Fenster Add New Module deaktivieren muss.
„Exposed“ und „Library Only“ aktiviert
Die andere Option besteht darin, die Library Visibility des Niagara-Modul-Script-Assets zu Exposed zu ändern. Dadurch ist das Modul besser auffindbar, da es im Menü Add New Module mit den standardmäßigen Filteroptionen angezeigt wird (Library Only ist auf True gesetzt). Dies ist ideal für Module, die für Ihr Team oder andere Endbenutzer leicht zugänglich sein sollen.
Öffnen Sie das Niagara-Modul-Script-Asset, ändern Sie Library Visibility zu Exposed und klicken Sie dann auf Kompilieren und Speichern.
Um dies in Aktion zu sehen, öffnen Sie ein beliebiges Niagara-System und klicken auf die Schaltfläche Hinzufügen (+) und suchen nach Apply Offset. Im Gegensatz zu zuvor ist das Niagara-Modul-Script-Asset (mit der Bezeichnung Game) in den Suchergebnissen enthalten, während die Option Library Only auf True gesetzt ist.
Modulnutzungs-Bitmaske
Sehen Sie sich die Modulnutzungs-Bitmaske des neuen Niagara-Modul-Script-Assets an, um sicherzustellen, dass die Einstellungen für die beabsichtigte Funktionalität dieses Moduls angemessen sind.
Beschreibungsfeld
Text im Beschreibungsfeld des Niagara-Modul-Scripts ist im Tooltipp enthalten, der angezeigt wird, wenn Sie mit der Maus im Menü Neues Modul hinzufügen über das Modul fahren. Nehmen Sie hier alle Informationen auf, die einem Benutzer bei der Entscheidung helfen, ob er dieses Modul verwenden will. Erläutern Sie zum Beispiel, was es tun soll, welche Umstände mehr oder weniger ideal für den Einsatz dieses Moduls sind und welche anderen Faktoren es für die kreativen oder technischen Ziele Ihres Benutzers mehr oder weniger relevant machen könnten.
Hinweis-Meldung
Wenn ein Niagara-Script-Modul aus einem Scratch-Modul erstellt wird, wird das Note-Feld automatisch mit dem Text ausgefüllt, der im Scratch-Modul enthalten war. Wenn Ihr Scratch-Modul keinen Note-Text umfasst, ist dies leer. Die Nachricht wird oben im Details-Panel angezeigt, wenn der Stapeleintrag des Moduls in einem Emitter ausgewählt wird.
Schlüsselwörter
Schlüsselwörter helfen dabei, das Niagara-Modul-Script bei der Menüsuche besser auffindbar zu machen. Schlüsselwörter sollten durch Leerzeichen getrennt werden. Das Schlüsselwörter-Feld für das Niagara-Modul-Script Apply Offset könnte „Versatz Position Kamera“ umfassen, was es dem Endbenutzer erlauben würde, nach „Kamera Versatz“ zu suchen, wodurch Apply Offset als Option im Menü angezeigt werden würde.
Fazit
Sie können Notizblock-Module verwenden, um durch visuelles Skripting direkt neue Funktionalität zu Ihren Emittern und Niagara-Systemen hinzuzufügen.
Weitere Informationen zur Verwendung von Niagara finden Sie unter Creating Visual Effects (Erstellen visueller Effekte) und Niagara Script Editor Reference (Referenz zu Niagara-Script-Editor).