Hokuspokus

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Konzept

Projektidee

Die ursprüngliche Projektidee war es, ein 3D-basiertes Action-Rollenspiel zu entwickeln bei dem die Protagonistin (eine Hexe) verschiedene Entwicklungsstufen durchläuft. Ausgangspunkt sollte das Zuhause der Hexe sein. Hier erhält der Spieler eine Nachricht, welche ihn zur Zauberschule hinter den Bergen einlädt. Der Flug dorthin sollte mit einen Hexenbesen erfolgen und an der Schule würdem den Spieler verschiedene Aufgaben erwarten. Angesichts der Komplexität der Aufgabe und der Fokussierung auf die mögliche Interaktion, beschränkten wir uns auf den Hexenflug.

Notwendige Technologie

Für das interaktive Erlebnis werden verschiedene Mittel eingesetzt:

  1. Physikalisch: Ein physikalischer Prototyp des Hexenbesens
  2. Sensorik: Erfassung der Position des Spielers auf dem Besen mittels Triangulation
  3. Übertragung: Echtzeitverarbeitung der bereitgestellten Daten
  4. Visualisierung: Abbildung des Hexenflugs

Entwicklungsablauf

Zur Umsetzung der gestellten Aufgabe wurden folgende Entwicklungsschritte durchlaufen:

  • Phase 1: Ideenfindung: Eruierung aller Möglichkeiten die zur Umsetzung der Phasen 1-4 geeignet sind.
  • Phase 2: Prüfung der Umsetzbarkeit: Prüfung aller Möglichkeiten die eigenständig zur Umsetzung der Phasen 1-4 genutzt werden können.
  • Phase 3: Bereitstellung eines ersten Prototyps.

Entwicklung

Phase 1

Physikalisch: Hexenbesen

Hokuspokus besen1.jpeg
Hokuspokus besen2.jpeg
Hokuspokus besen3.jpeg
Hokuspokus besen4.jpeg

Um eine geeignete Arretierung zu finden und ein authentisches Fluggefühl zu erzeugen, nutzten wir eine Sprungfeder eines Spielplatzgerätes. Durch das Metallgerüst, was normalerweise in den Boden betoniert wird, gab es genug Abstand zum Boden und die Möglichkeit für Stabilität zu sorgen indem wir längere Holzlatten anbrachten.

Sensorik

Das Bild zeigt die Verkabelung vom Bewegungssensor und den Arduino:

Sensor GY-521 MPU-6050, Arduino ESP 8266

Übertragung

Die Übertragung erfolgt zunächst über ein USB-Kabel. Durch den programmierten Code mit der Software Arduino IDE 1.8.7 werden die Daten gesendet. Der Link zum Code ist in Phase 2 zu finden.

Visualisierung

Unity ist geeignet, weil: - Es möglich ist OSC-Daten zu empfangen - Die OSC-Daten können im C#-Script ausgewertet werden und im Spiel integriert werden Wird in Phase 2 aufgegriffen!

Evaluierung Phase 1

In Phase 1 konnten wir sowohl das Grundgerüst des Besens konstruieren, als auch erste Bewegungen des Sensors im OSC Monitor anzeigen lassen. An einigen Stellen schien sich der Arduino neuzustarten, sodass wir bei den Messungen unterschiedliche Werte für die gleiche Bewegung bekamen.

Phase 2

Physikalisch: Hexenbesen

Hokuspokus besen5.jpeg
Hokuspokus besen6.jpeg
Hokuspokus besen7.jpeg

Der Besen wurde um eine Sitzfläche (einem alter Schemel) ergänzt.

Sensorik

Zur Stabilisierung der Datenübertragung wurde zusätzlich ein Kondensator angeschlossen. Da der Sensor an den Oberkörper des Spielers befestigt werden soll, ist eine kabellose Übertragung notwendig. Die Stromversorgung wird mit einer Powerbank gewährleistet.

Hokuspokus sensor2.jpg

Übertragung

Die Übertragung erfolgt mittels OSC. Dafür haben wir einen WLAN-Router genutzt. Es wurden Euler-Winkel ausgegeben. Es wirkt jedoch die kardanische Blockade ([1]) auf diese Werte ein, deswegen hätten wir uns die Quaternionen ausgeben lassen sollen.

(Code, der mit Arduino IDE entwickelt wurde: arduino-code.ino)

Visualisierung: Unity

Es wurde eine Landschaft in Unity gestaltet. Dazu wurde ein passender Hexenbesen modelliert. Der Anwender sieht beim Start des Spieles die Spitze des Besens als würde er auf ihm sitzen.

Hokuspokus unity1.jpg
Hokuspokus unity2.jpeg
Hokuspokus unity3.jpeg

Evaluierung Phase 2

In Phase 2 sind wir auf das Problem kardanischen Blockade gestoßen, sodass wir die Werte des Sensors nicht nutzen konnten. Die Gestaltung in Unity war soweit abgeschlossen, jedoch benötigten wir eine Schnittstelle um die Bewegung zu erfassen und zu verarbeiten.

Phase 3

Physikalisch: Hexenbesen

Um die optische Äquivalenz zum Spiel zu schaffen und einen Haltegriff zu haben, gestalteten wir einen Hexenbesen.

Hokuspokus besen8.jpg

Sonderlösung

Als Alternative für Sensor und Übertragung nutzten wir die App „OSCHook“, welche uns die Gravitations-Koordinaten des Handys über OSC senden kann.

Hokuspokus app1.jpeg
Hokuspokus app2.jpeg
Hokuspokus app3.jpeg

Zur Überprüfung können wir die Daten mit dem OSC Monitor anzeigen lassen. Wichtig hierbei ist, dass sich Handy und Computer im gleichen Netzwerk befinden. Hierbei ist darauf zu achten, dass IP-Adresse und Port richtig eingestellt wurden.

Hokuspokus app4.jpeg

Visualisierung: Unity

Durch Asset extOSC vom Unity Store konnten wir die Daten der App auch auf Unity empfangen.

Hokuspokus unity4.jpeg
Hokuspokus unity5.jpeg

Code: C#-Skript (in Unity eingebunden)

Evaluierung Phase 3

Phase 3 war schließlich erfolgreich mit der App. Wir konnten einen Flug simulieren.

Fazit

Es war deutlich schwieriger als angenommen. Laufbares Ergebnis haben wir erhalten, jedoch hat es weniger Spielecharakter, sondern letztendlich haben wir uns auf eine Flugsimulation beschränkt. Ausbaumöglichkeiten wären zum Beispiel Taler, die man in der Luft sammeln kann oder Ringe zum Durchfliegen um Punkte sammeln zu können.