Entwicklung und Implementierung einer Animationstechnik zur Simulation natürlicher Bewegungen in Computerspielen
- Art: Diplomarbeit
- Autor: Daniel Kupfer
- Abgabedatum: März 2009
- Umfang: 97 Seiten
- Dateigröße: 3,3 MB
- Note: 1,3
- Institution / Hochschule: HAW Ingoldstadt Deutschland
- Bibliografie: ca. 14
- ISBN (eBook): 978-3-8366-4597-3
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Kupfer, Daniel März 2009: Entwicklung und Implementierung einer Animationstechnik zur Simulation natürlicher Bewegungen in Computerspielen, Hamburg: Diplomica Verlag
- Schlagworte: Computeranimation, Prozeduale Animation, Motion-Constraints, Java, Computergrafik
38,00 €
PDF-eBook Download: 38,00 €
Diplomarbeit von Daniel Kupfer
Einleitung:
Computeranimation ist zu einem wesentlichen Bestandteil unserer digitalisierten Welt geworden. Sie erleichtert die Interaktion von Mensch und Maschine, dient der Erläuterung von Sachverhalten und unterhält uns in CGI-Filmen und Computerspielewelten. In Zukunft könnte sie eine wichtige Rolle für den Einsatz von Avataren in Transaktionssystemen einnehmen.
Diese Diplomarbeit befasst sich zunächst mit der traditionsreichen Geschichte der Animation und zeigt anhand einiger Beispiele die wichtigsten Anwendungsgebiete in der heutigen Computerwelt.
Die Computertechnik und die damit verbundenen Möglichkeiten schreiten weiterhin schnell voran. Genauso entwickelt sich natürlich die Computeranimation weiter, was sich eindrucksvoll auf den Kinoleinwänden beobachten lässt.
Die rasche Weiterentwicklung der Computeranimationstechnik fordert zugleich auch die Hard- und Software Industrie, die immer leistungsfähigere Lösungen anbieten kann, so dass die Möglichkeiten nur durch die verfügbare Rechenkapazität begrenzt werden. Dennoch tauchen immer wieder Schranken des softwaretechnisch Machbaren auf, deren Überwindung eine große Herausforderung für die Wissenschaft der Computeranimation auch in Zukunft bleiben wird.
In Zusammenarbeit mit Firma B-Alive wurde untersucht, wie die Animationen einer bestehenden Tierpark-Simulation verbessert werden können. Ziel war es, die bereits verwendeten keyframebasierten Animationsphasen durch Bewegungsphasen zu ergänzen, welche in Echtzeit, also zur Laufzeit des Spiels berechnet werden. Dadurch werden beispielsweise die Bewegungsfähigkeiten eines Tieres so erweitert, das eine Kopfdrehung während der Bewegung, Sprungvorgänge oder Laufen über Steigungen und Gefälle möglich sind. Die Tierpark-Simulation findet in einer virtuellen 3D-Umgebung statt.
Die Einsicht, dass grundlegende Animationskonzepte besser in einer 2D-Umgebung untersucht und dargestellt werden können, führte zur Entscheidung, die gezeigten Bewegungstechniken und Methoden für die Ebene zu entwickeln. Als nächster Schritt ist die Transformation in die 3. Dimension geplant. Die Konzepte und Algorithmen wurden deshalb von Anfang an so gestaltet, dass eine leichte Konvertierung in den Raum möglich ist.
Zunächst wurden bereits existierende Animationsverfahren untersucht und einige aussichtsreiche Kandidaten ausgewählt. Auf dieser Basis wurde durch Erweiterung mit eigenen Methoden ein neues Animationssystem entwickelt.
Der Software-Prototyp ‘Motion’ bildet den Implementierungsrahmen für dieses System. Diese Java-Anwendung enthält neben der GUI-Komponente einen Modellierungseditor und einen Animations-Simulator. Nach Fertigstellung der ersten lauffähigen Version von ‘Motion’ wurden Versuche mit Testmodellen durchgeführt. Durch die so gewonnene Erfahrung konnte das Animationssystem rückwirkend weiter verbessert und verfeinert werden.
Inhaltsverzeichnis:
| Einleitung | 7 | |
| 1. | Einführung | 9 |
| 1.1 | Geschichte | 9 |
| 1.2 | Grundlagen der Animation | 10 |
| 1.3 | Computeranimation als Teil der Computergrafik | 11 |
| 2. | Grundlagen | 12 |
| 2.1 | Animationsarten | 12 |
| 2.1.1 | Prozedurale Animation | 12 |
| 2.2.2 | Physikalisch-basierte Animation | 12 |
| 2.1.3 | Keyframe-basierte Animation | 13 |
| 2.2 | Animationsmethoden | 14 |
| 2.2.1 | Globale Bewegungen | 14 |
| 2.2.2 | Keyframes | 14 |
| 2.2.3 | Prozedurale Animationstechniken | 15 |
| 2.2.4 | Rotationstransformation | 16 |
| 2.2.5 | Matrizen | 17 |
| 2.2.6 | Quaternionen | 19 |
| 2.3 | Physikalische Grundlagen der Kinematik | 22 |
| 2.3.1 | Definition der Kinematik | 22 |
| 2.3.2 | Skelettrepräsentation | 22 |
| 2.3.3 | Vorwärtskinematik | 23 |
| 2.3.4 | Inverse Kinematik | 23 |
| 3. | Entwurf des Animationsystems | 27 |
| 3.1 | Analyse | 27 |
| 3.1.1 | Einführung | 27 |
| 3.1.2 | Szenarien | 28 |
| 3.1.3 | Anwendungsfälle | 28 |
| 3.1.4 | Auswahl der Animationstechnik | 29 |
| 3.2 | Vorüberlegungen zum Modellentwurf | 32 |
| 3.2.1 | Akteure als Charaktere einer Computersimulation | 32 |
| 3.2.2 | Charakteranimation | 33 |
| 3.2.3 | Physikalische Simulation | 33 |
| 3.2.3.1 | Simulationsarten | 33 |
| 3.2.3.2 | Physik-Engines | 34 |
| 3.2.3.3 | Kinematik von Punktmassen | 35 |
| 4. | Implementierung des Animationssystems | 37 |
| 4.1 | Übersicht der technischen Grundlagen | 37 |
| 4.1.1 | Vorgaben | 37 |
| 4.1.2 | Mathematische Grundlagen | 39 |
| 4.1.3 | Definitionen | 40 |
| 4.1.4 | Modellierung eines Körpers | 41 |
| 4.2 | Erstellung des physikalischen Modells | 43 |
| 4.2.1 | Mechanische Komponenten | 43 |
| 4.2.2 | Simulationsablauf | 44 |
| 4.2.3 | Behandlung von Stabilitätsproblemen | 45 |
| 4.2.4 | Rigging (Skelletierung) | 48 |
| 4.2.5 | Kinematische Ketten | 49 |
| 4.2.6 | Einbeziehung passiver Komponenten | 50 |
| 4.3 | Bewegungsbeschränkungen (Motion-Constraints) | 51 |
| 4.4 | Einbeziehung aktiver Komponenten | 55 |
| 4.5 | Gleichgewichtserhaltung | 58 |
| 4.6 | Kollisionsbehandlung | 62 |
| 4.7 | Laufzeitbetrachtungen | 67 |
| 5. | Die Anwendung MOTION | 70 |
| 5.1 | Modellierung und Animation | 70 |
| 5.2 | Dateiformate | 73 |
| 5.3 | Programmerweiterungen – Balancierung | 74 |
| 6. | Zusammenfassung | 76 |
Textprobe:
Kapitel 4.2.3, Behandlung von Stabilitätsproblemen:
Das bisher gezeigte System mit seinen überschaubaren Grundregeln kann bereits ein einfaches, soft-body-artiges Bewegungsverhalten für einen Körper simulieren. Die Kräfte zwischen den Knoten resultieren allein aus deren Positionsänderungen relativ zueinander. Dieses einfache Prinzip erbt jedoch die bekannten Nachteile des Masse-Feder-Systems und bringt zusätzliche Probleme mit sich:
- Instabilität des Gesamtsystems, Neigung zu Aufschwingverhalten; - Schwierige Kontrollierbarkeit; - Prinzipiell ‘weiches’ Verhalten, starre Körper kaum simulierbar; - System ständig in Bewegung, kommt nie zur Ruhe.
Nach dem Energieerhaltungssatz bleibt die Energie eines abgeschlossenen Systems (Innere Energie) konstant. Korrekterweise müsste dies auch hier gewährleistet werden. Tatsächlich wird jedoch prinzipbedingt ständig Bewegungsenergie zugeführt, wodurch die innere Energie des Systems laufend ansteigt. Daraus resultiert auch sein instabiles Aufschwingverhalten.
Dieses Problem tritt vor allem bei Kollisionen auf, die Ursache lässt sich als ‘momentaner Stellungsfehler der Knoten’ beschreiben:
Bei Kollision des Masse-Feder-Systems mit einem anderen Hindernis, beispielsweise der Bodenfläche, dringen einige äußere Knoten kurzzeitig die Bodenfläche ein.
Das Kollisionssystem setzt den Knoten auf eine Position unmittelbar auf der Bodenebene zurück, um ein weiteres Eindringen in den Untergrund zu vermeiden. Diese sprunghafte Positionsänderung entspricht einer unstetigen Geschwindigkeitsänderung bzw. einem Sprung in der Geschwindigkeitsfunktion. Momentane Gegenkräfte durch Nachbarknoten werden hierbei fälschlicherweise noch nicht berücksichtigt. Dies initiiert einen künstlichen Impuls, der in das System getragen wird und sich bei jeder weiteren Iteration fortpflanzt. Bei Bodenberührung mehrerer Knoten werden auf diese Weise laufend Impulse auf das System übertragen, welche jedoch real nicht vorhanden sind. Dadurch steigt die innere Bewegungsenergie kontinuierlich an.
Zur Behebung des Problems benötigt man einen Kontrollmechanismus, welcher das Problem der ‘fehlerhaften Impulse’ in vollem Umfang berücksichtigt und die Innere Energie des Systems konstant hält. Existierende Verfahren zur Lösung dieses Problems sind allerdings tendenziell rechenintensiv. Durch deren Einsatz ginge die Einfachheit und die Effizienz des Systems verloren, daher wird auf sie verzichtet.
Dennoch kann das Problem durch einfachere Maßnahmen auf ein akzeptables Niveau verringert werden.
Zur Kompensierung des Effektes wird eine geschwindigkeitsabhängige Reibungsgröße hinzugefügt. Sie simuliert die innere Reibung einer realen Feder, wirkt entgegen der Federkraft und ist proportional zur Geschwindigkeit in Längsrichtung der Feder. Mit dieser ‘Federreibung’ lässt sich das Aufschwingverhalten reduzieren, allerdings verliert das System dadurch insgesamt an Dynamik. Ein weiteres Problem bleibt ebenfalls bestehen: Werden die Federhärten zu groß gewählt, erhält man sehr starre Verbindungen. Das System verhält sich durch die hohen Federhärten zunehmend wie ein starrer Körper, wodurch sich auch das Problem der Aufschwingung wieder verstärkt. Da die Kräfte auf die Knoten allein durch deren Positionsänderung relativ zueinander bestimmt werden, entstehen bei harten Federn dementsprechend sehr große Kräfte. Diese bewirken große Positionsänderungen der Knoten, wodurch sich die resultierenden Kräfte bei der nächsten Iteration noch weiter vergrößern, dieses Spiel wiederholt sich fortan. Vergleichen könnte man die Situation mit einer positiven Rückkopplung (Feedback) in einem Regelkreis oder einer störenden Einflussgröße, welche das System periodisch aufschwingt.
Vergrößert man zur Kompensierung des Effektes die Federreibung noch mehr, entsteht schließlich ein völlig träges und passives System, dass auf äußere Kräfte und Einflüsse kaum noch reagiert. Bildlich gesprochen erhält man einen Körper, der ähnlich einem sehr zähflüssigen Gel verhält. Dieses wenig dynamische Verhalten ist beispielsweise für Gesichtsanimation sehr vorteilhaft und erwünscht, jedoch speziell für die Charakteranimation und Skelettanimation weniger nutzbringend.
Allgemein kann man das Systemverhalten durch Erhöhung der Samplerate bzw. Iterationsrate verbessern. Dies ist die Anzahl der Iterationen über das gesamte Netzwerk pro Zeitschritt. Die Präzision wird dadurch erhöht und der Einfluss des momentanen Stellungsfehlers der Knoten reduziert. Andererseits steigt auch der Rechenaufwand, was den Geschwindigkeitsvorteil im Vergleich zu anderen Verfahren wiederum relativiert. Für die Iterationsrate gilt es deshalb durch Experimente einen guten Kompromiss zu finden.
Zusammenfassend lässt sich feststellen, dass die Vorteile des MF-Systems für geeignete Anwendungsbereiche, wie Haut- und Stoffsimulation, überwiegen. Es ist einfach zu implementieren und bereits in der Standardversion recht effizient. Es bietet auch genügend Spielraum für Optimierungen, denn das zentrale, allgemeingültige Rechenverfahren lässt nach einigen Anpassungen Parallelisierung zu. So lassen sich in Multiprozessorsystemen sehr effizient komplexe Masse-Feder-Systeme verwirklichen.
Aus diesen Gründen werden MF-Systeme, teilweise in modifizierter Form, für folgende Anwendungsbereiche von Computerspielen und Computersimulationen eingesetzt:
- Kleidungssimulation / Stoffsimulation; - Haarsimulation; - Soft-Body Simulation (Gele / Weichkörper, Körper mit elastischer Oberfläche); - Unfallsimulation => prozedurale Berechnung der Hüllenverformung; - Maschinendynamische Vorgänge, Brückensimulationen; - Veranschaulichung technischer Vorgänge, wenn mathematische Genauigkeit zweitrangig ist; - Elastizität der Haut bei Gesichtsanimationen.
Für realistisch wirkende Ganzkörperanimationen ist das MF-Modell in dieser einfachen Form noch ungeeignet.Die folgenden Abschnitte zeigen, wie durch Anpassungen, Verfeinerungen und durch hinzufügen geeigneter Beschränkungen eine deutliche Verbesserung des Modells erreicht wird.
Rigging (Skelettierung):
Zur Modellierung von Charakteren in Computerspielen werden üblicherweise sog. Rigs erstellt. Dies ist eine skelettähnliche Struktur, welche in die bereits fertig gestellte Polygonhülle eines 3D-Modells einmodelliert wird. Die Skelettstruktur dient der späteren Animation des Modells.
Um ein Rig für einen menschlichen Charakter zu erstellen, versucht man die natürliche Körperstruktur des menschlichen Skeletts entsprechend nachzubilden. Dabei sind nur die wesentlichen Teile für die Modellierung interessant. Feinheiten wie z.B. die Aufteilung des Unterarmknochens in Elle und Speiche können meist vernachlässigt werden. Für ein sehr einfaches Modell, das jedoch für viele Zwecke bereits ausreicht, verwendet man in der Regel eine Kante (Bone) für je einen Hauptknochen des menschlichen Skeletts. Beispielsweise würde man folgende Körperknochen je einem Rig-Bone zuordnen:
Unterschenkel, Oberschenkel, Becken, Rückrat aus mehreren Segmenten, Rücken, Schulter, Oberarm, Unterarm, Handgelenk, fünf Finger sowie Hals und Kopf.
38,00 €
PDF-eBook Download: 38,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783836645973
Arbeit zitieren:
Kupfer, Daniel März 2009: Entwicklung und Implementierung einer Animationstechnik zur Simulation natürlicher Bewegungen in Computerspielen, Hamburg: Diplomica Verlag
Schlagworte:
Computeranimation, Prozeduale Animation, Motion-Constraints, Java, Computergrafik




