Projektstruktur / Synchronisation
Section outline
-
-
D.1.1. Anlegen unterschiedlicher virtueller Szenen in Unreal
Innerhalb des bereits erstellten Levels können verschiedene Szenen miteinander kombiniert werden. So können Ladezeiten vermieten werden, die anfallen würden, wenn für jede einzelne Szene ein neues Level angelegt werden würde. Da in einer VR-Anwendung ohnehin stets beachtet werden muss, dass eine gewisse Anzahl der 3D-Objekte bzw. Polygone in einem Level nicht überschritten wird, reicht ein Level innerhalb der Entwicklungsstruktur von Unreal aus, um ein oder mehrere Szenarien miteinander zu kombinieren. Für größere Produktionen wäre auch das Kombinieren mehrerer Levels möglich. Für dieses Beispiel reicht jedoch ein Level vollkommen aus.
Im Folgenden soll erläutert werden, wie mehrere 3D-Objekte zu einer 3D-Szene kombiniert und dann als Ganzes ein- und ausgeblendet werden können. Unreal bietet die Möglichkeit, mit dem sogenannten „Actor“-Blueprint eine Art Container bereitzustellen, der mit einer Vielzahl an unterschiedlichen Komponenten gefüllt werden kann. Die verschiedenen Komponenten bestehen aus unterschiedlichen Datentypen. Für eine 3D-Szene werden mehrere separate Static Mesh Components benötigt.
Neuen Actor erstellen:
- Im Content Browser: Rechtsklick à Blueprint Class à Actor
- per Doppelklick auf das neu erstellte Actor-Blueprint klicken, um Blueprint zu öffnen
- Links im Component-Fenster können über „Add“ neue Komponenten hinzugefügt
- Im Beispielbild sind einige Static Mesh Components in der Übersicht aufgelistet, die jeweils eine Verlinkung zu einem Static Mesh Objekt (3D-Objekt) beinhalten
- Per Drag-and-Drop können bereits vorhandene Static Mesh Objekte aus dem Content-Browser in das Components-Fenster hinzugefügt werden. Dann werden automatisch entsprechende Komponenten erstellt inklusive einer korrekten Verbindung zum Objekt.
- Der neu erstellte Actor kann per Drag-and-Drop aus dem Content Browser in das Level eingefügt und platziert werden
edu sharing objectSo können 3D-Objekte sehr effizient gruppiert und zu verschiedenen Szenen innerhalb eines Levels angeordnet werden.
D.1.2. Blueprinting: Switchen zwischen unterschiedlichen Szenen
Sobald die unterschiedlichen Szenen als Actor angelegt wurden, können diese separat voneinander ein- und ausgeblendet werden. Im Details-Panel des Actors kann eingestellt werden, ob der Actor auch im Play-Mode sichtbar sein soll. Diese Einstellung befindet sich unter dem Reiter „Rendering“ und heißt „Actor Hidden In Game“.
edu sharing objectSobald ein Actor während der laufenden Anwendung ein- bzw. ausgeblendet werden soll, wird eine entsprechende Funktion benötigt, die dies ermöglicht. Dafür nutzen wir die Blueprint-Nodes innerhalb des Actor-Blueprints.
- Blueprint des Actors öffnen
- Event Graph öffnen
edu sharing objectInnerhalb des Event Graphs können neue Node-Strukturen angelegt werden, die während der laufenden Anwendung ausgeführt werden. Das „Event BeginPlay“ ist ein Event, das in jedem Event Graph nur ein einziges Mal vorkommt und es wird ausgeführt, sobald die Anwendung gestartet wird. Das „Event Tick“ ist ebenfalls nur ein einziges Mal vorhanden und es wird zu jedem Tick, also einmalig pro Frameberechnung, aktiviert. Besonders rechenintensive Funktionen sollten also nur mit Bedacht per Tick ausgeführt werden. Eine besonders nützliche Funktion ist allerdings das Anlegen eigener, sogenannter „Custom Events“. Für das Ein- und Ausblenden der jeweiligen Actor kann so über eine simple Node-Struktur jeweils ein eigenes Event angelegt und angesteuert werden.
- Rechtsklick im Event Graph
- Search for „Custom“
- Add Custom Event…
- Zwei Custom Events anlegen, benennen und anordnen
- Execution Pin per Drag and Drop erweitern, neuen Node „Set Actor Hidden In Game“ hinzufügen
edu sharing objectDiese Custom Events können nun beispielsweise per OSC in Echtzeit getriggert werden (siehe Kapitel 2.1.).
D.2. Timing / Struktur des Stückes
D.2.1. Level-Sequences als Cues anlegen
Für das Anlegen einer VR-Performance ist es sehr wahrscheinlich, dass zeitlich sequenzierte Veränderungen der 3D-Umgebung benötigt werden. Wie verschiedene Parameter bzw. Objekte per OSC angesteuert und verändert werden können, wurde bereits thematisiert. Sobald jedoch zeitlich sehr klar strukturierte Veränderungen der Objekte angedacht sind, können auch Level-Sequenzen sehr hilfreich sein, um Parameter in einem festgelegten Ablauf zu verändern – mit einem klassischen Key-System, wie auch aus anderer Editing-Software bekannt.
Mehrere Level-Sequenzen können nacheinander aber auch parallel abgespielt und gesteuert werden. Unterschiedliche Cues in einem Stück können auf verschiedene Level-Sequenzen aufgeteilt und gut planbar nacheinander, beispielsweise per OSC, getriggert werden.
- Klick auf Sequenz-Symbol rechts vom Play-Button
- Add Level Sequence
- Sequenz benennen und in neuem Order im Content Browser abspeichern
edu sharing objectNeue, in diesem Fall noch leere, Level-Sequenz beliebig oft duplizieren, je nach Anzahl des Cues.
Cue-System erstellen:
Video D_2_1
D.2.2. Parameter von Objekten in der Szene steuern
….
Video D_2_2
D.2.3. Blueprinting: Triggern von Cues mittels OSC
…
Video D_2_3
D.2.4. Blueprinting: Triggern von Cues mittels Overlap-Events/Kollision
…
Video D_2_4
-