1. Vorgedanken & Inspiration: Anamorphose

Die ursprüngliche Aufgabe war es, sich mit optischen Illusionen zu befassen und zu experimentieren, mit dem Ziel, eine eigene animierte Version zu erstellen. Dafür habe ich mir die Illusion der Anamorphose genauer angeschaut. Zwar gibt es bereits Anwendungsbeispiele wie große 3D-Billboards in verschiedenen Großstädten, diese funktionieren jedoch nur im großen Maßstab für mehrere Menschen, die von einem bestimmten Ort aus schauen.

Da ich das Projekt im kleineren Rahmen mit maximal einem Beamer umsetzen konnte, stieß ich schnell auf ein zentrales Problem: Der perspektivische „Sweetspot“ ist extrem klein und funktioniert eigentlich nur für eine einzelne Person perfekt. Das brachte mich zu der Frage: Wenn ich nur diesen kleinen Punkt habe, wie kann ich das Erlebnis für diese eine Person verbessern?

Ich musste an einen Ausflug in das Schwimmbad in Bad Sulza als Kind denken, bei dem Sensoren die Füße der Besucher trackten, während sie durch eine virtuelle Pfütze liefen, sodass es aussah, als würden durch den eigenen Fuß kleine Wellen entstehen. Mein Ansatz war es, statt der Füße den Kopf der Person zu tracken. Dadurch lässt sich die Perspektive des Bodens dynamisch anpassen – sodass man beispielsweise nicht mehr über eine flache 2D-Pfütze läuft, sondern über einer tiefen Schlucht steht.

2. Ideenfindung & Anwendungsbereiche des Trackings

Auf dieser Grundlage habe ich verschiedene Konzepte entwickelt, wie sich dieses Headtracking nutzen ließe, unter anderem:

Bodenprojektion:

  • Über einen virtuellen Abgrund laufen oder den Gleichgewichtssinn täuschen, indem sich der Boden entgegen der Erwartung bewegt.
    Problem: Ich müsste mit mindestens zwei Beamern arbeiten, da sonst ein Schatten entstehen würde, der die Illusion zerstört. Zudem ist mir nach einem Test aufgefallen, dass der Boden perfekt einfarbig sein muss. Kleine Flecken oder Musterungen zerstören die Illusion, da das Auge dadurch Anhaltspunkte hat und man nur schlecht dagegen anarbeiten kann.

Fenster in eine digitale Welt:

  • Ein virtueller Raum mit einem Roboter-Thema oder eine interaktive Werbebox für mein Spielprojekt Handhold, bei der Events ausgelöst werden, sobald ein Besucher davorsteht.

Passive Verschmelzung:

  • Eine Projektion, versteckt hinter realen Holzbrettern; sobald Personen davorstehen, erscheinen kleine digitale Augen zwischen den Spalten und verfolgen die Besucher.

Auch für den Einsatz in anderen Feldern gab es theoretische Möglichkeiten: Im Prototyping könnte man prüfen, ob Bauteile (wie die A-Säule eines Autos) das Sichtfeld verdecken. Im Fahrschulbereich oder bei Fahrsimulatoren würde es ein realistischeres Fahrgefühl ermöglichen, und in Museen ließen sich immersivere Illusionen schaffen.

3. Technische Umsetzung des Headtrackings

Um das Headtracking zu realisieren, habe ich eine Pipeline aus drei Programmen aufgebaut: Kinect Studio, TouchDesigner und Unreal Engine. Da ich zuvor mit keinem dieser Tools gearbeitet hatte, musste ich mir zuallererst die Grundlagen erschließen, bevor ich anfangen konnte.

Über eine Xbox-Kinect-Kamera kann ich Personen per Infrarot erfassen und als digitales Skelett tracken. Diese Daten wurden direkt an TouchDesigner übergeben.

Kinect Studio:

  • Über eine Xbox-Kinect-Kamera kann ich Personen per Infrarot erfassen und als digitales Skelett tracken. Diese Daten wurden direkt an TouchDesigner übergeben.

TouchDesigner:

  • Hier habe ich die Kopfposition (x, y, z) über Nodes ausgelesen und per OSC-Server an die Unreal Engine weitergeleitet.

Unreal Engine:

  • Dies war der aufwendigste Teil des Projekts. Zunächst musste ich die Daten nutzen, um die Kamera im digitalen Raum entsprechend der Kopfposition zu bewegen. Dabei traten wesentliche Probleme auf:

Unterschiedliche Koordinatensysteme:
TouchDesigner nutzt ein 2D/3D-System (x, y, z), während Unreal mit einem anderen Achsensystem arbeitet (x, y, z). Die Daten mussten also umgerechnet werden.

Kameraanpassung:
Eine einfache Kamerasicht reichte nicht aus, um die Illusion eines echten „Fensters“ zu erzeugen. Die Eckpunkte des digitalen Kamerabildes mussten sich dynamisch verziehen, um immer exakt mit den physischen Rändern der Projektionsfläche übereinzustimmen. Gelöst habe ich das über ein nDisplay-Setup.

Kalibrierung:
Das digitale Modell musste genau auf die Realität abgestimmt werden. Die exakte Größe und Position der Beamerfläche habe ich in Relation zum Sensor der Kinect-Kamera als absolutem Nullpunkt nachgebaut.

Fehlerbehebung:
All diese Prozesse erforderten eine lange Fehlersuche bezüglich Abstürzen, Performance-Problemen und der korrekten Viewpoint-Steuerung, da es keine direkten Tutorials für meinen spezifischen Aufbau gab.

Rot: Sichtfeld einer normalen Kamera
Grün: Sichtfeld vom nDisplay

4. Das Multiuser-Problem & Grenzen des Systems

Nach der technischen Umsetzung stellte sich Ernüchterung ein: Diese Technik gibt es schon längst – sie wird ähnlich bei der Virtual-Production-Technik aus Serien wie The Mandalorian genutzt (wo die Kamera als Viewpoint getrackt wird).

Für mich bot das System technisch keinen völlig neuen Mehrwert. Das Hauptproblem blieb bestehen: Es war immer nur von einer einzigen Person gleichzeitig nutzbar.

Ich habe theoretisch verschiedene Lösungsansätze für ein Multiuser-System durchdacht:

Polarisiertes Licht (3D-Kino-Brillen): 

  • Funktioniert technisch verlässlich, ist jedoch auf maximal zwei Personen beschränkt (horizontale und vertikale Lichtwellen).

Aktive Shutter-Brillen: 

  • Funktionieren über die Aufteilung der Frame-Anzahl pro Person; allerdings wird das Bild bei mehreren Personen extrem dunkel.

Lichtwellenlängen-Filter (Infitec): 

  • Das Licht wird pro Person in unterschiedliche Farbspektren aufgeteilt (spezifische Wellenlängenbereiche für rotes, grünes und blaues Licht). Dazugehörige Brillen lassen nur die für die jeweilige Person gedachten Wellenlängenbereiche durch und reflektieren die anderen.

Aufgrund der hohen Kosten und der technischen Komplexität waren diese Multiuser-Ansätze für mich jedoch nur theoretisch umsetzbar. Ich wollte jedoch eine praktische Endabgabe präsentieren.

5. Technische Hürden & Umdenken

Ein paar Wochen vor der Abgabe trat ein kritisches Problem auf: Ich musste für die Präsentation das gesamte System auf meinem Laptop zum Laufen bringen. Die Kinect-Kamera ließ sich jedoch nicht stabil verbinden – sie wurde vom Laptop nicht erkannt oder die Signalübertragung brach ständig ab. Damit war das ursprüngliche Headtracking-Projekt vorerst gestoppt.

Zunächst wollte ich als Ausweichlösung eine statische Projektion auf der Schräge im Treppenhaus umsetzen, um ein anamorphes Video zu zeigen. Nach der ganzen Arbeit mit dem Tracking wollte ich mich mit einer rein statischen Lösung jedoch nicht zufriedengeben.

Ich entschied mich, das Grundkonzept komplett umzukehren. Mir kam die Idee: Statt den Kopf des Besuchers bei statischer Projektionsfläche zu tracken, tracke ich den Beamer und somit die Projektionsfläche selbst. Das Bild sollte sich also dynamisch anpassen, je nachdem, wohin man den Beamer im Raum richtet. In meiner gesamten Recherche habe ich meist nur Tracking-Systeme mit statischen Beamern gesehen. Somit war dieser Ansatz etwas Neues, das ich (und die von mir Befragten) so noch nicht gesehen hatten.

6. Die neue Richtung: Beamertracking

Das Konzept des Beamertrackings eröffnet völlig neue Möglichkeiten:

Man könnte ein ganzes Gebäude digital nachbauen und mit virtuellen Zusatzinformationen versehen. So ließen sich beispielsweise Stromleitungen oder Bauanleitungen direkt auf Wände projizieren – und alle Personen im Raum würden dasselbe ortsfeste Bild sehen. Der Beamer lässt sich frei im Raum bewegen, ohne dass die Projektion an der Wand verrutscht.

Da die Kalibrierung für einen Prototypen extrem aufwendig ist, habe ich mich zunächst auf das Bespielen einer einzelnen Wand konzentriert. Um mehr zu bieten als nur das „Freilegen“ eines statischen Posters, habe ich das System direkt in Unreal Engine als Multiplayer-Spiel umgesetzt. Dabei lag der Fokus weiterhin auf der Technik dahinter und nicht auf einem voll ausgereiften Spieldesign.

7. Entwicklung der Spielkonzepte

Ich habe zwei Spielmodi für das Beamertracking entworfen:

Versteckspiel (Versus):

  • Spieler loggen sich per QR-Code ein und verstecken sich auf einem unsichtbaren Spielfeld an der Wand, wo sie Aufgaben lösen müssen. Die Person mit dem Beamer leuchtet die Wand ab und versucht, die versteckten Spieler aufzudecken. (Für die verbleibende Zeit war diese Idee jedoch nicht ausgereift genug und zu aufwendig in der Umsetzung).

Koop-Spiel:

  • Ein Spieler steuert einen Charakter auf dem Spielfeld, während der andere den Beamer wie eine Taschenlampe hält. Nur durch den Lichtkegel des Beamers wird das Spielfeld sichtbar, um den richtigen Weg zu finden und versteckte Hinweise zum Ziel zu entdecken. Dabei spielt die Perspektive eine entscheidende Rolle: Je nachdem, ob man gerade auf die Wand strahlt oder in einem spitzen Winkel dazu, wird es möglich, in der Spielwelt „um Ecken“ zu schauen.

8. Finale Umsetzung: Hold Hand in Handhold

Für das finale Projekt – eingebettet in das Universum meines privaten Spielprojekts Handhold – habe ich einen 2.5D-Sidescroller mit dem Beamer-Tracking-System als Herzstück erstellt:

Tracking per LiDAR:

Zur Positionserfassung nutzte ich den LiDAR-Scanner eines iPhones, das mit einer speziellen Halterung direkt am Beamer befestigt war.

Nullpunkt-Problem: 

Da der Nullpunkt des iPhone-Trackings immer dort entsteht, wo die Verbindung gestartet wird, musste der Beamer beim Spielstart immer an einer exakt definierten Startposition gehalten werden.

Übereinstimmung der realen und digitalen Welt: 

Für ein funktionierendes System war es essenziell, dass die digitale Welt an exakt der gleichen Position liegt wie die echte Welt. Das bedeutet: Das Spielfeld musste die genauen Maße der bespielten Wand haben und die digitale Kamera musste sich relativ zur Wand an derselben Position befinden wie der Beamer in der echten Welt. Um diese Präzision zu erreichen, habe ich die Wand vor Ort mit einem Maßband ausgemessen und zusätzlich einen 3D-Scan des Raumes erstellt. Dadurch hatte ich auch von zu Hause aus jederzeit Zugriff auf alle exakten Maße und konnte die digitale Umgebung optimal auf die realen Gegebenheiten abstimmen.

Perspektive & Verzerrung: 

Aus den Positionsdaten habe ich das POV des Beamers errechnet und eine digitale Kamera in Unreal daran gekoppelt. Wird der Beamer schräg zur Wand gehalten, entsteht eine physische Trapezverzerrung (die entferntere Seite wird breiter). Glücklicherweise gleicht sich dieser Effekt im virtuellen Raum perfekt aus, da die digitale Kamera dieselbe Schräglage einnimmt und weit entfernte Objekte automatisch kleiner dargestellt werden.

Engine-Skalierung: 

Ein technisches Problem lag in den Größenverhältnissen der Engine. Mein Charakter war [Größe einfügen, z. B. 1,80 m] groß. Eine einfache Skalierung des Charakters hätte jedoch die Physik (Masse, Gravitation) zerstört. Als Lösung habe ich stattdessen die Positionsdaten sowie die Wandgröße [Maße einfügen] im virtuellen Raum um das 10-Fache multipliziert. Dadurch schrumpfte der Charakter im Verhältnis auf [Zielgröße einfügen] – genau die gewünschte Zielgröße für das Projekt.

9. Weitere Arbeitsbereiche & Herausforderungen

Entwicklungsbereiche

Assets (Blender zu Unreal Engine):

  • Der gesamte Workflow der 3D-Modelle verlief von Blender zur Unreal Engine. Ich habe sämtliche Assets passend zum visuellen Stil des Spiels selbst erstellt – darunter Höhlenelemente, Steine, Gras, den Charakter, Türen, Schlüssel, Häuser, Bäume, ein Minecart sowie Schienen.

Charakter-Animation (Mixamo zu Unreal Engine):

  • Die Rigging- und Animations-Pipeline erfolgte über Mixamo. In der Unreal Engine musste ich festlegen, welche Animationen (z. B. Idle, Walk, Run) in Abhängigkeit von der aktuellen Bewegungsgeschwindigkeit des Charakters abgespielt werden.

Steuerung (2.5D-Movement):

  • Der Charakter kann sich nur nach links, rechts, vorne und hinten bewegen – unabhängig von seiner eigenen Blickrichtung, anders als bei einer gewöhnlichen Third-Person-Steuerung.

Physik, Gravitation & Kollisionen:

  • Sämtliche physikalischen Parameter mussten an den skalierten Raum angepasst werden. Ich habe die Sprunghöhe, die Fallgeschwindigkeit sowie die Hitboxen des Charakters und der Umgebungsobjekte manuell austariert. Um Performance zu sparen, habe ich nur den wichtigsten Objekten hochauflösende Kollisions-Modelle vergeben.

Gameplay-Mechaniken:

  • Implementierung der Interaktions-Logik: Der Spieler kann Schlüssel aufheben. Sobald zwei Schlüssel eingesammelt wurden und sich der Charakter der Tür nähert, wird das Öffnen der Tür getriggert.

Performance & Beleuchtung:

  • Lichtquellen und Kollisions-Checks wurden gezielt optimiert. Insbesondere zu viele überschneidende, dynamische Lichtquellen führten zu starkem Leistungsabfall, weshalb das Belichtungssystem performanter strukturiert werden musste.

Aufgetretene Probleme & Lösungsansätze

Beamer-Latenz (Verzögerung):

  • Das aktuell größte verbleibende Problem ist eine leicht schwammige Verzögerung des Bildes bei schnellen Bewegungen, wodurch projizierte Elemente kurzzeitig von ihrer Position an der Wand abweichen. Dies liegt an der hohen Eingangsverzögerung (Input-Lag) des verwendeten Beamers. Durch den Einsatz eines performanteren Geräts mit niedrigeren Latenzzeiten lässt sich diese technische Hürde jedoch beheben.

Tracking-Verlust des Smartphones (LiDAR):

  • Wenn das am Beamer montierte iPhone direkt auf eine strukturlose, weiße Wand gerichtet war, verlor der LiDAR-Sensor mangels visueller Anhaltspunkte gelegentlich die Orientierung.
  • Lösung: Das Smartphone wurde seitlich leicht angewinkelt montiert, sodass der Sensor andere Raumkanten und Objekte erfasst und das Tracking stabil aufrechterhält.

________________________________________

GP Präsentation - ENDERGEBNIS

Werbevideo (WM-Abgabe)

________________________________________