Mit Scene Graph erreichst du mit ein paar einfachen Schritten schnell den Übergang von Grayboxing und der Welt-Erstellung zu einem vollständig spielbaren Level.
Scene Graph ist ein in Verse natives System, das die Vorteile der Merkmale von Verse nutzt. Das bietet dir eine Möglichkeit, deine Projekte mit interaktiven, speziell erstellten Objekten und Gameplay-Erlebnissen weiter anzupassen.
Scene Graph verbessert die Projektstabilität, da Verse im Hintergrund die schwere Arbeit erledigt und dafür sorgt, dass Entitäten wie gewünscht funktionieren. Verse hat außerdem tiefgreifenden Zugriff auf alle Teile der Szenenentitäten und Komponenten, was bedeutet, dass du Szenen mit mehr Varianz erstellen kannst.
Aktivieren des Szenendiagramms in Deinem Projekt
So verwendest du Scene Graph in deinem Projekt:
Wähle in der Werkzeugleiste die Option Projekt > Projekt-Einstellungen, um das Fenster „Projekt-Einstellungen“ zu öffnen.
Aktiviere im Fenster Projekt-Einstellungen unter Beta-Zugriff die Option Scene-Graph-Werkzeuge. Scene Graph ist in Beta standardmäßig aktiviert.
Um zu überprüfen, ob du Scene-Graph-Funktionen anzeigen kannst, wählst du in der Werkzeugleiste die Option Actors platzieren aus und sieh dir Entitäten in der Dropdown-Liste Actors platzieren an.
Objekte in Metaverse
Das Metaverse ist ein soziales Online-Entertainment-Erlebnis in Echtzeit, in dem Personen in einer 3D-Welt spielen und sich verbinden können. Epic Games entwickelt das Scene-Graph-System für UEFN, damit du diese Metaverse-Erlebnisse erstellen kannst.
Im Scene-Graph-System kannst du ein Objekt ohne die Actor-Klassifizierung von Unreal Engine instanziieren und wiederverwenden. Im Zentrum von Scene Graph steht ein Satz Bausteine, die Daten und Logik nutzen, um dein Spiel zu erstellen, sowie Objekte in jeder beliebigen Spielumgebung darzustellen und zu simulieren.
Actors und Entitäten sind nicht austauschbar, sie sind unterschiedliche Systeme, die in der Szene zusammenarbeiten.
Mit Scene Graph kannst du ein 3D-Echtzeit-Simulations-Framework aufbauen, in dem alle Designentscheidungen und Ergebnisse sofort im Viewport sichtbar sind. Diese können im Details-Panel oder im Prefab-Editor bearbeitet werden.
Du kannst Assets importieren, die du erstellst oder von einem Anbieter erwirbst, und diese mit Scene Graph verwenden, um benutzerdefinierte Objekte und Prefabs zu erstellen.
Alles, was du in Scene Graph erstellst, kann vielfach und mit weniger Speicher wiederverwendet werden. Das Scene-Graph-Erstellungssystem ist so konzipiert, dass es die Weitergabe komplexer Inhalte und freigegebene Simulationen ermöglicht, während gleichzeitig Grenzen zwischen den Inhalten durchgesetzt werden.
Entitäten und Komponenten
Entitäten und Komponenten sind das Rückgrat von Scene Graph. Sie steuern die Definition und das Verhalten der Objekte.
Entitäten sind Container für Komponenten oder andere Entitäten. Eine leere Entität wird keinen sichtbaren Effekt oder Funktionalität haben. Komponenten liefern Daten und Verhalten für eine Entität. Die Kombination von Komponenten, die einer Entität hinzugefügt werden, bestimmt, was diese Entität in der Szene tut.
Eine Entität kann eine beliebige Anzahl verschiedener Komponenten enthalten. Es kann jedoch jeweils nur eine Komponente eines bestimmten Komponententyps zu einer Entität hinzugefügt werden. Zum Beispiel kann nur ein Typ von light_component für eine Entität verwendet werden. Um mehrere Komponenten eines gemeinsamen Typs zu verwenden, können Sie neue Entitäten erstellen, um jede Instanz der Komponente aufzunehmen.
Einige Komponententypen werden von in UEFN erstellten Assets erzeugt. Eine asset-generierte Komponente ist eine Komponentenklasse, die automatisch auf Basis bereits existierender Inhalte in einem Projekt erstellt wird, wie etwa Mesh, Sound oder eine Partikel-Systemkomponente. Diese Assets verfügen mitunter über Eigenschaften, die du über die generierte Komponente modifizieren kannst.
Komponenten haben bearbeitbare Eigenschaften. Diese Eigenschaften können physisch sein, wie ein statisches Mesh und ein Partikelsystem, oder logisch wie ein Gameplay-Tag oder ein benutzerdefinierter Verse-Code, der die Bewegung einer Plattform definiert. Standardmäßig haben alle Entitäten eine Transform Component, um festzulegen, wo die Entität in der Welt existiert.
Bei der Konstruktion einer Entität mit Verse wird nicht automatisch eine Transformationskomponente erstellt.
Mit Scene Graph kannst du schnell Setteile und Spielmechaniken zusammenstellen, indem du die physischen Daten von Meshs, Sound-Einsätzen und vielem mehr nutzt.
Eine Entität wird zur physikalischen Darstellung eines Statisches Mesh, wenn du der Entität eine Mesh-Komponente hinzufügst und ein Mesh im Mesh-Slot der Komponente ausgewählt ist. Das bedeutet, dass du schnell Gebäude oder einzelne Set-Teile modellieren und sie direkt in deiner Szene verwenden kannst.
Zum Beispiel wird im folgenden Video eine Entität in ein Cluster aus immergrünen Bäumen verwandelt.
Du kannst diesen Baum-Cluster allein in ein Prefab verwandeln oder ihn mit zusätzlichen Entitäten kombinieren, um ein Wald-Prefab zu erstellen.
Eine Entität (die Simulationsentität) befindet sich im Kern deines Projekts, um die Simulation darzustellen. Die Szene wird erstellt, wenn Entitäten unter der Simulationsentität verschachtelt werden. Durch das Hinzufügen von Entitäten zu der Karte erstellst du automatisch Child-Entitäten der Simulationsentität.
Die oberste Entität des Prefab ist die Kernentität des Prefab mit anderen Prefabs und Entitäten, die darunter verschachtelt sind. Parent-Prefabs enthalten die Darstellung und das Verhalten ihrer Child-Elemente für die Interaktion mit anderen Objekten in der Szene.
Klicke auf das Bild, um es zu vergrößern.
Prefab-Kernentität → WoodenHouse_Tiny_Prefab
Child Prefab → WoodenHouse_RoofSmall_Prefab_C_1
Child-Entität → Building_WindowCircle_Bright2
Child-Entität → Building_WindowCircle_Bright4
Child-Entität → Building_WindowCircle_Dark2
Child-Entität → Building_WindowCircle_Dark4
Child-Entität → WoodenHouse_Floor
Child-Entität → WoodenHouse_RoofCap2
Child-Entität → WoodenHouse_RoofCap3
Child-Entität → WoodenHouse_RoofWindow2
Child Prefab → WoodenHouse_SmallFloor_Prefab_C_1
Child-Entität → WoodenHouse_Floor
Child-Entität → WoodenHouse_Wall10
Child-Entität → WoodenHouse_WallDoor_C4
Child Prefab → WoodenHouse_Windows_Prefab_C_3
Child-Entität → Building_WindowPlane_Bright3
Child-Entität → Building_WindowPlane_Bright4
Child-Entität → Building_WindowPlane_Dark3
Child-Entität → Building_WindowPlane_Dark4
Child-Entität → WoodenHouse_Windows_10
Jedes Child-Prefab bietet Komponenten, die bestimmen, wie das Prefab aussieht und wie es sich an andere Prefabs in der Szene anpasst. Du kannst mit Verse spezifische Prefabs und Entitäten auswählen, um das Child-Prefab gegen ein anderes Prefab auszutauschen, oder sogar die Farbe ändern, die für die Entitäten Building_WindowPlane_Bright und Building_WindowPlane_Dark verwendet wird.
Es gibt zahlreiche Komponententypen, die bestimmen, wie ein Teil einer Entität oder eine ganze Entität agiert. Weitere Informationen zu den verschiedenen Komponententypen, die in Scene Graph verfügbar sind, findest Du unter Komponenten.
Weitere Informationen zur Verwendung von Entitäten und Komponenten findest du unter Arbeiten mit Entitäten und Komponenten.
Prefabs
Szenendiagramm erstellt Prefabs, indem es Entitäten in einer Vorfahren- und Nachfahrenbeziehung zusammenfasst. Ein Vorfahre ist eine beliebige Entitätsebene über anderen Entitäten, wie z. B. Eltern, Großeltern, Urgroßeltern usw. Ein Nachkomme ist eine niedrigere Entitätsebene wie beispielsweise Kind, Enkel usw.
Alle ausgewählten Entitäten, Entitätshierarchien und ihre Komponenten werden sofort zu diesem Entitätsbaum in der Voreinstellung hinzugefügt. Sobald du ein Prefab hast, kannst du alle Instanzen dieses Prefabs im Prefab-Editor anpassen.
Um eine Instanz deines Prefabs zu erstellen, ziehst du das Prefab aus dem Inhaltsbrowser in den Viewport. Du kannst auch Prefabs in der Prefab-Hierarchie verschachteln. Mit der Hierarchie kannst du die Änderungen, die an allen Instanzen und Prefabs in der Hierarchie vorgenommen wurden, übernehmen.
Wenn du das Prefab aktualisierst und verbesserst, sparst du Zeit, da du nicht alle Instanzen des Objekts suchen musst, um sie einzeln zu aktualisieren.
Des Weiteren kannst du zahlreiche ähnlich aussehende Objekte erstellen, indem du Subteile in der Hierarchie auswählst und verschiedene Komponentenwerte außer Kraft setzt. Du kannst auch Objekte drehen und zu verschiedenen Prefab-Instanzen neue Komponentenwert hinzufügen, wenn du sie im Prefab-Editor bearbeitest.
Der Editor kennzeichnet alle Änderungen im Details-Panel mit einem Override-Umschaltsymbol an den einzelnen Komponentenattributen. Er kennzeichnet außerdem verschiedene Komponentensymbole auf der Schaltfläche des Komponentenkarten-Dropdown-Menüs.
Um zum ursprünglichen Prefab-Design zurückzukehren, klickst du auf die einzelnen Override-Umschalter der Komponente. Das Objekt wird automatisch auf den Status des Parent-Prefab zurückgesetzt. Du kannst auch auf die Dropdown-Menü-Schaltfläche der Komponentenkarte klicken und Override löschen auswählen.
Weitere Informationen zum Ändern von Prefabs findest du unter Prefabs und Prefab-Instanzen.
Im folgenden Video wird mit Scene Graph zwei Burgzimmer-Prefabs erstellt.
Der Raum wird dupliziert. Ein Element des Raums wird geändert, indem das Boden-Mesh ausgewählt und das ursprüngliche Boden-Mesh ersetzt wird. So entsteht ein neues Prefab. Du kannst weiter Teile kopieren und ersetzen, um schnell eine kleine Burg und sogar ein Dorf zu modellieren. Das funktioniert sogar mit Komponenten, sodass du zu jedem der Räume in der Burg verschiedene Verhaltensweisen hinzufügen kannst.
Die Bearbeitung von Prefabs wirkt sich nicht auf die Stabilität und den Speicher der ursprünglichen Objekte oder ihrer Kopien aus. Das bedeutet, dass du dein Level-Layout, abstraktes Design und die künstlerischer Ausarbeitung abschließen kannst, um benutzerdefinierte Objekte für deine Insel zu erstellen. Mit dem Scene-Graph-Erstellungssystem kannst du die Prefabs, die du in verschiedenen Projekten erstellst, wiederverwenden, um dein eigenes Spieluniversum in Fortnite zu erstellen.
Verse im Szenendiagramm
Verse ist die Programmiersprache, mit der Scene Graph Entitäten spawnt und aus der Welt entfernt sowie benutzerdefinierte Komponenten und Verhaltensweisen erstellt.
Mit Verse kannst du eine schwankende Laterne im Freien für das Haus im vorangegangenen Beispiel erstellen. Verse bietet dir eine Möglichkeit, die Eigenschaften für Schwanken, Drehung und Dauer zu definieren, die bestimmen, wie sich die Laterne bewegt.
Prefabs, die du in deinem Projekt erstellst, werden Verse als Klasse in der Datei Assets.digest.verse deines Projekts zur Verfügung gestellt. Auf Entitäten und Komponenten, die in deinem Prefab definiert sind, kann in Verse über die Aufrufe GetEntities() und GetComponents() in einem Prefab zugegriffen werden.
Informationen zum Einstieg in die Verwendung von Verse in Scene Graph findest du unter Erstellen eigener Komponenten mit Verse.
Praktische Erfahrung
Die Scene-Graph-Beispielvorlage führt dich in die grundlegenden Konzepte der Arbeit mit Scene-Graph-Funktionen ein und baut auf diesen grundlegenden Workflows auf, um die Leistungsfähigkeit der Erstellung deines Projekts mit Prefabs und Verse zu veranschaulichen. Jedes Beispiel zeigt, wie leistungsstark die Verwendung von Scene Graph zur Iteration eines Designs ist, um interessante und funktionale Spielobjekte und ein ausgewogenes Gameplay zu erstellen.
Öffne Erstellung eines Plattformers mit Scene Graph, um mehr über die Verwendung von Scene Graph zu erfahren und ein interessantes Gameplay zu erstellen.
Ausführlichere Tutorials findest du in den verfügbaren Scene-Graph-Tutorials.