Das Framework zur prozeduralen Inhaltsgenerierung (PCG) verwendet das prozedurale Knoten-Diagramm, um prozeduralen Inhalt sowohl im Editor als auch zur Laufzeit zu generieren. In einem Format ähnlich dem Material-Editor fließen räumliche Daten von einer PCG-Komponente in Ihrem Level in das Diagramm ein und werden verwendet, um Punkte zu generieren. Die Punkte werden durch eine Reihe von Knoten gefiltert und modifiziert, die im Folgenden aufgeführt sind:
Blueprint
| Knoten | Beschreibung |
|---|---|
Blueprint ausführen | Führt eine bestimmte benutzerdefinierte Blueprint-Klasse mit der Methode „Ausführen oder „Mit Kontext ausführen“ auf einer sauberen Instanz einer Blueprint-Klasse aus, die von |
Steuerungsablauf
| Knoten | Beschreibung |
|---|---|
Verzweigung | Wählt basierend auf einem Boolean-Attribut einen von zwei Outputs aus. Dadurch können die bereitgestellten Daten entweder an „Output A“ oder „Output B“ weitergeleitet werden, basierend auf einem Boolean-Wert, der im Diagramm überschrieben werden kann. Steuert den Ausführungsablauf durch das Diagramm, sodass je nach den spezifischen Umständen (Vorhandensein oder Fehlen von etwas, ausgeführte Plattform usw.) verschiedene Teile eines Diagramms ausgeführt werden. Die Verzweigung, die keine Daten enthält, wird aus der Ausführung ausgeblendet, um eine effizientere Ausführung zu ermöglichen. |
Auswählen | Wählt basierend auf einem Boolean-Attribut einen von zwei Inputs aus, der an einen einzigen Output weitergeleitet wird. Dies wird verwendet, um den Ausführungsablauf im Diagramm so zu steuern, dass je nach den spezifischen Umständen (Vorhandensein oder Fehlen von etwas, ausgeführte Plattform usw.) verschiedene Teile eines Diagramms ausgeführt werden. Wählen Sie Verzweigungen (Inputs) aus, die zu diesem Zeitpunkt nicht aus der Ausführung ausgeblendet werden, dies kann jedoch in einer zukünftigen Veröffentlichung der Fall sein. |
Auswählen (Mehrere) | Mehrfach-Input-Version des Auswahlknotens, der als Ganzzahl, Enum oder String-basiert definiert werden kann. Dieser Knoten ist besonders nützlich, um die Auswahl verschiedener Daten im Diagramm deutlicher hervorzuheben. Er beseitigt einen Teil des Eindrucks einer „magischen Zahl“ oder in Fällen, in denen mehr als zwei Inputs zur Auswahl stehen. |
Schalter | Multi-Output Versionierung des Verzweigungs-Knotens, der so konfiguriert werden kann, dass er eine Ganzzahl, einen String oder ein Enum auswählt. Dieser Knoten ist besonders nützlich, um die Auswahl verschiedener Daten im Diagramm deutlicher hervorzuheben. Er beseitigt einen Teil des Eindrucks einer „magischen Zahl“ oder in Fällen, in denen mehr als zwei Inputs zur Auswahl stehen. |
Debug
| Knoten | Beschreibung |
|---|---|
Debug | Debuggt den vorherigen Knoten im Diagramm, ist jedoch nicht vorübergehend. Dies funktioniert genauso wie das Aktivieren des Debugging auf den Knoten, die ihre Daten an diesen Knoten liefern. Dies ist nützlich, um einen permanenten Debug-Punkt in einem Diagramm zu haben, da dieser nicht vorübergehend ist, auch wenn die Debug-Parameter vorübergehend sind. Es wird nicht in Nicht-Editor-Builds ausgeführt. |
Prüfpunkt für die Vernünftigkeit der Daten | Überprüft, ob der/die Input-Datenpunkt(e) einen Wert innerhalb des angegebenen Bereichs haben. Außerhalb dieses Bereichs protokolliert dieser Knoten einen Fehler und bricht die Generierung ab. Dies ist nützlich, wenn man Annahmen in einem Diagramm überprüfen möchte, sollte jedoch nicht als guter Baustein für Diagramme angesehen werden. |
String ausgeben | Gibt eine Meldung aus, die optional eine Präfix-Nachricht an das Log, den Knoten und den Bildschirm ausgibt. Dies dient als Durchgangsknoten im Auslieferungs-Build, was bedeutet, dass die Präfix-Nachricht an dieser Stelle nicht ausgegeben wird. Dieser Knoten ist nützlich für die Fehlersuche und Validierung von Annahmen in einem Diagramm, beispielsweise bei toten Verzweigungen nach Kontrollfluss-Knoten. |
Dichte
| Knoten | Beschreibung |
|---|---|
Dichte der Kurvenneuzuordnung | Ordnet die Dichte jedes Punktes in den Punktdaten gemäß der angegebenen Kurve einem anderen Dichtewert zu. Dies kann in bestimmten Situationen verwendet werden, um Dichten anzupassen, um schönere Gradienten zu erzielen oder komplexere Bearbeitungs-Downstreams durchzuführen. Da dies auf einem separaten Datenobjekt basiert, lässt es sich leichter von außerhalb von PCG ändern. Endgültige Dichte = Kurvenneuzuordnung (Input-Dichte) |
Dichte-Neuzuordnung | Wendet eine lineare Transformation auf die Punktdichten an. Optional kann dies so eingestellt werden, dass Werte außerhalb des Input-Bereichs nicht beeinflusst werden. D' = (Out_Max - Out_Min) * (D - In_min) / (In_max - In_min) + Out_Min |
Entfernung zur Dichte | Legt die Punktdichte entsprechend der Entfernung jedes Punktes von einem Referenzpunkt fest. Dies wird verwendet, um Dichtegradienten gegenüber einem Zielpunkt zu berechnen, was eine präzisere Steuerung ermöglicht. In den meisten Fällen wird dieser Knoten durch den nativen Entfernungsknoten ersetzt, der allgemeiner und wesentlich effizienter ist. |
Filtern
| Knoten | Beschreibung |
|---|---|
Attributfilter | Allgemeine Filterung nach Attributen und Eigenschaften. Das funktioniert sowohl mit Punktdaten als auch mit Attributsätzen. Dies wird verwendet, um Daten zu trennen, um entweder Punkte auszublenden oder um eine separate Verarbeitung zu ermöglichen, um Varianten einzuführen. Dieser Filter kann entweder eine Konstante, andere räumliche Daten (wenn der Input räumliche Daten sind, auf die Sie filtern können, als würden Sie denselben Punkt oder aus der ToPoint-Version abtasten) oder ein Attributsatz sein. |
Attributfilterbereich | Bereichsbasierte Version des Attributfilters, bei der die Input-Daten (Datenpunkt oder Attributsatz) in Daten innerhalb des Bereichs und Daten außerhalb des Bereichs unterteilt werden. Dies wird verwendet, um Daten zu trennen, um entweder Punkte auszublenden oder um eine separate Verarbeitung zu ermöglichen, um Varianten einzuführen. Dieser Filter kann entweder eine Konstante, andere räumliche Daten (wenn der Input räumliche Daten sind, auf die Sie filtern können, als würden Sie denselben Punkt oder aus der ToPoint-Version abtasten) oder ein Attributsatz sein. |
Dichtefilter | Filtert Punkte basierend auf der Dichte und den angegebenen Filterbereichen. Dieser Knoten wird vollständig durch den Attributfilter-Knoten ersetzt, ist jedoch spezieller und effizienter als dieser. Dieser Knoten sollte verwendet werden, wenn die Performance ein wichtiges Kriterium ist oder wenn es auf diese Weise einfacher ist, die Absicht im Diagramm zu vermitteln. |
Punkte auf unregelmäßiger Oberfläche verwerfen | Testet mehrere Punkte um bestimmte Quell-Punkt herum, um festzustellen, ob sie auf derselben Ebene liegen. Dies ist ein Beispiel für die Verwendung eines PCG-Teil-Diagrammen und wird in der Demo „Electric Dreams“ verwendet. |
Daten nach Attribut filtern | Trennt Daten (nicht Inhalte) basierend darauf ob sie ein bestimmtes Metadatenattribut aufweisen, wobei die Daten mit diesem Attribut in dem Output des Innenfilters und die übrigen Daten in dem Output des Außenfilters erscheinen. Damit werden Fehler und Warnungen in Teil-Diagrammabschnitten verhindert, die auf der Existenz bestimmter Attribute beruhen, deren Vorhandensein unter bestimmten Umständen nicht garantiert werden kann, beispielsweise beim Abrufen von Daten von Actors in einer Welt. |
Daten nach Index filtern | Trennt Daten (nicht Inhalte) basierend auf ihrem Index und dem in den Einstellungen festgelegten Filter. Der Filter wird aus einem String erstellt, der einzelne, durch Kommas getrennte Indizes oder Bereiche enthält. Negative Zahlen werden ähnlich wie Python-Bereiche unterstützt. Beispielsweise umfassen bei einem Array der Größe 10 (Werte zwischen 0 und 9) die ausgewählten Indizes 0, 2, 4:5, 7:-1 die Indizes 0, 2, 4, 7 und 8. Dies wird verwendet, wenn es in Ihrem Diagramm sehr bekannte Parameter gibt, die bestimmte Daten genau zulassen, aber es ist wahrscheinlich, dass der erste oder letzte Index in der Regel die am häufigsten ausgewählten Indizes sind. |
Daten nach Tag filtern | Teilt Daten (nicht Inhalte) entsprechend ihrer Tags auf. Sie können eine durch Kommas getrennte Liste von Tags angeben, nach denen gefiltert werden soll. Dies ist nützlich, wenn Sie Daten aus der Welt abrufen und Beziehungen zwischen Daten in PCG aufbauen möchten. Beispielsweise könnte der Knoten „Actor Daten abrufen“ alle Actors mit einem bestimmten Tag zurückgeben, von denen einige dann Einschlüsse und Ausschlüsse wären. Mit dem Knoten „Daten nach Tag filtern“ werden die Daten dann getrennt und an die Stelle im Diagramm weitergeleitet, an der sie nützlich sind. |
Daten nach Typ filtern | Trennt Daten (nicht Inhalte) anhand ihres Typs, wie durch den Zieltyp vorgegeben. Beachten Sie, es ist möglich, dass der Pin „Außenfilter“ in den Einstellungen angezeigt wird. Dieser Knoten wird im Diagramm als automatischer Filter verwendet, aber es gibt auch anderen Instanzen, in denen es sinnvoll sein kann, das Verhalten im Diagramm anhand der bereitgestellten Datentypen zu bestimmen. Dies wäre hier in Verbindung mit dem Knoten „Daten zählen“ zulässig. |
Punktfilter | Wendet einen Filter pro Punkt auf die In-Punkt-Daten an. Der Filter kann entweder eine Konstante, räumliche Daten (auf die Sie wie bei einer Stichprobe desselben Punkts oder aus der ToPoint-Version filtern können) oder ein Attributsatz sein. |
Punktfilterbereich | Wendet einen bereichsbasierten Filter auf Punktdaten an. |
Selbstbeschneidung | Entfernt Schnittstelle zwischen Punkten in denselben Punktdaten und priorisiert die Daten basierend auf den Einstellungen (groß nach klein usw.). Punkte mit einem ähnlichen Radius können mithilfe von zufälliger Beschneidung zufällig ausgewählt werden, um das Entstehen von Mustern zu verhindern. |
Generisch
| Knoten | Beschreibung |
|---|---|
Tags hinzufügen | Fügt Tags zu den bereitgestellten Daten hinzu, basierend auf durch Kommas getrennten Listen von Tags. Dies wird verwendet, um die Datenverfolgung in komplexeren Diagrammen in Verbindung mit dem Knoten „Daten nach Tag filtern“ zu verbessern. |
Auf Actor anwenden | Legt Eigenschaften für einen Actor fest, basierend auf den Eigenschaften im Attributsatz. Sie kann auch verwendet werden, um parameterlose Funktionen auf einem Actor aufzurufen, nachdem Eigenschaften festgelegt wurden (falls vorhanden). Wenn kein Actor angegeben ist, wird dies auf den Besitzer der PCG-Komponente angewendet (dies ist ein PCG-Partitions-Actor in einem partitionierten Diagramm) Dies hat eine ähnliche Verwendung wie die Beschreibungen zum Überschreiben der Eigenschaften von erzeugten Actors im Knoten „Actor spawnen“. Dieser Knoten „Auf Actor anwenden“ sollte mit Vorsicht verwendet werden, da Änderungen an einem Actor durch PCG nicht rückgängig gemacht werden können. Ein Beispiel für die Verwendung dieses Knotens ist das flexible Übertragen von Daten, die aus PCG berechnet wurden, auf einige Actors, die möglicherweise aus PCG erstellt wurden oder auch nicht, beispielsweise zur Automatisierung einiger Datenaktualisierungsprozesse direkt aus PCG. |
Tags löschen | Entfernt Tags aus den Input-Input-Daten, entweder für alle Übereinstimmungen mit einer durch Kommas getrennten Liste oder wenn ein Tag nicht in der angegebenen Liste enthalten ist. Dieser Knoten kann zur Normalisierung von Tags in Daten verwendet werden, um diese für die Weiterverarbeitung vorzubereiten, und dient eher organisatorischen Zwecken. Es könnte jedoch als Möglichkeit genutzt werden, Daten in einem Workflow als in Bearbeitung befindlich zu kennzeichnen, in dem dieselbe Bearbeitung mehrfach durchgeführt werden könnte. |
Sammeln | Nimmt alle Inputs entgegen und generiert eine einzige Sammlung, die alle Input-Daten enthält. Hauptsächlich zur Organisation verwendet. Enthält einen Pin Nur Abhängigkeit, um die Ausführung in Fällen zu sequenzieren, in denen dies wichtig ist (z. B. Weltstrahl-Trefferabfrage vs. in einem bestimmten Diagramm gespawnten Inhalt ). Beachten Sie, dass alle an diesen Pin übermittelten Daten nicht an den Output weitergeleitet werden. |
Datenanzahl abrufen | Gibt einen Attributsatz zurück, der die Anzahl der an den Input-Pin übergebenen Daten enthält. Beachten Sie, dass dabei leere Punktdaten nicht ignoriert werden. Dies kann in Verbindung mit logischen Operationen oder als Boolesche Variable direkt in den Verzweigungsknoten verwendet werden, um bestimmte Verarbeitungen nur bei Bedarf durchzuführen. |
Eintraganzahl abrufen | Gibt die Anzahl der Einträge in einem Attributsatz zurück. Dies ist nützlich, wenn es in Verbindung mit den Knoten „Attributsatz aus Index abrufen“ und „Schleife“ verwendet wird, um eine detaillierte Kontrolle darüber zu haben, was in einem Teil-Diagramm geschieht. |
Schleifen-Index abrufen | Gibt einen Attributsatz zurück, der den aktuellen Schleifenindex enthält, wenn dies innerhalb eines Schleifen-Teildiagramm ausgeführt wird. Dies gibt nur den Index des direkten Teildiagramms zurück und durchsucht nicht die Diagrammhierarchie nach der nächstgelegenen Schleife. Dies kann zur Berechnung von Daten pro Iteration für rekursive Muster oder zu Protokollierungszwecken verwendet werden. |
Proxy | Ersetzen von Platzhalterknoten, das eine dynamische Überschreibung während der Ausführung des Diagramms ermöglicht. Ein Prototyp (Standardwert) kann so eingerichtet werden, dass die richtigen Knotenpunkte angezeigt werden, aber der ausgeführte Knoten kann durch Parameterüberschreibungen gesteuert werden. Dies ist besonders nützlich, um bestimmte Steuerelemente pro Instanz aus vorgefertigten Knoten zu ermöglichen, beispielsweise die Freigabe bestimmter Rauschtypen. |
Tags ersetzen | Ersetzt die Tags in den Input-Daten durch ihre passenden Gegenstücke. Dieser Knoten unterstützt das Ersetzen von Tags in 1:1, N:1 oder N:N-Beziehungen mithilfe von durch Kommas getrennten Listen. |
Attribute sortieren | Sortiert die Input Daten (Punktdaten und Attributsatz) nach einem bestimmten Attribut in aufsteigender oder absteigender Reihenfolge. Dieser Knoten kann verwendet werden, um Daten so zu ordnen, dass sie für nachgeschaltete Knoten vorhersehbar sind. Beispielsweise könnten Sie einige Werte nach Priorität sortieren und dann entsprechend weiterverfolgen. |
Punkte sortieren | Alias für Sortierattribute. |
Helfer
| Knoten | Beschreibung |
|---|---|
Räumliche Daten durch einen Punkt begrenzt | Berechnet die Grenzen und gibt einen einzelnen Punkt zurückk, welcher die Grenzen räumlicher Daten darstellt. Dies ist nützlich für Anzeigezwecke oder um eine einfachere Darstellung von Daten zu erhalten, die mit anderen Daten desselben Typs zusammengeführt werden können. |
Hierarchische Generierung
| Knoten | Beschreibung |
|---|---|
Rastergröße | Gibt an, bei welcher Rastergröße nachgeschaltete Knoten ausgeführt werden sollen. Wird bei hierarchischer Generierung verwendet. |
Input Output
| Knoten | Beschreibung |
|---|---|
Daten-Tabellenzeile zum Attributsatz | Extrahiert eine einzelne Zeile aus einer Datentabelle in einen Attributsatz. Dies ist ein einzeiliger Zugriff auf eine Datentabelle, der weniger flexibel ist als der mit „Daten-Tabelle laden aktivieren“, aber dennoch nützlich sein kann. |
Alembic-Datei laden | Lädt eine Alembic-Datei in PCG Punktdaten. Dieser Knoten wird verwendet, um eine Alembic-Datei zu importieren und in ein Punktdatenformat zu verarbeiten. Alembic-Dateien enthalten zwar mehr als nur Punkte, die anderen Typen werden von diesem Knoten derzeit jedoch nicht unterstützt. Dieser Knoten ist nicht dafür vorgesehen, in einem iterierten Diagramm ausgeführt zu werden. Verwenden Sie stattdessen EUW, das diese Konvertierung durchführt und Alembic einmalig in einem PCG-Asset speichert, um dies effizienter zu gestalten. Erfordert das Plugin Prozedurale Inhaltsgenerierung (PCG) für externe Daten Interop. |
Datentabelle laden | Lädt eine UDataTable in PCG Punktdaten. Dieser Knoten kann die Tabelle entweder als Punktdaten oder als Attributsatz importieren. Dies ist äußerst nützlich, um PCG datengesteuert zu machen, ohne auf das PCG-Diagramm schauen zu müssen. Änderungen in der Daten-Tabelle werden beim Speichern der Datei an PCG weitergegeben. |
PCG-Daten-Asset laden | Lädt ein PCG-Daten-Asset-Objekt synchron oder asynchron und leitet dessen Daten im Diagramm weiter. |
Metadaten
| Knoten | Beschreibung |
|---|---|
Attribut hinzufügen | Fügt ein Attribut zu Punktdaten oder einem Attributsatz hinzu. |
Attribut-Rauschen | Berechnet neue Werte für ein Zielattribut für jeden Punkt in einem Satz von Punktdaten. Dies funktioniert mit Punktdaten und Attributsätzen. Der Wert hängt vom ausgewählten Input-Attribut ab: Modus, Rauschen Min und Rauschen Max. Dies ist nützlich, um Varianten bei kontinuierlichen Parametern hinzuzufügen. |
Attribut Partition | Teilt die Input Daten (Punktdaten oder Attributsatz oder andere räumliche Daten, die bei Bedarf in Punktdaten konvertiert werden sollen) in einer Partition entsprechend den ausgewählten Attributen auf. Alle Elemente mit denselben Werten für jedes der ausgewählten Attribute landen in denselben Output-Daten. Dies ist hilfreich, um Daten zu trennen, die in einen Schleifenknoten einfließen, wenn in einer bestimmten Situation für denselben Attributwert eine Verarbeitung durchgeführt werden muss, z. B. bei der Auswahl von Punkten auf einem Mesh mit dem Mesh-Sampler und der Übertragung dieser Punkte auf die „richtigen” Punkte mit „Punkte kopieren”. |
Attribut umbenennen | Benennt ein vorhandenes Attribut um. Dieser Knoten wird verwendet, wenn für die nachgelagerte Verarbeitung bestimmte Attribute vorhanden sein müssen. Dies ist nützlich, um Daten an Unterdiagramme weiterzugeben. |
Attribut auswählen | Berechnet den Min, Max oder Median auf einer ausgewählten Achse. Beachten Sie, dass dies analog zur Berechnung eines Skalarprodukts mit einer Achse ist. |
Attribut String-OP | Führt String-bezogene Attributoperationen durch, wie z. B. das Anhängen von Strings. Dieser Knoten wird in Verbindung mit dem Knoten „String ausgeben“ und dem Knoten „Ziel-Actor erstellen“ verwendet. |
Transformations-Attribut zerlegen | Zerlegt ein Transformations-Attribut in seine Komponenten: Verschiebung, Drehung und Maßstab. |
Vektor-Attribut zerlegen | Zerlegt ein Vektor-Attribut in seine Komponenten: X, Y, Z und W. |
Attribut kopieren | Kopiert ein Attribut entweder vom Attribut-Pin oder vom Input selbst in neue Punktdaten. Dieser Knoten ist insofern nützlich, als er es Ihnen ermöglicht, einige Werte in andere Attribute zu verschieben, komplexere Operationen durchzuführen und schließlich bei Bedarf wieder in das ursprüngliche Attribut zurückzuschreiben. |
Attribut erstellen | Erstellt ein Attributsatz mit einem einzelnen Attribut. |
Attribute löschen | Filtert (behaltene oder entfernte) durch Kommas getrennte Attribute aus einem Attributsatz oder räumlichen Daten. Dieser Knoten wird verwendet, um Attribute zu entfernen, die für nachgelagerte Prozesse nicht nützlich sind. In einigen Fällen kann es sinnvoll sein, dies zu tun, um die Output-Daten nicht mit temporären Attributen zu verunreinigen, aber auch, weil einige Operationen auf Attributbasis kostspieliger sind, wie z. B. Punkte kopieren, und von den verwendeten Einstellungen abhängen. |
Dichterauschen | Alias für Attributrauschen. |
Attribute nach Name filtern | Filtert (behaltene oder entfernte) durch Kommas getrennte Attribute aus einem Attributsatz oder räumlichen Daten. Dies ist ein alias für Attribute löschen. |
Attribut von Punktindex abrufen | Ruft einen einzelnen Punkt aus den Punktdaten und dessen Attribute in einem separaten Attributsatz ab. Dieser Knoten wird oft innerhalb von Schleifen für partitionierte Daten verwendet, um den gemeinsamen Attributwert einfach abzurufen. |
Transform-Attribut erstellen | Erstellt ein Transformieren Attribut aus drei bereitgestellten Attributen: Verschiebung, Drehung und Maßstab. |
Vektorattribut erstellen | Erstellt ein Vektor-Attribut aus zwei bis vier Attributen basierend auf dem Output-Typ. |
Match- und Satz-Attribute | Wählt einen Eintrag in der bereitgestellten Attributsatz-Tabelle (Match-Daten) aus und kopiert dessen Werte in die Input-Daten (Datenpunkt oder Attributsatz). Dies ersetzt den Knoten Match- und Satz. Die Auswahl erfolgt durch Abgleichen eines Attributs (Match-Attribute) in den Input-Daten (Input-Attribut) mit einem Attribut in den Match-Daten (Match-Attribut), sodass Werte nur dann aus einem Eintrag in den Match-Daten kopiert werden, wenn ihre Werte übereinstimmen. Wenn Daten nicht mit einem Attribut übereinstimmen, werden alle Einträge in den Match-Daten als gültige Matches erachtet. Zusätzlich gibt es eine Option, um Einträge, die mit den Match-Daten nicht übereinstimmen, zu behalten oder zu verwerfen. In Fällen, in denen es mehrere potenzielle Übereinstimmungen in den Match-Daten gibt, ist es möglich, diese zu gewichten (Match-Gewichtsattribut) oder eine wird zufällig ausgewählt. Es ist möglich, einen Wert zwischen [0 und 1] aus den Input-Daten mit dem normalisierten Gewicht aus den Match-Daten zu korrelieren, indem die Felder „Input-Gewichtsattribut verwenden“ und „Input-Gewichtsattribut“ verwendet werden. Dies ermöglicht eine zufällige Auswahl aus einem zuvor berechneten räumlichen Rauschen. Schließlich ist es beim Abgleich von Attributen möglich, mit dem nächstgelegenen Wert abzugleichen, wenn es keine identischen Werte gibt. Es ist auch möglich, einen maximalen Abstandsschwellenwert festzulegen, bei dem ein Match vorliegt oder nicht, aber dies ist auf kontinuierliche Wertetypen beschränkt, die über eine sinnvolle Abstandsmetrik verfügen. Beachten Sie, dass die Entfernung bei Vektoren die euklidische Entfernung in Engine-Einheiten ist, die Entfernung bei Rotatoren in Grad angegeben wird und die Entfernung bei Quaternionen in Radianten angegeben wird. Alle während der Match-Operation verwendeten Attribute werden nicht in die Output-Daten übernommen, sodass das Matching-Attribut und/oder die Gewichtsattribute aus den Matching-Daten nicht in den Output kopiert werden. Dieser Knoten ist sehr flexibel, um Daten in Punkte und Attributsätze einzufügen, und ermöglicht durch seine Fähigkeit, Werte abzugleichen, die Erstellung komplexer Datensätze. Es handelt sich um einen Eckpfeiler in datengesteuerten Diagrammen, bei denen ein Knoten eine Liste von Datentabellen oder Daten-Assets laden und dann die entsprechenden Daten in einer einzigen Operation einfach an bestimmte Punkte kopieren kann. |
Attribute zusammenführen | Führt mehrere Attributsätze (in der Reihenfolge der Verbindung) zusammen. Attribute, die nicht üblich sind, werden in den Einträgen, die diese Attribute nicht hatten, auf ihren jeweiligen Standardwert (zum Zeitpunkt der Attributerstellung) gesetzt. |
Punkt-Match und Satz | Mit der Option Match- und Satztyp wird für jeden Punkt basierend auf den Auswahlkriterien ein Match gesucht und der Wert dann auf ein Attribut angewendet. Ein häufiger Anwendungsfall ist die Auswahl von Meshs, die nachgelagert in einem Statisches Mesh Spawner-Knoten mit dem Selektor Nach Attribut verwendet werden sollen. |
Attribut übertragen | Legt ein Attribut aus einem Objekt desselben Typs (räumlich zu räumlich oder Punkte zu Punkten) mit derselben Datensatzgröße fest. Dies ist nützlich, wenn einige Verarbeitungen am selben Datensatz durchgeführt werden, aber nur eine Teilmenge der Attribute beibehalten werden muss, oder wenn in den Daten eine 1:1-Beziehung besteht. |
Bitweiser OP des Attributs
| Knoten | Beschreibung |
|---|---|
Und | Berechnet das Ergebnis des bitweisen UND zwischen zwei Attributen. |
Nicht | Berechnet das Ergebnis des bitweisen NICHT zwischen zwei Attributen. |
Oder | Berechnet das Ergebnis des bitweisen ODER zwischen zwei Attributen. |
Xor | Berechnet das Ergebnis des bitweisen XOR (Exklusives ODER) zwischen zwei Attributen. |
Boolean OP des Attributs
| Knoten | Beschreibung |
|---|---|
Und | Berechnet das Ergebnis des Boolean UND zwischen zwei Attributen. |
Nicht | Berechnet das Ergebnis des Boolean NICHT zwischen zwei Attributen. |
Oder | Berechnet das Ergebnis des Boolean ODER zwischen zwei Attributen. |
Xor | Berechnet das Ergebnis des Boolean XOR (Exklusives ODER) zwischen zwei Attributen. |
Attributvergleichs-OP
| Knoten | Beschreibung |
|---|---|
Gleich | Schreibt das Vergleichsergebnis „Gleich zu“ zwischen zwei Attributen in ein Boolean-Attribut. |
Größer als | Schreibt das Vergleichsergebnis „Größer als“ zwischen zwei Attributen in ein Boolean-Attribut. |
Größer oder gleich | Schreibt das Vergleichsergebnis „Größer als oder gleich“ zwischen zwei Attributen in ein Boolean-Attribut. |
Kleiner | Schreibt das Vergleichsergebnis „Kleiner als“ zwischen zwei Attributen in ein Boolean-Attribut. |
Kleiner oder gleich | Schreibt das Vergleichsergebnis „Kleiner als oder gleich“ zwischen zwei Attributen in ein Boolean-Attribut. |
Nicht gleich | Schreibt das Vergleichsergebnis „Nicht gleich“-zwischen zwei Attributen in ein Boolean-Attribut. |
Rechen-OP des Attributs
| Knoten | Beschreibung |
|---|---|
Abs | Berechnet den Wert der mathematischen Operation „Absolutwert“. Konvertiert einen Input-Attributwert in einen positiven Wert und schreibt das Ergebnis in ein Attribut. |
Hinzufügen | Berechnet den Wert der mathematischen Operation „Hinzufügen“. Nimmt zwei Input-Werte entgegen, addiert sie und schreibt das Ergebnis in ein Attribut. |
Ceil | Berechnet den Wert der mathematischen Operation „Aufrunden“. Nimmt einen Input-Wert entgegen und rundet ihn auf die nächste Ganzzahl auf. |
Fixierung | Berechnet den Wert der mathematischen Operation „Klammer“. Nimmt Input-Werte entgegen und beschränkt sie auf einen bestimmten Bereich. |
Klammer Max | Gibt einen Maximalwert für die mathematische Operation „Klammer“ an. |
Klammer Min | Gibt einen Mindestwert für die mathematische Operation „Klammer“ an. |
Teilen | Berechnet den Wert der mathematischen Operation „Teilen“. Nimmt zwei Input-Werte entgegen, teilt den ersten Input durch den zweiten und schreibt das Ergebnis in ein Attribut. |
Boden | Berechnet den Wert der mathematischen Operation „Abrunden“. Nimmt einen Input-Wert entgegen, rundet ihn auf die nächste Ganzzahl ab und schreibt das Ergebnis in ein Attribut. |
Bruch | Berechnet den Wert der mathematischen Operation „Bruch“. Nimmt einen Input-Wert entgegen und gibt den Bruchteil dieses Wertes zurück. Beispielsweise ist das Ergebnis für einen Input-Wert X gleich X minus dem Abrundenwert von X. Der Output Wert reicht von null bis eins, einschließlich dem unteren Ende, ausschließlich dem oberen Ende. |
Lineare Interpolation | Berechnet den Wert der mathematischen Operation „Lineare Interpolation“. Dieser Ausdruck zeichnet eine Linie zwischen zwei Punkten und verwendet einen dritten Verhältniswert, um den Wert eines Punktes entlang dieser Linie zu bestimmen. Anschließend schreibt er diesen Wert in ein Attribut. |
Max. | Berechnet den Wert der mathematischen Operation „Max“ für Attribut(e) und schreibt das Ergebnis in ein Attribut. Diese Operation nimmt zwei Input-Werte und gibt den höheren von beiden als Outputs aus. |
Min | Berechnet den Wert der mathematischen Operation „Min“ für Attribut(e) und schreibt das Ergebnis in ein Attribut. Diese Operation nimmt zwei Input-Werte und gibt den niedrigeren von beiden als Outputs aus. |
Modulo | Berechnet den Wert der mathematischen Operation „Modulo“. Nimmt zwei Input-Werte entgegen und teilt den ersten durch den zweiten. Anschließend gibt es den Rest zurück und schreibt diesen als Attribut. |
Multiplizieren | Berechnet den Wert der mathematischen Operation „Multiplizieren“. Nimmt zwei Input-Werte entgegen, multipliziert sie und schreibt das Ergebnis in ein Attribut. |
Eins Minus | Berechnet den Wert der mathematischen Operation „Eins Minus“ für ein Attribut und schreibt das Ergebnis in ein Attribut. Dieser Ausdruck nimmt einen Input-Wert X entgegen, gibt 1-X aus und schreibt das Ergebnis als Attribut. |
Potenz | Berechnet den Wert der mathematischen Operation „Potenz“ Dieser Ausdruck nimmt zwei Werte entgegen: eine Basis und einen Exponenten. Erhöht den Basiswert auf die Exponentenpotenz und gibt das Ergebnis als Attribut aus. |
Runden | Berechnet den Wert der mathematischen Operation „Runden“ und schreibt das Ergebnis in ein Attribut. Dieser Ausdruck nimmt einen Input-Wert entgegen und rundet ihn auf die nächste Ganzzahl. |
Festlegen | Legt das Output-Attribut auf den Wert der angegebenen Attribute fest. |
Zeichen | Berechnet den Wert der mathematischen Operation „Zeichen“ und schreibt das Ergebnis in ein Attribut. Bewertet einen Input-Wert und gibt an, ob er positiv, negativ oder genau Null ist.
|
Wurzel | Berechnet den Wert der mathematischen Operation „Quadratwurzel“ für einen Input und schreibt das Ergebnis in ein Attribut. |
Subtrahieren | Berechnet den Wert der mathematischen Operation „Subtrahieren“. Dieser Ausdruck nimmt zwei Inputs entgegen und subtrahiert den zweiten Input vom Ersten. |
Abschneiden | Berechnet den Wert der mathematischen Operation „Abschneiden“ und schreibt das Ergebnis in ein Attribut. Dieser Ausdruck kürzt einen Wert, indem er den Bruchteil verwirft und nur die ganze Zahl stehen lässt. Beispielsweise wird ein Wert von 1,4 auf 1 gekürzt. |
Attribut-OP reduzieren
| Knoten | Beschreibung |
|---|---|
Durchschnitt | Sammelt Ensemble-Informationen, auf denen das Diagramm basieren könnte. Beispielsweise könnten Sie die durchschnittliche Position ermitteln, die als guter Bezugspunkt für den Maßstab aller Punkte in einem Punktdatensatz dient. |
Max. | Sammelt Ensemble-Informationen, auf denen das Diagramm basieren könnte. Beispielsweise könnten Sie die durchschnittliche Position ermitteln, die als guter Bezugspunkt für den Maßstab aller Punkte in einem Punktdatensatz dient. |
Min | Sammelt Ensemble-Informationen, auf denen das Diagramm basieren könnte. Beispielsweise könnten Sie die durchschnittliche Position ermitteln, die als guter Bezugspunkt für den Maßstab aller Punkte in einem Punktdatensatz dient. |
Rotator-OP des Attributs
| Knoten | Beschreibung |
|---|---|
Kombinieren | Kombiniert zwei Drehungswerte und schreibt das Ergebnis als Attribut, wobei zuerst A und dann B kombiniert werden. |
Umgekehrte Transformations-Drehung | Transformiert einen Rotator durch die Umkehrung der angegebenen Transformation. |
Invertieren | Ermittelt die Umkehrfunktion eines angegebenen Rotators und schreibt das Ergebnis als Attribut. |
Lineare Interpolation | Interpoliert linear zwischen zwei Rotator-Inputs A und B basierend auf dem Verhältnis. Dies gilt zu 100 Prozent für A, wenn das Verhältnis 0 ist, und zu 100 Prozent für B, wenn das Verhältnis 1 ist. |
Normalisieren | Klammert einen Winkel auf einen Bereich von -180 bis 180 und schreibt das Ergebnis als Attribut. |
Transformations-Drehung | Transformiert eine Drehung um eine bestimmte Transformation. Dieser Knoten nimmt eine Drehung als Input und wendet die angegebene Transformation an. |
Attribut OP transformieren
| Knoten | Beschreibung |
|---|---|
Erstellen | Erstellt zwei Transformationen in der Reihenfolge: A B. Die Reihenfolge ist beim Erstellen von Transformationen wichtig. Ein B ergibt eine Transformation, die zuerst A und dann B auf jede nachfolgende Transformation anwendet. Das Ergebnis wird in ein Attribut geschrieben. |
Invertieren | Kehrt die input-Transformation um und schreibt die neue Transformation als Attribut. |
Lineare Interpolation | Interpoliert linear zwischen zwei Transformieren-Inputs A und B basierend auf dem Verhältnis. Dies gilt zu 100 Prozent für A, wenn das Verhältnis 0 ist, und zu 100 Prozent für B, wenn das Verhältnis 1 ist. |
Trigger-OP des Attributs
| Knoten | Beschreibung |
|---|---|
ACOS | Gibt den umgekehrten Kosinus (ArcCos) eines Input zurück und schreibt das Ergebnis in ein Attribut. |
Asin | Gibt den umgekehrten Sinus (ArcSin) eines Input zurück und schreibt das Ergebnis in ein Attribut. |
Atan | Gibt die umgekehrte Tangente (ArcTan) eines Input zurück und schreibt das Ergebnis in ein Attribut. |
Atan 2 | Gibt die umgekehrte Tangente (ArcTan2) von 2 Inputs (B/A) zurück und schreibt das Ergebnis in ein Attribut. |
Cos | Gibt den Kosinus (cos) eines Inputs zurück und schreibt das Ergebnis in ein Attribut. |
Deg zu Rad | Gibt einen Radiantenwert basierend auf dem Input in Grad zurück und schreibt das Ergebnis in ein Attribut. |
Rad zu Deg | Gibt einen Gradwert basierend auf dem Input in Radianten zurück und schreibt das Ergebnis in ein Attribut. |
Sin | Gibt den Sinus (sin) eines Inputs zurück und schreibt das Ergebnis in ein Attribut. |
Tan | Gibt die Tangente (tan) eines Inputs zurück und schreibt das Ergebnis in ein Attribut. |
Attribut Vektor OP
| Knoten | Beschreibung |
|---|---|
Kreuz | Gibt das übergreifende Produkt zweier Input-Vektoren aus. |
Entfernung | Berechnet den Abstand zwischen zwei Vektor-Inputs. |
Skalar | Gibt das Skalarprodukt zweier Input-Vektoren zurück. |
Umgekehrte Transformations-Richtung | Transformiert einen Richtungsvektor durch die Umkehrung der Input-Transformation, ohne jedoch seine Länge zu verändern. Das Ergebnis wird in ein Attribut geschrieben. |
Umgekehrte Transformations-Position | Transformiert einen Ort durch die Umkehrung der Input-Transformation. Das Ergebnis wird in ein Attribut geschrieben. |
Länge | Gibt die Länge eines in einem Input-Vektor gespeicherten Vektors zurück. |
Normalisieren | Gibt eine normalisierte Kopie des Vektors aus und stellt sicher, dass dies aufgrund der Länge sicher ist. Gibt einen Null-Vektor zurück, wenn der Vektor zu klein zur sicheren Normalisierung ist. |
Um die Achse drehen | Berechnet und gibt das Ergebnis der Drehung des Vektors A um den Winkel (Grad) um die Achse zurück. |
Transformieren-Richtung | Transformiert einen Input-Richtungs-Vektor anhand der angegebenen Transformation. Ändert seine Länge nicht. Das Ergebnis wird in ein Attribut geschrieben. |
Transformations-Drehung | Transformiert einen Rotator oder Quaternion mit der Input Transformation. Das Ergebnis wird in ein Attribut geschrieben. |
Rotator-OP des Attributs
| Knoten | Beschreibung |
|---|---|
Aus Winkeln heraus drehen | Gibt ein Rotator-Attribut zurück, das unter Verwendung der Werte für Rollen, Neigung und Gieren erstellt wurde. |
Aus Achse heraus drehen | Gibt einen Rotator zurück, der einen Referenz-Frame verwendet, der aus den Achsen Vorwärts, Rechts und Aufwärts erstellt wurde. |
Aus X heraus drehen | Gibt ein Rotator-Attribut zurück, das nur mit einer X-Achse erstellt wurde. Die Y- und Z-Achse sind nicht näher spezifiziert, werden jedoch orthonormal sein. |
Aus XY heraus drehen | Gibt ein Rotator-Attribut zurück, das mit der X- und Y-Achse erstellt wurde. Die X-Achse bleibt fest und die Y-Achse kann sich minimal verändern, um die Orthogonalität zu gewährleisten. Berechnet auch den Z-Wert. |
Aus XZ heraus drehen | Gibt ein Rotator-Attribut zurück, das mit der X- und Z-Achse erstellt wurde. Die X-Achse bleibt fest und die Z-Achse kann sich minimal verändern, um die Orthogonalität zu gewährleisten. Berechnet auch den Y-Wert. |
Aus Y heraus drehen | Gibt ein Rotator-Attribut zurück, das nur mit einer Y-Achse erstellt wurde. Die X- und Z-Achse sind nicht näher spezifiziert, werden jedoch orthonormal sein. |
Aus YX heraus drehen | Gibt ein Rotator-Attribut zurück, das mit der Y- und X-Achse erstellt wurde. Die Y-Achse bleibt fest und die X-Achse kann sich minimal verändern, um die Orthogonalität zu gewährleisten. Berechnet auch den Z-Wert. |
Aus YZ heraus drehen | Gibt ein Rotator-Attribut zurück, das mit der Y- und Z-Achse erstellt wurde. Die Y-Achse bleibt fest und die Z-Achse kann sich minimal verändern, um die Orthogonalität zu gewährleisten. Berechnet auch den X-Wert. |
Aus Z heraus drehen | Gibt ein Rotator-Attribut zurück, das nur mit einer Z-Achse erstellt wurde. Die X- und Y-Achse sind nicht näher spezifiziert, werden jedoch orthonormal sein. |
Aus ZX heraus drehen | Gibt ein Rotator-Attribut zurück, das mit der Z- und X-Achse erstellt wurde. Die Z-Achse bleibt fest und die X-Achse kann sich minimal verändern, um die Orthogonalität zu gewährleisten. Berechnet auch den Y-Wert. |
Aus ZY heraus drehen | Gibt ein Rotator-Attribut zurück, das mit der Z- und Y-Achse erstellt wurde. Die Z-Achse bleibt fest und die Y-Achse kann sich minimal verändern, um die Orthogonalität zu gewährleisten. Berechnet auch den X-Wert. |
Param
| Knoten | Beschreibung |
|---|---|
Actor-Eigenschaft abrufen | Ruft den Inhalt einer Eigenschaft von dem Actor ab, der die PCG-Komponente enthält (oder höher in der Objekthierarchie). Standardmäßig werden Eigenschaften auf Actor-Level berücksichtigt (nützlich für Blueprint-Variablen), aber mit der Option Komponente auswählen können auch Komponenteneigenschaften berücksichtigt werden. Diese Eigenschaft kann eine „flache“ Struktur (z. B. ohne Arrays) enthalten oder ein Array eines gültigen unterstützten Typs sein. Im Falle eines Arrays ist die Output ein Attributsatz mit mehreren Einträgen. Dieser Knoten ist nützlich, um Daten von Actors in der Welt (selbst oder anderweitig) abzurufen, um eine instanzbezogene Steuerung im Diagramm zu ermöglichen, wobei dieselbe Interface wie bei Actor-Daten abrufen verwendet wird. Dies könnte beispielsweise eine Liste statischer Meshs enthalten, um Material und mehr zu spawnen. |
Eigenschaft aus Objektpfad abrufen | Ruft den Inhalt einer Eigenschaft von dem Actor ab, der die PCG-Komponente enthält (oder höher in der Objekthierarchie). Dies ähnelt dem Knoten „Actor-Eigenschaft abrufen“, mit dem Unterschied, dass er über einen Attributsatz Actor-Referenzen (Soft-Objektpfade) übernehmen kann. Dieser Knoten ist nützlich in datengesteuerten Anwendungsfällen, in denen eine Datentabelle Verweise auf Actors enthalten kann und bei Bedarf problemlos Eigenschaften aus diesen abrufen kann, ohne auf die Auswahl von Actors angewiesen zu sein. |
Punkt zu Attributsatz | Konvertiert Punktdaten in einen Attributsatz, indem alle Punkteigenschaften gelöscht und nur die Punktattribute beibehalten werden. Wenn die Input-Punktdaten kein Attribut haben, wird auch kein Attributsatz ausgegeben. Dieser Knoten kann in bestimmten Fällen als Optimierung für die Verarbeitung oder den Speicher nützlich sein oder dazu dienen, Datentypen im gesamten Diagramm zu vereinheitlichen. |
Punkt OPs
| Knoten | Beschreibung |
|---|---|
Maßstab auf Grenzen anwenden | Für jeden Punkt in den Input-Punktdaten werden die Grenzen min und max mit ihrem Maßstab multipliziert und der Maßstab wird auf 1 zurückgesetzt, wobei negative Werte beibehalten werden. |
Grenzen-Modifikator | Ändert die Grenzen-Eigenschaft für Punkte in den bereitgestellten Punktdaten. Dieser Knoten wird verwendet, um die Grenzen in den Input-Punktdaten auf einfache Weise zu beeinflussen, was beispielsweise vor einem Selbstbeschneidungsknoten oder Schnittstellen oder Differenzen nützlich sein kann, um das Endergebnis anzupassen. |
Drehung aus dem Aufwärtsvektor erstellen | |
Punkte kombinieren | Für jeden Input von Punktdaten wird eine neue Punktdatei ausgegeben, die einen einzelnen Punkt enthält, der alle Punkte in den jeweiligen Punktdaten umfasst. Dadurch können Punktdaten neu berechnet und eine bestimmte Transformation festgelegt werden. Dieser Knoten wird in einigen Fällen zur Optimierung oder als übergeordnete Ansicht für bestimmte Daten in einigen Instanzen verwendet. |
Punkt duplizieren | Für jeden Punkt duplizieren Sie den Punkt, verschieben ihn entlang einer durch die Richtung definierten Achse und wenden eine Transformation auf den neuen Punkt an. Wiederholen Sie den Vorgang so oft, wie unter Iterationen angegeben. Wenn „Richtung im relativen Raum angewendet“ ausgewählt ist, wird die Verschiebungsachse iterativ aus dem neuen Punkt ausgewählt. Dieser Knoten wird verwendet, um schnell viele Punkte zu setzen und fraktalähnliche Muster zu erstellen. |
Umfangs-Modifikator | Ändert den Umfang jedes Punktes in den Punktdaten durch Manipulation der Grenzen. |
Punkte aufteilen | Erstellen Sie für jeden Punkt zwei geteilte Punkte in „Vor der Teilung“ und „Nach der Teilung“, wobei die Grenzen entlang der angegebenen „Teilungsachse“ und „Teilungsposition“ geteilt werden. Wenn beispielsweise die Split-Position 0,5 beträgt, wird jeder Punkt in der Mitte geteilt und jede Hälfte ergibt einen anderen Output. Dies kann verwendet werden, um komplexere Punktbaugruppen durch Unterstützung der Unterteilung zu erstellen. |
Punkte transformieren | Ändert die Punkt-Transformationen (entweder an Ort und Stelle oder zu einem Attribut mit Auf Attribut anwenden) unter Verwendung grundlegender Zufallsregeln. Jede Komponente der Transformation (Verschiebung, Drehung, Skala) kann anstelle von relativ auf absolut eingestellt werden, um eine bessere Kontrolle zu ermöglichen. Sie enthält die folgenden Optionen: Einheitliche Skala: Skaliert Punktdaten auf das gleiche X-, Y- und Z-Verhältnis. Seed neu berechnen: Erzwingt die Aktualisierung des Punkte-Seeds entsprechend ihrer neuen Weltposition. Beispiel: Verwenden Sie einen Transformationspunktknoten mit absoluter Drehung und einer Drehung Z von 0, um sicherzustellen, dass die Punkte in Z-Richtung nach oben zeigen. Dadurch wird sichergestellt, dass die Punkte nach dem Sampling aus der Landschaft nach oben zeigen. Dieser Knoten ist nützlich, um räumliche Varianten mit Kontrolle über die Input-Punktdaten zu erzeugen. Es ist ein Grundelement von Diagrammen, die natürlich aussehende Daten generieren. |
Sampler
| Knoten | Beschreibung |
|---|---|
Punkte kopieren | Kopiert eine Instanzierung aller Punkte in der Quelle pro Punkt im Ziel-Input. Es gibt mehrere Optionen für die Vererbung räumlicher Eigenschaften, aber Attributvererbung hat den größten Einfluss auf die Performance dieses Knoten. Mit diesem Knoten können Sie geschachtelte Schleifenkopien durchführen, sodass Sie eine Quelle mit zwei Zielen und zwei Outputs oder zwei Quellen mit zwei Zielen und vier Outputs haben können. Dieser Knoten wird häufig verwendet, um Punktdaten zu instanziieren, die im lokalen Raum (nämlich in PCG-Bauguppen/Assets) generiert wurden. Vor der Nachbearbeitung an ihrer Weltposition. |
Mesh-Sampler | Sampling der Punkte auf einem spezifischen statischen Mesh. Beachte, dass diese OP kostspielig ist. Erfordert das Plugin PCG Geometrie-Script Interop und Geometrie-Script. |
Textur-Sampler | Sampling des UV einer Textur an jedem Punkt. Bei einer gegebenen Textur-Input transformiert die Textur-Mapping-Methode „Plane aus Texturdaten“ die UV-Koordinaten basierend auf dem Knoten „Texturdaten abrufen“ und sampelt die Textur auf die Punkteingaben. Wenn die Textur-Mapping-Methode "Explizite UV-Punkte-Koordinaten verwenden" lautet, sind die UV-Koordinaten 0-1, mit zusätzlichen Optionen, um zu bestimmen, welches Attribut auch für UV verwendet wird, sowie um die Textur mithilfe von erweiterter Kachelung zu verpacken oder sie auf 0-1 zu begrenzen. |
Punkte auswählen | Wählt eine Teilmenge von Punkten aus den Input-Punktdaten anhand einer Wahrscheinlichkeit aus, mit der ein bestimmter Punkt ausgewählt wird oder nicht. In der Praxis bedeutet dies, dass Sie bei einem Verhältnis von 0,5 ungefähr die Hälfte der Input-Punkte erhalten, jedoch keine Garantie dafür haben, dass es sich tatsächlich um genau die Hälfte handelt oder nicht. Da die Entscheidung, einen Punkt auszuwählen oder nicht, unabhängig getroffen wird, folgt dies einer Normalverteilung. |
Spline Sampler | Sampling der Punkte mit dem Spline als Quelle Material. Sampling auf dem Spline bedeutet direkt auf der Spline-Kurve, während die Optionen Horizontal, Vertikal und Volumen auf dem Spline-Volumen sampeln (gesteuert durch den Radius der Kontollpunkte auf den Y/Z-Achsen). Für das Sampling innerhalb des Splines muss der Spline geschlossen sein. |
Oberflächen-Sampler | Sampling der Punkte auf Oberflächendaten in einem regelmäßigen Rastermuster. Dieser Knoten enthält die folgenden Optionen:
|
Volumen Sampler | Sampling der bereitgestellten Raumdaten auf einem regulären 3D Raster. Dies weist ein „voxelähnliches“ Verhalten auf und könnte bei großen Datenmengen oder hohen Dichten potenziell kostspielig sein. |
Räumlich
| Knoten | Beschreibung |
|---|---|
Attribut auf Punkt festlegen | Konvertiert einen Attributsatz in einen Datenpunkt, indem für jeden Eintrag im Attributsatz ein Standardpunkt erstellt wird. Die resultierenden Punktdaten haben dieselben Attribute wie der ursprüngliche Attributsatz. |
Punkte erstellen | Erstellt Punktdaten, die Punkte aus einer statischen Beschreibung von Punkten enthalten. Dieser Knoten wird normalerweise verwendet, um einen einzelnen Punkt zu erstellen, der als Ausgangspunkt für einen anderen Prozess dient, der eine Weltposition oder Ähnliches benötigt. |
Punkteraster erstellen | Erstellt Punktdaten, die ein einfaches Raster aus Punkten enthalten, das durch die Einstellungen definiert ist. Dieser Knoten wird im lokalen Raum-Modus zusammen mit dem Knoten „Kopieren von Punkten“ verwendet, um Raster um mehrere Quellen herum zu erstellen. |
Spline erstellen | Erstellt einen Spline aus den Input-Punktdaten. Enthält Optionen für die Erstellung des Folgenden:
|
Oberfläche aus Spline erstellen | Erstellt eine implizite Oberfläche aus einem geschlossenen Spline. Diese Oberfläche kann dann wie andere Oberflächen im Oberflächen-Sampler, Differenz, Schnittstelle usw. verwendet werden. Derzeit basiert dies auf einer Diskretisierung der Spline-Funktion und funktioniert daher möglicherweise nicht bei sehr großen Splines. Wenn das der Fall ist, sollten Sie zunächst Ihre Spline-Kurve samplen und dann eine neue Spline-Kurve erstellen (mit dem Spline-Knoten erstellen), bevor Sie diesen Knoten verwenden. |
Ausblendepunkte außerhalb der Actor-Grenzen | Blendet Punkte aus den Input-Punktdaten basierend auf den aktuellen Komponenten (Partitions-Actor oder Original) Grenzen mit zusätzlicher Steuerung für die Erweiterung der Grenzen aus. Dies kann verwendet werden, um sicherzustellen, dass die Input-Daten für die aktuelle Verarbeitung relevant sind, wobei bei Bedarf auch Überlappungen zulässig sind. |
Unterschied | Gibt das Ergebnis der Differenz jeder Quelle gegenüber der Vereinigung der Differenzen aus. Dieser Knoten verfügt über die folgenden Optionen: Dichtefunktion: Legt fest, welche Dichtefunktion nach Abschluss der Operation verwendet wird. Enthält die folgenden Optionen:
Modus: Steuert das Verhalten bei Vorliegen konkreter räumlicher Daten im vs. kontinuierlichen Daten (andere Typen, eher vergleichbar mit Verteilungsfunktionen). Beachten Sie, dass in einigen Fällen, in denen wir ein konkretes Element auswählen möchten, dies auf „Diskret“ gesetzt werden sollte, da die resultierende Dichtefunktion sonst nicht flach sein könnte. Enthält die folgenden Optionen:
|
Entfernung | Für jeden Punkt im ersten Input berechnet das Programm den Abstand zum nächstgelegenen Punkt im zweiten Input und ignoriert automatisch sich selbst, wenn es den Abstand von einem Punktdatensatz zum gleichen Punktdatensatz berechnet. Optional kann der Vektor als Attribut ausgegeben werden. Dieser Knoten wird verwendet, um Distanzfelder zu simulieren oder distanzbasierte Gradienten in Punktdaten zu erstellen. Dies kann verwendet werden, um die Größe von Bäumen an Waldrändern oder von Bäumen, die zu nahe an einem Bach stehen, anzupassen. |
Konvex-Hülle-2D suchen | Berechnet eine 2D-Konvexhülle aus den Input-Punktdaten, wobei nur die Position (nicht die Grenzen) jedes Punktes verwendet wird. Dieser Knoten kann in Verbindung mit dem Spline-Knoten erstellen verwendet werden, um eine Spline zu erstellen, die alle Punkte umfasst und die wiederum auch an den Knoten Oberfläche aus Spline erstellen übergeben werden kann. |
Actor Daten abrufen | Allgemeine Version der Daten-Knoten … Abrufen. Liest Daten von einem Actor unter Verwendung des Actor-Filters und des Modus. Sie enthält die folgenden Optionen: Actor-Filter: Legt fest, welche Actors beim Abrufen von Actor-Daten berücksichtigt werden sollen. Children einbeziehen: Legt fest, ob alle Child-Actors des Inputs berücksichtigt werden sollen. Modus: Enthält die folgenden Optionen:
Zusätzliche Optionen beim Abrufen von PCG -Daten:
Dieser Knoten ist die gängigste Methode, um auf Daten aus PCG zuzugreifen, insbesondere in Stamm-Diagrammen. |
Grenzen abrufen | Erstellt einen Attributsatz, der die Welt-Bereichgrenzen (Minimum und Maximum) beliebiger räumlicher Daten enthält. Beachten Sie, dass dies allgemeiner ist als der Knoten Punkte kombinieren, da er Grenzen für mehr Typen zurückgibt. Dieser Knoten kann als übergeordnetes Konstrukt verwendet werden, um größere Verarbeitungsvorgänge in einem Diagramm durchzuführen. |
Landschaftsdaten abufen | Spezialisierung des Knotens Actor-Daten abrufen, der entsprechend typisierte und konstruierte Landschaftsdaten zurückgibt. |
PCG-Komponentendaten abrufen | Spezialisierung des Knotens Actor-Daten abrufen, der nur den generierten Output vaus ausgewählten PCG-Komponenten des Actors zurückgibt. |
Punkteanzahl abrufen | Gibt die Anzahl der Punkte in den bereitgestellten Input-Punktdaten zurück. Dadurch wird ein einzelner Attributsatz erstellt, unabhängig von der Anzahl der Inputs und einem Eintrag in diesem Attributsatz pro Input-Punktdaten. |
Grundkörperdaten abufen | Spezialisierung des Knotens Actor-Daten abrufen, der entsprechend typisierte und gefilterte Grundkörperdaten zurückgibt. |
Spline-Daten abrufen | Spezialisierung des Knotens Actor-Daten abrufen, der entsprechend typisierte und gefilterte Spline-Daten zurückgibt. |
Texturdaten abrufen | Lädt eine Textur in Oberflächendaten. Beachten Sie, dass für die meisten komprimierten Texturtypen eine GPU zur Ausführung erforderlich ist. Dies unterstützt das Sampling komprimierter Texturen, UTexture2DArrays mit einem Index zur Auswahl der gewünschten UTexture2d, das Sampling von CPU-verfügbaren Texturen, die mit der Eigenschaft „Verfügbarkeit“ für alle UTextures erstellt werden können, sowie Punkt-Filterung anstelle von ausschließlich bilinearer Filterung. Dieser Knoten ermöglicht auch eine Editor-exklusive Option, um das CPU-Sampling zu erzwingen. Dadurch wird ein Duplikat der Zieltextur erstellt, das für die CPU sichtbar und unkomprimiert ist, und stattdessen wird dieses Duplikat gesampelt. Es vermeidet Kompressionsartefakte durch GPU-Sampling. |
Volumendaten abrufen | Spezialisierung des Knotens Actor-Daten abrufen, der entsprechend typisierte und gefilterte Volumendaten zurückgibt. |
Innere Schnittstelle | Berechnet die innere Schnittstelle zwischen allen Daten, die dem Knoten bereitgestellt werden, unabhängig von ihren Pins. Beispiel: Input enthält [A, B, C] Ergebnis: A ∩ B ∩ C |
Schnittstelle | Berechnet eine äußere Schnittstelle für jede im Pin Primäre Quelle bereitgestellte Daten, wobei das Ergebnis einer Schnittstelle pro Daten im Pin „Primäre Quelle“ gegenüber der Vereinigung der Daten in den anderen Pins Quelle ist. Beispiel: Primäre Quelle enthält [A, B] Quelle 1 enthält [C, D] Quelle 2 enthält [E]. Ergebnis: A ∩ (C ∪ D) ∩ E, B ∩ (C ∪ D) ∩ E |
Konkretisieren | Faltet zusammengesetzte Datentypen (Schnittstelle, Differenz, Vereinigung) zu Punktdaten zusammen. Für bereits konkrete Daten hat dies keinen Effekt. Dieser Knoten wird normalerweise nicht direkt verwendet, ist aber ein Konvertierungsschritt in bestimmte Knoten. |
Punkte zusammenführen | Kombiniert mehrere Input-Punktdaten zu einzelnen Punktdaten. Attribute werden zusammengeführt und nicht gemeinsame Attribute werden nach Bedarf standardmäßig festgelegt. |
Seed mutieren | Mutiert den Seed jedes Punktes in den Input-Punktdaten entsprechend seiner Position, dem vorherigen Startwert, dem Startwert dieses Knotens und dem Startwert der Komponente. Dieser Knoten ist nützlich, um zufälliges Verhalten zu trennen, nachdem einige Operationen durchgeführt wurden, die Punkte duplizieren, aber ansonsten möglicherweise keinen Einfluss auf Seed haben. |
Normal zu Dichte | Berechnet die Punktdatendichte basierend auf der Punktnormalen und den angegebenen Einstellungen (Normalen, Versatz, Stärke, Modus), ähnlich einem Skalarprodukt, mit zusätzlicher Flexibilität. Dieser Knoten wird häufig verwendet, um bestimmte Punkte, die am stärksten an einer bestimmten Achse ausgerichtet sind (einige Bäume höher machen), oder am wenigsten ausgerichtet sind (Bäume an steilen Hängen entfernen), in irgendeiner Weise zu beeinflussen. |
Punktnachbarschaft | Berechnet nachbarschaftsbasierte Werte und setzt sie entsprechend einer Suchentfernung (in Engine-Einheiten) auf die Input-Punktdaten. Die Werte umfassen Entfernung zum Zentrum, durchschnittliches Nachbarschaftszentrum, durchschnittliche Dichte und durchschnittliche Farbe. Dieser Knoten kann verwendet werden, um Dichte oder Werte über Punkte hinweg zu glätten, was oft für natürliche prozedurale Prozesse nützlich ist. |
Punkt vom Mesh | Erstellt einen Punktdatensatz, der einen Punkt mit den Grenzen des bereitgestellten statischen Mesh und einen Verweis auf dieses Mesh enthält. Dies ist nützlich, wenn die Auswahl des potenziellen Mesh im Voraus erfolgt und diese Grenzen dann vor der Durchführung von Schnittstellen-Punkttests oder Selbstbeschneidung auf die Punkte verschoben werden (häufig durch eine Kombination aus Partitionsknoten + Schleifenknoten + Punkt vom Mesh). |
Projektion | Erstellt Projektionsdaten aus Quell-Daten, um diese auf ein Ziel zu projizieren. Beachten Sie, dass die Daten in Punkte umgewandelt werden, wenn es keine speziellen Projektionsdarstellungen für diese Quell-Daten zu diesen Zieldaten gibt. Dieser Knoten wird sehr häufig verwendet, um Punkte nach einer Handhabung im Diagramm erneut auf Oberflächen zu projizieren. Zum Beispiel folgt es oft einem „Punkte kopieren“-Knoten, um die Punkte an der richtigen Position in ihrer Umgebung zu ersetzen. |
Räumliches Rauschen | Erstellt ein räumlich konsistentes Rauschmuster (z. B. Perlin-Rauschen) und schreibt es in ein angegebenes Attribut. Dieser Knoten kann zusammen mit den Match- und Satz-Attributen mit den Input-Gewichten verwendet werden, um räumliches Rauschen auf die Auswahl anzuwenden. Im Allgemeinen ist dieser Knoten nützlich, um natürlichere Verteilungen zu erzielen. |
Zu Punkt | Wandelt die Daten in Punktdaten um, wenn sie bereits solche sind, oder diskretisiert die räumlichen Daten in Punktdaten. |
Vereinigung | Erstellt eine logische Vereinigung zwischen Daten aus Sicht einer Verteilungsfunktion. Das Ergebnis hängt von der gewähltem Option für die Dichtefunktion ab. Dichtefunktion: Legt fest, welche Dichtefunktion nach Abschluss der Operation verwendet wird. Enthält die folgenden Optionen:
|
Weltstrahl-Trefferabfrage | Erstellt oberflächenähnliche Daten, die Raycasts in der Physikwelt ausführen. Es kann Daten an jeden Knoten weiterleiten, der Oberflächendaten erwartet. Standardmäßig werden Größe und Ausrichtung der Strahlen durch die Eigenschaften des Quellkomponenten-Actors (höchstwahrscheinlich ein Volumen) bestimmt, aber die Strahleneigenschaften können überschrieben werden. Sie enthält die folgenden Optionen: Metadaten aus der Landschaft anwenden: Ruft die Werte der Landschaftsebene ab, wenn der Raycast auf die Landschaft trifft. Beachten Sie, dass dies mit geringen Leistungseinbußen verbunden ist. PCG Treffer ignorieren: Ignoriert alle PCG generierten Assets. Ist nützlich, wenn keine Reihenfolge gegenüber anderen Knoten, die Daten in der Welt (oder anderen Diagrammen) erstellen, erzwungen wird. Optional kann das physikalische Material und der getroffene Actor zurückgegeben werden. Die Filterelemente dienen zur feineren Steuerung, um nur bestimmte Treffer zu ignorieren oder beizubehalten. |
Volumetrische Abfrage der Welt | Erstellt volumenähnliche Daten, die Punkte aus der physikalischen Welt sammeln. Es kann Daten an jeden Knoten weiterleiten, der Oberflächendaten erwartet. Die Suche nach Überlappungen steuert, ob Überlappungen als Punkte zurückgegeben werden oder nur Abfragen, die keine Überlappungen ergeben (vorbehaltlich einer Filterung). Kann optional auch den „gefunden“ Actor in diesem Volumen zurückgeben. |
Spawnpunkt
| Knoten | Beschreibung |
|---|---|
Ziel-Actor erstellen | Erstellt einen leeren Actor aus einer Vorlage, die als Ziel zum Schreiben von PCG Artefakten verwendet werden kann, z.B den Statischen Mesh Spawner. |
Punkt vom Spieler-Pawn | Erstellt einen Punkt am aktuellen Spieler-Pawn-Ort. Während der Laufzeit verwendet. |
Spawn Actor | Spawnt entweder den Inhalt eines Actors oder einen Actor pro Punkt in den bereitgestellten Input-Daten. Der Actor wird je nach Einstellungen von der Vorlagen-Actor-Klasse, dem instanzierten Vorlagen-Actor oder einem Attribut gesteuert. Sie enthält die folgenden Optionen: Vorlage Actor Klasse: Liste der verfügbaren Actors in Ihrem Projekt. Option:
Im Fall „Keine Zusammenführung“ ist es möglich, den Actors über die „Eigenschaft Beschreibungen von Spawned Actors überschreiben“ Eigenschaften aus den Attributen auf den Punkten festzulegen. Anhängen Modus:
Dieser Knoten kann verwendet werden, um partitionähnliche Actors zu erstellen und Artefakte (visuelle und andere) über Actors zu sammeln, die bei der Wiedergabe ordnungsgemäß gestreamt werden können. |
Spawner für statisches Mesh | Spawnen Sie ein statisches Mesh pro Punkt in den bereitgestellten Punktdaten. Statische Mesh-Optionen werden zum Array „Mesh-Einträge“ hinzugefügt und anhand des Gewichts jedes Eintrags ausgewählt. Dies geschieht, indem die Summe aller Gewichtswerte ermittelt und für jeden Eintrag in einen Prozentsatz umgerechnet wird. Wenn beispielsweise vier Einträge im Array vorhanden sind, die jeweils den Wert 1 haben, beträgt der Wert der Summe 4. Die Gewicht jedes Eintrags wird dann durch die Summe geteilt und in einen Prozentsatz umgewandelt. Das bedeutet, dass jeder Eintrag eine 25-prozentige Chance hat, zu spawnen. Die Auswahl des statischen Mesh wird über Varianten basierend auf der gewählten Option Mesh-Selektor-Typ vorgenommen. Sie enthält die folgenden Optionen:
Das ausgewählte Mesh wird in ein Attribut in den Output-Punktdaten geschrieben, und die Grenzen des ausgewählten Mesh werden an die Punktgrenzen übertragen. Für jede erstellte Mesh-Eigenschaftsüberschreibung kann ein Attribut ausgewählt werden, das bei der Generierung auf ein Eigenschaftsziel in der ISM-Vorlagenbezeichnung angewendet wird. |
Teildiagramm
| Knoten | Beschreibung |
|---|---|
Schleife | Führt ein weiteres Diagramm als Teildiagramm aus, einmal pro Daten in den Schleifenpins. Nicht-Schleifen-Pins werden unverändert weitergegeben. Pin-Eigenschaften werden für die Input- und Output-Knoten in jedem Diagramm eingerichtet. Die Verwendung der Pins steuert deren Verhalten, wenn sie in einer Schleife ausgeführt werden. Feedback-Pins haben ein spezielles Verhalten, daher sollten sie mit einem anderen Pin mit gleichen Namen im Output gepaart werden. Während der Ausführung empfangen die erste Iteration die Daten am Feedback-Pin vom aufrufenden Diagramm, nachfolgende Iterationen holen jedoch die Daten der vorherigen Iteration. Dieser Knoten ist äußerst wichtig, um die lokale Verarbeitung desselben Datentyps zu vereinfachen, beispielsweise indem er das Sampling auf einem einzelnen Mesh (mit dem Mesh Sampler-Knoten) erlaubt und anschließend nur die relevanten Daten kopiert. Es wird auch verwendet, um Datensätze zu erstellen, die gegenseitige Abhängigkeiten aufweisen (Sequenzen von Auswahlen und Ausschlüssen) und Ähnliches. |
Teildiagramm | Führt ein anderes Diagramm als ein Teildiagramm aus. Beachten Sie, dass ein Diagramm sich selbst rekursiv aufrufen kann; das Diagramm wird so lange ausgeführt, bis dieser Teildiagramm-Knoten aus der Ausführung ausgeblendet wird (aufgrund von Kontrollfluss-Knoten) oder wenn keine Input-Daten mehr vorhanden sind. Teildiagramm-Knoten sind ein wichtiges Element bei der Verringerung der Diagrammkomplexität und der Maximierung der Wiederverwendbarkeit. Sie ermöglichen auch Rekursivität, was unter bestimmten Umständen nützlich sein kann. |
Nicht kategorisiert
| Knoten | Beschreibung |
|---|---|
Kommentar hinzufügen | Visuelle Hilfe zum Kategorisieren und Organisieren eines Diagramms. Das ist kein tatsächlicher Knoten. |
Umleitungs-Knoten hinzufügen | Diagramm-Organisationswerkzeug zum Hinzufügen von Kontrollpunkten an Kanten, damit diese im Diagramm besser aussehen. |
Benannten Umleitungsdeklarationsknoten hinzufügen | Benannte Umleitungs-Knoten ähneln Umleitungs-Knoten, haben aber keine Kanten. Sie werden verwendet, um ansonsten sehr lange Kanten oder Spaghetti-Kanten in großen Diagrammen zu entfernen. Sie können umbenannt und an mehreren Stellen verbraucht (Verwendung) werden, aber sie können nur an einer einzigen Stelle in einem Diagramm definiert werden (Definition). |