Im Rahmen dieser Semesterarbeit wird ein Chrome Plugin entwickelt, welches mithilfe eines Arduinos, NFC und WebGL auf Nutzereingaben basierende Aktionen ausführen soll.
Abstract
Das Ziel dieses Projektes war es die Verbindung zwischen Mikrocontroller Technologie, Webcontent auf einer Künstlerischen ebene zu erschaffen. Dabei werden mit Hilfe von NFC Tags innerhalb der Extension Aktionen hervorgerufen, welche eine bestimmte Animation auslösen. Dem Thema des Projektes entsprechend Pflanzen vs Menschen vs Maschinen.
Idee
Die ursprüngliche Idee war die Einbindung verschiedener Animationen und Szenen welche bei einem physischen Wechsel des Charakters ausgelöst werden. Diese wurde aufgrund der Eingeschränkten Nutzungsweise von three.js, der genutzten WebGL Grafiklibrary überarbeitet. Die geladenen Models werden in einer zu ihnen passenden Szene dargestellt , und bei auflegen eines anderen Charaktertokens wird der entsprechende Charakter geladen sowie visualisiert. Animationen sind für den abschliessenden Verlauf des Projektes ebenfalls geplant, aufgrund von Rigging und Blenders three.js-Exporter aktuell nicht möglich. Daher ist es ungewiss ob es möglich ist Rigging und Skeletal Animations in diesem Kontext unterzubringen.
Verbindung von Arduino und Chrome
Zur Verbindung der beiden Techniken wird die Chrome Serial API verwendet. Mithilfe dieser ist es möglich Ports des Systems zu scannen und Serielle Ausgaben des Systems zu lesen und interpretieren. All dies ist in einer Chrome App zusammengefasst sodass nicht ein zwangsläufig neuer Tab des Browsers benötiget wird sondern einfach ein neues Fenster geöffnet wird welche dann als eigenständige Applikation genutzt wird.
Szenen
Bei der Visualisierung soll klar zu erkennen sein um welche Fraktion es sich handelt, daher wird zwischen drei verschiedene Settings gewechselt:
1. Pflanzen: Setting der Szene ist eine Waldlichtung. Der Boden ist braun und von einigen Grasflechten bedeckt wobei im Hintergrund die Stämme einiger Bäume zu sehen sind. Im der Mitte der Szene befindet sich eine einzelne große Blume.
2. Menschen: Hier befinden wir uns in einem Haus, der Bodenbelag ist dabei Teppich und im Hintergrund sind einige Einrichtugsgegenstände zu sehen. Hauptaugenmerk ist eine gewriggte Hand in der Mitte der Szene.
3. Maschinen: Das Setting der Maschinen gleicht einer Art Endzeit bzw Steampunk Setting. Der Boden ist rostig, von Steinen übersät und an einigen Stellen ragen ein paar rostige Rohre und Metallgegenstände aus dem Boden. (Der finale Repräsentant der Maschinen steht noch nicht eindeutig fest.)
[screenshots folgen]
Interaktionen
Neben der Szenenwechsel mit Hilfe der Fraktionstoken, soll es dem Nutzer möglich sein mithilfe der Maus oder eines Trackpads die Kamera der Szene zu verändern, Diese ist dabei auf der X-, und Y-Achse je nach Bildschirmposition des Cursors manipulierbar, wobei die Cursorpositionen in einer bestimmten Range auf die Screengröße gemappt werden. Zudem wird es möglich sein mithilfe des Mausrads bis zu einem bestimmten Punkt in die Szene zoomen zu können. Der sichtbare Ausschnitt sowie die erwähnte Mausinteraktion ist dabei von der Bildschirmgröße abhängig.
Weiterführende Arbeit
Als Aussicht für den Fortlauf des Projektes könnte eine Art Spiel implementiert werden , bei welchem der Nutzer eine Art 'Schere, Stein, Papier' nur mit den jeweiligen Charakteren führt (ähnlich revolution). Dabei könnte die Eingabe des Nutzers zeitbasiert erfolgen, indem die Applikation eine Fraktion vorgibt und eine Reaktion gefordert ist. Weiterhin wäre es möglich das von Sebastian Stickert erstellte Revolution als digital/analoges Spiel umzusetzen, oder aber es zu erweitern, als eine Art interaktives Regelwerk bzw zur weiteren Austragung der von ihm erstellten Konfliktregeln.
Weitere Ideen für die Umsetzung eine Spiels wäre ein Adventure Spiel bei dem der Nutzer interaktiv alle drei Fraktionen durch eine Geschichte begleitet.
Erweiterung
Als Erweiterung sind dem System praktisch keine Grenzen gesetzt (abgesehen von hardwarespezifischen Faktoren). Es wäre möglich weitere Sensoren unterzubringen um weitere komplexe Spielstrukturen oder Steuerungsmöglichkeiten einzubinden, beispielsweise Kameramanipulation per Touch Sensoren, oder mithilfe von manuellen Einheiten wie Potentiometern oder Joysticks.