Make Mario Great Again

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche


    Mario Series Logo.svg.png

Bild von -> https://commons.wikimedia.org/wiki/Category:Mario_(video_game_series)


Übersicht

Mit Hilfe einer Kinect soll das Spiel Mario 64, welches in einem Emulator auf dem Laptop simuliert werden soll, gesteuert werden.

Durch Bewegungen des Spielers sollen virtuelle Tastendrücke ausgeführt und an den Emulator übertragen werden.


Software

- MacOs

- xCode (Entwicklungsumgebung MacOs) -> https://itunes.apple.com/de/app/xcode/id497799835?mt=12

- openFrameworks -> http://openframeworks.cc/download/

- C++ Projekt zur Tastensimulation

- sixtyforce Emulator -> http://sixtyforce.com/

- Spieldatei (Rom) Mario 64 -> https://www.emuparadise.me/Nintendo_64_ROMs/Super_Mario_64_(USA)/40261


Hardware

- MacBook

- Kinect v1


Systemplan

Systemplan Mario.jpg


Vorbereitungen

- Installieren der Entwicklungsumgebung xCode auf MacOs

- Implementieren von openFrameworks in xCode

- Installieren der Treiber für Kinect v1

- Installieren des Emulators sixtyforce


Bewegungsdetektion und Übertragung an andere Fenster

Durch Bewegungen des rechten Armes soll die Mario-Figur im Spiel nach vorne, hinten, links und rechts bewegt werden. Hierzu sollen die Koordinaten der rechten Hand abgelesen und in Keystrokes umgesetzt werden.

Es wurden Schwellenwerte festgelegt und durch if-Funktionen verschiedene Tastendrücke je nach Position simuliert.

Die Tastendrücke wurden an ein anderes Fenster im Vordergrund gesendet (das selbstgeschriebene Programm muss hierbei im Hintergrund weiterlaufen).


Mögliche Erweiterungen wären das Springen der Figur durch tatsächliches Springen, sowie das Schlagen im Spiel durch Bewegungen der linken Hand zu steuern.


Durch folgenden Code werden die Tastenbefehle generiert und an andere Fenster übertragen.


16111694 10208286950466501 1378315565 n.png


Link zum Code


Probleme

Bei der Bearbeitung des Projektes sind einige Probleme aufgetreten, welche den Verlauf stark beeinflusst haben:

Die Installation und Implementierung von openFameworks-Projekten im qtCreator sowie Visual Studio 2015 waren nur durch Nutzen eines ProjektGenerators (wird bei ofx mitgeliefert) möglich.

Die Treiberinstallation von Kinect v1 und v2 war unter Windows zeitaufwendig. Man findet hierzu im Internet viele Links. Leider sind viele dieser Treiber fehlerhaft und binden die Kinect nicht richtig an das System an. Für die Kinect v1 werden Treiber bei ofx mitgeliefert. Diese müssen jedoch manuell über den Gerätemanager zugewiesen werden.

Die Implementierung der Libraries von openNI und openNiTe war unter Visual Studio 2015 leider nicht mehr möglich (nur bei älteren Versionen).

Das Senden der Keystrokes an den Emulator und damit an ein anderes Fenster hat sich im MacOs als sehr komplex erwiesen. Für eben dieses Problem findet man im Netz hauptsächlich nur Anleitungen unter Windows.


Fazit

Die Anbindung der Kinect, sowie das Auslesen der Koordinaten hat sich als sehr schwierig erwiesen. Leider sind wir hier immer wieder auf oben genannte Probleme gestoßen, weshalb wir viele Ideen und Anläufe wieder verwerfen mussten.

Hauptproblem war jedoch das Übermitteln der Tastendrücke an ein anderes Fenster. Es existieren hierzu speziell unter MacOs wenige Anleitungen. Dies hat die Recherche enorm in die Länge gezogen.


Team

BME-3 Interaktion WS 2016/2017

Manuel Fohrer, Markus Kapferer, Daniela Ammon, Marlis Graf, Stefanie Duschner