Archiv für die Kategorie ‘Bachelor’

Bachelorarbeit abgeschlossen

Samstag, 30. April 2011

Ich freue mich bekannt geben zu können, dass meine Bachelorarbeit nun abgeschlossen ist und am 11. April in der Hochschule abgegeben wurde. Im praktischen Teil der Bachelorarbeit entwickelte ich nun eine Anwendung die das Leben auf einem Marktplatz simuliert. In diesem Rahmen sind die computergesteuerten Charactere in der Lage die folgenden Verhaltensweisen zu zeigen: zufällig umherlaufen, „untätig“ stehen bleiben, sich auf eine Bank setzen, einkaufen gehen und dynamisch einen Dialog starten.

Die Umsetzung basiert hauptsächlich auf den drei KI Lösungen aus der Unity Community: Behave (AngryAnt), UnitySteer (Arges Systems) und A* Pathfinding (Aron Granberg). In Ergänzung zu diesen Paketen entwickelte ich verschiedene Erweiterungen für die Simulation.

Der Schwerpunkt lag dabei auf der Entwicklung eines Containment Behaviors nach dem Vorbild des Steering Erfinder Craig Reynolds. Dieses Verhalten erlaubt es dem Agenten Hindernissen mit beliebiger Oberflächenform auszuweichen. Ergänzend zum theoretischen Ansatz von Reynolds ermöglicht das Verhalten auch den Umgang mit konkaven Hindernisoberflächen. Ergänzend ist es nun auch möglich die Containerlinie des Verhaltens dynamisch anhand des A* Grids erzeugen zu lassen, dass vom A* Pathfinding Paket verwendet wird. Auf diese Weise wird die Containerlinie automatisch angepasst, sofern eine Änderung in der Weltgeometrie vorgenommen wurde.

In den nächsten Wochen werde ich einen tieferen Einblick in meine Arbeit geben und habe vor, einen stable release des Containment Verhaltens in der Community zu veröffentlichen.

Neue 3D Modelle im Tausch gegen Webauftritt – Gemeinsam mehr erreichen

Donnerstag, 14. Oktober 2010

Ich freue mich heute einen weiteren Fortschritt meiner Bachelorarbeit präsentieren zu können. Im Rahmen einer überaus bereichernden Kooperation mit der ehemaligen Multimediastudentin der Hochschule Ansbach Christina Ziem wurde der gestalterische Rahmen meines Simulationsprototypen geschaffen.

Christina erstellte Lowpoly-Häuser im barocken Stil und Lowpoly-Marktstände. Dabei hatte sie ein Auge darauf, dass sich die Umgebung trotz vieler schöner Details zugunsten der Non-Player-Character optisch zurück nimmt. Dem geschickten Einsatz von Lightmap und Normalmap ist es zu verdanken, dass die Modelle trotz geringster Rechnenleistung nun ein sehr attraktives Äußeres erhalten haben.

Im Gegenzug für ihre Leistung habe ich Christina die technische Umsetzung ihres neuen Onlineportfolios abgenommen. Die Inhalte können nun von ihr bequem über das Content Management System Typo3 eingepflegt werden. Die Seite glänzt durch ein ausgefallenes Design und bietet einige schicke Javascript-Effekte.

Die Anfangs noch scherzhafte Idee der Arbeitsteilung entwickelte sich schnell zu einer ernstzunehmenden Kooperation mit echtem Erfolg für beide Seiten.  Heute geht das neue Portfolio online und ich freue mich die kommenden Simulationsversuche in neuer Umgebung starten zu dürfen.

MoCap für die Bevölkerungssimulation

Dienstag, 20. Juli 2010

In letzter Zeit habe ich mich viel mit der Aufnahme, Aufbereitung und der Verwendung von Motion Capture Daten in der Gameengine beschäftigt. Bezogen auf die Planung und Organisation der MoCap-Aufnahmen erschien mir dieser Artikel auf gamasutra.com am wertvollsten, da er relativ viele Bereiche von der Konzeption bis hin zum Umgang mit den MoCap-Darstellern abdeckt.

Momentan stehe ich vor der Situation, dass ich, um rechtzeitig meine Bachelorarbeit abschließen zu können, den Aufwand für manche Bereiche, so klein wie möglich halten will. Deshalb kam mir meine letzte Entdeckung sehr gelegen.

Die Carnegie Mellon University (CMU) stellt online eine sehr umfangreiche freie MoCap Datenbank zur Verfügung. Die Qualität der enthaltenen Aufnahmen ist außerdem zum großteil wirklich gut.

Und als sei das noch nicht genug, gibt es sogar noch eine MotionBuilder-Variante aller MoCap-Daten der Universität auf cgspeed.com.

In letzter Zeit habe ich mich in viel mit der Aufnahme, Aufbereitung und der Verwendung von Motion Capture Daten in der Gameengine beschäftigt. Bezogen auf die Planung und Organisation der MoCap-Aufnahmen erschien mir dieser (http://www.gamasutra.com/view/feature/3420/planning_and_directing_motion_.php) Artikel auf gamasutra.com am wertvollsten, da er relativ viele Bereiche von der Konzeption bis hin zum Umgang mit den MoCap-Darstellern abdeckt.

Momentan stehe ich vor der Situation, dass ich, um rechtzeitig meine Bachelorarbeit abschließen zu können, den Aufwand für manche Bereiche, so klein wie möglich halten will. Deshalb kam mir meine letzte Entdeckung sehr gelegen.

Die Carnegie Mellon University stellt online eine sehr umfangreiche MoCap Datenbank zur verfügung (http://mocap.cs.cmu.edu/). Die Qualität der enthaltenen Aufnahmen ist außerdem zum großteil wirklich gut.

Nachdem ich alle MoCap-Daten heruntergeladen habe und die ein oder andere Animation in Motionbuilder getestet habe, stand ich vor dem Problem die von mir erwählten Animationen für die Gameengine aufbereiten zu müssen.

Das heißt konkret:

  • Position des Characters auf dem Ursprung
  • Blick des Characters in negativer Z-Richtung
  • Die Bewegung des obersten Joints (Hüfte) wird auf die Y-Achse beschränkt
  • Die MoCap-Animation muss so beschnitten werden, dass sie in einer Schleife laufen kann
  • Der Bildsprung zwischen erstem und letzten Frame der Schleife muss entfernt werden

Für all diese Anforderungen und noch viel mehr gibt es ein sehr praktisches freies Tool: bvhacker. Man kann damit zwar nur BVH-Dateien (Biovision Format) bearbeiten, aber da ich nun ohnehin die Animationen der CMU-Datenbank verwende, ist es in meinem Fall genau das richtige.

Nachdem der Loop erstellt wurde, muss man die Animation nurnoch dem eigenen Character zuweisen. Das sollte dann aber in MotionBuilder relativ schnell erledigt sein.

Bachelorarbeit Bevölkerungssimulation

Montag, 19. April 2010

Schon seit einiger Zeit setze ich mich mit den Grundlagen der Künstlichen Intelligenz in Videospielen auseinander. Aus meinem Interesse an diesem Bereich entstand nun auch das Arbeitsfeld meiner Bachelorarbeit an der Hochschule Ansbach. Ich beschäftige mich in meiner Arbeit nun mit der Frage, wie sich ein glaubhaftes Verhalten in der Bevölkerungssimulation von Videospielen erzeugen lässt. Dies werde ich am Beispiel der Spielproduktion von „Timekeepers“ untersuchen.

Vorerst werde ich mit bereits etablierten KI-Methoden versuchen, meinem Ziel gerecht zu werden. Darunter fallen unter anderem die Hierarchical Finite State Machine zur Steuerung des reaktiven Verhaltens der Agenten, Behavior Trees zur Steuerung planmäßigen Verhaltens oder Pathfinding- und Steering-Algorithmen für die glaubhafte Bewegung durch die virtuelle Welt. Die kreative und technische Herausforderung für mich ist dabei, ein Konzept zu entwickeln und umzusetzen, dass die theoretischen Ansätze der Spiel-KI-Forschung so miteinander kombiniert und konfiguriert, dass ein glaubhaftes Verhalten im Rahmen des Gamedesigns erreicht wird.

Neben der theoretischen Ausarbeitung des Konzepts, habe ich vor, einen Simulations-Prototypen zu entwickeln, der die Funktionsweise des entwickelten Konzepts unter Beweis stellen kann oder zumindest in der Lage ist noch bestehende Schwachstellen aufzudecken. Die verwendeten Animationen sollen im Motion Capturing Studio der Hochschule Ansbach aufgezeichnet werden.

Für die gesamte Umsetzung des Prototypen verwende ich folgende Werkzeuge:

  • Gameengine: Unity
  • Modeling: MAXON Cinema 4D
  • Bildbearbeitung: Adobe Photoshop
  • Animation: Autodesk MotionBuilder
  • Programmierung: Microsoft Visual Studio