Dev #04: VR Whiteboards

Nach einer längeren Pause melden wir uns mit unserem Devblog zurück. In den vergangenen Wochen und Monaten hat sich einiges getan: Wir haben einen ersten Prototypen gemeinsam mit Studierenden erprobt, einen virtuellen Showroom für Figments.nrw entwickelt und neue Funktionen implementiert, darunter eines unserer ersten wiederverwertbaren Figmente: Ein interaktives Whiteboard.

Dev #04: Aktuelle Aktivitäten

Im Wintersemester 2021/2022 fand an der Hochschule Hamm-Lippstadt eine erste praktische Erprobung von Figments.nrw statt – hierzu wird es demnächst einen separaten Beitrag geben. Bei dieser Erprobung konnten wir sowohl beobachten, wie Figments.nrw in der Praxis eingesetzt wird, als auch (zahlreiche) Fehler identifizieren.

Ein Großteil der Arbeiten in den vergangenen Monaten beschäftigte sich daher damit, Figments.nrw stabiler und robuster zu machen.

Um uns vom Arbeiten an Netcode und das Beheben von Fehlern abzulenken, haben wir aber dennoch einige neue Funktionen in Planung bzw. in der Entwicklung.

Schreiben und Zeichnen in VR

Mit einem Whiteboard haben wir zum Beispiel ein erstes interaktives Figment entwickelt, an dem in Virtual Reality gezeichnet werden kann. Analog zu realen Objekten können diese frei im virtuellen Raum platziert werden. Anwender*innen können die Marker bzw. die Kreide in VR einfach greifen und dann am Whiteboard schreiben.

Das Tafelbild wird synchronisiert, sprich alle Teilnehmer können zu jeder Zeit sehen, was andere an den Whiteboards schreiben (dass das nicht immer trivial ist, beschreiben wir weiter unten).

Figmente: Whiteboard Varianten

Die Whiteboards – als vorbereitete Figmente – können beliebig in eine bestehende Szene oder ein Lernmodul importiert und dort positioniert werden. Aktuell haben wir mehrere konventionelle Whiteboards, die mit Markern und Radierern ausgestattet sind. Daneben gesellen sich ein Glassboard, an dem mit Neon-Stiften geschrieben werden kann, sowie – ganz Oldschool – eine Kreidetafel. 

Technische Umsetzung

Variante:
Unter der Haube bestehen die Whiteboards – neben der Geometrie, die als GLTF-Datei vorliegt – aus zwei wesentlichen Komponenten, einem Skript für die Whiteboard-Oberfläche (inklusive Netcode) sowie einem Skript für die Interaktion zwischen Markern und Whiteboard. Diese Komponenten können genutzt werden, um in Zukunft auch eigene Whiteboards umzusetzen oder zusätzliche Funktionen zu implementieren.

Skript: Whiteboard

Die Funktionalität des Whiteboards wird durch eine transparente Render-Textur realisiert, auf die bei Kontakt mit einem Marker gezeichnet wird. Das passiert, wenn ein vom Marker ausgehender Raycast mit dem Whiteboard kollidiert. Zusätzliche Funktionen des Whiteboards regeln z. B. die Positionierung des Markers am Whiteboard während des Schreibens oder das Wiederherstellen von Markern die verloren gegangen sind (oder weggeworfen wurden ). Das Whiteboard generiert ebenfalls die Materialien, die zum Schreiben verwendet werden, basierend auf der Farbe des aktuell genutzten Markers.

Skript: Whiteboard-Marker

Von der Spitze eines Markers wird ein Raycast durchgeführt, um festzustellen, ob dieser auf ein Whiteboard zeigt oder dieses berührt. Zusätzliche Funktionen ermöglichen unter anderem individualisierbare Stiftfarben, die VR-Integration (also z. B. das Greifen des Stiftes mit der Hand oder dem Controller) sowie haptisches Feedback bei Kontakt mit dem Whiteboard.

Funktionen, Fehler und Ausblick

Die oben beschriebenen Funktionen stellen die Basis des Whiteboard-Figments dar, sind aber noch nicht final. Wie unten zu sehen ist, gibt es noch den ein oder anderen Edge-Case, den wir bei der Weiterentwicklung berücksichtigen sowie Bugs, die noch ausgebügelt werden müssen.

In Abhängigkeit von den Anforderungen, die aus der Praxis an uns herangetragen werden, planen wir unter Umständen neue Funktionen hinzuzufügen, darunter z. B. das Speichern und Exportieren kompletter Tafelbilder.

Table of Contents