Relevante Objekte und Logik

Ist eine 3D-Umgebung vorhanden, werden anschließend die lernrelevanten Objekte in der Umgebung platziert und mit Logik verknüpft um den Nutzer anzuleiten und dessen Fortschritt zu überprüfen.

Nachdem im vorherigen Teil eine 3D-Umgebung erstellt und ausgeleuchtet wurde (siehe "3D-Umgebung anlegen") wird in dieser 3D-Umgebung nachfolgend eine VR-Lerneinheit mit relevanten Objekten/Figmenten implementiert.

Vorbereiten der Scene

Es ist immer empfehlenswert die Scene mit der 3D-Umgebung zu duplizieren. Hierfür wird im Project-Funktionsfenster die Scene mit der 3D-Umgebung selektiert und per >Strg+C< und >Strg+V< kopiert/dupliziert. Anschließend wird das Kontextmenü der Kopie mit einem Rechtsklick geöffnet und mit >Rename< umbenannt. Die duplizierte und umbenannte Scene kann mit einem Doppelklick im Project-Funktionsfenster geöffnet werden. Die geöffnete Scene kann im Hierarchy-Funktionsfenster überprüft werden.

Hinzufügen der relevanten Objekte

Die für die VR-Lernanwendung benötigten Objekte können, wie hier beschrieben, hinzugefügt werden. Dabei ist es empfehlenswert, relevante Objekte in Figmente umzuwandeln.
Texte, Bilder und Audio können ebenfalls in der Umgebung platziert werden. Insbesondere Scenes mit vielen Objekten wirken übervoll. Im Rahmen der Logik werden Objekte auch ausgeblendet, um einen besseren Überblick zu schaffen.

 

Logik editieren

Die Logik in figments.nrw wird in einem speziellen Logikeditor angelegt, welcher jeder Scene hinzugefügt werden muss, die Logik enthalten soll. Nachfolgend werden die Schritte erläutert, die benötigt werden um die Logik anzulegen und diese zu editieren.

Hinzufügen des Logik-Editors

Um den Logikeditor hinzuzufügen wird im Hierarchy-Funktionsfenster >+< // >Figments< // >Create Figments Logic Components< selektiert. Im Hierarchy-Funktionsfenster sollte nun das Objekt FigmentsLogic existieren.

Editor

Das Kindobjekt Editor enthält alle Komponenten welche für das Editieren der Logik nötig sind.

Logic Editor

Der Logic-Editor wird dazu verwendet neue Logik anzulegen bzw. vorhandene Logik zu öffnen und zu editieren. Im Selektionszustand werden folgende Funktionen ermöglicht:

  • 1. Erstellen neuer Logik. Name eingeben und >New< klicken.
  • 2. Vorhandene Logik laden. Im Dropdown selektieren und >Load< klicken.

Im Bearbeitungszustand ist aktuell eine Logik selektiert. In diesem Zustand sind folgende Informationen sichtbar und Funktionen möglich:

  • 1. Name der aktuell geöffneten Logik.
  • 2. >Back to Selektion<-Schaltfläche führt zurück zur Selektionsansicht.
  • 3. >Reopen Graph Window<-Schaltfläche öffnet das Fenster der Logikgraphen.

 

Delete Logic Object

Die Delete-Logic-Object-Komponente wird dazu verwendet eine erstellte Logik zu löschen.

Runtime

Das Kindobjekt Runtime enthält alle Komponenten welche für das Ausführen der Logik nötig sind.

Logic Execution Automatic

Die Logic Execution Automatic Komponente ermöglicht es, Logik direkt auszuführen, wenn die Szene gestartet wird.

  • 1. In dem Dropdown kann die Logik selektiert werden, welche ausgeführt werden soll.
  • 2. Die >Discard<-Schaltfläche ermöglicht es, das automatische Ausführen der aktuellen Logik zu entfernen.

 

Logic Execution Manual Selection

Die Logic-Execution-Manual-Selection ermöglicht es Logik zu laden oder zu entfernen, während die Anwendung ausgeführt wird .

Logic Execution File

Diese Komponente wird benötigt, um die Logik auf mobilen VR-Brillen auszuführen. Die benötigten Schritte werden unter "Erstellen und Installation einer .apk-Datei" erläutert.

Bearbeiten des Logikgraphen

Nachfolgend wird der Logikgraph und dessen wichtigste Knoten erläutert. Mithilfe des Logikgraphen kann die gesamte Logik in einer Scene angepasst werden.

Um einen neuen Logikgraphen zu erstellen wird im Hierarchy-Funktionsfenster das Kindobjekt Editor des FigmentLogic-Objektes selektiert. Im Inspector-Funktionsfenster kann nun in der Logic-Editor-Komponente der Name der neuen Logik eingegeben und mit der Schaltfläche >New< angelegt werden. Hierdurch öffnet sich das Logikgraph-Funktionsfenster automatisch (siehe Editor).

Logikgraph-Funktionsfenster

In dem Logikgraph-Funktionsfenster kann der Logikgraph editiert werden.

  • 1. Arbeitsfläche. Hier wird der Graph bearbeitet. Ein Kontextmenü kann mit einem Rechtsklick geöffnet werden. Per Leertaste wird das Knotenmenü geöffnet.
  • 2. Mit der >Center<-Schaltfläche kann der Logikgraph zentriert werden.
  • 3. Mit der >Save<-Schaltfläche kann der Logikgraph gespeichert werden. Mit >x< kann das Funktionsfenster geschlossen werden.

Knotentypen

Für den Logikgraph gibt es verschiedene Arten von Knoten. Nachfolgend werden die verschiedenen Kategorien erläutert.

  • ActReact: Alle Knoten, welche Aktionen oder Reaktionen sind. Diese Knoten ermöglichen Zustandsänderungen von Objekten.
  • Attribute: Diese Knoten können Daten speichern und wieder abrufen. Auch zwischen einzelnen Scenes.
  • Complex: Knoten, die komplexes Verhalten ermöglichen z.B. Und-, Oder-Knoten etc.
  • Debug: Knoten, welche für das Debuggen/Testen der Logik hilfreich sind. Diese Knoten beeinflussen den Ablauf der finalen Logik nicht. Mit dem Message-Knoten kann Text im Console-Funktionsfenster ausgegeben werden.  Der Button-Knoten fügt in Runtime eine Schaltfläche unter >FigmentsLogic< // >Debug< hinzu.
  • Deprecated: Knoten die veraltet sind und voraussichtlich entfernt werden. Diese Knoten sollten nicht verwendet werden.
  • Events: Spezielle Ereignisse in der Scene.
  • Experimental: Knoten, welche voraussichtlich hinzugefügt werden, deren Funktion aber noch nicht komplett integriert ist. Diese Knoten sollten nicht verwendet werden.
  • Input: Input, wie Objekte und Konstanten.
  • Layout: Knoten, die das Layout des Graphen verbessern, z.B. Reroutes und Kommentare.

Übersicht über die Knoten

Die Knoten sind in diverse Bereiche unterteilbar. Nicht jeder Knoten hat jeden Bereich. Die Bereiche sind wie folgt:

  • 1. Name des Knotens: Jeder Knoten hat einen Namen, welcher dessen Funktion beschreibt. Durch den Tag wird die Kategorie markiert, zu welcher der Knoten gehört.
  • 2. Hinweise: Die Meldungen beschreiben Fehler, Warnungen oder Informationen.
  • 3. Beeinflusstes Objekt: Das beeinflusste Objekt wird durch einen Object-Info-Knoten bereit gestellt. Das Objekt kann auch durch den Knoten hindurchgereicht werden.
  • 4. Enable/Disable: Jeder Knoten kann durch einen Aktivator aktiviert oder deaktiviert werden. Ist ein Knoten deaktiviert werden keine Aktionen ausgelöst und keine Reaktionen verarbeitet.
  • 5. Reaktionen: Auf der linken Seite sind die Reaktionen des Knotens, welche durch Aktionen ausgelöst werden können.
  • 6. Aktivatoren/Aktionen: Auf der rechten Seite des Knotens sind die Aktivatoren, welche durch den Knoten ausgelöst werden können.
  • 7. Zusätzlicher Input: Zusätzlicher Input beeinflusst das Verhalten des Knotens.
  • 8. Einstellungen: In dieser Leiste können zusätzliche Einstellungen vorgenommen werden. Jeder Knoten hat die Schaltfläche, um den anfänglichen Knotenzustand (aktiviert/deaktiviert) einzustellen und zu bestimmen, ob der Knoten sich selbst nach einer Aktion/Reaktion deaktiviert.

 

Einfache Logik

In der Abbildung ist eine kleine Beispiellogik dargestellt. In der Umgebung gibt es einen Bunsenbrenner, eine Flamme, ein Feuerzeug und einen Einführungstext mit Schaltfläche (Call-To-Action).
Anfangs ist die Flamme aus und der Einführungstext sichtbar. Nachdem der Nutzer diesen Text weggeklickt hat kann er mit dem Feuerzeug den Bunsenbrenner "anzünden". Die Flamme wird sichtbar.
In der Grafik ist eine kleine Nebenlogik, welche verhindert, dass das Feuerzeug verlegt werden kann.

 

Schritte zur Erstellung der Inhalte