Bunny Jump

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche


logo bunny.jpg

Bunny Jump - Ein lustiges interaktives Spiel zum Zeitvertreib!


Einleitung

Bunny Jump ist ein interaktives Spiel, das als Projektarbeit im Wahlmodul Interaktion des 3. Semesters Media Engineering im Wintersemester 11/12 entstanden ist.
Es sollte ein Spiel entwickelt werden, das per Gesten gesteuert wird. Diese Art von Spielsteuerung kennt man von der Kinect. Jedoch braucht man diese nicht unbedingt, es funktioniert auch mit einer Webcam und den geeigneten Programmen.

So war es auch für Bunny Jump geplant und damit leicht für jede Altersgruppe zum Spielen geeignet.

Spielbeschreibung

Das Spiel soll auf eine Leinwand projiziert oder an einem Bildschirm ausgegeben werden.

Man sieht vor sich einen Weg in Zentralperspektive in einer Landschaft. Ein Hase fungiert als Spieler und hüpft den Weg entlang. Man sieht ihn während des ganzen Spiels nur von hinten.
Während er hüpft kommen immer wieder verschiedene Hindernisse auf ihn zu, die er auf verschiedene Weise überwältigen kann.
Auf dem Weg findet der Hase auch goldene Äpfel, die er im Gegensatz zu den Hindernissen aufsammeln muss und nicht darüber springen sollte.
Geplant war, dass man nach einer bestimmten Anzahl von eingesammelten Äpfeln in das nächste Level kommt. Die Level sollen auch immer schwieriger und schneller werden.

Der Weg besteht also aus drei Spuren (Mitte, links und rechts). Der Hase wird durch den Spieler gesteuert, indem er entweder nach links oder rechts geht oder springt.

Realisierung

Spielregeln

  • Bunny läuft von allein den Weg entlang
  • Hindernisse tauchen auf:
    • Zaun: rechts oder links ausweichen oder springen
    • Baumstamm: springen
  • Goldene Äpfel können eingesammelt werden, nach einer bestimmten Anzahl wird das Spiel beendet
(kann individuell verändert werden)

Verwendete Geräte

  • Leinwand/Bildschirm
  • Beamer
  • Laptop mit Blender und EyesWeb
  • Webcam

Verwendete Programme

Das Spiel wurde mit dem 3D-Modellierungsprogramm Blender und der grafischen Entwicklungsumgebung Eyesweb umgesetzt.

Blender

Wir haben uns für das Programm Blender entschieden, da es im Gegensatz zu Maya eine GameEngine enthält.
Die GameEngine ist für die Spielsteuerung notwendig und kann mittels OSC eine Verbindung zu EyesWeb aufbauen.

Zur Erzeugung einer Spielwelt, haben wir zunächst auf eine Ebene mit Wiesen-Textur einen Weg und einen Skydome (Halbkugel mit Himmel-Textur) eingefügt.
Die vorher in Blender modellierten Objekte/Figuren wurden dann in die Spielwelt eingesetzt. Um die Illusion zu erzeugen, dass der Hase vorwärts läuft, lassen wir ihn auf der Stelle hoppeln, jedoch bewegen sich alle anderen Objekte auf ihn zu.
Damit der Hase nicht vom Weg abkommen kann, haben wir zwei unsichtbare Platten links und rechts neben dem Hasen eingebaut. Des Weiteren sorgt eine Platte hinter dem Hasen dafür, dass sich die nähernden Objekte, sobald sie die Platte berühren, wieder auf Anfang gesetzt werden.
Somit entsteht für den Spieler der Eindruck, dass er einen Weg entlang läuft.


Blender-Funtionen:
Blender: Funktionen.
  1. Gliederung der Blender-Welt (z.B. einzelne Objekte, Kamera, Lichtquelle)
  2. Game-Properties (Beziehungen der Objekte untereinander) hinzufügen und benennen
  3. Einzelne Modi und Kontrollelemente z.B. Objekt- und Editmode
  4. Objekteigenschaften
    1. Sensors: Bedingung z.B. Collision, Always, Keyboard
    2. Controller: Verknüpfung durch z.B. AND, OR, NAND
    3. Actuators: Aktion z.B. Motion, Scene, Game
  5. Phyton (Programmiersprache von Blender)
  6. Physics (Physikalische Gesetze die angewendet werden können)


Blender Einblicke
Blender: Textur.
Blender: Skydome.
Blender: Welt.
Blender: Game Engine.
Blender: Blender Objekt.
Blender: Blender Objekt.
Blender: Blender Objekt.
Blender: Blender Objekt.
Blender: Blender Objekt.
Blender: Game Engine.


EyesWeb

Wir haben uns für eine Webcam statt einer Kinect entschieden, da wir für unser Spiel keine Tiefeninformationen benötigen.
Um unser aufgenommenes Bild auszuwerten, haben wir die grafische Entwicklungsumgebung EyesWeb verwendet.

Eyesweb-Patches.
EyesWeb Funktionen
  1. Grabber (links): Aufnahme
  2. Filterung des Eingangssignals (grün):
    1. Rauschen wird entfernt
    2. Hintergrundsubtraktion
    3. Regions of Interest (ROI) werden gesetzt
  3. Einstellung und Optimierung der Filterung (türkis): Visuelle Ausgabe
  4. Prüfung des Ergebnisses der Bereichserkennung (blau): Visuelle Ausgabe und Spielbereich
  5. Berechnung der Koordinaten des Mittelpunktes der Fläche (rot): Bewegungsfeld wird angezeigt
  6. Prüfen ob Koordinaten sinnvoll sind (braun)
  7. Zeitliche Übersicht der x- und y-Werte (grau): Gibt grafisch die Bewegungen auf der x-y-Achse aus
  8. OSC-Ausgang (gelb): Schnittstelle


Fazit & Ausblick

Blender: Fertiges Spiel.
Blender: Schlussbild.

Das Spiel Bunny Jump wurde in seiner Grundidee erstellt. Änderungen gab es jedoch bei der Anzahl der Hindernisse,
wir beschränkten uns auf zwei (Zaun und Baumstamm).
Auch gibt es jetzt keine Level, das Spiel ist nach einer bestimmten Anzahl von eingesammelten goldenen Äpfeln zu Ende und es kommt ein Schlussbild.
Diese Änderungen wurden jedoch nur aus zeitlichen Gründen gemacht, es ist natürlich trotzdem möglich.

Verbessern und erweitern kann man das Spiel jedoch immer. Man könnte oben am Spielrand eine Lebensleiste einfügen.
Anfangs hat man drei Herzen (= Leben) und sobald man ein Hindernis verfehlt, wird eins abgezogen. Wenn man sein letztes Leben verbraucht hat, ist das Spiel zu Ende.
Auf dem Weg gibt es aber die Möglichkeit, zusätzliche Herzen wieder einzusammeln.
Auch eine Punkteleiste könnte man anzeigen lassen, die durch das Einsammeln von Leckerbissen wie Karotte oder Apfel erhöht werden.
Somit könnte es ein gut ausgestattetes Spiel werden, indem man Punkterekorde aufstellen und auch eventuell zu zweit gegeneinander spielen kann.

Workspace