Dokument 1

Transcription

Dokument 1
Analyse bestehender Systeme zur Generierung von
Körperbedeckungen in Computeranimationsfilmen
und Entwicklung eines Federsystems am Beispiel
eines 3D-Vogels
Fachbereich MND der
Fachhochschule Friedberg
Diplomarbeit
vorgelegt von
Sabine Langkamm
geb. in Frankfurt am Main
Referent der Arbeit:
Korreferent der Arbeit:
Dipl.-Math (FH) Cornelius Malerczyk
Prof. Dr. Manfred Merkel
Fachbereich Mathematik, Naturwissenschaften und Datenverarbeitung MND
FH Friedberg, 2009
Eidesstattliche Erklärung
Hiermit versichere ich, die vorliegende Diplomarbeit selbstständig und nur mit den angegebenen Hilfsmitteln und Literaturquellen verfasst zu haben.
Friedberg, den 13.07.2009
Sabine Langkamm
i
Danksagung
Ich möchte mich an dieser Stelle bei all denen bedanken, die mich bei der Anfertigung meiner
Diplomarbeit so kräftig unterstützt haben. Mein besonderer Dank geht an meine Eltern, die
mir das Studium erst ermöglicht haben und mich die gesamte Zeit über unterstützt und an
mich geglaubt haben. Den Referenten meiner Diplomarbeit Dipl.-Math. Cornelius Malerczyk
und Prof. Dr. Manfred Merkel möchte ich herzlich für ihre Geduld danken und dafür, dass
sie mir stets vorgelebt haben, was es heißt mit Begeisterung und Engagement seinem Beruf
nachzugehen.
René Nold und Klaus Halassek danke ich dafür, dass sie mir das Gebiet der grafischen Datenverarbeitung näher gebracht haben. Ein großes Dankeschön geht auch an Sonja Emmel die
mir stets eine gute Freundin und ein Vorbild war. Nico Smentek, Dennis Kolwe und Timo
Krämer danke ich für die wundervolle Arbeitsatmosphäre im Labor. Prof. Dr. Monika Lutz
danke ich dafür, dass sie schon früher als ich selbst meine Leidenschaft für das Themengebiet der grafischen Datenverarbeitung erkannt hat und mich von Beginn an unterstützt und
gefördert hat.
Schließlich gilt mein ganz persönlicher Dank meinem Freund und Lebenspartner Dirk Fidorski
für sein Verständnis und seine Fürsorge während der letzten Monate.
iii
Inhaltsverzeichnis
Eidesstattliche Erklärung
i
Danksagung
iii
Inhaltsverzeichnis
v
1 Einleitung
1.1 Motivation . . . . . . . . . . . . . . . . . . .
1.2 Problemstellung und Zielsetzung . . . . . . .
1.3 Organisation der Arbeit . . . . . . . . . . . .
1.4 Zusammenfassung der wichtigsten Ergebnisse
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
4
2 Stand der Technik
2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Die Geschichte des computeranimierten Films . . . . . . . .
2.3 Haar- und Fellsysteme aktueller Entwicklungsstudios . . . . .
2.3.1 Pixar Animation Studios . . . . . . . . . . . . . . .
2.3.2 DreamWorks Animation . . . . . . . . . . . . . . . .
2.3.3 Blue Sky Studios . . . . . . . . . . . . . . . . . . .
2.3.4 Sony Pictures Imageworks . . . . . . . . . . . . . .
2.4 Wie Realfilme die Entwicklung der Fellsysteme beeinflussten
2.4.1 Die Chroniken von Narnia . . . . . . . . . . . . . . .
2.4.2 King Kong . . . . . . . . . . . . . . . . . . . . . . .
2.4.3 Der goldenen Kompass . . . . . . . . . . . . . . . .
2.4.4 Zusammenfassung . . . . . . . . . . . . . . . . . . .
2.5 Vogelcharaktere in Computeranimationsfilmen . . . . . . . .
2.5.1 Pixar’s Der Vogelschreck . . . . . . . . . . . . . . .
2.5.2 Dodos in Ice Age 1 . . . . . . . . . . . . . . . . . .
2.5.3 Pinguine in Könige der Wellen . . . . . . . . . . . .
2.5.4 Vlad Vlad-I-Kloff in Horten hört ein Hu! . . . . . . .
2.6 Zusammenfassung und Ausblick . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
11
13
14
15
16
18
19
20
21
23
24
25
26
27
27
28
3 Gegenüberstellung verschiedener Methoden und Techniken
3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
31
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
vi
Inhaltsverzeichnis
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
Aufbau eines typischen Vogelgefieders . . . . . . .
Mindestanforderungen an das Federsystem . . . . .
Detailgrad der Feder als Geometrie . . . . . . . . .
Texturierung des Federkleids . . . . . . . . . . . .
Verteilung der Federn auf Grundlage der Geometrie
Paint Effects . . . . . . . . . . . . . . . . . . . . .
Fell- und Haarsysteme . . . . . . . . . . . . . . . .
Partikel-Systeme . . . . . . . . . . . . . . . . . . .
Kleidungssimulation . . . . . . . . . . . . . . . . .
Schlussfolgerung und Zusammenfassung . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
34
36
38
39
40
42
44
45
46
4 Entwicklung eines neuen Federsystems
4.1 Das Vogelmodell . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Das Polygon-Modell des Vogels . . . . . . . . . . . . .
4.1.2 Das Vogelskelett . . . . . . . . . . . . . . . . . . . . .
4.1.3 Das Control-Rig . . . . . . . . . . . . . . . . . . . . .
4.1.4 Blend Shapes . . . . . . . . . . . . . . . . . . . . . .
4.2 Die Testsequenz . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Federsystem auf Basis der Fur-Komponente von Maya . . . .
4.3.1 Kombination eines Haar-Systems mit Fur . . . . . . .
4.4 Federsystem auf Basis von Shave and a haircut . . . . . . . .
4.4.1 Shave and a haircut und Forces . . . . . . . . . . . . .
4.5 Federsystem auf Basis von Shave and a haircut und Instanzen
4.6 Bewertung der Federsysteme . . . . . . . . . . . . . . . . . .
4.7 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
50
51
53
55
59
59
63
64
67
71
71
72
75
5 Implementierung eines MEL-Scripts zur Anwenderunterstützung
5.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Die Script-Sprache von Maya . . . . . . . . . . . . . . . . . . .
5.3 Anforderungen an das Script . . . . . . . . . . . . . . . . . . .
5.4 Die Programmoberfläche . . . . . . . . . . . . . . . . . . . . .
5.5 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1 Programmierung der Oberfläche . . . . . . . . . . . . .
5.5.2 Automatisierung des Federsystems . . . . . . . . . . . .
5.5.3 Generierung der Cut Maps . . . . . . . . . . . . . . . .
5.6 Zusammenfassung und Ausblick . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
80
80
83
84
85
89
92
94
6 Zusammenfassung und Ausblick
6.1 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
98
Glossar
99
Literaturverzeichnis
105
Anhang: Quellcode MEL-Script
107
Kapitel 1
Einleitung
1.1
Motivation
Computeranimationsfilme handeln häufig von Tieren nachempfundenen Cartoon-Figuren.
Wenn diese Tiere Körperbedeckungen wie etwa Fell oder Gefieder aufweisen, muss dies
bei der Entwicklung der 3D-Figur berücksichtigt werden. Durch die immer leistungsfähigere Computer-Hardware und Software können immer komplexere und damit auch realistischere Systeme zur Generierung von Körperbedeckungen verwendet werden. Diese Systeme
ermöglichen die Entwicklung neuer Cartoon-Stile, die den Computeranimationsfilm lebendiger erscheinen lassen. Bei Fell und Fell ähnlichen Körperbedeckungen ist diese Entwicklung
schon weit fortgeschritten und wird in zahlreichen Animationsfilmen, wie beispielsweise dem
Pixar Kurzfilm Presto! (siehe Abbildung 1.1 links),eingesetzt. Die Systeme sind zum einen
c
Abbildung 1.1: Charaktere mit Fell. Links, der Hase aus Pixar’s Kurzfilm Presto! Pixar
c
Animation. Rechts, ein Pinguin aus Happy Feet Animal
Logic’s.
1
2
Einleitung
in der Lage die große Menge einzelner Haare umzusetzen, zum anderen verfügen sie über
Algorithmen, über die die Bewegung der Haare simuliert wird.
Systeme zur Generierung von Federn existieren bisher nur vereinzelt. In vielen Filmen werden Cartoon-Vögel noch ganz ohne Federn oder lediglich mit entsprechenden Feder-Texturen
dargestellt. Bei einigen Vogelarten, wie etwa Pinguinen, werden Fellsysteme als Ersatz für
ein Gefieder verwendet (siehe Abbildung 1.1 rechts). Für das Gefieder der meisten Vogelcharaktere reichen die bisherigen Techniken jedoch nicht aus. Aus diesem Grund soll im Laufe
dieser Arbeit ein System entwickelt werden, das auf die Umsetzung von Gefieder bei Vögeln
optimiert ist.
1.2
Problemstellung und Zielsetzung
Eine realitätsnahe Simulation von Körperbedeckungen ist bei der Erstellung von Computeranimationsfilmen eine der größten Herausforderungen. Das Gefieder und Fell von Tieren
besteht aus einer sehr großen Anzahl Elemente, die aufgrund ihrer geringen Größe und des
geringen Gewichts besonders stark auf Umwelteinflüsse reagieren. Jede Bewegung des Tieres
und jeder Windstoß wirkt sich auf das Fell oder Gefieder des Tieres aus. Die dynamischen
Berechnungen, die für eine realistische Darstellung notwendig sind, stellen einen erheblichen
Rechenaufwand dar. Für die Umsetzung von Tieren mit Fell, stehen bereits ausgereifte Systeme zur Verfügung. Diese Systeme werden zum Teil auch für Vogelcharaktere verwendet,
liefern hier allerdings nur bei speziellen Vogelarten zufriedenstellende Ergebnisse. Zur Zeit
existieren keine Systeme die auf die Umsetzung von Gefieder spezialisiert sind.
Das Ziel dieser Arbeit besteht darin, ein neues Federsystem am Beispiel einer repräsentativen Software-Auswahl zu entwickeln. Dabei muss das System an folgenden Qualitätskriterien
gemessen werden können:
• Renderzeit:
Die Renderzeiten sollten möglichst gering sein. Dabei sollten sie stets in Abhängigkeit
zur Qualität und Komplexität des Ergebnisses betrachtet werden. In Computeranimationsstudios steht in der Regel sehr leistungsfähige Hardware in großer Stückzahl zur
Verfügung. Daher sollte der Verlauf der Renderzeit bei immer komplexeren Einstellungen überprüft werden.
• Bedienbarkeit:
Das System sollte möglichst einfach, übersichtlich und intuitiv gestaltet sein. Dies
erspart zum einen Einarbeitungszeit und erleichtert es dem Anwender zum anderen
seine Ideen umzusetzen.
• Flexibilität:
Das Federsystem soll für das Gefieder einer großen Anzahl von Vogeltypen einsetzbar
sein.
1.3. Organisation der Arbeit
Abbildung 1.2: Fell und Gefieder unterscheiden sich lediglich in der Komplexität der einzelnen Elemente
• Qualität des Ergebnisses:
Bei diesem Kriterium muss zwingend ein zufriedenstellender Wert erreicht werden.
Erfüllt ein System alle anderen Kriterien, versagt jedoch bei der Qualität, so wird
es niemals bei einem Projekt zum Einsatz kommen. Auf der anderen Seite, kann
durchaus ein System mit schlechterer Endqualität aufgrund der Kostenersparnis einem
hochwertigerem mit höherer Renderzeit, vorgezogen werden.
Federn sind eine Variante von Körperbedeckungen bei Tieren. Sie kommen nur bei Vögeln
vor. Ähnlich wie Fell handelt es sich um Gebilde aus Hornsubstanz, die in sehr hoher Anzahl auf der Haut der Tiere verteilt sind und dort eine dichte Hülle bilden. Der Aufbau
einer Feder ist etwas komplexer als der eines Haares, wie es in Fell vorkommt. Trotzdem
ähneln sich beide Sorten von Körperbedeckungen so sehr, dass Federn vereinfacht als ein
komplexes Fellsystem angesehen werden können. Abbildung 1.2 zeigt Nahaufnahmen von
Fell und Gefieder, hier ist die Ähnlichkeit der beiden Körperbedeckungsvarianten deutlich zu
erkennen. Um ein neues System zu entwickeln, das auf die Generierung von Federn spezialisiert ist, muss zunächst eine Analyse der bestehenden Systeme zur Generierung von Fell
durchgeführt werden. Aufbauend auf diesen Vorüberlegungen kann für die vorliegende Arbeit
folgende Arbeitshypothese aufgestellt werden:
Hypothese 1 (Fellsysteme als Basis eines neuen Federsystems) Auf Basis aktueller
Fellsysteme kann ein leistungsstarkes Federsystem erstellt werden, das die Qualitätskriterien
im Vergleich zu konkurrierenden Ansätzen am besten erfüllt.
1.3
Organisation der Arbeit
Im Rahmen dieser Arbeit soll zunächst in Kapitel 2 eine Analyse der bisher in Computeranimationsfilmen angewandten Techniken zur Visualisierung von Körperbedeckungen durchgeführt werden. Anhand einiger Beispiele soll die allgemeine Vorgehensweise bei der Entwicklung fellbedeckter Tiere in aktuellen Computeranimationsfilmen und verwandter Realfilme
3
4
Einleitung
aufgezeigt werden. Danach wird nach Möglichkeit auf die schon vorhandenen Ansätze von
Federsystemen und deren Arbeitsweise in Computeranimationsfilmen eingegangen. Aus den
gewonnenen Erkenntnissen wird in Kapitel 3 zunächst eine Softwareauswahl getroffen. Die
Komponenten der ausgewählten Software werden danach auf ihre Brauchbarkeit in Hinblick
auf das zu entwickelnde Federsystem untersucht. Mit Hilfe der ausgewählten Techniken werden in Kapitel 4 verschiedene Systemvarianten zur Generierung von Federn am Beispiel eines
einfachen Cartoon-Vogels entwickelt und bewertet. Das System mit der besten Bewertung
soll in Kapitel 5 in eine Anwendung gekapselt werden. Dies kann über die Programmierung
einer einfachen Oberfläche für die ausgewählte 3D-Software erfolgen.
1.4
Zusammenfassung der wichtigsten Ergebnisse
Im Rahmen dieser Arbeit soll ein neues Federsystem zur Erstellung von Gefieder für 3D-Vögel
entwickelt werden. Zur Zeit werden Vogelcharaktere in Computeranimationsfilmen entweder
ganz ohne Federn dargestellt oder nur mit einer Federtextur. Bei Vogelarten mit sehr feinem
Gefieder, wie etwa Pinguinen, wird häufig statt Gefieder Fell auf dem Charakter verteilt. Da
zwischen Federn und Fell eine große Ähnlichkeit besteht wird vermutet, dass die bestehenden
Fellsysteme als Basis für ein neues Federsystem verwendet werden können.
Für die Entwicklung des Federsystems wird das 3D-Software-Paket Autodesk Maya verwendet, das auch in nahezu allen aktuellen Animationsfilmproduktionen verwendet wird.
Da Autodesk Maya einen sehr großen Funktionsumfang bereitstellt, wird zunächst ermittelt
welche der bereitgestellten Techniken und Methoden für die Generierung und Verteilung von
Federn auf einem Charakter verwendet werden können. Bei der Umsetzung der einzelnen
Federn ergeben sich hier zwei Verfahren. Zum einen können die Federn als Haare eines Fellsystems generiert werden und über die zur Verfügung stehenden Attribute dieser Systeme
soweit wie möglich an die Form von Federn angepasst werden. Zum anderen können die
Federn als Geometrien mit geringer Polygonanzahl erstellt werden. Um den Detailgrad bei
der zweiten Technik zu erhöhen, kann eine Alpha-Map zur Texturierung verwendet werden.
Die Verteilung der Federn auf der Geometrie sollte in jedem Fall über ein Fellsystem realisiert
werden, da diese Systeme Algorithmen bereitstellen, über die die Bewegung der Federn umgesetzt werden kann. Hierfür stehen zwei Fellsysteme zur Auswahl, die in Maya integrierte
Fur-Komponente und das Plug-In Shave and a haircut.
Die ermittelten Techniken zur Erstellung einzelner Federn werden auf verschiedene Arten
miteinander kombiniert. Dies führt zu drei Federsystemen:
1. Federsystem auf Basis der Maya-Fur Komponente. Als Federn werden die Haare von
Maya-Fur verwendet.
2. Federsystem auf Basis des Plug-Ins Shave and a haircut. Als Federn werden die Haare
von Shave and a haircut verwendet.
3. Federsystem auf Basis des Plug-Ins Shave and a haircut. Als Federn werden PolygonPlanes verwendet.
1.4. Zusammenfassung der wichtigsten Ergebnisse
Die drei Federsysteme werden anhand einer Testsequenz verglichen. Die Sequenz handelt
von einem Cartoon Vogel, der sich durch den Windstrom eines Ventilators abkühlen lässt.
Die Federsysteme werden anhand der Sequenz in Hinblick auf zuvor festgelegte Qualitätskriterien bewertet und verglichen. Das erste Kriterium ist die Renderzeit für ein Frame der
Testsequenz, wobei darauf geachtet werden muss, ein vergleichbar dichtes Gefieder, unabhängig von der benötigten Federanzahl, zu erzeugen. Außerdem wird die Bedienbarkeit
des Systems und die Flexibilität bei der Darstellung verschiedener Gefiederarten in die Bewertung miteinbezogen. Die Qualität des erzeugten Bildmaterials fließt als letztes Kriterium
in die Bewertung der Systeme ein.
Die beste Bewertung erhält im Vergleich der Federsysteme das Dritte auf Basis von Shave
and a haircut mit Polygon-Planes. Um dem Anwender die Verwendung des Systems zu
erleichtern, wird ein MEL-Script implementiert, das die nötigen Arbeitsschritte zur Erstellung des Federsystems automatisiert. Im Anschluss erhält der Anwender über eine grafische
Benutzeroberfläche zudem die Möglichkeit das Gefieder über eine Reihe von Parametern
anzupassen.
5
Kapitel 2
Stand der Technik
Dieses Kapitel gibt einen Überblick der in Computeranimationsfilmen eingesetzten Techniken zur Generierung von Körperbedeckungen. Zunächst wird speziell auf Methoden zur
Fellgenerierung eingegangen, da sich die hierbei gewonnen Erkenntnisse auf Federsysteme
übertragen lassen. Die Unternehmen können in diesem Bereich bereits auf ausgereifte Systeme zurückgreifen. Diese Systeme können wichtige Erkenntnisse für die Erstellung des Federsystems bieten. Die Techniken der vier großen Animationsunternehmen Pixar Animation
Studios, DreamWorks Animation, Blue Sky Studios und Sony Pictures Imageworks, werden beispielhaft herangezogen, um den Stand der Technik im Bereich der Fellgenerierung
zu repräsentieren. Die Analyse wird danach von Computeranimationsfilmen auf Realfilme
erweitert, um eine noch breitere Wissensgrundlage zu schaffen.
Da Federsysteme bisher nur vereinzelt in Animationsfilmen zum Einsatz kommen, wird die
Analyse in diesem Bereich anhand von einzelnen Vogelcharakteren vorgenommen.
2.1
Einleitung
Computeranimationsfilme werden heutzutage in vielfältiger Form produziert. Jedes Jahr laufen mehrere neue Filme in den Kinos. Die Handlung vieler dieser Filme dreht sich um Tiercharaktere mit Körperbedeckungen. Meist sind dies Säugetiere mit Fell. Vereinzelt existieren
auch bereits Vogelcharaktere. Fell stellt wie Federn eine Variante der Körperbedeckungen
dar. Diese Verwandtschaft lässt sich bei der Generierung der Federsysteme insofern nutzen,
dass die bestehenden Techniken zur Fellgenerierung als Referenzmaterial herangezogen werden können. Daher soll soweit möglich die Vorgehensweise aktueller Animationsstudios zur
Fell- und soweit vorhanden Federgenerierung analysiert werden.
2.2
Die Geschichte des computeranimierten Films
Computeranimationsfilme sind seit einigen Jahren fester Bestandteil der Kinolandschaft. Sie
ziehen Millionen von Zuschauern in die Kinosäle. Ein Grund für diese Entwicklung ist sicherlich, dass im Gegensatz zu ihren Vorgängern, den 2D-Animationsfilmen, 3D-Filmen nicht
mehr so stark der Ruf eines reinen Kinderfilmes anhängt. Sie haben sich mittlerweile einen
7
8
Stand der Technik
c
Abbildung 2.1: Der Ballsaal aus Die Schöne und das Biest, 1991
Walt Disney
Platz als Unterhaltungskino für sämtliche Altersklassen gesichert. Die Entwicklung des Computeranimationsfilmes zum ernstzunehmenden Film-Genre zeigt sich neben der Umverteilung
der Zielgruppe auch in der Filmindustrie selbst. Seitdem im Jahr 1991 mit der Walt Disney
Produktion Die Schöne und das Biest zum ersten Mal ein Animationsfilm für den Oskar in
der Kategorie Bester Film nominiert war, wurde eigens für den Animationsfilm eine neue
Kategorie geschaffen [Osb08]. Unter der Bezeichnung Best Animated Feature wird seitdem
jedes Jahr ein Animationsfilm geehrt.
Der Übergang vom 2D-Trickfilm hin zum 3D-Animationsfilm war fließend [Hap03]. 3DSoftware wurde zunächst nur für einzelne Szenen oder Hintergründe in Trickfilmen eingesetzt. Der erste computergenerierte Hintergrund war 1991 der Ballsaal in dem Walt Disney
Klassiker Die Schöne und das Biest (siehe Abbildung 2.1). Die Figuren wurden dabei per
Hand gezeichnet und danach mit dem Hintergrund zusammengefügt.
Bei der Verschmelzung von computergenerierten und traditionellen Animationen mussten die
Entwickler sehr darauf achten, dass sich beide Techniken nicht zu sehr voneinander abheben.
Da die klassische Trickfilmtechnik zu dieser Zeit bereits nahezu an ihre Grenzen gestoßen war,
ließ sie sich nicht weiter verfeinern. Dies schränkte die Möglichkeiten der Computeranimateure ein. Sie mussten zugunsten eines einheitlichen Gesamtbildes unter ihren Möglichkeiten
arbeiten. Trotz dieses Nachteils entstanden in den nächsten Jahren weitere bemerkenswerte
Filme aus einer Kombination von 2D- und 3D-Techniken.
Im Jahr 1994 erreichte Disney mit Der König der Löwen einen neuen Höhepunkt in der
Geschichte des Trickfilms. Die beeindruckenste 3D-Szene zeigt eine aus tausenden von Gnus
bestehende Herde eine Hügelkette herabstürmen. Dabei wurde jedes Tier separat berechnet
2.2. Die Geschichte des computeranimierten Films
Abbildung 2.2: Bekannte Pixar Produktionen. Von links nach rechts: Toy Story, Findet
c
Nemo, Ratatouille. Pixar
Animation
und nicht etwa als Kopie oder Instanz in die Szene integriert. Zwei der Tierfiguren werden
während der Szene um 360 Grad umkreist, auch dies stellte eine Premiere im traditionellen
Animationsfilm dar.
In den nächsten Jahren wurden die Anteile von computergenerierten Bildern in Animationsfilmen immer größer und die Szenen immer aufwändiger. Waren in Der König der Löwen
1994 noch 324 Bilder am Computer erzeugt worden, so waren es 1998 bei Mulan schon 1312
Bilder.
Parallel zu der Entwicklung im traditionellen Trickfilm, entstand eine neue Art von Animationsfilm, in der ausschließlich mit computergenerierten Bildern gearbeitet wurde. Der Film
Toy Story war 1995 der erste vollständig am Computer generierte Kinofilm. Er entstand
aus einer Zusammenarbeit zwischen der Walt Disney Company und den damals noch von
Disney unabhängigen Pixar Animation Studios. Nach dem großen Erfolg des Films entstand
eine enge Zusammenarbeit zwischen Disney und Pixar, die im Jahr 2006 in der Übernahme
von Pixar durch Disney endete. Zu den bekanntesten Pixar Produktionen zählen die Filme
[KP07]:
• Toy Story 1 und 2 (1995 und 1999)
• Findet Nemo (2004)
• Ratatouille (2007)
• WALL-E - Der Letzte räumt die Erde auf (2008)
Abbildung 2.2 zeigt die Hauptcharaktere aus Toy Story, Findet Nemo und Ratatouille. Der
Roboter WALL-E ist in Abbildung 2.3 zu sehen.
Walt Disney fertigte 2004 mit Die Kühe sind los seinen bisher letzten 2D-Animationsfilm an
und auch die anderen großen Animationsstudios setzen heute fast ausschließlich auf computeranimierte Filme. Neben den Pixar Animation Studios, deren Filme bisher alle große
kommerzielle Erfolge waren, haben noch weitere Studios erfolgreiche Filme auf diesem Ge-
9
10
Stand der Technik
c
Abbildung 2.3: WALL-E ist der Star des gleichnamigen Pixar Films Pixar
Animation
biet produzieren können. Drei Jahre nach Toy Story entwickelte DreamWorks Animation 1
seinen ersten Computeranimationsfilm mit dem Titel Antz. Heute ist DreamWorks eines der
erfolgreichsten Unternehmen im Bereich der 3D-Animationsfilme. Zu ihren bekanntesten Filmen zählen Madagascar 1 und 2 (2005 und 2008), die Shrek-Reihe (2001, 2004 und 2007)
sowie Kung Fu Panda (2008). Die Hauptcharaktere der genannten Filme sind in Abbildung
2.4 zu sehen. Das Unternehmen veröffentlicht pro Jahr etwa zwei Kinofilme. Ein weiteres
führendes Animationsstudio ist Blue Sky Studios 2 , welches zu 20th Century Fox Filmed
Entertainment gehört. Das Unternehmen hat, seitdem es sich im Jahr 2002 auf 3D-Filme
spezialisiert hat, die folgenden 5 Filme produziert:
• Ice Age 1-3 (2002, 2006 und 2009)
• Robots (2005)
• Horton hört ein Hu! (2008)
Die Hauptfiguren der Filme sind in Abbildung 2.5 zu sehen. In den letzen Jahren hat sich
mit Sony Pictures Animation 3 noch ein weiteres Unternehmen dem Computeranimationsfilm
zugewandt. Das Unternehmen produzierte im Jahr 2006 mit Jagdfieber seinen ersten Computeranimationsfilm und ist somit das jüngste der aufgeführten Studios. Als Division von Sony
Pictures Entertainment steht hinter Sony Pictures Animation jedoch ebenfalls ein großes
1
www.dreamworksanimation.com
www.blueskystudios.com
3
www.sonypicturesanimation.com
2
2.3. Haar- und Fellsysteme aktueller Entwicklungsstudios
Abbildung 2.4: Bekannte Dreamworks Animation Produktionen. Von links nach rechts:
c
Shrek, Madagascar, Kung Fu Panda. Dreamworks
Animation
etabliertes Unternehmen. Der bekannteste Animationsfilm des Studios, Jagdfieber ist dabei
im Hinblick auf die Zukunft des Animationsfilmes von besonderer Bedeutung [Rob06a]. Im
Gegensatz zu den ersten 3D-Filmen, die sich deutlich von den 2D-Produktionen der Vergangenheit abheben wollten, versucht Jagdfieber mit modernen Mitteln der Computergrafik
einen 2D-Look zu imitieren. In Abbildung 2.9 ist dieser Look gut zu erkennen.
Ob es nach den Jahren der Euphorie für den 3D-Film nun zu einer Besinnung auf die alten
Werte kommt und somit in Zukunft beide Genres, nämlich das des traditionell gezeichneten Trickfilms und das des 3D-Animationsfilms nebeneinander existieren werden, wird sich
zeigen. Die Walt Disney Company hat zumindest für Ende 2009 mit The Princess And The
Frog ihren ersten 2D-Animationsfilm seit 2004 angekündigt.
Computeranimationsfilme werden wie oben bereits angedeutet zumeist in einem auf diese Filme spezialisierten Subunternehmen eines großen Filmstudios produziert. Tabelle 2.1
beinhaltet einen Überblick der genannten Studios, ihre Mutterkonzerne und eine Auswahl
der produzierten Filme.
2.3
Haar- und Fellsysteme aktueller Entwicklungsstudios
Die immer leistungsstarkere Hardware und Software im 3D-Bereich ermöglicht es heutzutage
Charaktere mit sehr aufwändigen Haar- und Fellsystemen zu generieren. Dennoch bringen
solche Systeme einige Probleme mit sich. Meist ist es mit aktivem Fellsystem nicht mehr
möglich in Echtzeit zu arbeiten. Dies hat zur Folge, dass für das Animieren der Figuren das
Fellsystem deaktiviert wird. Dadurch entstehen aber wiederum Probleme, da die Größe der
fertigen Figur, je nach Dicke des Fells mehr oder weniger stark von dem felllosen Modell
abweicht. Kollisionen des Fells mit der Umgebung oder mit anderen Charakteren müssen
außerdem in einer Verformung des Fells an den Berührungsflächen resultieren. Dies wird
11
12
Stand der Technik
Abbildung 2.5: Bekannte Blue Sky Studios Produktionen. Von links nach rechts: Ice Age,
c
Robots, Horton hört ein hu! Blue
Sky Studios
Unternehmen
Animationsabteilung
Filme (Auswahl)
The Walt Disney Company
Pixar
ToyStory
Findet Nemo
Ratatouille
WALL-E
DreamWorksSKG
DreamWorks Animation
Anzt
Madagascar
Shrek
Over the hedge
Kung Fu Panda
20th Century Fox Filmed
Entertainment
Blue Sky Studios
Ice Age
Robots
Horten hört ein Hu!
Sony Pictures Entertainment
Sony Pictures Animation
Jagdfieber
Könige der Wellen
Tabelle 2.1: Überblick der genannten Studios, ihre Mutterkonzerne und eine Auswahl der
produzierten Filme.
2.3. Haar- und Fellsysteme aktueller Entwicklungsstudios
meist nach der eigentlichen Animation per Hand über das Setzen von Keyframes animiert.
Durch die hohe Anzahl von zum Teil mehreren Millionen einzelnen Haaren pro Charakter
und die aufwändigen Rendering-Algorithmen, mit denen Lichtbrechung und Schattenwurf
des Fells berechnet werden, haben Szenen mit Fellcharakteren sehr hohe Renderzeiten. Dies
ist ein erheblicher Kostenfaktor und kann erfahrungsgemäß bei Szenen mit vielen Charakteren zu Programmabstürzen führen.
In den nächsten Kapiteln wird die Vorgehensweise der vier großen Computeranimationsstudios Pixar Animation Studios, DreamWorks Animation, Blue Sky Studios und Sony Picture
Imageworks bei der Entwicklung von fellbedeckten Charakteren analysiert.
2.3.1
Pixar Animation Studios
Die Pixar Animation Studios verwenden als Basissoftware für die Modellierung ihrer Figuren
hauptsächlich Autodesk Maya [Rob07b] [KP07]. Als Renderer kommt nicht das in Maya
integrierte MentalRay zum Einsatz, sondern eine Eigenentwicklung namens Photorealistic
RenderMan. Pixar setzt bereits seit über 20 Jahren RenderMan ein und vertreibt die Software auch kommerziell. Sie wurde in vielen erfolgreichen Filmen, die nicht von Pixar stammen
oder von der Walt Disney Company produziert wurden, eingesetzt. Berühmte Filmproduktionen der letzten Jahre, die RenderMan verwenden sind beispielsweise The Dark Knight,
Spider-Man und Harry Potter. Für die Generierung von Fell in ihren Filmen verwendet Pixar
ein System bestehend aus sogenannten Guide-Hairs und Texture Maps. Das Modell wird
mit einer verhältnismäßig geringen Anzahl von Haaren bedeckt. Diese können in ihrer Form
und Beschaffenheit angepasst werden. Alle Anpassungen werden an diesen wenigen GuideHairs vorgenommen. Zur Renderzeit wird dann mittels Interpolation aus den Guide-Hairs
das Fell generiert. Attribute wie Länge, Dichte, Steifheit und Farbe des Fells können über
Parameter für das gesamte Fell angepasst werden. Mit Hilfe von Graustufen-Texturen, die
auf die UV-Mappings der Modelle angewandt werden, kann die Gewichtung der Parameter
in bestimmten Bereichen angepasst werden. So ist es möglich, Haare in bestimmten Regionen länger oder kürzer darzustellen oder kahle Stellen zu generieren. Außerdem gibt es die
Möglichkeit Haar-zu-Haar-Kollisionen zu berechnen. Dies wird aufgrund des hohen Rechenaufwands in der Regel nur für Hauptcharaktere verwendet.
Zuletzt verwendete Pixar das oben beschriebene Fellsystem bei der Entwicklung des Films
Ratatouille. Die Frisur der Köchin Colette (Abbildung 2.6, Mitte) wurden beispielsweise mit
der Haar-zu-Haar-Kollision versehen, um das Volumen ihres langen, dicken Haares zu bewahren. Der Film handelt von einer Ratte, die Koch werden möchte. Die Besonderheit lag
darin, dass in einigen Szenen Massen von Ratten auftraten. Für diese Einstellungen verwendete Pixar die Crowd-Simulationssoftware Massive, die schon in der Herr-der-Ringe-Trilogie
für die Schlachtenszenen zum Einsatz kam. Das Fell einer einzelnen Ratte in Ratatouille
besitzt etwa 500.000 Haare. In Massenszenen traten etwa 1000 Ratten gleichzeitig auf. Für
eine solche Sequenz wären also 500 Millionen Haare zu rendern. Der Rechenaufwand für
diese Szenen wäre enorm gewesen. Daher bildete Pixar ein spezielles Team, das als Render
Speed Team bezeichnet wurde. Das Team fand schließlich einen Weg ein ansprechendes Er-
13
14
Stand der Technik
Abbildung 2.6: Das Fell der Ratten in Ratatouille wurde mit Pixar’s selbstentwickeltem
c
Renderer RenderMan erstellt. Pixar
Animation
gebnis mit überschaubarem Rechenaufwand zu erzeugen. Sie schufen eine Möglichkeit, die
Haarstruktur je nach Distanz zur Kamera zu verändern. Ratten, die weiter von der Kamera
entfernt waren, erhielten so dickeres und breiteres Fell, dessen Rechenaufwand geringer war
als das der Ratten im Vordergrund.
2.3.2
DreamWorks Animation
Die Modellierung wird auch bei DreamWorks Animation mit der 3D-Software Maya aus dem
Hause Autodesk realisiert [Rob06e].
DreamWorks Animation hat mittlerweile einige Computeranimationsfilme entwickelt, bei denen Tiere mit Körperbedeckungen als Hauptcharaktere vorkamen, beispielsweise Ab durch
die Hecke, Madagascar oder Kung Fu Panda. In Ab durch die Hecke kamen sehr viele unterschiedliche Felltypen zum Einsatz. Die Eichhörnchen besitzen kurzes, die Bären zotteliges
und die Stachelschweine spitzes Haar. Alle diese verschiedenen Felle mussten einzeln erstellt
und angepasst werden. Abbildung 2.7 zeigt drei fellbedeckte Charaktere des Films.
DreamWorks Animation setzt zur Kollisionserkennung zwischen den Charakteren auf hauseigene Tools, die über ein Raytracing-Verfahren bestimmen, wie sich die Haut der Charaktere
einander nähert. Die Verfahren zum Glätten des Fells bei Kontakt der Tiere sind jedoch
so aufwändig, dass die Entwickler es nicht beliebig oft einsetzen konnten. In dem Film Ab
durch die Hecke beschloss man daher, dass sich die Tiere bei der Begrüßung nicht umarmen
sollten, sondern sich auf die Schultern klopften. Außerdem wurde die Zeit, in der der Hauptcharakter, Waschbär Richie, seinen Golfsack trägt, minimiert. In Kung Fu Panda bestand
die Schwierigkeit darin, dass die Tiere Kleidung tragen sollten. Um dies zu ermöglichen,
war es notwendig, die Tiere mit möglichst kurzem Haar, das aber dennoch dicht wirkte,
auszustatten.
In Madagascar traten Probleme beim Rendern einer großen Anzahl von fellbedeckten Charakteren auf [Rob05]. Der Film enthält Szenen in denen Massen von behaarten Lemuren
2.3. Haar- und Fellsysteme aktueller Entwicklungsstudios
c
Abbildung 2.7: Drei Hauptcharaktere aus dem Film Ab durch die Hecke DreamWorks
Animation
auftreten. DreamWorks ging hier zur Reduzierung der Renderzeiten einen noch konsequenteren Weg als Pixar bei Ratatouille: Lemuren, die weit genug von der Kamera entfernt sind,
erhalten kein Fell sondern einen selbstentwickelten Shader, der das Verhalten von Fell auf
Licht und Umgebung simuliert.
2.3.3
Blue Sky Studios
Blue Sky Studios verwendet für ihre Animationsfilme ebenfalls die 3D-Software Autodesk
Maya [Rob06c].
Fell wurde bei Blue Sky in der Vergangenheit über tausende von sogenannten sprite cards,
d.h. Flächen mit zugewiesener Textur, dargestellt, die prozedural auf der Oberfläche verteilt wurden. Heute arbeitet das Studio mit einem selbstentwickelten, in Maya integrierten,
proprietären Haar- und Fell-System. Die Software ist über ein Plug-In mit Maya verbunden
und liefert Spezialwerkzeuge wie Vektoren, Spiralen und Ventilatoren. Über das Tool können
mehrere Millionen Haare erzeugt werden. Diese werden über Guide-Hairs und Vektorfelder
gesteuert und können exakt an den vorgesehenen Bereichen der Charaktere positioniert werden. Die Bereiche werden dabei über Bounding Boxes definiert. Für die Haare können eine
Vielzahl von Charakteristika wie Farbe, Länge und Welligkeit definiert werden. Die Haarspezialisten können mit Hilfe von Zwischenrenderings die Qualität ihrer Arbeit überprüfen.
Für die Animation der Haare setzt Blue Sky auf ein weiteres proprietäres System, das echte Dynamik in einer physikalischen Umgebung imitiert. Dadurch können die Animatoren
beispielsweise Parameter für Variablen wie Schwerkraft, Wind, Steifheit und Durchlaufzeit
festlegen. Das Programm beinhaltet keine ausgefeilte Kollisionserkennung, liefert jedoch laut
Blue Sky besser vorhersagbare Ergebnisse als echte Dynamik.
Die beiden Systeme zur Generierung und Animation von Haaren und Fell wurden beispielsweise in dem Film Ice Age 2 - Jetzt taut’s eingesetzt, in dem fast alle Tiere ein Fell hatten. In
Ice Age 1 kam das eigenentwickelte Fell-System nicht zum tragen, da es sich zu dieser Zeit
noch in der Entwicklung befand. Dort wurden anstelle des 3D-Fells, 2D-texture-mapping
Techniken angewandt, um Bilder auf die Oberfläche zu legen und damit die Komplexität des
Materials zu erzeugen. Abbildung 2.8 illustriert die unterschiedlichen Techniken am Beispiel
15
16
Stand der Technik
Abbildung 2.8: Scrat das Eichhörnchen. Links in Ice Age ohne 3D-Fell und rechts in Ice
c
Age 2 mit dem von Blue Sky entwickelten Fellsystem Blue
Sky Studios
des Eichhörnchens Scrat.
Durch die Hintergrundgeschichte in Ice Age 2 - der Eisschmelze am Ende der Eiszeit - wurde
Wasser zu einem zentralen Thema. Wenn die Tiere in Kontakt mit Wasser kamen, musste
sich ihr Fell entsprechend verändern. Dazu legte Blue Sky Studios für die Hauptcharaktere
drei Parametersätze fest: Außerhalb des Wassers, Unter Wasser und Rein und raus aus dem
Wasser.
Zum Rendern verwendet Blue Sky einen auf Voxel4 basierenden Renderer, der mit Hilfe
der Raytracing-Technik das Verhalten von Licht sehr genau abbildet. Somit können die Entwickler self-shadowing - also den Schattenwurf der Haare innerhalb des Fells - realisieren.
Der Renderer ist Bestandteil eines von Blue Sky entwickelten Software-Pakets namens CGI
Studio.
Im Film Ice Age 2 betrug die durchschnittliche Renderzeit für ein Frame, in dem Tiere mit
Fell und bewegtes Wasser vorkamen, auf einem Rechner zehn bis zwölf Stunden.
2.3.4
Sony Pictures Imageworks
Zur Modellierung und Animation verwendet Sony Pictures Imageworks Autodesk Maya
[Rob06a]. Zum Rendern der Szenen kommt der von Pixar entwickelte Renderer RenerMan
zum Einsatz. Sony arbeitet mit einem proprietären Frisursystem für die Erstellung von Haaren
und Fell, das auf Mayas Haarsimulations-Software basiert. Das System wurde ursprünglich
für die Stuart Little Filme realisiert. Es multipliziert beim Rendern einzelne Kontrollhaare
millionenfach, die vorher in die gewünschte Richtung gebürstet wurden. Darin enthalten sind
verschiedene Werkzeuge, die die Haare nach vorgegebenem Design verklumpen und legen.
Das System ermöglicht es außerdem die Form des Haares während der Simulation zu kontrollieren. Um die Realität möglichst genau abzubilden, wäre eine Physik-Simulation sinnvoller.
4
Voxel = von volumetric und pixel. Dreidimensionales Äquivalent eines Pixels.
2.3. Haar- und Fellsysteme aktueller Entwicklungsstudios
Abbildung 2.9: Szene aus Jagdfieber. Die Masse an Eichhörnchen sorgte während des
c
Renderns zu Programmabstürzen Sony
Pictures Imageworks
Sony Pictures Animation entwickelt mit Jagdfieber jedoch eine Filmreihe, die sich durch
einen sehr speziellen Stil auszeichnet. Zu Beginn hatten die Entwickler nicht den Anspruch,
realistisch aussehendes Fell zu generieren, da sie sich nicht sicher waren, ob dies mit dem
Stil des Films harmonieren würde. Nach ersten Tests fand sich jedoch ein Look mit dem alle
zufrieden waren. Abbildung 2.9 zeigt eine Szene aus Jagdfieber mit dem finalen Look.
Für die Animation des Fells entwickelte Sony ein Rig, das aus einer Serie von Volumina
besteht, die an ein System von Gelenken gebunden sind, das wiederum an ein Skelett gebunden wird. Die Volumina steuern dann eine bestimmte Anzahl von Guide-Hairs, die die
eigentlichen Haare auf der Oberfläche wachsen lassen. Um zu kontrollieren, wohin sich das
simulierte Haar neigen soll, werden die Volumen entsprechend positioniert. Dynamics werden
dabei nicht verwendet.
In Jagdfieber war die Hauptfigur Boog der Bär die Figur mit dem aufwändigsten Fell. Die
Renderzeit für ein Frame in HD-Qualität mit Boog betrug etwa 45 Minuten. Szenen mit einzelnen Tieren stellten für die Entwickler daher kein großes Problem dar, schwieriger wurde
es bei Massenszenen. Eine Einstellung mit sehr vielen Eichhörnchen (siehe Abbildung 2.9)
hatte extrem hohe Renderzeiten und lastete die vorhandene Hardware voll aus. Dies führte
zu Programmabstürzen. Um die Szene zu rendern, verringerte Imageworks die Anzahl der
Haare und renderte die Szenen dann in mehreren Durchgängen, soweit dies ohne sichtbare
Einbußen bei der Qualität des Fells möglich war. Bei Jagdfieber arbeiteten etwa 16 Personen
allein an dem Fell der Tiere.
17
18
Stand der Technik
Früher war alles OK, solange die Haare den Grundgesetzen der Physik folgten.
”
Für diesen Film mussten wir Haar aber auf eine besondere Weise schwingen oder
sich im Wind übertrieben auftürmen lassen und unsere Pipeline an solche Aufgaben
anpassen.“
(Chris Yee, Technical Director Sony Pictures Imageworks in der Digital Production 06/06
zu seiner Arbeit an Jagdfieber)
2.4
Wie Realfilme die Entwicklung der Fellsysteme
beeinflussten
In der Vergangenheit wurde in Realfilmen, wenn möglich, mit echten Tieren gearbeitet.
Je nach Tierart brachte dies einige Probleme mit sich. Viele Tiere lassen sich nur schwer
dressieren, daher mussten die Szenen immer wieder gedreht werden, bis das Tier sich wie
gewünscht verhielt. Produktionen, die mit exotischen Tieren arbeiteten, wurden außerdem
häufig mit dem Vorwurf der Tierquälerei konfrontiert.
Im Bereich der Fantasy-Verfilmungen gab es indes oft die Notwendigkeit, Fabel- oder Fantasywesen auf die Leinwand zu bringen. Dabei ist es in der Regel nicht möglich mit realen
Tieren zu arbeiten, da diese sich zu sehr von den fiktiven Gestalten unterscheiden. Daher
wurden in der Regel mechanische Modelle der Tiere angefertigt. Eines der berühmtesten
Beispiele für ein künstliches Fantasywesen ist der Drache Fuchur (Abbildung 2.10 links)
aus Die unendliche Geschichte [Pfa87]. Das imposanteste der für ihn angefertigten Modelle
ist heute im Filmpark Babelsberg ausgestellt. Das Drachen-Modell ist über 15 Meter lang.
Allein der drei Meter große Kopf wiegt über 100 kg. Die aufwändige Mechanik erlaubte es
Fuchur verschiedene Mimiken wie Sprechen, Lachen, Augenrollen, Zwinkern und Stirnrunzeln darzustellen. Für das Fell wurden etwa 100 kg Angora-Wolle verarbeitet. Die technische
Umsetzung dieser Wesen war somit sehr zeit- und kostenintensiv. Trotz des hohen Aufwands
wirken viele der Tiere sehr künstlich. Bewegungen sind entweder kaum vorhanden oder zu
steif umgesetzt. Als in den 90er Jahren die ersten Computeranimationsfilme entstanden,
begann man auch bei Realverfilmungen die Möglichkeiten der Computergraphik zu nutzen.
Ein Beispiel, was zu dieser Zeit technisch schon möglich war, zeigt die Umsetzung des Drachen Draco in dem Film Dragonheart (siehe Abbildung 2.10 rechts). Der Film wurde 1996
veröffentlicht und erzählt die Geschichte einer Freundschaft zwischen einem Drachen und
einem Drachentöter. Für den Film wurde kein mechanisches Modell angefertigt, alle Szenen
mit dem Drachen wurden am Computer generiert. Der Film wurde 1997 in der Kategorie
Beste Spezialeffekte für den Oscar nominiert.
Mittlerweile werden für nahezu alle Filmproduktionen Spezialeffekte-Studios beauftragt. Peter Jacksons Herr-der-Ringe-Trilogie nach dem gleichnamigen Roman von J.R.R. Tolkien
setzte in diesem Bereich in den letzen Jahren neue Maßstäbe.
In den nächsten Abschnitten wird exemplarisch an einigen aktuellen Produktionen die Vorgehensweise großer Spezialeffekte-Studios bei der Generierung von Figuren mit Körperbedeckungen analysiert.
2.4. Wie Realfilme die Entwicklung der Fellsysteme beeinflussten
Abbildung 2.10: Fuchur aus Die unendliche Geschichte entstand als mechanisches Modell
c
(links) Neue
Constantin Film. Der Drache Draco aus Dragonheart wurde am Computer
c
generiert (rechts) Universal
Pictures.
2.4.1
Die Chroniken von Narnia
Der Fantasy-Film Narnia basiert auf dem gleichnamigen Roman von C.S. Lewis. Er erzählt
die Geschichte von vier Geschwistern, die beim Versteck spielen in einem alten Haus einen
Durchgang in die Welt Narnia entdecken. Narnia ist eine von Fabelwesen und sprechenden
Tieren bevölkerten Märchenwelt.
An der Umsetzung des Stoffs arbeiteten insgesamt drei Studios für Spezialeffekte [Rob06d].
Industrial Light & Magic fertigte Charaktere für die Schlachtszenen an. Da hierbei keine
Fell-Simulationen benötigt wurden, wird auf eine nähere Betrachtung ihrer Arbeit verzichtet. Das Studio Rhythm & Hues gestaltete ebenfalls Kampfszenen, daneben war es auch für
die Umsetzung des Löwengotts Aslan (siehe Abbildung 2.11) zuständig. Aslan ist einer der
wichtigsten Tiercharaktere des Films, daher wurde auf eine gute Umsetzung großen Wert
gelegt. Alleine die Preproduction zu Aslan dauerte etwa eineinhalb Jahre. Die Mähne des
Löwen stellte eine besondere Herausforderung dar. Sie enthält etwa 20 Millionen Haare,
aufgeteilt in 15 verschiedene Haartypen von krausem bis strähnigem Haar. Rhythm & Hues
entwickelte für das Frisieren der Mähne ein spezielles System, das auf Guide-Hairs mit verschiedenen Rekursionsebenen besteht. So können Guide-Hairs mit geringerer Dichte solche
mit höherer steuern.
Das dritte Animationsstudio, das an dem Film arbeitete, war Sony Pictures Imageworks.
Es schuf neben der digitalen Umgebung auch die übrigen Fabelwesen des Märchens. Hierzu
gehören die sprechenden Tiere Mr. und Mrs. Beaver, Füchse und Wölfe und einen Faun5 .
Um das Fell der Tiere realistisch darzustellen, arbeitete Imageworks bei den einzelnen Tieren
mit unterschiedlichen Felltypen, die in Ebenen übereinander gelegt wurden. Beispielsweise
bestehen die Felle der Biber aus einer unteren, dicken, flaumigen Schicht Fell, während die
Deckhaare rau sind und dicke Wurzeln aufweisen. Das verwendete Fellsystem basiert auf
Guide-Hairs, aus denen durch Interpolation das finale Fell erzeugt wird.
5
Faun = griechisches Fabelwesen, halb Mensch, halb Ziege.
19
20
Stand der Technik
Abbildung 2.11: Die Mähne des Löwengotts Aslan aus Die Chroniken von Narnia besteht
c
aus etwa 20 Millionen Haaren. Walt
Disney Picutres
Das Fell der Füchse und Wölfe besteht ebenfalls aus jeweils zwei Schichten. Die Felltypen
unterscheiden sich hier jedoch weniger in ihrer Beschaffenheit, sondern hauptsächlich in
der Farbgebung. Das Fell der Wölfe musste besonders realitätsnah gestaltet werden, da die
computergenerierten Tiere in einigen Szenen neben echten Wölfen auftreten. Um die nicht
menschliche Hälfte des Fauns zu gestalten wurde auf ähnliche Weise wie bei den Tiercharakteren verfahren. Der Schauspieler des Fauns trug während der Dreharbeiten eine farblich
abgesetzte Hose, die später durch das computergenerierte Fell ersetzt wurde.
2.4.2
King Kong
King Kong ist die Neuverfilmung des Filmklassikers King Kong und die weiße Frau von
1933. Der Film von Regisseur Peter Jackson erschien 2005, produziert wurde er von Universal Pictures. King Kong war bis dato der teuerste Film aller Zeiten [Rob06b]. Er hatte ein
Budget von 207 Millionen US-Dollar, das bis zur Fertigstellung nochmals um 32 Millionen
überzogen wurde. Die tragische Geschichte des Films dreht sich um den vier Meter großen
Riesengorilla King Kong, der sich in eine junge Schauspielerin verliebt.
2.4. Wie Realfilme die Entwicklung der Fellsysteme beeinflussten
c
Abbildung 2.12: Szene aus der Neuauflage des Klassikers King Kong. Universal
Pictures
Für die Umsetzung des Riesengorillas (siehe Abbildung 2.12) war das Studio Weta Digital,
das auch für die Spezialeffekte in der Herr der Ringe-Trilogie zuständig war, verantwortlich. Für die Herr der Ringe-Reihe hatte das Unternehmen bereits ein eigenes Fellsystem
entwickelt, für King Kong entschieden sie sich jedoch ein neues System auf der Basis von
Deformern zu entwickeln, das auf dem Plug-In Shave and a Haircut aufbaut. Das Fell des
Gorillas war in sofern komplizierter als das vieler anderer computergenerierter Tiere, als das
es mit Fremdkörpern übersät sein sollte. In seiner finalen Version enthielt das Fell 2000
Blätter von 20 verschiedenen Pflanzen und 2000 Klumpen aus Schlamm und getrocknetem
Blut. Hinzu kamen noch Baumstrünke, die auf dem Riesengorilla jedoch wie kleine Stöcke
erschienen. King Kongs Fell besteht durchschnittlich aus vier Millionen Haaren. Für Nahaufnahmen wurde die Zahl der Haare in den sichtbaren Bereichen des Körpers erhöht, die Zahl
an sichtbaren Haaren blieb dabei nahezu konstant. Gerendert wurden die Szenen später mit
Pixars Renderer RenderMan. Im Schnitt dauerte es etwa zwei Stunden, um ein Frame mit
Kong zu rendern. In sehr aufwändigen Szenen, mit vielen Lichtern und Motion Blur erhöhte
sich die Renderzeit eines Bildes auf beeindruckende sieben Stunden.
2.4.3
Der goldenen Kompass
Der goldene Kompass ist die Verfilmung des ersten Bandes der berühmten Fantasy-Reihe
His Dark Material s von Philip Pullman. Die Geschichte des Films spielt in einer Parallelwelt,
in der die Seele des Menschen nicht in ihm selbst lebt, sondern in einem eng an den Menschen gebundenen Geschöpf namens Daemon. Die Daemonen haben die Gestalt von Tieren.
Bevor sie erwachsen werden können sich die Daemonen der Menschen in beliebige Tiere
21
22
Stand der Technik
Abbildung 2.13: Tiercharaktere in Der goldene Kompass. Lyras Daemon Pan, Iorek der
c
König der Panzerbjoeerne und der goldene Affe. New
Line Cinema
verwandeln. Mit dem Heranwachsen des Menschen entscheidet sich sein Daemon dann für
eine feste Tierform.
Neben den Daemonen nehmen die Panzerbjoerne eine zentrale Rolle im Film ein. Panzerbjoerne sind ein monarchisches Volk intelligenter, sprechender Eisbären.
Zu allen diesen Tiergestalten mussten für den Film Computermodelle mit sehr hoher Qualität erzeugt werden, damit der Film nicht zusammengesetzt wirkte.
Mit einem Gesamtbudget von 180 Millionen US-Dollar und neun Spezialeffektestudios, die
für den Film engagiert wurden, ist er die bislang teuerste Produktion von New Line Cinema
[Bie07]. 2008 wurde Der goldene Kompass in der Kategorie Beste visuelle Effekte mit dem
Oscar ausgezeichnet.
Die Daemonen
Die meisten Daemonen nehmen die Gestalt von Tieren mit Körperbedeckungen an. Zentrale
Figuren sind ein goldener Affe (Abbildung 2.13 rechts), ein Hermelin, ein Schneeleopard,
eine Katze (Abbildung 2.13 links) und ein Feldhase. Da die Daemonen der Kinder ihre Gestalt wechseln können, kamen noch einige weitere Tiere in kürzeren Szenen hinzu. Der Film
beinhaltet über 500 Einstellungen mit Daemonen. Die digitale Umsetzung dieser Kreaturen
übernahm das Spezialeffekte-Studio Rhythm & Hues, das bereits für die Realisierung des
Löwen Aslan in Die Chroniken von Narnia beauftragt worden war. Auf den dort gesammelten
Erfahrungen konnte das Unternehmen aufbauen. Rhythm & Hue verwendete für die Tiere
wieder das eigenentwickelte Haarsystem, das auf Autodesk Mayas Haarsystem aufbaut und
mit Guide-Hairs und Dynamics arbeitet.
Die Umsetzung einer so großen Anzahl verschiedener Tiergestalten war ein erheblicher Kostenfaktor bei der Produktion. Daher wurden Ansätze gesucht die Renderzeiten und somit
die Komplexität des Fells zu verringern. Zunächst sollten sich die Daemonen daher durch
einen spirituellen Look von echten Tieren unterscheiden. Nach einiger Zeit stellte sich jedoch
heraus, dass ein zufriedenstellendes Aussehen der Daemonen auch auf diese Weise nicht weniger Kosten verursache würde, daher entschied man sich letzlich doch für eine realitätsnahe
Darstellung.
2.4. Wie Realfilme die Entwicklung der Fellsysteme beeinflussten
In practice, however, it proved difficult to find something that both looked ’cool’
”
and satisfied the intent to cost less than a normal render. In the end, we settled
back on a realistic render, but retained a very slight chromatic sheen that appeared
in the highlight areas – a subtle touch to emphasize the special natures of these
creatures.“ (Bill Westenhofer, Co-VFX Supervisor zu VFXWorld.com)
Das aufwändigste Fellsystem wurde für die Gestaltung des Fells des goldenen Affen entwickelt. Die Entwicklung des Daemon dauerte fast ein Jahr. Der Affe ist eher klein, besitzt
aber im Verhältnis zu seiner Körpergröße lange und vor allen Dingen sehr dünne Haare. Für
die Haare am Hinterkopf entwickelte Rhythm & Hue ein System, das sie selbst als hair bag
bezeichnen. Dabei handelt es sich um eine cloth-Simulation die sich zwischen dem Schädel
und dem oberen Rücken erstreckt. Die Bewegung des hair-bags regelte dann die Bewegung
der Guide-Hairs.
Gerendert wurden die Daemonen in Rhythm & Hues selbstentwickeltem Renderer Wren. Die
Massenszenen wurden mit der Crowd-Software Massive generiert. Um Renderzeiten einzusparen, wurden hierbei anstatt 3D-Fell Texturen zur Simulation der Haare verwendet.
Die Panzerbjoerne
Die Umsetzung der Panzerbjoerne übernahm die Firma Framestore CFC [Rob07a]. Die
Eisbären (Abbildung 2.13 Mitte) wurden mit Autodesk Maya modelliert und animiert. Als
Renderer wurde Pixars RenderMan verwendet. Das Fell wurde mit einem proprietären System
auf der Basis von Maya realisiert. Das Fell jedes Eisbären bestand aus etwa drei Millionen einzelner Haare, darunter kurze Haare für die Schnauze, mittellange unter dem Kinn und lange
Haare für den restlichen Körper. Die Form des Fells wurde von den Framestore CFC mit Hilfe
von Guide-Hairs erstellt. Die Bären in Philip Pullmans Welt sind ein kriegerisches Volk, sie
fertigen Panzerung für sich selbst an, die ihren Rücken und Kopf im Kampf schützen sollen.
Die Interaktion des Fells mit der Panzerung der Bären stellte Framestore vor große Probleme.
Daher entwickelten sie ein eigenes Dynamics-System, das die Kollisionen zwischen Fell und
Panzer regelt. Neben der Kollision mit dem Panzer, musste auch das Streichen durch das
Fell und Umarmungen des Hauptcharakters Lyra mit einem Eisbären realistisch dargestellt
werden. Am Set wurde zu diesem Zweck ein Stofftier verwendet, das später durch die digitale
Form des Bären ersetzt wurde. Dabei mussten die Stellen analysiert werden, an denen es
Kollisionen mit dem Fell gab, um es dann an diesen Stellen entsprechend zu verformen.
2.4.4
Zusammenfassung
Anfang 2004 erklärte die Digital Production: Unter CG-Artists sind sie ungefähr so beliebt
”
wie eine ansteckende Krankheit: Haare, Fell und Federn.“
Daran hat sich bis heute scheinbar kaum etwas verändert. Die Generierung von Körperbedeckungen stellt in vielen Computeranimationsfilmen noch immer eine der größten Herausforderungen dar. Die Rechenleistung der verwendeten Hardware hat sich in den letzten
Jahren zwar erhöht, der Anspruch der Entwickler und der Zuschauer an die Qualität des Fells
23
24
Stand der Technik
ist jedoch proportional dazu mitgewachsen. Heute können Szenen mit einer großen Anzahl
behaarter Tiere realisiert werden, die früher nicht denkbar waren. Sie stellen für die Haarspezialisten der Studios jedoch immer komplexere Herausforderungen dar. Aufgrund der noch
immer sehr hohen Renderzeiten ist es zudem nicht möglich, jede Änderung des Fell-Designs
oder bei der späteren Animation der Charaktere zu Vorschauzwecken zwischenzurendern.
Die Vorgehensweise der großen Entwicklungsstudios lässt eine Vielzahl von Gemeinsamkeiten bei der Entwicklung ihrer Filme erkennen, insbesondere in Bezug auf die Generierung
von Haar und Fell. Alle vier betrachteten Animations-Studios verwenden Autodesk Maya
als Basisprogramm. Darauf aufsetzend entwickeln die Studios eigene Erweiterungen, meist
mit einem Plug-In als Schnittstelle zu Maya, über das die Generierung und Animation des
Fells realisiert wird. Auch das Rendern übernehmen externe Programme. Der Maya-eigene
Software-Renderer oder das schon integrierte Mental Ray finden keine Verwendung. Die
Studios setzen auch hier entweder auf Eigenentwicklungen wie den Voxel-Renderer von Blue
Sky Studios oder Pixar’s RenderMan oder sie kaufen ein bewährtes System ein.
Da die Entwicklung eigener Erweiterungen mit erheblichem Aufwand verbunden ist, stellt
sich die Frage, wo die Grenzen bzw. Probleme der in 3D-Paketen integrierten Fell- und
Haarsystemen liegen. Wenn es möglich ist, die gegebenen Defizite mit Eigenentwicklungen
zufriedenstellend zu lösen, ergibt sich hier zudem eine Marktlücke für Drittanbieter. Andererseits hat bisher noch keines der großen Studios sein proprietäres System erweitert, um
es auf dem kommerziellen Markt zu verkaufen. Als Grund hierfür wäre denkbar, dass die
Studios die Vorteile durch den Verkauf ihrer Systeme als geringer einschätzen, als die Nachteile die entstehen könnten, wenn alle Studios Zugang zu ihrer besonders leistungsfähigen
Software hätten. Andererseits ist dieses Vorgehen in anderen Bereichen durchaus üblich. Ein
Beispiel ist der Renderer RenderMan von Pixar, der beispielsweise auch von Sony Pictures
Animation eingesetzt wird. Ein anderes Beispiel ist die Massensimulationssoftware Massive6 .
Stephen Regelous entwickelte Massive bei dem Special Effects Studio Weta Digital für die
Schlachtszenen in Der Herr der Ringe-Trilogie. Bis heute ist Massive die einzige kommerzielle Software für Massensimulation. Die Software wird daher in sehr vielen Produktionen
verwendet.
Auch für die Entwicklung neuer Innovationen auf dem Gebiet der Generierung von Körperbedeckungen wäre es sinnvoll, wenn alle Studios auf ein oder zwei gemeinsam genutzte
Systeme zurückgreifen würden. Stattdessen scheint es, dass jedes Studio für sich dasselbe
System immer wieder neu erfindet. Vielleicht wird es Drittanbieter in Zukunft möglich sein
ein Fundament hierfür bereitszustellen.
2.5
Vogelcharaktere in Computeranimationsfilmen
In den folgenden Abschnitten wird die Vorgehensweise bei der Erstellung von Charakteren
mit Federn in 3D-Filmen analysiert. Zunächst wird im Kapitel Der Vogelschreck exemplarisch ein Federsystem des Unternehmens Pixar Animation Studios vorgestellt, das bereits
vor einigen Jahren bei einem Kurzfilm zum Einsatz kam. Danach wird eine Übersicht der
6
www.massivesoftware.com
2.5. Vogelcharaktere in Computeranimationsfilmen
c
Abbildung 2.14: Szene aus Pixars ausgezeichnetem Kurzfilm Der Vogelschreck. Pixar
Animation
bekanntesten Vogelcharaktere in aktuellen Produktionen gegeben und dabei soweit bekannt
auf die verwendeten Techniken zur Federgenerierung eingegangen.
2.5.1
Pixar’s Der Vogelschreck
Bei Pixar ist es üblich, zeitgleich zu jedem neuen Kinofilm einen Kurzfilm zu produzieren,
der in den Kinos vor dem Hauptfilm gezeigt wird [AA09] [KP07]. Dies dient unter anderem
dem Testen neuer Systeme und Ideen. Der Vogelschreck wurde 2001 zeitgleich mit dem
Film die Monster AG erstellt. 2002 erhielt er bei den Academy Awards die Auszeichnung für
den besten animierten Kurzfilm. Der Film handelt von einer Reihe kleiner, spatzenähnlicher
Vögel die auf einem Telefonmast sitzen und einem großen storchenartigen Vogel, der sich
zu ihnen setzen möchte. Abbildung 2.14 zeigt eine Szene des Kurzfilms.
Für die kleinen, runden Vögel wurde ein Basismodell in Autodesk Maya erstellt [Rob01]. Das
Federkleid wurde erst im letzten Schritt hinzugefügt. Einige der Federn sollten flaumig sein,
während andere harte Kanten besitzen sollten. Aus diesem Grund verwendete das Team Kugelprimitive mit Haaren und Texturen für die Transparenz. Jeder Vogel besitzt 2873 einzelne
Federn, was zu der damaligen Zeit zu erheblichen Problemen mit der Arbeitsspeicherauslastung führte. Zu Beginn lag die Speicherauslastung bei 400 MB. Ein durchschnittlicher
Personal Computer zu dieser Zeit war lediglich mit 256 MB ausgestattet. Die Speicherauslastung konnte im Laufe der Produktion aber noch auf 45 MB reduziert werden. Zusätzlich
zu den Hauptfedern mussten in einigen Szenen weitere Federn zum Ausgleichen von kahlen
Stellen hinzugefügt werden. Diese entstanden beispielsweise bei der Animation der Augenbrauen. Wurden die Augenbrauen zu einem cartoonartigen Stirnrunzeln verzogen, streckte
25
26
Stand der Technik
sich die Geometrie des Vogels an diesen Stellen, was dazu führte, dass sich die Federn auseinanderspreizten.
Feathers were a pain because they were so heavy, but they were so effective.
”
They really just added that element of birdieness.“
(James Ford Murphy, supervising animator zu cgw.com (Computer Graphics World.))
Der Schwerpunkt bei der Animation der Tiere lag bei diesem Film - ähnlich dem bei der
Generierung von fellbedeckten Charakteren - in der Kollision miteinander. Als sich der große
Vogel zu den kleinen auf den Telefonmast setzt, biegt sich das Kabel aufgrund des hohen
Gewichts durch und alle Vögel werden zur Mitte hin aneinandergedrückt (siehe Abbildung
2.14). Kollisionen waren somit nicht vermeidbar, sondern bildeten ein Kernelement des Kurzfilms.
Um Überschneidungen der Vögel untereinander zu verhindern entwickelte Pixar verformbare,
runde Kollisionsdetektoren die sie selbst als contact pads oder Pringles 7 bezeichneten. Die
Kontaktplatten wurden zwischen den Vögeln platziert und von den Animationsspezialisten
verformt. Für die Vögel wurde ein Algorithmus erstellt, der die Position der Vertices der
Vögel im Verhältnis zu den Kontaktplatten beschreibt. Waren die Geometriepunkte innerhalb einer definierten Bounding-Box um die Kontaktplatten, wurde ihre Position angepasst.
Auf diese Weise wurden Kollisionen über Verformungen der Vogelgeometrie selbst behoben
und nicht etwa durch das Glätten der Federn. Der Vorteil dieser Methode bestand darin,
dass eine Kontaktplatte auf zwei benachbarte Vögel wirken konnte und sich so beide an
diese Fläche anschmiegten.
Die Qualität der Vögel und ihres Federkleides ist für die damals zur Verfügung stehende
Hardware sehr beeindruckend, dennoch fand die Technik in keinem der späteren Pixar-Filme
Verwendung. Über die Gründe hierfür kann nur spekuliert werden, sie dürften jedoch im
Bereich der Kosteneinsparung und Zeitplanung zu finden sein.
2.5.2
Dodos in Ice Age 1
Der Film Ice Age 1 spielt kurz vor dem Hereinbrechen der Eiszeit [Teo02] [Rob06c]. Das
Faultier Sid und das Mammut Manfred wollen ein verwaistes Mesnchenbaby zu seinen Artgenossen zurückbringen. Auf ihrem Weg treffen sie auf eine Gruppe von Dodos, mit denen
Sie um eine Wassermelone kämpfen (siehe Abbildung 2.15 links).
Der Dodo war ein flugunfähiger Vogel, der auf einigen Inseln des Indischen Ozeans vorkam
[TF01]. Die aktuelle Forschung geht davon aus, dass die Spezies der Dodos seit mehreren hundert Jahren ausgestorben ist. Dies gab den Ice Age Entwicklern Freiheiten bei der
Umsetzung der Figur, da die Zuschauer in der Regel keine genaue Vorstellung des Erscheinungsbilds dieses Vogeltpys besitzen.
Die Dodos besitzen in dem Film kein dynamisches Feder- oder Fellsystem. Ihre Oberfläche
ist lediglich mit Farbtexturen und einem speziellen Shader versehen, wie es bei Charakteren
7
Pringles als Anspielung an die Form der Detektoren, die den gleichnamigen Kartoffelchips ähnelte
2.5. Vogelcharaktere in Computeranimationsfilmen
Abbildung 2.15: Vogelcharaktere in Computeranimationsfilmen. Rechts: Die Dodos aus
c
c
Ice Age Blue
Sky Studios. Links: Die Pinguine aus Könige der Wellen. Sony
Pictures
Imageworks
ohne Körperbedeckung üblich ist.
2.5.3
Pinguine in Könige der Wellen
Könige der Wellen erschien im Jahr 2007 [Rob07c]. Produziert wurde der computeranimierte
Film über das Wellenreiten von Sony Pictures Imageworks.
Die Handlung folgt dem Stil einer Dokumentation, obwohl sie frei erfunden ist. Damit kann
der Film dem Genre Mockumentary8 zugeordnet werden. Die Hauptcharaktere des Films
sind Pinguine. Abbildung 2.15 rechts zeigt zwei der Hauptcharaktere.
Die Pinguine besitzen im Film keine Federn sondern Fell. Da die Federn von Pinguinen
sehr klein und dicht auf dem Körper der Tiere verteilt sind, können sie realitätsnah als
Fell visualisiert werden. Pinguine bilden also einen Spezialfall, da für ihre Darstellung kein
Federsystem benötigt wird.
2.5.4
Vlad Vlad-I-Kloff in Horten hört ein Hu!
Horton hört ein Hu! ist die Verfilmung des gleichnamigen Kinderbuchs von Dr. Seuss aus
dem Jahr 1954 und der vierte Animationsfilm von Blue Sky Studios [Shu08] [Rob08].
Der Film spielt im Dschungel des fiktiven Landes Nümpels und erzählt die Geschichte des
Elefanten Horton. Horton entdeckt auf einem Staubkorn die mikroskopische Stadt Huheim
und versucht diese an den sichersten Ort in Nümpels, die Spitzte des Nümpelsberges, zu
bringen. Auf seinem Weg muss er das Staubkorn gegen ein verbittertes Känguruhweibchen
und den Adler Vlad Vlad-I-Kloff verteidigen. Abbildung 2.16 zeigt ein Bild des Adlers.
Vlad verfügt über ein komplexes Federsystem. Der Körper ist mit einer großen Anzahl einzelner Federn bedeckt. Die Federn sind bis ins Detail ausmodelliert. Sie besitzen einen sichtbaren
Federkiel und einzelne Haare an den Seiten des Kiels. Die Gesamtzahl der überdimensional
großen Federn scheint jedoch eher gering zu sein. Es kann vermutet werden, dass für die
8
Mockumentary = fiktionaler Dokumentarfilm, der das Genre parodiert
27
28
Stand der Technik
Abbildung 2.16: Vlad Vlad-I-Kloff aus Horton hört ein Hu!
Federgenerierung viel Handarbeit nötig war und das Gefieder speziell auf diesen Charakter
zugeschnitten wurde.
2.6
Zusammenfassung und Ausblick
Ausgereifte Federsysteme sind in der Kinolandschaft kaum zu finden. Vögel spielen, falls
sie in Animationsfilmen vorkommen, meist nur eine untergeordnete Rolle. Falls es der Stil
des Filmes und der Charakter des Vogels zulassen werden sie, wie die Dodos in Ice Age,
ohne aufwändiges Federkleid dargestellt. Ist dies nicht möglich, wird auf schon vorhandene Fell-Systeme zurückgegriffen. Daraus resultiert jedoch im Normalfall eine unrealistische
Darstellung. Dies wird zur Zeit in Animationsfilmen in Kauf genommen, da hier nicht die
detailgetreue Abbildung der Realität im Vordergrund steht. Dennoch bedeutet dieses Vorgehen eine Einschränkung für die Entwicklung neuer Charaktere. Lediglich für den speziellen
Vogeltyp der Pinguine, hat sich die Verwendung von Fellsystemen bewährt. Dies dürfte der
Grund dafür sein, dass mittlerweile zwei Animationsfilme existieren, in denen Pinguine die
Hauptrolle spielen.
Ein erster Ansatz eines komplexen Federsystems ist in dem Film Horten hört ein Hu! zu erkennen. Das Gefieder des Adlers Vlad Vlad-I-Kloff wurde mit viel Liebe zum Detail gestaltet,
leider hat auch er nur eine untergeordnete Rolle in der Gesamthandlung.
Die Analyse der bestehenden Systeme zur Generierung von Körperbedeckungen, die in diesem Kapitel durchgeführt wurde, liefert wichtige Informationen für die Entwicklung eines
Federsystems. Die 3D-Modellierungssoftware Autodesk Maya hat sich in der Filmindustrie
2.6. Zusammenfassung und Ausblick
als Basissoftware etabliert. Maya wird daher auch für die Entwicklung des Federsystems verwendet werden. Des weiteren hat sich herausgestellt, dass bestehende Fell-Systeme wie das
von Autodesk Maya oder Shave and a haircut für den professionellen Einsatz geeignet sind
und eingesetzt werden. Allerdings werden diese Programmkomponenten meist durch eigene
proprietäre Systeme erweitert und so den individuellen Bedürfnissen angepasst. Im weiteren
Verlauf soll daher auch geprüft werden, ob eine ähnliche Vorgehensweise für das Federsystem
in Betracht kommt. Im nächsten Kapitel werden am Beispiel der 3D-Modellierungssoftware
Maya Methoden getestet und bewertet, die für das Federsystem verwendet werden könnten.
29
Kapitel 3
Gegenüberstellung verschiedener
Methoden und Techniken
Im letzen Kapitel wurde das Vorgehen der Filmstudios bei der Entwicklung von Körperbedeckungen analysiert. Im Bereich der Fellgenerierung gibt es bereits ausgereifte Verfahren.
Da ein Unterschied zwischen Federn und Fell bei zunehmendem Abstand zur Kamera immer
weniger wahrnehmbar ist, verwendet man häufig auch für die Federgenerierung die schon
vorhanden Fellsysteme.
3D-Modellierungssoftwarepakete bieten verschiedene Komponenten, die bei der Entwicklung eines Federsystems als Basis dienen könnten, an. Daher soll in diesem Kapitel ein
Überblick alternativer Techniken und Methoden, eines ausgewählten 3D-Softwarepakets,
zur Darstellung und Verteilung von Federn auf Vogelcharakteren herausgearbeitet werden.
Diese Methoden werden in den nächsten Abschnitten zunächst theoretisch beleuchtet, um
ihre Tauglichkeit für ein Federsystem bewerten zu können. Im Anschluss daran wird eine
Auswahl der am effizientesten wirkenden Techniken erstellt. In Kapitel 4 wird auf Basis
jeder dieser Techniken ein Federsystem entwickelt und bewertet. Die Federsysteme werden
dann, auf Grundlage der Mindestanforderungen und weiterer Bewertungskriterien verglichen,
um so das Beste herauszufiltern. Diese werden im Anschluss weiter verfeinert und in Kapitel
5 für den praktischen Einsatz als Script in die 3D-Modellierungssoftware implementiert.
3.1
Einleitung
3D-Softwarepakete bieten einen sehr großen Umfang an Techniken und Methoden. Oftmals können Probleme auf ganz unterschiedliche Arten und unter Einsatz unterschiedlicher
Komponenten gelöst werden. Daher soll zunächst ein Überblick erstellt werden, der die
Komponenten des verwendeten Basisprogramms in Hinblick auf ihre Einsatzmöglichkeit bei
dem zu entwickelnden Federsystem, bewertet. Auf Basis dieser Auflistung kann dann eine
engere Auswahl an Methoden getroffen werden, die im darauffolgenden Kapitel näher ausgearbeitet werden. Um eine umfassende Bewertung der Methoden vornehmen zu können,
muss zunächst der Aufbau eines Gefieders und der einzelnen Federkomponenten analysiert
31
32
Gegenüberstellung verschiedener Methoden und Techniken
Abbildung 3.1: Links: Konturfeder mit Beschreibung der wichtigsten Bestandteile. Rechts:
Daunenfeder.
werden. Außerdem wird die zu verwendende Software und Hardware ausgewählt.
3.2
Aufbau eines typischen Vogelgefieders
Um ein hochwertiges Federsystem zu erzeugen, muss zunächst die Komplexität eines in
der Natur vorkommenden Gefieders betrachtet werden. Federn sind neben Fell eine Variante von Körperbedeckungen. Während Fell und Körperbehaarung die Haut von Säugetieren
bedecken, ist Gefieder nur bei Vögeln anzutreffen. Das Federkleid von Vögeln besteht aus
zum Teil tausenden einzelner Federn [Gre07]. Die Komplexität reicht von etwa 1000 Federn
bei Kolibris bis zu 30.000 Federn bei Schwänen. Einzelne Federn sind sehr leicht, die große
Anzahl, die bei einem Vogel das Gefieder bildet, sorgt jedoch dafür, dass das Gefieder eines
Vogels zwei- bis dreimal soviel wiegt als sein Skelett.
Das Gefieder erfüllt eine Vielzahl verschiedener Aufgaben. Es dient der Isolation der Haut
vor äußeren Einflüssen wie Kälte und Nässe. Die Fähigkeit zu Fliegen verdanken Vögel unter
anderem ihrem Federkleid. Je nach Farbgebung des Gefieders kann es entweder der Tarnung
des Vogels dienen oder dem Schmuck des Vogels, um mögliche Partner anzulocken.
Federn sind die komplizierteste Bildung der Haut im gesamten Tierreich. Ähnlich aufgebaut
wie das Fell der Säugetiere, bestehen die einzelnen Komponenten nicht nur aus einem ein-
3.2. Aufbau eines typischen Vogelgefieders
Abbildung 3.2: Das Großgefieder besteht aus den Schwanzfedern und den Schwungfedern
an den Flügeln.
zelnen Haar, sondern aus komplexen Federgeometrien. Federn bestehen aus Hornsubstanz,
wie auch Haare und Fingernägel. Sie sind mit der Haut verbunden und können mit Hilfe
feiner Muskeln bewegt werden. So können Vögel ihr Gefieder bei Kälte sträuben, um die
isolierende Luftschicht zu vergrößern, oder sie können es als Schutz vor Hitze eng an den
Körper anlegen.
Eine typische Feder setzt sich aus mehreren Teilen zusammen. In der Mitte der Feder befindet
sich der Federkiel, der sich aus dem unbehaarten Ende und dem Schaft zusammensetzt. Von
dem Schaft zweigen zu beiden Seiten die Federäste ab. Die Federäste werden zusammengefasst als Fahne bezeichnet. Abbildung 3.1 zeigt eine Feder mit ihren typischen Bestandteilen.
Das Gefieder von Vögeln ist ein komplexes System verschiedener Arten von Federn. Grob
lassen sich zwei Haupt-Federtypen unterscheiden:
• Konturfedern
Konturfedern besitzen einen sichtbar ausgebildeten Schaft. Die Federäste bilden ein
flaches, stabiles Blatt. Um die typische Federform zu gewährleisten, sind die Federäste
untereinander über Haken miteinander verbunden. Dadurch entsteht eine Art Reißverschlusssystem, das die Stabilität der Feder gewährleistet und die Fahne als eine
geschlossene Fläche erscheinen lässt. Im unteren Bereich des Schafts sind die Federäste unverbunden und somit beweglicher und weicher. Dieser Bereich kann je nach
Vogelart unterschiedlich stark ausgeprägt sein oder auch ganz fehlen. Konturfedern
bilden die äußere Schicht des Federkleids. Sie sind daher hauptsächlich für das Erscheinungsbild des Vogels verantwortlich.
Die Konturfedern können noch weiter in Kleingefieder und Großgefieder unterteilt werden, je nachdem in welchen Körperregionen sie sich befinden. Konturfedern, die der
Körperbedeckung dienen, werden in ihrer Gesamtheit als Kleingefieder bezeichnet. Das
33
34
Gegenüberstellung verschiedener Methoden und Techniken
Großgefieder setzt sich aus Schwungfedern und Steuerfedern zusammen. Schwungfedern sind Konturfedern an den Flügeln des Vogels und Steuerfedern die Schwanzfedern. Abbildung 3.2 illustriert die verschiedenen Federtypen am Beispiel eines Adlers
im Flug.
• Daunenfedern
Daunenfedern besitzen nur einen kleinen, schlaffen Schaft. Die Federäste sind über
die gesamte Fahne hinweg nicht miteinander verbunden. Sie besitzen feine Seitenäste,
wodurch die Daunenfedern leicht und flauschig weich werden. Daunenfedern bilden
die untere Schicht des Gefieders. Sie dienen hauptsächlich der Isolation und sind von
außen kaum zu sehen.
3.3
Mindestanforderungen an das Federsystem
Für die Entwicklung des Federsystems soll auf eine Umsetzung der Daunenfedern verzichtet
werden, da diese optisch kaum einen Gewinn darstellen, die Performance des Systems jedoch
negativ beeinflussen würden. Auch das Großgefieder soll vernachlässigt werden. Für ein optimales Ergebnis sollten diese Federn nicht mit einem automatisierten System erzeugt werden,
sondern in die Design-Phase des Vogelcharakters miteinbezogen und modelliert werden. Das
System soll also ein Gefieder bestehend aus ausschließlich Konturfedern simulieren.
An das Federsystem werden gewisse Mindestanforderungen gestellt, um den Ansprüchen
aktueller Computeranimationsfilmen gerecht zu werden. Das System soll die folgenden Bedingungen erfüllen:
• Dynamische Reaktion auf Bewegungen.
Bewegungen des Vogels, wie Schütteln oder Flügelbewegungen, sollen sichtbare, natürliche Auswirkungen auf die Federn haben. Im Idealfall ist es möglich das gesamte
Gefieder oder Regionen dynamisch aufzustellen oder anzulegen.
• Interaktion mit Kräften in der Welt.
Kräfte können in diesem Zusammenhang sowohl Gravitationskräfte als auch Windkräfte sein. Das Gefieder des Vogels soll beispielsweise auf eine Windböe reagieren
können. Ob zu diesem Zweck schon bestehende Kräftesysteme der 3D-Software verwendet werden können oder eigene Systeme implementiert werden müssen, ist dabei
nicht relevant.
• Hohe Flexibilität.
Das Federsystem sollte auf möglichst viele Vogelarten anwendbar sein. Es sollte beispielsweise sowohl das Gefieder eines Adlers, als auch das einer Taube umgesetzt werden können. Daher darf es nicht zu starren Einschränkungen unterliegen. Es müssen
möglichst viele Attribute zur Beschaffenheit und Optik der einzelnen Federn und ihrer
Anordnung innerhalb des Gefieders vom Benutzer angepasst werden können.
3.3. Mindestanforderungen an das Federsystem
• Simulation einer angemessenen Anzahl von Federn.
Die Federmenge sollte in Höhe eines durchschnittlichen, in der Natur vorkommenden
Vogels liegen. Mehrere tausend Federn müssen von dem System bewältigt werden
können.
• Kompatibilität zu realistischen Beleuchtungsmodellen.
In aktuellen Produktionen werden sehr realitätsnahe Beleuchtungsmodelle verwendet.
Häufig basieren diese auf Global Illumination und Final Gathering [JB00]. Das Federsystem sollte mit diesen Verfahren kombinierbar sein, um problemlos in den bestehenden Workflow integrierbar zu sein. Außerdem kann davon ausgegangen werden, dass
die optische Qualität des Gefieders durch den Einsatz globaler Beleuchtungsmodelle
verbessert wird.
Software- und Hardware-Auswahl
Als Basisssoftware wird Autodesk Maya1 in der aktuellen Version Maya 2009 in der Variante Unlimited verwendet. Die Vorgängerversion Maya 2008 kann bei Kompatibilitätsproblemen ebenfalls herangezogen werden. Bei Bedarf kann die Basissoftware über Plug-Ins
durch zusätzliche Komponenten ergänzt werden. Auch der Einsatz von Spezialsoftware, die
mit Maya kombiniert eingesetzt werden kann, ist möglich. Hierzu steht die 3D-Sculpting
Software Autodesk Mudbox und das Haarsystem Shave and a haircut zur Verfügung. Diese
Systeme werden im weiteren Verlauf näher betrachtet. Die Entscheidung Autodesk Maya
als Basissoftware zu verwenden, beruht auf den Ergebnissen der Analyse in Kapitel 2. Die
Software wurde in allen analysierten Filmen verwendet und kann somit als Standard auf dem
Gebiet der Computeranimationsfilme angesehen werden. Autodesk Maya ist daher bestens
für die Entwicklung eines repräsentativen Federsystems geeignet.
Die Leistungsfähigkeit von 3D-Softwarelösungen steht in direkter Verbindung zur Hardware
auf der sie ausgeführt wird. Um die verschiedenen Ansätze zur Generierung eines Federsystems objektiv zu vergleichen, sollen alle Methoden auf dem gleichen Desktop-PC getestet
werden.
Als Testrechner steht folgender Desktop-PC zur Verfügung:
Prozessor: Intel Core 2 Duo 3.00 GHz
Arbeitsspeicher: 3.00 GB RAM
Grafikkarte: NVIDIA GeForce 9500 GS mit 512 MB Grafikspeicher
Betriebssystem: Microsoft Windows XP Professional mit Service Pack 3
Im weiteren Verlauf werden die Softwarekomponenten von Autodesk Maya auf ihre Verwendbarkeit in dem neuen Federsystem überprüft.
1
www.autodesk.de
35
36
Gegenüberstellung verschiedener Methoden und Techniken
Abbildung 3.3: Modellierungsvarianten einer Feder mit etwa 300 Tris.
Anmerkung 1 (Fachvokabular) In den nächsten Abschnitten und darauffolgenden Kapiteln wird vorausgesetzt, dass der Leser mit den grundlegenden Verfahren und Terminologien
der Grafischen Datenverarbeitung vertraut ist. Kurze Definitionen zu den einzelnen Fachbegriffen befinden sich im Glossar (siehe Anhang). Für eine umfassende Einführung in das
Themengebiet der Grafischen Datenverarbeitung wird auf die einschlägige Fachliteratur verwiesen.
3.4
Detailgrad der Feder als Geometrie
Die Konturfedern, aus denen sich das Gefieder zusammensetzt, können in Autodesk Maya mit
den zur Verfügung stehenden Modellierungsmethoden nachgebaut werden [DD07] [Der07].
Zu beachten ist hierbei, dass für ein detailliertes Gefieder tausende von Federn erzeugt werden müssen. 3D-Softwarepakete können abhängig von der zugrunde liegenden Hardware nur
eine gewisse Anzahl von Polygonen darstellen. Auf dem Testsystem konnte eine Obergrenze
von etwa drei Millionen Tris, also Dreiecksflächen, festgestellt werden. Geht man von einem
durchschnittlichen Gefieder mit etwa 10.000 einzelnen Federn aus, ergibt sich, dass eine Feder nicht mehr als 300 Tris besitzen darf. Abbildung 3.3 illustriert den maximal möglichen
Detailgrad bei 300 Tris. Abhängig von der Komplexität der Vogelgeometrie, der Polygonan-
3.4. Detailgrad der Feder als Geometrie
Abbildung 3.4: Modellierungsvarianten einer Feder. Links im Viewport, rechts gerendert.
zahl der restlichen Szene und anderer performancelastiger Elemente, muss dieser Wert weiter
nach unten korrigiert werden. Hieraus wird ersichtlich, dass es nicht möglich ist, eine genaue
Nachbildung einer Konturfeder, bestehend aus Schaft und einzelnen Seitenästen, als Basis
für das Federsystem zu verwenden. Aus diesem Grund muss eine sinnvolle Vereinfachung
gefunden werden.
Konturfedern besitzen eine starre Form, die Äste der Fahne sind reißverschlußartig ineinander
verkeilt [Gre07]. Dies hat zur Folge, dass sich die Feder bei nicht zu starken Einflüssen von
außen - Bewegungen des Vogels, leichter Wind - wie eine biegsame Gesamtfläche verformt.
Daher kann die Feder vereinfacht als eine einzelne Geometrie betrachtet werden. Im einfachsten Fall kann die Feder als ein einzelnes Polygon-Face, bestehend aus zwei Tris, realisiert
werden. Die planare Fläche kann mit einer Farb- und Alpha-Map versehen werden. Eine etwas
aufwändigere Struktur ergibt sich, wenn man statt einem Polygon-Face ein Plane-Primitiv
mit einigen Unterteilungen in y-Richtung verwendet. Die Unterteilungen ermöglichen es, der
Feder eine Krümmung hinzuzufügen und sie so natürlicher erscheinen zu lassen. In der Praxis
hat sich eine Unterteilung in sieben Polygone bewährt, um ein gutes Krümmungsverhalten
zu erreichen. Dies ergibt 14 Tris. Ein höherer Detailgrad kann erreicht werden, indem der
Schaft ausmodelliert wird und die Fahne über ein oder zwei Planes hinzugefügt wird. Die
Fahne kann wiederum mit Alpha-Maps weiter verfeinert werden. Je nach Detailgrad des
Schafts ergeben sich bei dieser Methode bereits 50-100 Tris. Für eine vollständige Nachbildung einer Feder, müssten auch die Federäste ausmodelliert werden. Wie bereits erwähnt,
kann diese Variante nicht für das Federsystem verwendet werden, da die Polygonanzahl zu
hoch wäre und bei mehreren hundert bis tausend Tris liegen dürfte. Abbildung 3.4 zeigt die
vier Varianten, aufsteigend nach der Anzahl der Tris von links nach rechts sortiert, einmal
als Polygon-Mesh im Viewport von Maya und einmal gerendert mit zugewiesener Alpha-Map.
Bewertung
Durch die Möglichkeit einfache Geometrien mit Alpha-Maps zu kombinieren, lassen sich
schon mit vergleichsweise geringer Anzahl von Polygonen, gute Ergebnisse erzielen. Eine
Polygon-Plane mit einigen Unterteilungen zur Krümmung scheint ein guter Kompromiss aus
Performance und Qualität zu sein. Ein Face ohne Unterteilungen bietet zwar den größten
37
38
Gegenüberstellung verschiedener Methoden und Techniken
Abbildung 3.5: Über eine Farb- und eine Bump-Mapping-Textur kann der Eindruck von
Federn erzeugt werden. Allerdings lassen sich so nur unzureichende dynamische Effekte
erzeugen.
Performancegewinn, stellt sich jedoch als zu starr dar. Sollten Performancereserven vorhanden sein, kann auf die dritte Variante, mit ausmodelliertem Schaft zurückgegriffen werden.
Detailliertere Modellierungsansätze müssen wegen ihrer hohen Polygonanzahl verworfen werden.
3.5
Texturierung des Federkleids
Bei dieser Variante werden die Federn des Vogels nicht einzeln erstellt. Der Shader des Vogels wird mit Texture-Maps für die benötigten Attribute versehen. Je nach Stil kann im
einfachsten Fall nur die Farbe des Körpers gesetzt werden. Sollen auf der Oberfläche einzelne Federn zumindest grob erkennbar dargestellt werden, eignet sich eine Bilddatei mit
Federmuster, die mit dem Farbknoten des Shaders verbunden und über die Geometrie gekachelt wird. Aus den Farbinformationen der Bilddatei können dann Maps für weitere Attribute
generiert werden, beispielsweise Specular- und Bump-Maps, die die einzelnen Federn noch
stärker von einander abgrenzen und den Detailgrad erhöhen [DD07] [Der07]. Abbildung 3.5
verdeutlicht die Methode am Beispiel einer Polygonkugel.
3D-Sculpting Tools bieten außerdem die Möglichkeit ein Federkleid mit sehr hohem Detailgrad in die Geometrie des Vogels einzuarbeiten und per Normal- oder Displacement-Mapping
auf der Geometrie anzuzeigen [Ing08].
Bewertung
Die Vorteile dieser Methode liegen hauptsächlich in einer Ersparnis in der Renderzeit. Ande-
3.6. Verteilung der Federn auf Grundlage der Geometrie
Abbildung 3.6: Verteilung von Geometrien mit Hilfe des Paint Script-Tools (links, mitte).
Rechts Federn auf der Basis von Extrude.
rerseits sind Animationen der Federn so nur schwer umzusetzen. Wird mit Bump-, Normaloder Displacement-Maps gearbeitet, kann der Tiefenwert der Maps mit Hilfe von Keyframes
animiert werden. Dadurch kann optisch das Aufstellen und Anlegen der Federn simuliert
werden. Dies kann jedoch nicht mit der Qualität eines aus einzelnen Federn bestehenden
Federsystems konkurrieren. Komplexere Federbewegungen, wie sie etwa beim Aufplustern
des Vogels entstehen, sind zudem nur mit erheblichem Aufwand umsetzbar. Eine Möglichkeit, den Eindruck eines Federkleides zu verstärken, besteht darin, an markanten Stellen der
Grundgeometrie grobe Federansätze einzuarbeiten. So kann beispielsweise ein Federschopf
am Kopf des Vogels erzeugt werden.
In dem Federsystem, das im nächsten Kapitel entwickelt werden soll, wird diese Methode
nicht verwendet werden, da sie die Mindestanforderungen nicht erfüllt.
Die Methode wird beispielsweise in dem Film Ice Age für die Darstellung der Dodos verwendet (siehe Abbildung 2.15). In dem dritten Teil der Ice-Age-Serie, der im Sommer 2009
erscheint, verabschiedet sich Blue Sky Studios jedoch von diesem Stil. Die dort enthaltenen
Strauss-Charaktere erhalten ein 3D-Fell statt Federn.
3.6
Verteilung der Federn auf Grundlage der Geometrie
Das Gefieder von Vögeln besteht aus einer sehr großen Anzahl Federn. Daher muss eine
Methode gefunden werden, die erstellten Federgeometrien auf der Oberfläche des Vogelcharakters zu verteilen. Um Geometrien auf einem Objekt zu verteilen, kann das Paint
Script-Tool (Abbildung 3.6 Mitte) von Autodesk Maya verwendet werden. Die Interaktion
mit dem Tool erfolgt über das Artisan Interface. Das Artisan Interface von Maya ist ein intuitives Zeichen- und Sculpting-Tool, das von vielen Komponenten innerhalb Mayas verwendet
wird. Das Paint Script-Tool kann mit Hilfe des Kommandos geometryPaint Instanzen eines
angegebenen Objekts auf einem weiteren Objekt verteilen. Für die Verteilung stehen noch
eine Reihe von Einstellungen zu Größe, Offset und Ausrichtung zur Verfügung. Die Option
Align erlaubt es beispielsweise, die Instanzen an den Normalen des zu bemalenden Objekts
auszurichten. Abbildung 3.6 zeigt links die Verwendung des Tools am Beispiel von Plane-
39
40
Gegenüberstellung verschiedener Methoden und Techniken
Instanzen auf einer Polygonkugel und in der Mitte die Benutzeroberfläche des Paint Script
Tools.
Eine weitere Methode, die Federn auf der Geometrie erzeugt, basiert auf der Verwendung
des Extrude-Tools [DD07] [Der07]. Mit diesem Werkzeug können aus Kanten der Grundgeometrie neue Flächen extrudiert werden. Abbildung 3.6 rechts zeigt das Verfahren am
Beispiel einer Polygonkugel. Die Federflächen können im Anschluss von der Hauptgeometrie
getrennt und einzeln texturiert werden oder Bestandteil von ihr bleiben.
Bewertung
Das Paint Script-Tool bietet sehr hohe Kontrolle über die Verteilung der Federn auf der
Geometrie. Unvorteilhaft ist, dass die Federn per Hand auf die Oberfläche aufgetragen werden müssen. Ein automatisiertes Verfahren mit einer Randomizer-Funktion zur natürlichen
Anordnung, wäre hier eine bessere Variante. Für das Federsystem wird das Tool daher nicht
verwendet werden.
Auch die Extrude-Methode ist für das Federsystem nicht geeignet. Werden die Federn nicht
einzeln per Hand angepasst, wirkt die Verteilung zu starr. Außerdem sollte die Objektgeometrie des Vogels für die spätere Animation optimiert werden und nicht für die Federverteilung.
3.7
Paint Effects
Eine weitere Möglichkeit Federn auf der Oberfläche einer Geometrie zu verteilen bietet
die Komponente Paint Effects. Paint Effects ermöglichen es dem Anwender 2D- und 3DElemente in die Szene oder auf Objekte zu zeichnen [DD07] [Der07]. In Maya ist zu diesem
Zweck eine große Anzahl vorgefertigter Modelle vorhanden, die als Brushes, also Pinsel, bezeichnet werden. Die Paint-Effects-Brushes können über eine Reihe von Attributen angepasst
werden. Trotz ihres hohen Detailgrad arbeiten PaintEffects verhältnismäßig ressourcenschonend.
In der Paint Effects-Bibliothek finden sich auch Brushes für Federn. Das Erscheinungsbild
der Federn kann durch eine große Auswahl an Attributen verändert werden. Abbildung 3.7
zeigt eine gerenderte Polygonkugel, die teilweise mit Paint Effects-Federn bemalt wurde. Die
folgenden Attribute der Federn wurden dabei variiert:
• Leaf Color 1 (innere Astfarbe)
• Leaf Color 2 (äußere Astfarbe)
• Num Leaf Clusters (Anzahl der Äste)
• Leaf Segments (Unterteilungen in den Ästen)
• Sample Density (Federdichte auf der Kugel)
3.7. Paint Effects
Abbildung 3.7: Paint Effects-Federn gerendert mit Maya-Software in verschiedenen Varianten.
Abbildung 3.8: Links und Rechts: Paint Effects-Federn konvertiert in Polygone. Mitte:
Polygon-Federn gerendert mit MentalRay.
Alle Bilder wurden mit dem Maya-Software-Renderer erstellt. Die Renderzeit betrug etwa
10 Sekunden. Paint Effects werden von dem zweiten in Maya integrierten Renderer Mental
Ray nicht unterstützt und können mit ihm daher nicht dargestellt werden. Um unter dem
Einsatz von Mental Ray dennoch von der vorhanden Bibliothek zu profitieren, können Paint
Effects in Polygone umgewandelt werden. Bei der Konvertierung kann eine Obergrenze für
die Polygonanzahl angegeben werden. So kann das Verhältnis von Qualität zu Performance
vom Anwender verwaltet werden. Die in Abbildung 3.7 dargestellten Testrenderings würden
ohne Qualitätsverlust zu einer Polygonzahl von 2,5 Millionen führen. Diese Anzahl überstieg
bereits die Möglichkeiten des Testrechners. Daher wurde statt dessen eine Szene mit etwa
500.000 Polygonen angefertigt, deren Ergebnis in Abbildung 3.8 Mitte enthalten ist. Diese
Szene hatte eine Renderzeit von etwa einer Minute. Die beiden anderen Illustrationen in
Abbildung 3.8 zeigen das Ergebnis der Konvertierung einer einzelnen Feder; einmal ohne
Qualitätsverlust mit 1.400 Polygonen und einmal begrenzt auf 550 Polygone.
Bewertung
41
42
Gegenüberstellung verschiedener Methoden und Techniken
Für das Federsystem sind Paint Effects nicht geeignet. Sie können nur mit dem SoftwareRenderer von Maya dargestellt werden. Dieser ist jedoch in seinen Möglichkeiten aufwendige
globale Beleuchtungsmodelle umzusetzen, stark eingeschränkt und wird daher in der Filmindustrie praktisch nicht eingesetzt. Die Umwandlung in Polygone bietet theoretisch eine
komfortable Möglichkeit, Federgeometrien mit unterschiedlichem Detailgrad zu erzeugen.
Allerdings benötigt eine einzelne Feder selbst bei sehr niedrigem Detailgrad noch mehrere
100 Polygone.
3.8
Fell- und Haarsysteme
Systeme zur Generierung von Fell sind darauf ausgelegt große Mengen von Haaren auf
Geometrien zu verteilen. Diese Systeme bieten eine weitere Möglichkeit Federn auf einem
Charakter zu verteilen.
Für die Generierung von Fell und Haaren in Computeranimationsfilmen wurden bereits umfangreiche Komponenten und Plug-Ins für 3D-Modellierungssoftwarepakete entwickelt. Diese
Systeme basieren in der Regel auf Guide-Hairs über die per Interpolation das eigentliche Haar
oder Fell generiert wird. Autodesk Maya enthält in der Unlimited Version für die Darstellung von Körperbedeckungen die Komponente Maya Fur [DD07] [Der07]. Für die Erstellung
von längeren Haaren gibt es außerdem die Komponente Maya Hair, die ebenfalls nur in der
Unlimited-Version enthalten ist. Da das Federkleid eines Vogels, wie bereits in den vorherigen Kapiteln erwähnt, vergleichbar mit dem Fell eines Tieres ist, empfiehlt sich der Einsatz
der Fur-Komponente. Außerdem kann das Fellsystem später mit dem Haarsystem von Maya
kombiniert werden, um das Fell um Algorithmen zur dynamischen Bewegung zu erweitern.
Neben dem in Maya integrierten Fur-System, gibt es noch ein leistungsstarkes Plug-In namens Shave and a haircut 2 , das von dem Unternehmen Joe Alter Inc. vertrieben wird [Smi09].
Das Plug-In wurde bereits in einigen aktuellen Produktionen wie beispielsweise King Kong
verwendet. Sowohl die Fur-Komponente von Maya als auch Shave and a haircut stehen für
die Entwicklung des Federsystems zur Verfügung. Viele Entwicklungsstudios machen sich bei
der Erstellung von Vogelcharakteren in Computeranimationsfilmen die Ähnlichkeit von Fell
und Federn zu Nutze und verwenden für Vögel die gleichen Systeme wie für Fell. Je nach
Vogelart liefert dieses Verfahren mehr oder weniger realistische Ergebnisse. Bei Pinguinen
funktioniert dies beispielsweise sehr gut, da ihr Federkleid sehr kurz und dicht ist.
Um auch andere Vogelarten mit Gefieder auf Basis eines Fellsystems auszustatten, muss
untersucht werden, ob das Fell so angepasst werden kann, dass der Eindruck von Federn
entsteht.
Da das Fell in seiner Farbe und Beschaffenheit den Bedürfnissen des Entwicklers angepasst
werden kann, ist es vorstellbar, über Parameter die die Klumpenbildung des Fells steuern
und über die Dicke der einzelnen Haare den Eindruck von Federn zu vermitteln. Außerdem bieten die heutigen Fellsysteme zum Teil die Möglichkeit anstelle von Haaren einfache
Polygongeometrien, als sogenannt Instanzen, zu rendern. So könnte eine einfache Feder modelliert werden und durch Übergabe an das Fellsystem auf der Oberfläche verteilt werden.
2
http://www.joealter.com/
3.8. Fell- und Haarsysteme
Abbildung 3.9: Testrenderings mit der Fur-Komponente von Maya.
Abbildung 3.10: Testrenderings mit Shave and a haircut.
Federn können also zum einen als eine Menge von Haaren mit besonderen Eigenschaften
angesehen werden, um so auf einer Geometrie verteilt zu werden und auf Kräfte wirken zu
können. Zum anderen kann eine Feder selbst auch als eine Geometrie, dem Federkiel mit
einem Fell, nämlich der Federfahne angesehen werden. Daher stellt sich die Frage, ob die
aktuellen Fellsysteme mit Rekursionen umgehen können.
Des weiteren muss die Anbindung von Kräften wie Wind oder Gravitation an das Fellsystem, auch mit Federn gut funktionieren. Außerdem müsste für eine realistische Darstellung
Kollisionserkennung in das System integriert sein. Zum einen sollte das Fell mit dem Objekt
auf dem es wächst kollidieren, zum anderen sollten sich die Haare untereinander abstoßen.
Bewertung
Fellsysteme sind komplexe Komponenten, mit welchen hochwertiges Fell erstellt werden
kann. Die Testrenderings aus Abbildung 3.9 und 3.10 zeigen bereits eine recht hohe Qualität,
unabhängig davon, ob das in Maya integrierte Fellsystem verwendet wird oder das Plug-In
Shave and a haircut. Fur-Systeme beinhalten Eigenschaften wie Kollisionserkennung oder
Kräfteerkennung, diese werden auch in einem Federsystem benötigt. Die Systeme werden
43
44
Gegenüberstellung verschiedener Methoden und Techniken
Abbildung 3.11: Partikel-Simulation. Links mit zugewiesenen Federinstanzen, gerendert und
im Viewport. Rechts mit Partikeln vom Typ Cloud.
zudem - wenn auch oftmals in abgewandelter Form - in aktuellen Computeranimationsfilmen
für fellbedeckte Charaktere eingesetzt. Dies alles lässt vermuten, dass Haar- und Fellsysteme
auch als Basis für ein Federsystem geeignet sind.
3.9
Partikel-Systeme
Um Federn auf der Oberfläche einer Geometrie zu verteilen, kann neben den bereits vorgestellten Methoden, auch das Partikel-System von Maya verwendet werden. Partikel-Systeme
werden in der Regel dazu eingesetzt dynamische Teilchenschwärme zu generieren, mit denen
beispielsweise Rauch, Nebel oder Feuer simuliert werden kann [DD07] [Der07]. Das System
kann jedoch auch für die Verteilung von Federn zweckentfremdet werden.
Bei einem Partikel-System wird von einem sogenannten Emitter eine große Anzahl von Objekten ausgestoßen. Die Bewegung dieser Objekte kann über zahlreiche Parameter beeinflusst
werden. Maya enthält wie jede große 3D-Software ein eigenes Partikel-System.
Mit dem Partikel-System von Maya ist es möglich die Oberfläche eines Objekts als Emitter
zu verwenden. Partikel strömen dann gleichmäßig von der gesamten Oberfläche des Objekts
weg. Neben Partikeln können auch Instanzen von Polygon-Geometrien emittiert werden.
Die ausgestoßenen Partikel strömen allerdings fortlaufend von der Geometrie weg. Über Attribute für die Lebensdauer kann verhindert werden, dass sich die Partikel allzu weit von
der Oberfläche entfernen. Dennoch ergeben sich auf diese Weise keine mit der Oberfläche
verbundenen Körperbedeckungen, es bildet sich eher eine dichte Hülle von Objekten über
der Geometrie. Abbildung 3.11 zeigt die mögliche Verwendung des Partikelsystems an einer
Polygonkugel.
Bewertung
Partikel-Systeme bieten im Hinblick auf das Federsystem ähnliche Funktionen, wie Fellsysteme. Auch hier können Instanzen einer Basisgeometrie auf der Oberfläche verteilt werden.
Kollisionserkennung und Interaktion mit Kräften werden ebenfalls unterstützt. Allerdings ist
3.10. Kleidungssimulation
Abbildung 3.12: Die Kleidungskomponente von nCloth.
die Anordnung der Instanzen um die Geometrie herum nicht ideal, aus diesem Grund werden
Partikel bei der Entwicklung des Federsystems nicht berücksichtigt.
3.10
Kleidungssimulation
Eine Möglichkeit die dynamische Verformung der Federgeometrien zu realisieren, bietet die
nCloth-Komponente von Maya [JKG05]. Diese neue, leistungsstarke KleidungssimulationsKomponente ist seit der Version 8.0 in Maya enthalten. Sie dient dazu Kleidung oder andere
Stoffe, wie Tischdecken oder Vorhänge zu simulieren. Das dynamische System kann für das
Federsystem verwendet werden, um Bewegungen im gesamten Gefieder oder einzelner Federn zu erzeugen.
Polygon-Geometrien können mit Hilfe der Komponente zu nCloth-Objekten umgewandelt
und im weiteren Verlauf mit Wind und Gravitationskräften ausgestattet werden. Die Beschaffenheit des Stoffs kann über eine große Anzahl Parameter genau spezifiziert werden.
Außerdem können Objekte in der Szene zu Kollisions-Objekten deklariert werden und somit
auf Berührung mit dem nCloth-Objekt reagieren. Auch eine Kollision des Kleidungsstoffes
mit sich selbst kann integriert werden. Die Kleidungsstücke können außerdem über Abhängigkeitsbedingungen, die in Maya Constraints genannt werden, an anderen Objekten befestigt
werden. Für die Verwendung in einem Federsystem sind zwei Varianten vorstellbar:
• Ein nCloth-Objekt simuliert das gesamte Federsystem
• Ein nCloth-objekt simuliert eine Feder
Variante eins stellt im weiteren Sinne eine Verbesserung der reinen Texturierung dar. Der
Vogel wird an den federbedeckten Regionen mit einem nCloth-Objekt umgeben, das an
den Übergangspunkten zu kahlen Regionen befestigt wird. Der Vogel erhält sozusagen ein
T-Shirt, dessen Textur einem Gefieder nachempfunden ist. Das nCloth-Objekt würde danach
wie unter Texturierung in Abschnitt 3.5 beschrieben, texturiert werden. Durch dieses Vorgehen kann sich das nCloth-Objekt an die Bewegungen des Vogels anpassen, wodurch der
Eindruck entsteht, dass sich die Federn selbst bewegen.
45
46
Gegenüberstellung verschiedener Methoden und Techniken
Die zweite Methode ist in sofern interessant, als dass mit ihr eine dynamische Verformung
der gesamten Oberfläche realisiert werden kann. Die Federgeometrien können an ihrer Unterkante über einen Constraint mit der Geometrie verbunden werden. Jede Feder repräsentiert
hierbei ein Stück Stoff, das auf der Vogeloberfläche befestigt ist. Allerdings ist es mit den
Tools von Maya nicht möglich Instanzen von nCloth-Objekten zu erzeugen. Eine Lösung für
dieses Problem könnte darin bestehen, die Federgeometrien zunächst mit einem beliebigen
Verfahren auf der Oberfläche zu verteilen und anschließend über den Befehl Combine zu
einem Mesh zusammenzufügen. Allerdings müsste danach, um das Constraint für jede Feder zu erstellen, eine Auswahl von Vertices selektiert werden. Per Hand ist dieser Vorgang
unpraktikabel. Dies könnte mit Hilfe eines selbstentwickelten Scripts gelöst werden. Ein weiterer Nachteil ist, dass für eine realistische Verformung der Federn ein zu detailliertes Mesh
benötigt wird. Abbildung 3.12 zeigt die mögliche Verwendung von Cloth-Objekten als Federn.
Bewertung
Beide vorgestellten Varianten können für das Federsystem nicht verwendet werden. Das
gesamte Federsystem über ein nCloth-Objekt zu simulieren, bringt im Vergleich zur reinen
Texturierung nicht genügend Vorteile. Einzelne Federn mit nCloth zu simulieren führt zwar
zunächst zu zufriedenstellenden Ergebnissen, der benötigte Detailgrad der Federgeometrie
übersteigt jedoch die Obergrenze der Polygonanzahl für das System.
3.11
Schlussfolgerung und Zusammenfassung
Für die Darstellung der Federgeomtrie stehen zwei Varianten zur Verfügung. Sie kann als
Polygongeometrie umgesetzt werden, muss dazu jedoch in ihrer Polygonanzahl begrenzt
werden. Eine Polygon-Plane mit etwa sechs Unterteilungen hat sich hierbei als guter Kompromiss herausgestellt. Andererseits kann die Feder auch als Haar umgesetzt werden, das
über die zur Verfügung stehenden Attribute wie Breite, Länge und Farbe angepasst wird.
Die Verteilung der Federn auf der Oberfläche und die dynamischen Effekte sollten mit einem der vorgestellten Fur-Systeme, Maya-Fur oder Shave and a haircut, realisiert werden.
Diese Systeme haben sich bereits in der Filmindustrie bei der Erstellung von Charakteren
mit Fell durchgesetzt und bieten mit ausgereiften Routinen zur Kollisionserkennung und
Interaktion mit Kräften viele Funktionen, die auch in einem Federsystem von Bedeutung
sind. Fur-Systeme bieten außerdem die Möglichkeit, Geometrien als Instanzen anstelle von
Haaren zu verteilen und zu rendern. Daher kann auch die Variante einer Polygon-Geometrie
als Federobjekt umgesetzt werden.
Tabelle 3.1 enthält einen Überblick der getesteten Methoden und ihre Bewertungen nach
den definierten Mindestanforderungen.
Die in diesem Kapitel zusammengetragenen Techniken werden im nächsten Kapitel zu Federsystemen zusammengefügt. Diese werden anschließend anhand festgelegter Qualitätskriterien bewertet. Das beste System wird im Anschluss weiter verfeinert.
dynamische
Reaktion
Interaktion
mit Kräften
Flexibilität
unterstützte Federmenge
Kompatibilität mit GI
Bewertung
Feder als Geometrie
Abhängig von Verteilungstechnik.
Abhängig von Verteilungstechnik.
Feder kann texturiert und verformt werden
+
Je nach Unterteilungen
15.000 Federn
+
Vollständig kompatibel
+
+
Feder als Haar
Über Haarsystem
+
Über Haarsystem
+
Viele Attribute, jedoch keine
Texturierung möglich.
+
50.000 und mehr
+
Kompatibel
+
+
Texturierung
Nein
-
Nein
-
Sehr flexibel.
+
Keine einzelnen Federn
-
Kompatibel
+
-
Paint Script-Tool
Nein
-
Nein
-
Nicht flexibel.
-
Je nach Unterteilungen
15.000 Federn
+
Kompatibel
+
-
Extrude-Tool
Nein
-
Nein
-
Nicht flexibel. Verteilung von
Geometrie abhängig.
-
ca. 10.000 Federn
-
Kompatibel
+
-
Paint-Effects
Ja
+
Nein
-
Viele Attribute.
+
weniger als 1.000 Federn
-
Nicht kompatibel
-
-
Fellsysteme
Ja
+
Ja
+
Abhängig von Darstellungsmethode der Federn.
+
je nach Methode 50.000 Federn
und mehr
+
Kompatibel
+
+
Partikel-System
Ja
+
Ja
+
Über Instanzen. Verteilung jedoch unzureichend.
-
ca. 15.000 Federn
+
Kompatibel
+
-
Kleidungssimulation
Ja
+
Ja
+
nCloth-Attribute und Texturierung.
+
ca. 1.000 Federn
-
Kompatibel
+
-
ca.
ca.
3.11. Schlussfolgerung und Zusammenfassung
Methode
Tabelle 3.1: Übersicht der getesteten Verfahren mit Bewertung in Hinblick auf die Mindestanforderungen.
47
Kapitel 4
Entwicklung eines neuen
Federsystems
Im letzten Kapitel wurde eine Reihe relevanter Komponenten und Methoden zur Entwicklung eines Federsystems ermittelt. Diese müssen nun genauer untersucht und an einem
konkreten, repräsentativen Beispiel getestet werden. Zu diesem Zweck wird eine geeignete
Testanimation mit einer nicht zu komplexen Polygongeometrie eines Vogels im Cartoon-Stil
erstellt. Für die Geometrie des Vogels wird im weiteren Verlauf die Bezeichnung Vogelmodell
verwendet. Auf Basis der ausgewählten Techniken werden erste Federsysteme entwickelt.
Diese werden auf das Vogelmodell angewendet. Für jedes Modell wird so eine kurze Testsequenz erstellt. Anhand der gewonnen Erkenntnisse bei der Umsetzung der Federsysteme
und den Testsequenzen kann im Anschluss eine Bewertung der einzelnen Systeme durchgeführt werden. Das System mit der besten Bewertung wird im weiteren Verlauf verfeinert
und im nächsten Kapitel in ein Skript gekapselt, um dem Anwender die Verwendung des Systems zu erleichtern. Für die Bewertung der Federsysteme sollen die in Kapitel 1 definierten
Qualitätskriterien herangezogen werden:
• Renderzeit:
Die Renderzeiten sollten möglichst gering sein. Dabei sollten sie stets in Abhängigkeit zur Qualität und Komplexität des Ergebnisses betrachtet werden. In Computeranimations-Studios steht in der Regel sehr leistungsfähige Hardware in großer Stückzahl zur Verfügung. Daher sollte der Verlauf der Renderzeit bei immer komplexeren
Einstellungen überprüft werden.
• Bedienbarkeit:
Das System sollte möglichst einfach, übersichtlich und intuitiv gestaltet sein. Dies
erspart zum einen Einarbeitungszeit und erleichtert es dem Anwender zum anderen
seine Ideen umzusetzen.
49
50
Entwicklung eines neuen Federsystems
Abbildung 4.1: Der südafrikanische Toko dient als Vorlage für den 3D-Cartoon-Vogel
• Flexibilität:
Das Federsystem soll für das Gefieder einer großen Anzahl von Vogeltypen einsetzbar
sein.
• Qualität des Ergebnisses:
Bei diesem Kriterium muss zwingend ein zufriedenstellender Wert erreicht werden.
Erfüllt ein System alle anderen Kriterien, versagt jedoch bei der Qualität, so wird es
niemals bei einem Projekt zum Einsatz kommen. Auf der anderen Seite kann durchaus
ein System mit schlechterer Endqualität, aufgrund der Kostenersparnis einem hochwertigerem mit höherer Renderzeit vorgezogen werden.
4.1
Das Vogelmodell
Die verschiedenen Techniken sollen zur Analyse in diesem Kapitel an einem Vogelmodell
angewendet werden. Aus Gründen der Zeitersparnis bei den Vorschau-Renderings soll hier
ein einfacher Cartoon-Vogel verwendet werden. Als Vorlage für die Entwicklung dient der
südafrikanische Toko, der in Abbildung 4.1 zu sehen ist [IS02].
Um das Modell mit dem typischen Cartoon-Look zu versehen, müssen zunächst die Charakteristika von Cartoonfiguren im Allgemeinen und von Cartoon-Vögeln im speziellen analysiert
werden.
4.1. Das Vogelmodell
c
Abbildung 4.2: Berühmte Cartoon Vögel. Links Tweety Walt
Disney Company. Rechts
c
Roadrunner Warner
Bros. Entertainment
Elemente des Cartoon-Stils
Ein zentrales Elemente von Cartoon-Charakteren ist die Reduktion der Details [BB08] [Tsa07].
Meist werden nur die groben Züge der Figur dargestellt. Des Weiteren werden die Proportionen der Figur verändert, häufig wird der Kopf als zentrales Element optisch vergrößert. Es
können aber auch oder zusätzlich weitere Elemente vergrößert werden, um der Figur einen
Charakter zu verleihen. Die gesamte Figur wird in der Regel mit weichen, runden Formen
gezeichnet.
Werden Tiere als Cartoon-Figuren dargestellt, geht die Veränderung der Grundstruktur noch
einen Schritt weiter. Das Gesicht der Tiere wird häufig vermenschlicht. Gerade bei Beutetieren führt dies dazu, dass die Position der Augen von der Seite des Kopfes in die Mitte
verschoben wird. Abbildung 4.2 zeigt die zwei berühmte Cartoon-Vögel Tweety von Walt
Disney und den Roadrunner von Warner Bros. Bei beiden Charakteren ist die Vermenschlichung deutlich zu erkennen. Die Flügel des Kanarienvogels Tweety ähneln Armen und
Händen, das Gesicht ist ebenfalls menschlich dargestellt. Als zentrales Element verdeutlicht der lange Schwanz des Roadrunners dessen Schnelligkeit. Tweetys Figur weist typische
Elemente des Kindchenschemas, wie große Augen und großer Kopf, auf.
4.1.1
Das Polygon-Modell des Vogels
Die Modellierung des Vogels erfolgte in Autodesk Maya 2009. Zunächst wurde mit Hilfe von
Image planes ein erster grober Entwurf des Vogels angefertigt [DD07] [Der07]. Als Modellierungstechnik wurde Box-Modeling verwendet.
Um aus dem Vorbild des südafrikanischen Tokos ein Cartoon-Modell zu erzeugen, wurde auf
einige der beschriebenen Cartoonstil-Charakteristika zurückgegriffen. So wurden zunächst
die Proportionen mit Hinblick auf das Kindchenschema angepasst: Kopf und Schnabel des
51
52
Entwicklung eines neuen Federsystems
Abbildung 4.3: Polygonmodell des 3D-Vogels. Links das Low-Poly Basismodell, in der Mitte
das High-Poly Modell und rechts ein erstes Testrendering.
Vogels werden als Hauptcharakteristika hervorgehoben, der Hals wird dünner dargestellt. Die
Augen werden vergrößert und aus der für ein Beutetier klassischen Position seitlich am Kopf
nach vorne verlegt, wodurch ein menschlicherer Eindruck entsteht. Insgesamt wird hierdurch
das Erscheinungsbild runder. Zuletzt werden am Kopf des Vogels grobe Federansätze in die
Geometrie integriert. Abbildung 4.3 zeigt das fertige Modell des Vogels im Wireframe-Modus
und als erstes Test-Rendering.
Für die Texturierung von 3D-Modellen und für einige der später angewandten Techniken
zur Generierung von Federn muss ein UV-Layout erstellt werden [Oli06]. Ein UV-Layout
beschreibt die 2-dimensionale Ausbreitung der Oberfläche einer Geometrie. Dabei werden
die 3-dimensionalen Punkte der Geometrie aus dem xyz-Weltkoordinatensystem in das 2dimensionale uv-Texturkoordinatensystem überführt. Die Texturpunkte werden analog zu
den Achsen des Koordinatensystems als UV-Koordinaten, oder kurz UVs bezeichnet. Wichtige Kriterien für die Qualität eines UV-Mapping sind die Schnittkanten und die gleichmäßige
Ausbreitung der UVs. Um die Geometrie flach auslegen zu können muss sie aufgetrennt werden und gegebenenfalls in verschiedene Bereiche, die sogenannten Shells aufgeteilt werden.
An den Schnittkanten können bei der Texturierung sichtbare Übergänge entstehen. Aus diesem Grund sollte die Anzahl der Schnittkanten minimiert werden. In der Regel werden sie
außerdem an wenig sichtbaren Stellen der Geometrie angebracht oder an solchen, an denen
die Textur ebenfalls eine harte Kante aufweist. Im Falle des Cartoon-Vogels wäre dies beispielsweise der Übergang vom Schnabel zum Kopf.
Die Schnittkanten dürfen allerdings nur soweit minimiert werden, dass eine gleichmäßige Ausbreitung des Mesh ohne Überschneidungen möglich ist. Überschneidungen der UVKoordinaten führen dazu, dass an den entsprechenden Bereichen der Geometrie keine unterschiedlichen Texturinformationen, wie beispielsweise Farbwerte, hinterlegt werden können.
Dies ist daher unbedingt zu vermeiden. Eine gleichmäßige Verteilung der UVs ist hingegen
notwendig, damit die Textur auf der Geometrie nicht verzogen dargestellt wird.
Das UV-Layout für den Cartoon-Vogel wurde ebenfalls mit Autodesk Maya erstellt. Als
4.1. Das Vogelmodell
Abbildung 4.4: UV-Mapping des 3D-Vogels. Links das fertige UV-Layout getrennt nach
federbedeckten und kahlen Regionen, rechts die Verteilung der UVs visualisiert durch eine
Textur mit zugewiesenem Checker-Muster.
Mapping-Methode wurde Pelting verwendet. Bei dieser Technik wird die Geometrie aufgeschnitten und danach flach aufgeklappt.
Zunächst wurde die Geometrie des Vogels in fünf Shells aufgeteilt:
• Kopf
• Schnabel
• Körper
• Füsse (je eine Shell pro Fuß)
Jede der Shells wurde dann durch Selektion der Kanten und dem Befehl Cut UV-Edges
aufgeschnitten. Das Aufklappen der Shells erfolgte anschließend mit Hilfe des Befehls Unfold.
Die Gleichmäßige Verteilung der UVs kann mit Hilfe einer sogenannten Checker-Textur leicht
überprüft werden. Dafür wird dem Material des Vogels eine Textur mit einem möglichst
feinen Schachbrettmuster zugewiesen. Wird dieses verzerrungsfrei dargestellt, sind die UVKoordinaten gleichmäßig ausgebreitet. Abbildung 4.4 zeigt das UV-Layout des Vogels und
die gleichmäßige Verteilung der UVs anhand der zugewiesenen Checker-Textur.
4.1.2
Das Vogelskelett
Bei der Modellierung des Vogels wurden bereits Vorkehrungen getroffen, die die Zusammenarbeit mit einem Animations-Skelett unterstützen sollen. Der Vogel wurde in T-Pose,
mit ausgestreckten Flügeln modelliert und das Mesh wurde in einem Low-Poly-Modell mit
sogenannter Quad-Struktur, d.h. dass das Mesh nur aus Polygonen mit vier Eckpunkten
besteht, erstellt. Charakter-Animationen werden in Maya mit Hilfe von Skelett-Ketten reali-
53
54
Entwicklung eines neuen Federsystems
Abbildung 4.5: Das Skelett des Vogels besteht aus einer Joint-Kette, deren Rotationsattribute animiert werden können.
siert [Cab08]. Eine Skelett-Kette besteht aus sogenannten Gelenken (engl.: Joints), die zur
Veranschaulichung über Knochen miteinander verbunden werden. Die Joints werden in einer
festen Eltern-Kind-Hierarchie aneinander gebunden. Der erste Joint einer solchen Hierarchie
wird als Root-Joint bezeichnet. Gelenke dienen nur der Animation des Charakters und werden nicht gerendert. Um eine Geometrie mit einem Skelett animieren zu können, muss das
Skelett an die Geometrie gebunden werden. Maya stellt dafür verschiedene Techniken zur
Verfügung. Durch das Binden werden den Vertices des Vogels Joints des Skeletts mit verschieden starken Einflüssen zugeordnet. Die Position der Vertices richtet sich dann nach den
Positionen der zugeordneten Joints. Maya verfügt bereits über ausgereifte Algorithmen, über
welche die Zuordnung zwischen Vertices und Joints berechnet wird. Bei Problemen mit der
Verformung der Geometrie kann die Zuordnung nachträglich verändert werden. Dieser Vorgang wird als Weighting bezeichnet. Für den Vogel waren nur geringfügige Änderungen im
Bereich des Übergangs der Flügel zum Körper notwendig. Nachdem die Geometrie erfolgreich
mit dem Skelett verbunden wurde, wird sie indirekt über Rotationen der Skelett-Knochen
animiert. Abbildung 4.5 zeigt das fertige Vogelskelett.
Das Skelett kann noch weiter für die spätere Animation optimiert werden Die Joints des
Skeletts besitzen Rotationsachsen, welche typischerweise in Richtung des nächstliegenden
Joints zeigen. Bei der Positionierung der Gelenke in Autodesk Maya wird diese Ausrichtung automatisch ausgeführt. Transliert man ein Gelenk jedoch im Nachhinein, bleibt die
Rotationsachse unverändert und weicht somit von der neuen Ausrichtung des Joints ab.
Dies kann zu Komplikationen bei der Animation führen. Die Rotation der Gelenke wurde
daher überprüft und korrigiert. In Autodesk Maya kann die Korrektur automatisiert über
den Befehl Orient Joint vorgenommen werden. In manchen Fällen ist es jedoch sinnvoll, die
Rotation selbst einzustellen und dabei von der Standardausrichtung zum nächstgelegenen
Joint abzuweichen. Eine solche Anpassung wurde beispielsweise an den Krallen des Vogels
vorgenommen um das Zusammenziehen dieser natürlich erscheinen zu lassen.
4.1. Das Vogelmodell
Abbildung 4.6: Das Control-Rig des Vogels (links) besteht aus Kreisprimitiven und IKHandles. Die Control-Elemente des Gesichts (rechts) bestehen ebenfalls aus NURBS-Circles.
4.1.3
Das Control-Rig
Ein Control-Rig ist eine Gruppe von Hilfsobjekten, die dem Animator das Positionieren des
Charakters erleichtern [Cab08].
Zum Animieren des Charakters dürfen Joints nur rotiert und nicht transliert werden. Durch
die Translation würde sich die Länge der Knochen verändern, dies ist weder in der Realität
möglich, noch im Virtuellen sinnvoll.
Die grundsätzliche Vorgehensweise bei der Charakteranimation besteht darin, das Skelett
durch Rotation der Gelenke in verschiedene Posen zu bringen, die dann ineinander übergeblendet werden können.
Um ein Skelett in eine Pose zu bringen, stehen in Maya zwei verschiedene Techniken zur
Verfügung. Diese werden Forward kinematics (FK) und Inverse kinematics (IK) genannt.
Forward kinematics beschreibt eine Methode bei der die Gelenke nacheinander rotiert werden bis die gewünschte Pose erreicht ist. Keyframes werden bei dieser Methode für die
Rotationsattribute der Knochen gesetzt.
Inverse kinematics beschreibt ein mathematisches System, welches die Rotationen einer
Skelett-Kette ausgehend von der Position eines Startknochen bis zum Endknochen berechnet. Am Ende der Kette wird ein sogenanntes IK-Handle erstellt, über das die Skelett-Kette
bewegt werden kann. Bei Inverse kinematics werden Keyframes auf die Position des IKHandle gesetzt.
Für die Animation des Vogels wurden hauptsächlich Forward kinematics verwendet, da sie
sich gut über Control-Elemente steuern lassen. Die Beine des Vogels erhielten jedoch IKHandles, die bei Bedarf am Boden befestigt werden können. Abbildung 4.6 zeigt das verwendete Control-Rig des Vogels.
Die Augen
55
56
Entwicklung eines neuen Federsystems
Abbildung 4.7: Die Animation der Augen erfolgt über Constraint-Abhängigkeiten und
Driven-Keys. Die Augenlider können unabhängig voneinander geschlossen werden.
Die Geometrien und Shader der Augen wurden aus einem fertigen Paket übernommen1 .
Ein Auge besteht aus den folgenden Teilgeometrien, die zu einer Gruppe zusammengefasst
werden:
• Augapfel
• Iris
• Pupille
• Hornhaut
Hinzu kommt je eine NURBS-Sphere als Augenlid. Ein NURBS-Objekt eignet sich hierfür
sehr gut, um später den Öffnungswinkel des Auges über die dafür vorgesehenen SweepAttribute steuern zu können. Als Ausgangspunkt für die Animation wird der Start-Sweep
der Augen auf 0 und der End-Sweep auf 180 eingestellt. Das Auge erscheint somit vollständig
geöffnet. Bevor mit dem Erstellen der Controls begonnen werden kann, wird der Befehl Freeze
Transformation auf alle Elemente der Augen angewandt werden, um die aktuelle Position
als Standard festzulegen. Außerdem wird über den Befehl Center Pivot der Schwerpunkt der
Gruppe korrigiert.
Blickwinkel und Stellung des Augenlid sollen über drei Kreisobjekte angesteuert werden
können. Je ein Kreisobjekt kontrolliert dabei die Animation eines Auges, über das dritte
Objekt können beide Augen gleichmäßig animiert werden. Die Kreise werden wie in Abbildung 4.6 rechts dargestellt angeordnet. Zwischen dem äußeren Kreis und den beiden inneren
besteht eine Vater-Kind Abhängigkeit. Abschließend werden auch die Attribute der Kreise
mit dem Befehl Freeze-Transformation auf ihre Standardwerte gesetzt. Zwischen der Gruppe
jeden Auges und dem zugehörigen Kreis wird ein Aim-Constraint erstellt, dadurch fokusiert
das Auge immer den Kreis an.
Das Öffnen und Schließen des Auges wird über ein extra-Attribut der Kreis-Primitive gesteuert. Attribute können in Maya über den Befehl Modify - Add Attribute hinzugefügt
1
Quelle: www.highend3d.com
4.1. Das Vogelmodell
Abbildung 4.8: Die Schwanzfedern des Vogelmodells können gespreizt und gebogen werden.
werden. Um die Bedienung zu vereinfachen, werden außerdem die nicht benötigten Attribute für die Rotation und Skalierung der Kreise aus der Anzeige entfernt. Dies kann über
den Menüeintrag Window - General Editors - Channel-Control realisiert werden. Zwischen
dem Sweep-Attributen der Augenlider und dem Blink-Attribut für das Öffnen und Schließen
des Auges wird eine Driven Key Abhängigkeit hergestellt. Abbildung 4.7 verdeutlicht die
Animationsmöglichkeiten anhand einiger Beispielbilder.
Das gesamte Auge wird mit einer sogenannte Lattice-Box umgeben. Sie ermöglicht es die
Form des Auges beliebig zu verändern. Die Möglichkeit Augen zu animieren, kann zur Generierung von Gesichtsausdrücken (Mimik) verwendet werden.
Die Schwanzfedern
Die Schwanzfedern des Vogels können gespreizt und gebogen werden (siehe Abbildung 4.8).
Zur Steuerung dient ein Kreis-Primitiv, das oberhalb der Federn positioniert ist. Das Spreizen
der Federn wurde realisiert, indem die Pivotpunkte der Federn an ihre Wurzel verschoben
wurden und danach die Rotation der Federn in x-Richtung über einen Driven Key mit der
Skalierung des Kreises ebenfalls in Richtung der x-Achse verbunden wurde. Für das Biegen
der Federn nach oben und unten werden diese an eine Joint-Kette gebunden. Die Animation
der Kette steuert ein ikSplineSolver. Die y-Position des Solvers wird wiederum mit Hilfe
eines Driven Keys über die Skalierung des Kreises in y-Richtung gesteuert.
Zunächst wurde anstelle der Joint-Kette eine Kurve für die Verformung der Federn verwendet. Die Federgeometrien wurden mit Hilfe des Wire-Tools an die Form der Kurve gebunden.
Diese Variante führt jedoch dazu, dass sich die Federn der Länge nach verformen. Daher
wurde die Variante zugunsten der oben aufgeführten verworfen.
Die Flügel
Die Flügel wurden ebenfalls mit Driven Keys versehen. Aus der Basisposition wurde durch
Joint-Rotation die Position mit angelegtem Flügel erstellt. Für die Knochen beider Arme
57
58
Entwicklung eines neuen Federsystems
Abbildung 4.9: Die Flügel können über den Parameter Fold am Körper des Vogels angelegt
werden.
Abbildung 4.10: Die Krallen des Vogels können über das Attribut Grab geschlossen werden.
Die Bewegung der Beine erfolgt über IK-Handles.
wurde ein Driven Key, der die Basisstellung in die Stellung mit angelegtem Flügel überführt,
erstellt. Das Control-Object für den Flügel erhielt ein Attribut Fold, das auf den Driven Key
zugreift (siehe Abbildung 4.11). Außerdem wurden zwischen dem Root-Joint der Flügel und
den Control-Objects, Orient Constraints erstellt, wodurch sich die Rotationen des ControlObjects auf die Flügel übertragen lässt.
Die Schwungfedern der Flügel wurden als separate Geometrien angefertigt und ebenfalls an
das Vogelskelett gebunden. Das Weighting wurde optimiert, so dass einzelne Federn von
jeweils einem Knochen im Arm des Vogels abhängig sind. Dadurch schieben sich die Federn
beim Anlegen der Flügel leicht übereinander.
Die Krallen
Für die Krallen wurde eine NURBS-Kurve erstellt und um ein zusätzliches Attribut Grab
erweitert. Der Driven Key für das Schließen der Kralle wurde mit diesem Attribut verbunden. Außerdem wurden IK-Handles für die Beine erstellt. Abbildung 4.10 illustriert die
Animtaionsmöglichkeiten.
Körper und Kopf
Da die Wirbelsäule aus nur wenigen Knochen besteht, wurde auf die Verwendung eines
Spline-IK-Handles verzichtet und stattdessen Parent-Constraints zwischen je einem Kno-
4.2. Die Testsequenz
Abbildung 4.11: Die Bewegungen des Kopfes und das Strecken des Körpers wird über
NURBS-Circles gesteuert.
chen und einem NURBS-Circle erstellt. Die Bewegungen des Kopfes werden auf die gleiche
Art über einen Circle verbunden und mit dem Hals-Knochen gesteuert.
4.1.4
Blend Shapes
Für die Animation des Gesichts wurden Blend Shapes verwendet [DD07] [Der07]. Bei dieser
Animationstechnik werden Duplikate der Geometrie verformt und mit der Basisgeometrie
über einen BlendShape-Knoten verbunden. Die Animation erfolgt durch Überblenden der
beiden Meshs. Blend Shapes werden bevorzugt für Gesichtsanimation verwendet, dafür werden die Duplikate im Kopfbereich so verformt, dass sie die benötigten Gesichtsausdrücke
darstellen.
Für die Testsequenz wurden Blendshapes für das Öffnen und Schließen des Schnabels, sowie
für die Reaktion der ausmodellierten Kopffedern auf Wind erstellt. Abbildung 4.12 zeigt die
Basis-Geometrie des Vogels und die angepassten Duplikate.
Für die Animation der Mundwinkel wurde eine leicht modifizierte Form der BlendShapes verwendet. An die Konturen des Schnabelansatzes wurde eine Kurve angepasst und über einen
Wire-Deformer mit der Geometrie verbunden [Lan07]. Verformungen der Kurve bewirken somit Verformungen der umgebenen Mesh-Struktur. Der Einflussbereich des Wire-Deformers
auf die Geometrie kann nach Belieben erweitert oder eingeschränkt werden. Die Blend Shapes
können durch diese Vorgehensweise auf die Kurven angewandt werden, wodurch keine Duplizierung der komplexeren Hauptgeometrie notwendig ist. Diese Vorgehensweise ist zudem
sehr intuitiv und unkompliziert. Der Einflussbereich wird hauptsächlich durch die Form der
Kurve festgelegt, es müssen weder Vertices der Geometrie ausgewählt werden, noch muss
das Gewicht des Blend Shapes angepasst werden. Abbildung 4.13 zeigt verschiedene Verformungen der Kurve und die Auswirkungen auf das Polygon-Modell des Vogels.
4.2
Die Testsequenz
Um die möglichen Techniken zur Entwicklung des Federsystems nach den festgelegten Qualitätskriterien bewerten und testen zu können, soll eine Animationssequenz erstellt werden.
Die Sequenz muss einigen Kriterien unterliegen, um die Techniken optimal vergleichen zu
können. Diese Kriterien werden wie folgt definiert:
59
60
Entwicklung eines neuen Federsystems
Abbildung 4.12: Blendshapes für die Testsequenz. In der Mitte das Basis-Modell, links
das Duplikat für das Öffnen bzw. Schließen des Schnabels, rechts für die Windreaktion des
Federschopfes.
Abbildung 4.13: Für die Animation der Mundwinkel wurde eine Kombination von WireDeformers und Blend Shapes verwendet.
4.2. Die Testsequenz
Abbildung 4.14: Der Szenenaufbau für die Testsequenz wurde bewusst klassisch, schlicht
gewählt. Der Ventilator erzeugt die zum Testen der Federbewegung notwendige Windkraft.
• Bewegungen des Vogels
Würde der Vogel passiv an einer Stelle stehen und keine Bewegungen ausführen, könnten die Reaktionen des Federsystems auf Verformungen der Geometrie des Vogels nicht
überprüft werden.
• Ausreichende Länge der Sequenz.
Hier muss ein angemessener Kompromiss gefunden werden. Die Szene sollte nicht zu
lang sein, da dies die Renderzeiten unnötig in die Höhe treiben würde. Andererseits
muss sie lang genug sein, damit ein Gesamteindruck bei dem Zuschauer entstehen
kann.
• Reaktion auf Kräfte
In die Szene sollte, neben der Gravitation, eine weitere Kraft auf das Federsystem einwirken, damit getestet werden kann, wie gut das Federsystem auf Einflüsse von außen
reagiert. Die Kraft sollte nur in einem Teil der Sequenz auf die Federn wirken, um einen
Vergleich zwischen dem Standardverhalten und dem Verhalten bei Kräfteeinwirkung
erstellen zu können.
• Einfachheit
Im Mittelpunkt der Sequenz sollte der Vogel stehen. Der Hintergrund sollte entsprechend dezent gehalten sein, damit das Auge nicht von dem Federsystem abgelenkt
wird.
Story der Testsequenz
Der Vogel hüpft durch einen leeren Raum bis er auf eine Steckdose mit eingestecktem
Kabel trifft. Dies erweckt seine Aufmerksamkeit. Daraufhin beginnt er den Weg des eingesteckten Kabels interessiert zu verfolgen. Schließlich erreicht er einen Schalter, der an dem
Kabel befestigt ist und erkennt, dass das Kabel zu einem Ventilator führt. Der Vogel betätigt
freudig den Schalter mit dem Schnabel, breitet seine Flügel aus und genießt das Gefühl des
61
62
Entwicklung eines neuen Federsystems
Abbildung 4.15: Non-lineare Animation mit dem Trax-Editor (oben), ergänzt durch klassische Keyframe-Animation in der Zeitleiste (unten).
frischen Winds in seinem Gefieder.
Abbildung 4.14 zeigt den Szenenaufbau der Testsequenz.
Animation des Vogels
Die Animation des Vogels erfolgt mit einer Mischung aus linearer und non-linearer Animation [DD07] [Der07]. Lineare Animation basiert auf dem Setzen von Keyframes in der
Zeitleiste für die zu animierenden Attribute. Non-lineare Animation fasst eine Menge von
Keyframes zu Gruppen, die in Maya als Clips bezeichnet werden, zusammen. Zunächst wird
zu diesem Zweck ein sogenannter Charakter erstellt. Dieser stellt eine Zusammenfassung
aller animierbaren Attribute einer logischen Einheit zusammen. Für den Vogel wurde ein
Charakter, bestehend aus den Attributen des Control-Rigs erstellt. Die dem Charakter zugeordneten Animations-Clips werden in einer Zeitleiste angeordnet und können dort kombiniert,
gestreckt oder überblendet werden. Der Animationsaufwand soll durch die Techniken der
non-linearen Animation verringert werden und das Animieren soll übersichtlicher gestaltet
sein. Maya bietet einen eigenen, umfangreichen Editor namens Trax-Editor (siehe Abbildung
4.15) zum Arbeiten mit Animations-Clips.
Für den Charakter des Vogels wurden Clips für alle komplexen oder sich wiederholenden
Bewegungen erstellt. Beispielsweise für Springen oder Drücken des Schalters. Kleinere Bewegungen, die nur für die spezielle Situation von Interesse sind, wurden parallel auf der
Zeitleiste mit Hilfe von Keyframes animiert. Ein Beispiel hierfür sind die Bewegungen des
Kopfes.
Lichtsetzung und Wahl des Renderers
Die Testsequenzen mit den verschiedenen Federsystemen sollen nach Möglichkeit alle mit
4.3. Federsystem auf Basis der Fur-Komponente von Maya
dem gleichen Renderer erstellt werden. Dadurch soll ein späterer Vergleich vereinfacht werden. Externe Renderer unterstützen in der Regel nur eine begrenzte Zahl Maya-eigener Funktionen. Um in den möglichen Techniken nicht durch den Renderer eingeschränkt zu sein, soll
hier einer der integrierten Renderer - Maya-Software oder Mental Ray - verwendet werden
[Lan08]. Für ein qualitativ hochwertiges Ergebnis sollen außerdem Methoden der Globalen
Beleuchtung zum Einsatz kommen. Da der Maya-Software Renderer diese Methoden nur
begrenzt unterstützt, wird Mental Ray als Renderer für die Testsequenzen verwendet.
Für die Beleuchtung der Szene wurde auf die realistische Tageslichtsimulation Physical Sun
and Sky von Mental Ray zurückgegriffen. Das Directional Light, das von diesem System
generiert wird, ist das einzige Licht in der Szene.
Auch die Rendereinstellugnen sollen in den unterschiedlichen Testsequenzen unverändert
bleiben. Verwendet wird das Preset Production von Mental Ray, zusätzlich wurde Raytracing
aktiviert. Die gesamte Sequenz hat eine Länge von 1.200 Frames, dies entspricht 50 Sekunden Spielzeit. Die Auflösung wird auf 640x480 Pixel festgelegt. Die Renderzeit für ein Frame
der Testsequenz ohne Federsystem auf dem Testrechner betrug im Schnitt 12 Sekunden.
Mit Hilfe der erstellten Testsequenzen können nun, in den nächsten Abschnitten, verschiedene Federsysteme getestet und bewertet werden. Diese Systeme setzen sich aus den im letzen
Kapitel entwickelten Techniken und Methoden zusammen. Als Basis für die Verteilung der
Federn dienen verschiedene Fellsysteme.
4.3
Federsystem auf Basis der Fur-Komponente von Maya
Das erste Federsystem soll auf Basis der Fur Komponente von Autodesk Maya erstellt werden.
Die Maya-Fur Komponente ist als Bestandteil der Unlimited Variante von Maya vollständig
in die Anwendung integriert [DD07] [Der07]. Polygon-, NURBS- und Subdivision-Surface
Geometrien kann über eine Schnellstartleiste eines von 18 Fell-Presets zugewiesen werden.
Dies erzeugt einen Fur-Knoten der eine große Anzahl von Attributen enthält. Mit Hilfe des
Maya Artisan Tools können die meisten Attribute direkt auf die Geometrie gemalt werden.
Zu den Attributen werden automatisch Graustufen-Maps erzeugt, die auf Grundlage des UVLayouts die Intensität des Attributs an den verschiedenen Stellen der Geometrie speichern.
Dem UV-Layout kommt bei der Arbeit mit Maya-Fur somit besondere Bedeutung zu. Es
muss den folgenden Anforderungen genügen:
• Die UVs dürfen sich nicht überlagern.
• Alle UVs müssen im linken, oberen Quadranten des UV-Texture-Editors angeordnet
werden.
• Um das Kämmen des Fells zu vereinfachen, sollten die einzelnen UV-Shells nach ihrer
Kämmrichtung gedreht angeordnet werden.
• Die Verteilung der UVs sollte möglichst gleichmäßig sein.
63
64
Entwicklung eines neuen Federsystems
Abbildung 4.16: Bild der Testsequenz mit Maya-Fur.
Für den Vogel wurde bereits in Abschnitt 4.2 ein UV-Set erstellt, das diesen Anforderungen
gerecht wird (siehe. Abbildung 4.4).
Die Dichte des Fells wird über das Attribut Density gesetzt. Für die Testsequenz wurde ein
Wert von 50.000 verwendet. Das Fur-System von Maya enthält eine sehr große Anzahl Attribute, Abbildung 4.17 zeigt die Basisattribute. Zu jedem dieser Attribute existieren nochmals
Untermenüs, in denen Parameter wie Noise, d.h. Variationen des Wertes, spezifiziert werden
können. Es ist sehr zeitintensiv, die optimale Kombination der Werte zu finden, die zu dem
gewünschten Aussehen des Fells, bzw. in diesem Fall der Federn, führen. Für die Testsequenz wurde das Duckling-Preset 2 verwendet. Davon ausgehend wurden hauptsächlich die
Attribute Base Color, Tip Color, Length, Baldness, Inclination, Base Width, Tip Width, Roll
und Clumping angepasst. Außerdem wurde die Map-Größe auf 512 Pixel erhöht.
Die Renderzeit für ein Frame der Testsequenz betrug mit diesem Federsystem etwa 55 Sekunden. Bewegungen des Fells und Reaktion auf Kräfte können mit der Fur-Komponente
allein nicht realisiert werden. Abbildung 4.16 zeigt ein Bild der Testsequenz mit Maya Fur
als Federsystem.
4.3.1
Kombination eines Haar-Systems mit Fur
Um das mit der Fur Komponente von Maya erstellte Fell dynamisch auf Bewegungen und
Kräfte reagieren zu lassen, kann es mit einer weiteren Komponente - Maya Hair - kombiniert
werden. Mit Maya Hair könnnen dynamische Haarsysteme erstellt werden, mit deren Hilfe
Haarfrisuren und Haarverhalten simuliert werden kann [DD07] [Der07]. Für das Federsystem
soll lediglich das Verhalten auf das vorhandene Fell übertragen werden.
Das Haar-System von Maya basiert auf einer Menge Haar-Follikeln. Jedes Follikel wird durch
eine NURBS-Kurve repräsentiert. Die Kurven werden dynamisch verformt. Die Bewegung
anderer Objekte kann über die Haar-Follikel gesteuert werden.
2
Duckling (engl.) = Entenküken
4.3. Federsystem auf Basis der Fur-Komponente von Maya
Abbildung 4.17: Basisattribute der Maya Fur Komponente.
65
66
Entwicklung eines neuen Federsystems
Abbildung 4.18: Bild der Testsequenz mit dynamischem Fur.
Um das schon bestehende Fell mit einem Haar System zu verbinden, stellt Maya den Befehl
Attache Hair System to Fur zur Verfügung.
Das Haar-System stellt Attribute zur Verfügung über die die Bewegung der Haare angepasst
werden kann. Die Mindestanforderungen an ein Federsystem aus Kapitel 3 beinhalten die
Fähigkeit der dynamischen Verformung bei Bewegung und die Interaktion mit Kräften wie
Wind.
Die Verformung bei Bewegung wird durch die Kombination mit der Hair-Komponente gewährleistet. In die Komponente ist zusätzlich bereits eine Gravitatsionskraft eingearbeitet. Außerdem kann das Verhalten der Haare über Attribute wie Masse weiter konfiguriert werden.
Maya bietet für die Simulation von Kräften sogenannte Fields an, die mit der Hair-Komponente
kombiniert werden können. Fields sind globale oder lokale Kräfte die auf Objekte wirken.
Sie können vom Typ Stand-alone oder Object sein. Stand-alone Fields beeinflussen Objekte
von einer stationären oder beweglichen Position in der Arbeitsfläche, während Object Fields
an Objekte in der Szene gebunden sind.
In der Testsequenz wurde ein Ventilator integriert, um die Qualität der Interaktion mit
Kräften der jeweiligen Federsysteme testen zu können. Für die Simulation des Windstroms
des Ventilators wurde für dieses Federsystem das Stand-alone Field Air verwendet. Dieses
Field ist speziell für die Simulation von Luftbewegungen konzipiert und daher für den Ventilator am Besten geeignet. Das Field wird vor die Rotorblätter des Ventilators positioniert.
Der Ventilator wird erst im Verlauf der Animation eingeschaltet, daher wird das Attribut
Speed des Fields über Key Frames animiert. Von Beginn der Animation bis zum Drücken
des Schalters wird der Wert auf 0 gesetzt. Nach dem Anlaufen des Ventilator wird das Attribut auf den Wert 100 erhöht.
Die Renderzeit steigt durch die Verwendung des Haarsystems und des Fields aufgrund der
Berechnungszeiten der Position der Haar auf 1:20 Minuten an. Abbildung 4.18 zeigt ein Bild
4.4. Federsystem auf Basis von Shave and a haircut
der Testsequenz.
4.4
Federsystem auf Basis von Shave and a haircut
Das zweite Federsystem soll auf Basis von Shave and a haircut erstellt werden. Shave
and a haircut ist eine kommerzielle Haar und Fellsimulation, die über ein Plug-In in 3DSoftwareanwendungen wie Autodesk Maya integriert werden kann [Smi09]. Die Software
wird von dem Unternehmen Joe Alter, Inc.3 vertrieben. Der Gründer des Unternehmens
Joseph Alter arbeitete bereits bei Industrial Light and Magic an der dort eingesetzten Haarsimulation. Nach der Installation des Plug-Ins, stehen zur Bedienung zwei Menüs in der
Dateileiste und eine Shelf in der Schnellstartleiste von Maya zur Verfügung.
Anmerkung zur Kompatibilität mit Autodesk Maya:
Zu Beginn dieser Ausarbeitung stand noch kein Plug-In zur Verfügung, das mit der aktuellen
Version Maya 2009 kompatibel war. Daher wurde die Testsequenz in die Vorgängerversion
Maya 2008 überführt. Dieser Vorgang verlief ohne Probleme, da zur Modellierung und Animation des Vogels keine zu Maya 2008 inkompatiblen Funktionen verwendet wurden. Noch
während der Arbeit an der Testsequenz veröffentlichte Joe Alter, Inc. eine zu Maya 2009
kompatible Version ihrer Software. Erste Tests mit dieser Version zeigten jedoch, dass sie
noch sehr instabil arbeitet und keine erkennbaren, neuen Funktionen bereitstellt. Aus diesem
Grund wurde die Testsequenz mit Maya 2008 und Shave and a haircut in der Version 5.0v60
fertiggestellt.
Shave and a haircut arbeitet ähnlich wie das Hair-System von Maya mit Guide-Hairs. Eine
Geometrie oder Teile von Geometrien können über Anwahl eines von 11 Presets mit Haaren
bedeckt werden. Die Selektion kann wahlweise Polygon-Geometrien, NURBS-Oberflächen
oder Subdivision Surfaces beinhalten, zudem gibt es die Möglichkeit, eine Auswahl an Faces
einer Polygon-Geometrie mit Haaren zu versehen (siehe Abbildung 4.19).
Die Haare können im nächsten Schritt in Länge und Form angepasst werden, so dass eine
beliebig komplexe Frisur entsteht. Die Werkzeuge zur Bearbeitung der Guide-Hairs befinden sich in der Schnellstartleiste mit der Aufschrift Shave (siehe Abbildung 4.20), die bei
der Installation erzeugt wurde. Beim Bearbeiten der Haare erweisen sich insbesondere die
verschiedenen Selektionsmöglichkeiten für Haarpartien als hilfreich. So kann die Selektion
beispielsweise über markieren von Punkten am Ende der Guide-Hairs erfolgen, oder über solche an der Haarwurzel. Das Styling der Haare erfolgt mit Hilfe des Artisan Tools. Hierüber
können sehr intuitiv Länge, Kämmrichtung und Winkel einzelner Haarpartien angepasst werden. Abbildung 4.20 zeigt die zur Verfügung stehenden Werkzeuge.
Neben den Guide-Hairs kann auch die Beschaffenheit der einzelnen gerenderten Haare angepasst werden. Zu diesem Zweck stellt Shave and a Haircut einen shaveHairShape-Knoten
mit einer Reihe von Attributen zur Verfügung. Hier können beispielsweise Breite und Länge
der Haare, ihre Welligkeit und Shading-Attribute, wie Farbe und Glanzlicht spezifiziert wer3
www.joealter.com
67
68
Entwicklung eines neuen Federsystems
Abbildung 4.19: Über das angelegte Menü Shave kann ein neues Haarsystem aus einer
Vorlage erstellt werden.
Abbildung 4.20: Die Schnellstartleiste von Shave and a haircut.
den. Die Parameter können entweder über Werte global für das gesamte Haar festgelegt
werden oder über Schwarz-Weiß Texturen differenziert für einzelne Regionen. Dem Vogel
wurde so eine Cut-Map zugewiesen, die die kahlen Bereiche Schnabel und Krallen definiert.
Zunächst soll das Haarsystem von Shave and a haircut so konfiguriert werden, dass jedes
erzeugte Haar eine Feder repräsentiert. Zu diesem Zweck werden die Attribute für die Dicke
der Haare auf einen hohen Wert eingestellt. Die Root-Thickness hat einen Wert von drei
und die Tip Thickness einen Wert von 0.5.
Ein Attribut, das nicht in abgewandelter Form in dem Fur-System von Maya enthalten ist,
sind die Hair Passes. Der Wert dieses Attributs definiert, wie oft die eingestellte Anzahl an
Haaren mit zufälliger Anordnung übereinander gerendert wird. Das Haar wirkt somit voller
und es entsteht ein Blur-Effekt, d.h. das Fell wirkt verschwommen. Abbildung 4.21 zeigt den
Vogel mit verschiedenen Einstellungen des Wertes. Für die Testsequenz wurde ein Wert von
zwei verwendet.
Rendering
4.4. Federsystem auf Basis von Shave and a haircut
Abbildung 4.21: Testrenderings mit Einstellungen des Attributs Hair Passes von eins bis
drei.
Shave and a haircut verwendet einen eigenen Renderer. Dieser ist kompatibel zu dem Software Renderer von Maya. Die Haare werden als Post Process in die Szene integriert, Shadows
werden zuvor berechnet und gerendert.
Um die Haare in eine mit Mental Ray gerenderte Szene zu integrieren stehen dem Anwender
zwei Varianten zur Auswahl:
• Die Haare werden in einem extra Pass mit dem sogenannten Buffer -Renderer von
Shave and a haircut herausrendern, und im Compositing zusammengefügt.
• Die Haare werden in Hair Primitives, die von Mental Ray dargestellt werden können,
konvertiert.
Die beiden Methoden führen zu unterschiedlichen Darstellungen der Haare. Abbildung 4.22
zeigt einen Vergleich der beiden Verfahren. Auf dem Bild ist deutlich zu erkennen, dass
die Verwendung von Hair Primitives zu einem verschwommenen Ergebnis führt. Der BufferRender von Shave and a haircut liefert im direkten Vergleich ein detailreicheres Ergebnis. Die
Renderzeiten für ein Bild der Testsequenzen, betrugen unter Verwendung der Hair Primitives
38 Sekunden und mit dem Buffer-Renderer 46 Sekunden. Die Testsequenz wurde in Passes
gerendert, da die höhere Renderzeit im Vergleich zum Rendern von Hair Primitives, durch
die Qualität des Ergebnisses gerechtfertigt ist. Während des Batch-Renderns kam es zu Problemen mit der Darstellung des Fells. Sowohl mit dem Software-Renderer von Maya als auch
mit Mental Ray kam es zu Differenzen zwischen der Position der Federn und der Geometrie.
Dieses unerwünschte Verhalten wird durch Abbildung 4.23 verdeutlicht. Das Problem ließ
sich letztlich auf die Einstellungen der verwendeten Kamera zurückführen. Der Parameter Fit
Resolution Gate ist standardmäßig auf den Wert fill eingestellt. Dieser Parameter kontrolliert
die Größe der zu rendernden Region (Resolution Gate) relativ zur Kamera (Film Gate). Um
das Abstandsproblem zwischen Geometrie und Federn zu lösen, muss dieser Wert von fill
auf horizontal geändert werden.
69
70
Entwicklung eines neuen Federsystems
Abbildung 4.22: Die beiden Rendermöglichkieten mit Mental Ray im Vergleich. Links:
Rendern in mehreren Passes. Rechts: Verwendung der Hair Primitives.
Abbildung 4.23: Bei Standardeinstellungen des Parameters Fit Resolution Gate der Kamera
kommt es zu Differenzen zwischen der Position der Federn und der Geometrie.
4.5. Federsystem auf Basis von Shave and a haircut und Instanzen
Farbe
Über den shaveHairShape-Knoten können Farbwerte für die Spitze und Basis der Haare über die Attribute Tip Color und Root Color gesetzt werden. Über einen Prozentwert
können zusätzlich sogenannte Mutant Hairs hinzugefügt werden, für die eine weitere Farbe
definiert werden kann. Die Mutant Hairs werden zufällig in der gewünschten Anzahl in das
Fell eingestreut. Für die Testsequenz wurden keine Mutant Hairs verwendet. Neben einer
globalen Farbeinstellung für das gesamte Fell-System können Farb-Maps mit den Attributen
verbunden werden. Dadurch ist es möglich, Federregionen mit unterschiedlichen Farben zu
erzeugen und diese ineinander überblenden zu lassen.
4.4.1
Shave and a haircut und Forces
Die Integration einer Gravitationskraft, fällt im Vergleich zu dem Fur-System von Maya
leicht [Smi09]. Sie muss lediglich für die schon vorhanden Guide-Hairs aktiviert werden. Die
Kombination mit einem zusätzlichen System, wie der Hair-Kompontente von Maya, ist nicht
nötig.
Die Reaktionen des Fells werden in Shave and a haircut nicht während des Renderns berechnet, sondern müssen zuvor einmalig für die gesamte Szene generiert werden. Dabei wird
für jedes Frame eine STAT-Datei erzeugt, in der die generierten Daten gespeichert werden.
Diese Dateien sind im Schnitt ca. 2 MB groß, wodurch sich die Projektgröße bei der Beispielsequenz von 1200 Frames um ca. 2,4 GB erhöht. Für den Windstrom des Ventilators
kann das Force-Field aus Abschnitt 4.4 verwendet werden.
Die Renderzeit für ein einzelnes Frame der Testsequenz lag bei etwa 56 Sekunden.
4.5
Federsystem auf Basis von Shave and a haircut und
Instanzen
Für das dritte Federsystem wird, wie bereits bei dem zweiten, Shave and a hairuct als Basis verwendet. Allerdings wird hier die Möglichkeit, an Stelle von Haaren, Geometrien in
Abhängigkeit der Guide-Hairs auf der Oberfläche zu verteilen, ausgenutzt [Smi09].
Zunächst muss hierfür eine Grundgeometrie erstellt werden, die dann auf der Oberfläche des
Vogelmodells verteilt werden kann. Bei der Erstellung dieser Grundgeometrie, müssen einige
Vorkehrungen getroffen werden. Für die Testsequenz wurde eine Polygon-Plane mit sechs
Unterteilungen in y-Richtung erstellt. Obwohl die Anzahl der Polygone der verwendeten Geometrie aus Performance-Gründen gering sein muss, ist es sinnvoll einige Unterteilungen in
y-Richtung einzuarbeiten. So können Attribute zum Biegen der Haare auf das instanzierte
Mesh wirken. Diese könnten sonst nicht verwendet werden. Für eine korrekte Darstellung
sollte die Geometrie eine Höhe von einer Einheit nicht überschreiten und im Ursprung beginnen. Wird die Geometrie in y-Richtung verschoben, entstehen Überschneidungen oder
Lücken zwischen der Feder-Geometrie und dem Basismodell, also dem Vogel. Sinnvoll ist
es außerdem die History des Objekts zu löschen und die Transformationen zurückzusetzen.
71
72
Entwicklung eines neuen Federsystems
Abbildung 4.24: Bild der Testsequenz mit Instanzen.
Dem Alpha-Kanal des Feder-Shaders wird als Textur die Kontur einer Feder auf weißem
Hintergrund übergeben. Als Grundlage für die Anordnung der Instanzen werden die schon
fertig gestylten Guide-Hairs aus dem vorherigen Beispiel verwendet. Damit die Federgeometrien nicht verzerrt werden, muss im Attribute-Editor für die Root-Thickness und die
Tip-Thickness jeweils ein Wert von eins eingetragen werden. Für die Testsequenz wurden
25.000-Haarinstanzen generiert, die in drei Passes gerendert wurden. Abbildung 4.24 zeigt
ein Bild der Testsequenz mit Instanzen als Gefieder. Die Renderzeit für ein solches Bild betrug ca. 45 Sekunden.
Farbe
Da die Instanzen aus einer Geometrie erzeugt werden, kann zur Texturierung ein beliebiger Shader verwendet werden. Somit stehen für die Grundgeometrie alle Möglichkeiten, die
Maya zur Texturierung bereitstellt, zur Verfügung. Allerdings ist es nicht möglich, die Farbinformation, die in dem Shave-Knoten definiert werden, auf die Instanzen zu übertragen. Der
Grund hierfür ist, dass die Instanzen alle auf das gleiche UV-Set zurückgreifen. Die einzige
Lösung um verschiedenfarbige Regionen zu erzeugen, besteht darin, mehrere Shave-Knoten
auf einem Objekt zu erzeugen und jedem Fellsystem ein Instanzobjekt mit eigenem Shader
zuzuweisen.
4.6
Bewertung der Federsysteme
In den letzten Abschnitten wurden die folgenden drei Federsysteme entwickelt und mit Hilfe
der Testsequenz überprüft.
4.6. Bewertung der Federsysteme
• Federsystem 1: System auf Basis von Maya-Fur in Kombination mit Maya-Hair
• Federsystem 2: System auf Basis von Shave and a haircut
• Federsystem 3: System auf Basis von Shave and a haircut mit Instanzen als Federn
In diesem Abschnitt soll nun ein Vergleich der Systeme anhand der zu Beginn der Arbeit
festgelegten Qualitätskriterien durchgeführt werden. Anhand des Vergleichs kann dann das
beste System für die Generierung von Gefieder bestimmt werden.
Renderzeit
Die geringste Renderzeit hatte das Federsystem 3 mit 45 Sekunden für ein durchschnittliches Einzelbild der Testsequenz. Bei Federsystem 2 betrug die Renderzeit etwa 56 Sekunden. Federsystem 1 hatte mit etwa 80 Sekunden die mit Abstand höchste Renderzeit für ein
einzelnes Bild der Testsequenz.
Anmerkungen: Die Renderzeit hängt von einigen Faktoren ab und kann daher im Normalfall
nicht isoliert betrachtet werden. Es wurde je nach Federsystem eine unterschiedliche Anzahl Federn generiert und auch das Volumen der Haarelemente variiert. Um dennoch einen
Vergleich vornehmen zu können wurden Gefieder erstellt, die in ihrer Dichte auf der Geometrie in etwa übereinstimmen und in ihren restlichen Eigenschaften dem Cartoon-Stil der
Sequenz angepasst sind. Der Vergleich der Renderzeiten bezieht sich daher vor allem auf
die benötigte Zeit für ein optisch ähnliches Ergebnis. Für den praktischen Einsatz liefern
die Werte eine gute Entscheidungshilfe. Tabelle 4.1 gibt einen detaillierten Überblick aller
getesteten Verfahren. Hierin ist auch eine Auflistung der Menge an generierten Federn der
Systeme für die Testsequenz.
Bedienbarkeit
Die Bedienbarkeit des Systems hängt zu einem großen Teil von der Bedienbarkeit des zugrunde liegenden Fellsystems ab. Federsystem 1 verwendet die Komponente Maya-Fur in
Kombination mit Maya-Hair. Maya-Fur bietet eine sehr große Anzahl an Attributen. Zudem
kann zu nahezu jedem Attribut eine Bilddatei erzeugt werden, die den Wert des Attributs auf
Grundlage des UV-Layouts der Geometrie individuell bestimmt. Die Vielzahl der Attribute
führt zu einer erhöhten Einarbeitungszeit in das System. Die Bezeichnungen der Attribute
sind nicht immer intuitiv verständlich, dies erschwert die Arbeit mit der Komponente zusätzlich. Die Erstellung von Maps für die einzelnen Attribute kann mit Hilfe des Artisan-Tools
von Maya vorgenommen werden. Für viele Attribute funktioniert dies sehr gut, bei anderen,
wie etwa dem Attribut für die Kämmrichtung des Fells können zufriedenstellende Ergebnisse
nur über die Verwendung eines Grafikprogramms erzielt werden. Die Kombination mit der
Komponente Maya-Hair funktioniert problemlos. Allerdings ist zu beachten, dass sich die
Attribute beider Systeme gegenseitig beeinflussen und somit die Arbeit mit dem System
weiter erschweren.
73
74
Entwicklung eines neuen Federsystems
Federsystem 2 und 3 basieren auf dem Plug-In Shave and a haircut. Das Plug-In ist sehr
übersichtlich gestaltet. Auch hier steht eine Reihe von Attributen zur Konfiguration des Fells
zur Verfügung. Die Benennung dieser Attribute ist intuitiv und erleichtert somit die Einarbeitung. Zum frisieren der Haare steht eine eigene Auswahl an Werkzeugen zur Verfügung.
Die Arbeit ähnelt der eines echten Friseurs und ist sehr intuitiv. Auch kleinere Änderungen
können präzise vorgenommen werden.
Federsystem 3 erfordert, neben der Einarbeitung in das Plug-In Shave and a haircut, die Erstellung von Federgeometrien mit den Polygon- und Texturierungswerkzeugen von Autodesk
Maya. Die Geometrien müssen speziell auf die Verwendung als Instanzen vorbereitet werden.
Der Prozess erfolgt nach einem festen Schema und ist übersichtlich. Dennoch bildet er im
Vergleich zu Federsystem 2 einen zusätzlichen Arbeitsschritt.
Flexibilität
Alle Federsysteme bieten die Möglichkeit Länge und Dicke der einzelnen Federn anzupassen.
Federsystem 3 bietet zudem die Möglichkeit die Silhouette der Feder über eine Alpha-Map
festzulegen. Ebenfalls alle Systeme bieten Attribute, über die die Verteilung der Federn auf
der Vogelgeometrie gesteuert werden kann. So kann etwa die Dichte der Federn eingestellt
werden und es können kahle Stellen definiert werden.
Neben der Federform und Verteilung unterscheiden sich die verschiedenen Vogelarten durch
die Farbgebung einer einzelnen Feder und des Farbmusters des gesamten Gefieders. In Federsystem 1 und 2 können die Farben für einen Farbverlauf von der Basis der Feder bis zur
Spitze definiert werden. Da die Federn in Federsystem 3 Geometrien sind, kann hier eine
beliebige Farbtextur als Feder angezeigt werden. Auf diese Weise können auch aufwändige
Muster, wie sie etwa in einer Pfauenfeder vorkommen, eingearbeitet werden. Die Farbgebung
des Gefieders kann bei Federsystem 3 allerdings nur umständlich realisiert werden. Für jede
gewünschte Farbe im Gefieder muss ein eigenes Haarsystem mit einer neuen Federgeometrie
erzeugt werden. Bei Federsystem 1 und 2 ist hingegen kein Umweg über weitere Haarsysteme
notwendig. Das Muster für das Gefieder kann dem bestehenden System per Farbdatei übergeben werden und wird daraufhin automatisch auf die einzelnen Haarinstanzen übertragen.
Qualität des Ergebnisses
Die Qualität des Ergebnisses hängt im Einzelfall stark vom gewünschten Effekt und Stil
des Anwenders ab. Alle Systeme sind in der Lage ein angemessen dichtes Gefieder zu erzeugen. Auch die Reaktion auf Bewegung und Kräfte wird von allen drei Systemen zufriedenstellend umgesetzt. Bei Nahaufnahmen des Gefieders zeigen sich jedoch Unterschiede.
Während Federsystem 3 hier ein hochwertiges Ergebnisbild liefert, in dem die einzelnen Federn abgegrenzt voneinander gut zu erkennen sind, verschwimmen die Federkonturen bei
Federsystem 1 und 2. Zudem ist bei Nahaufnahmen bei Federsystem 1 und 2 deutlich der
geringere Detailgrad der einzelnen Federn im Vergleich zu Federsystem 3 zu erkennen.
Tabelle 4.1 fasst die Federsysteme anhand der Qualitätskriterien nochmals zusammen. Dabei wird zur Veranschaulichung eine Abstufung in Ränge vorgenommen. Das System mit
4.7. Zusammenfassung
der besten Bewertung in einem der Qualitätskriterien erhält drei Punkte, gekennzeichnet
durch +++. Das System mit der zweitbesten Bewertung erhält zwei Punkte (++) und
das mit der schlechtesten Bewertung erhält einen Punkt (+). Können mehrere Systeme für
ein Qualitätskriterium als gleichwertig angesehen werden, so erhalten sie die gleiche Anzahl
Punkte in Relation zur Leistung und zum dritten Federsystem. Die Zeile Bewertung enthält
als Vergleichskriterium für die Güte des Systems, die Aufsummierung der erreichten Punkte
in den Qualitätskriterien. Der Vergleich der entwickelten Federsysteme zeigt, dass alle zufriedenstellende Ergebnisse liefern und die festgelegten Qualitätskriterien erfüllen. Im direkten
Vergleich ergibt sich jedoch eine eindeutige Abstufung der Systeme untereinander:
Federsystem 1. Auf Basis von Maya Fur und Maya Hair
Das Federsystem ist in Qualität und Flexibilität dem zweiten System sehr ähnlich. Bei den
restlichen Kriterien bleibt es hinter diesem jedoch zurück. Daher ist das zweite System dem
ersten in allen Bereichen vorzuziehen. Dies spiegelt sich auch in der Bewertung des Systems
wieder. Mit 6 Punkten liegt das Federsystem deutlich hinter den beiden anderen (9 und 10
Punkte).
Federsystem 2. Auf Basis von Shave and a haircut
Das Federsystem bietet zufriedenstellende Ergebnisse. Die Bedienung ist intuitiv. Die Renderzeiten sind gut und bleiben auch bei komplexeren Geometrien stabil. Lediglich bei Nahaufnahmen zeigen sich Schwächen. Dem System sollte in jedem Fall der Vorzug vor dem ersten
gegeben werden. Bei Nahaufnahmen liefert das dritte System jedoch bessere Ergebnisse.
Das System erhielt eine Bewertung von 9 Punkten.
Federsystem 3. Auf Basis von Shave and a haircut und Instanzen
Das Federsystem erfüllt die Qualitätskriterien am Besten. Insbesondere im Bereich der Bildqualität liefert es sehr gute Ergebnisse. Die Nahaufnahmen sind erheblich detailreicher als
die der beiden anderen Systeme. Lediglich bei Gefieder mit sehr aufwändigem, vielfarbigem
Muster sollte das System zugunsten des zweiten Federsystems verworfen werden. Mit 10
Punkten erhält dieses Federsystem die beste Bewertung der drei verglichenen Systeme.
4.7
Zusammenfassung
In diesem Kapitel wurden drei Federsysteme, auf Basis der ermittelten Methoden und Techniken des vorhergehenden Kapitels, erstellt:
1. Federsystem auf Basis von Maya Fur und Maya Hair
2. Federsystem auf Basis von Shave and a haircut
3. Federsystem auf Basis von Shave and a haircut mit Instanzen
Um einen Vergleich der Systeme vornehmen zu können wurde zunächst eine Testsequenz
erstellt. Die Sequenz beinhaltet einen Vogelcharakter, auf den die Systeme angewandt wer-
75
76
Verfahren
Federsystem 1:
Maya-Fur und Maya Hair
Federsystem 2:
Shave and a haircut
Federsystem 3:
Shave and a haircut mit Instanzen
Federanzahl
50.000
10.000 in 2 Passes
25.000 Haarinstanzen in 2 Passes
Renderzeit
80 Sekunden
+
56 Sekunden
++
45 Sekunden
+++
Bedienbarkeit Lange Einarbeitungszeit, Attribute
beeinflussen sich gegenseitig.
+
Intuitive Werkzeuge und Attribute.
Kurze Einarbeitungszeit.
+++
Intuitive Werkzeuge und Attribute.
Kurze Einarbeitungszeit. Instanzen
müssen erzeugt werden.
++
Flexibilität
Über Attribute und Farbdatei.
++
Über Texturierung und zusätzliche
Haarsysteme.
++
Haarqualität Bei Nahaufnahmen verschwommen
und wenig detailreich sonst gut.
++
Bei Nahaufnahmen verschwommen
und wenig detailreich sonst gut.
++
Sowohl bei Nah- als auch bei Fernaufnahmen sehr gutes Ergebnis.
+++
Bewertung
+++++++++ (9 Punkte)
++++++++++ (10 Punkte)
Bild
++++++ (6 Punkte)
Tabelle 4.1: Übersicht der Federsysteme mit Bewertung in Hinblick auf die Qualitätskriterien.
Entwicklung eines neuen Federsystems
Über Attribute und Farbdatei.
++
4.7. Zusammenfassung
den können. Um die Interaktion des Gefieders mit Kräften testen zu können, wurde in die
Testsequenz ein Ventilator als Windquelle eingebaut, der von dem Vogel betätigt wird.
Nachdem die Testsequenzen mit den jeweiligen Federsystemen erstellt wurden, konnten die
Systeme anhand der Qualitätskriterien bewertet und verglichen werden. Das dritte System
auf Basis von Shave and a haircut mit Instanzen lieferte hier die zufriedenstellensten Ergebnisse. Im nächsten Kapitel soll daher ein Script implementiert werden, das dem Anwender
die Umsetzung dieses Systems erleichtert.
77
Kapitel 5
Implementierung eines MEL-Scripts
zur Anwenderunterstützung
Im letzten Kapitel wurden drei neue Federsysteme entwickelt und verglichen. Das im direkten
Vergleich beste System setzt auf dem komplexen Haarsystem von Shave and a haircut auf.
In diesem Kapitel soll ein Script in der Programmiersprache MEL erstellt werden, das dem
Anwender die Arbeit mit dem entwickelten System erleichtert. Ein Grundgerüst soll über
das Script automatisch generiert werden. Über eine grafische Benutzeroberfläche sollen die
wichtigsten Attribute des Systems dann vom Benutzer genauer spezifiziert werden.
5.1
Einleitung
Bei der Entwicklung eines Computeranimationsfilms steht die effiziente Arbeit mit den zur
Verfügung stehenden Software-Paketen im Vordergrund. Zu diesem Zweck werden die vorhandenen Komponenten den eigenen Bedürfnissen angepasst. Dies erfolgt über die Implementierung eigener Programmbausteine, in Form von Plug-Ins oder Scripts.
Dieses Vorgehen dient zum einen der Automatisierung immer wiederkehrender Vorgänge.
Anstatt den Anwender die Aufgaben jedes Mal per Hand ausführen zu lassen, kann ein
Script geschrieben werden, das diesen Vorgang automatisch ausführt. Zum anderen kann
die Attribut- und Tool-Auswahl den individuellen Bedürfnissen angepasst werden. Typische
Beispiele für Aufgaben die über ein Programm automatisiert werden können sind:
• Anordnen von Objekten in einer logischen Reihenfolge. Beispiel: Ziegelsteine einer
Mauer.
• Erstellen eines Shading-Netzwerks.
• Erstellen spezifischer Partikeleffekte wie Abgase oder Nebel.
In diesem Kapitel wird ein Script implementiert, das auf den Einsatz des in Kapitel 4 neu
entwickelte Federsystems optimiert ist.
79
80
Implementierung eines MEL-Scripts zur Anwenderunterstützung
5.2
Die Script-Sprache von Maya
Maya verwendet zwei Programmiersprachen, über die es auch möglich ist eigene Erweiterungen zu programmieren [MRW05] [Gou03]. Programmiert ist Maya selbst in der objektorientierten Sprache C++. Auf C++ setzt eine Scriptsprache namens MEL auf. MEL ist
ein Akronym für Maya Embedded Language. Die grafische Benutzeroberfläche wird über
MEL-Befehle gesteuert, daher können nahezu alle Funktionen der Software über MEL angesprochen werden. Einer der großen Vorteile der Programmiersprache MEL ist es, dass
sie als Scriptsprache eine sogenannte Interpreter-Sprache ist. Programme, die in typischen
Programmiersprachen wie C++ geschrieben sind, müssen compiliert werden [UKP07]. Im
Gegensatz dazu können Programme, die in einer Scriptsprache erstellt wurden, direkt ausgeführt werden. MEL-Scripte können direkt in Maya geschrieben und getestet werden und
benötigen keinen externen Compiler oder Debugger. Wird ein MEL-Befehl ausgeführt, so
greift dieser auf eine C++ Funktion der Maya API zu. Interpreter-Programme sind, da sie
zur Laufzeit interpretiert werden müssen, in der Regel langsamer als compilierte Programme.
Außerdem gibt es keine Trennung aus Anwendung und Source-Code. Werden Erweiterungen
mit MEL programmiert ist der Programmcode für jeden Anwender sichtbar. Dies wäre unter Verwendung von C++ nicht der Fall. Ein weiterer Vorteil von Scriptsprachen allgemein
und MEL im Speziellen, ist die Plattformunabhängigkeit. Nahezu alle MEL-Befehle können
auf unterschiedlichen Plattformen (Windows, Mac OS, Linux) verwendet werden. Unter der
Verwendung von MEL kann man sich sicher sein, das ein Interface, dass auf einer Plattform
entwickelt wurde, auf einer anderen gleich aussieht und arbeitet.
Für die Programmierung des Federsystem wird MEL verwendet.
5.3
Anforderungen an das Script
Das Script soll den effizienten Einsatz des Federsystems in einer Produktionspipline gewährleisten. Hierzu müssen alle Arbeitsschritte die für den Aufbau des Federsystems erforderlich
sind, automatisch abgearbeitet werden können. Falls Parameter vor der Automatisierung
vom Anwender bereitgestellt werden, so wird er hierzu aufgefordert. Beispielsweise muss
der Anwender eine Geometrie angeben, auf der das Gefieder erstellt werden soll. Allgemeine Attribute sollten nach Möglichkeit ohne Vorgabe des Benutzers mit performancearmen
Standardwerten belegt werden. Die Attribute können im weiteren Verlauf angepasst werden,
da der Anwender zu diesem Zeitpunkt ein visuelles Feedback der Werte zur Verfügung hat.
Neben der Generierung des Federsystems soll auch die Konfiguration optimiert werden.
Über eine grafische Benutzeroberfläche erhält der Benutzer im Idealfall genau die Einstellungsmöglichkeiten die er benötigt. Zuviele oder zuwenige Optionen erschweren die Arbeit
mit dem System.
Automatisierung
Das im vorherigen Abschnitt entwickelte Federsystem erfordert die folgenden Schritte:
5.3. Anforderungen an das Script
1. Geometrie und UV-Layout erstellen.
2. Shave and a haircut Hair-Shapes für jeden Federtyp erstellen.
3. Den Befehl recomb zum Anlegen der Haare für jeden Hair-Shape Knoten ausführen.
4. Cut-Maps für die Hair-Shapes erstellen.
5. Plane-Primitive für die Federinstanzen erstellen.
6. Shader mit Alpha-Maps für die Plane-Primitive erstellen.
7. Instanzen an die jeweiligen Hair-Shapes binden.
Das Erstellen von Geometrie und UV-Set muss unabhängig vom Federsystem bleiben und
wird daher vorausgesetzt. Die restlichen Punkte können automatisiert von dem Script abgearbeitet werden. Als Benutzereingabe wird zum einen die Geometrie, die die Federn erhalten
soll benötigt und zum anderen muss der Benutzer die Verteilung der verschiedenen Federtypen auf der Geometrie vorgeben. Die benötigten Alpha-Maps für die Federgeometrien
können standardmäßig zur Verfügung gestellt werden. Um diesen Vorgang übersichtlich zu
gestalten und sowohl für den Anwender als auch in Hinblick auf die Implementierung zu vereinfachen, soll von einer maximalen Anzahl von drei Federtypen ausgegangen werden. Eine
sehr große Anzahl Hair-Shapes, die für die Federtypen erforderlich sind, könnte außerdem
zu Instabilität führen.
Nachdem das Federsystem aufgebaut wurde, können die folgenden Eigenschaften weiter
angepasst werden:
• Styling der Federn
• Farben der Federn
• Anzahl der Federn
• Skalierung der Federn
• Anlegen bzw. Abspreizen der Federn von der Geometrie
Das Styling der Federn erfolgt mit den zur Verfügung stehenden Tools von Shave and a
haircut. Der Vorgang unterscheidet sich bei Federn in keinster Weise von dem bei Fell. Es
müssen hierfür keine Funktionen in das Script integriert werden, da die Tools von Shave and
a haircut hier bereits optimale Ergebnisse liefern. Alle weitern Eigenschaften können über
Attribute der Shave-Hair Knoten konfiguriert werden. Die Knoten beinhalten allerdings weitere Attribute, die für das Federsystem irrelevant sind. Des weiteren müssen die Attribute für
ein gleichmäßiges Erscheinungsbild, in allen Hair Knoten gesetzt werden. Aus diesem Grund
sollen die Attribute Farbe, Anzahl, Skalierung und Anlegen der Federn über eine kompakte
grafische Benutzeroberfläche für alle Hair-Shapes angepasst werden können. Das Anlegen
bzw. Abspreizen der Federn dient neben dem konfigurieren der Grunderscheinung auch der
Animation des Vogels. Daher müssen für dieses Attribut Keyframes gesetzt werden können,
81
82
Implementierung eines MEL-Scripts zur Anwenderunterstützung
Abbildung 5.1: Die Verteilung der Federtypen kann vom Anwender komfortabel über eine
Bilddatei festgelegt werden.
um beispielsweise ein Aufplustern des Vogels umsetzen zu können.
Verteilung der Federtypen
Der Anwender soll auf möglichst einfache Weise die Verteilung der Federtypen bestimmen
können. Im letzen Kapitel wurden die federreichen Regionen über Schwarz-Weiße Cut-Maps
angegeben. Der Benutzer müsste also zuvor drei Cut-Maps erzeugen. An jeder Stelle der
Geometrie soll jedoch eindeutig bestimmt sein, welche Federart dort vorhanden ist. Für eine
realistische Umsetzung sollen sich die verschiedenen Federtypen auf der Geometrie nicht
überlagern. Die benötigten Informationen lassen sich dadurch auf eine einzige Bilddatei reduzieren. Man benötigt zu diesem Zweck vier Zustände, die wie folgt farblich gekennzeichnet
werden sollen:
• keine Feder - Schwarz
• Federtyp 1 - Rot
• Federtyp 2 - Grün
• Federtyp 3 - Blau
Der Benutzer stellt also nur eine Datei mit den RGB-Farben Rot, Grün und Blau, sowie der
Farbe Schwarz zur Verfügung. Abbildung 5.1 zeigt eine solche Farbdatei angepasst an das
UV-Layout des Vogelmodells. Aus der Farbdatei müssen dann zur Laufzeit die benötigten
Schwarz-Weiß Bilder, die als Cut-Maps für die Hair-Shapes dienen sollen, erzeugt werden.
5.4. Die Programmoberfläche
Abbildung 5.2: Die grafische Benutzeroberfläche des Federsystem-Scripts.
5.4
Die Programmoberfläche
Abbildung 5.2 zeigt den Entwurf für die grafische Benutzeroberfläche - GUI - des Federsystems. Sie unterteilt sich grob in die markierten Bereiche 1 und 2. Der obere Bereich dient
der automatisierten Generierung des Systems. Die einzelnen Bestandteile erfüllen folgenden
Zweck:
• 1a - Textfeld Bird Geometry. Der Benutzer trägt hier den Namen des Objekts ein, das
mit Federn versehen werden soll.
• 1b - Textfeld Color-Map. Der Benutzer gibt den Pfad zu einer Bilddatei an. Der Pfad
kann relativ zum sourceimages-Ordner des aktuell gesetzten Maya-Projektes angegeben werden.
• 1c - Schaltfläche Generate Feathers. Generiert das Federsystem auf der in 1a angegebenen Geometrie auf Grundlage der in 1b hinterlegten Map.
Der untere Bereich des Fensters, der in Abbildung 5.2 grün hinterlegt ist, enthält die wichtigsten Parameter, um das Federsystem näher zu konfigurieren. Es folgt eine Übersicht aller
Funktionen:
• 2a - Farb Slider. Hierüber können Farben für jeden Federtyp individuell gesetzt werden.
Die Grundeinstellungen sind rot, grün und blau.
83
84
Implementierung eines MEL-Scripts zur Anwenderunterstützung
Abbildung 5.3: Der Script-Editor von Autodesk Maya.
• 2b - Zahlenfeld Feathers. Anzahl der Federn. Die Grundeinstellung ist 500.
• 2c - Zahlenfeld Scale. Skalierungsfaktor der Federinstanzen. Die Grundeinstellung ist
1, keine Skalierung.
• 2d - Zahlenfeld Fluff. Kontrolliert das Aufplustern der Federn. Die Grundeinstellung
ist 0. Maximales Aufplustern ist bei 300.
• 2e - Schaltfläche Key. Setzt einen Keyframe für das Attribut Fluff bei dem aktuellen
Frame in der Zeitleiste.
• 2f - Zahlenfeld Blur. Setzt den Parameter Hair Passes für die HairShapes. Bei größeren
Werten entsteht ein Blur-Effekt. Grundeinstellung ist 2.
• 2g - Schaltfläche Update. Wendet die gesetzten Parameter auf das Federsystem an.
5.5
Programmierung
Zur Programmierung der Scriptsprache MEL in Maya wird der Script-Editor verwendet (Abbildung 5.3) [MRW05] [Gou03]. Bei der Programmierung wurde aufgrund der Komplexität
des Interfaces zusätzlich ein einfacher Texteditor verwendet.
Wie schon weiter oben beschrieben, dienen MEL-Befehle als Schnittstelle zwischen den Eingaben des Anwenders, bzw. Programmierers und der grundlegenden C++ API von Maya.
Abbildung 5.4 zeigt den typischen Aufbau eines MEL Befehls. Hinter dem eigentlichen Befehl folgt eine Reihe von Flags. Jedem Flag wird ein Argument zugeordnet. Der Befehl aus
5.5. Programmierung
Abbildung 5.4: Aufbau eines typischen MEL-Befehls.
Abbildung 5.4 erzeugt ein Kugelprimitiv mit einem Radius von zwei und vier Unterteilungen
in Richtung der x-Achse. Flags besitzen in MEL meist einen langen und einen kurzen Namen.
Der folgende Befehl ist äquivalent zu dem aus Abbildung 5.4:
polySpher e -r 2 - sX 4;
Befehl Modis
Jeder Befehl verfügt über einen eigenen Satz passender Flags. Viele der Befehle besitzen
jedoch drei Standard-Flags, die den Modus des Befehls setzen:
• create (-c): Erstellen eines Objekts. Standard-Modus.
• query (-q): Gibt eine Eigenschaft des Objekts aus.
• edit (-e): Ändert eine schon bestehende Eigenschaft eines Objekts
Es folgt je ein Beispiel für den Einsatz der Modis:
sphere - name Sphere01 ; / / Create Modus
sphere - query - radius Sphere01 ; / / Query Modus
sphere - edit - radius 2 Sphere01 ; / / Edit Modus
end ;
In den folgenden Abschnitten wird auf die wichtigsten Elemente des Scripts näher eingegangen und die Programmierroutinen werden erklärt. Das gesamte Script befindet sich im
Anhang.
5.5.1
Programmierung der Oberfläche
Zunächst wird ein Programmfenster mit dem Titel FeatherSystem erzeugt. Die GUI-Elemente
werden darauf mit Hilfe eines Column-Layouts angeordnet. Die Farb-Slider werden mit den
Farbattributen, der zuvor angelegten Shader verbunden. Die Shader werden später den Federgeometrien, die als Grundlage für die Instanzen dienen, zugeordnet. Den Textfeldern werden
Attribute für Minimal- , Maximal- und Defaultwert zugeordnet. Die Felder Count, Fluff und
Pass können nur ganzzahlige Werte annehmen, das Feld Scale akzeptiert Werte vom Typ
85
86
Implementierung eines MEL-Scripts zur Anwenderunterstützung
float, d.h. Gleitkommazahlen. Die drei Schaltflächen rufen spezielle Funktionen bestehend
aus ihrem Namen und dem Zusatz pressed auf.
Zur Generierung der Programmoberfläche wurde folgender Code verwendet:
// Shader für die I n s t a n z e n a n l e g e n
$feather1 = ‘ shadingNo d e - asShader lambert ‘;
$feather1 = ‘ rename feather1 ‘;
$feather2 = ‘ shadingNo d e - asShader lambert ‘;
$feather2 = ‘ rename feather2 ‘;
$feather3 = ‘ shadingNo d e - asShader lambert ‘;
$feather3 = ‘ rename feather3 ‘;
// F e n s t e r e r z e u g e n
window - r e s i z e T o F i t C h i l d r e n 1 F e a t h e r S y s t e m ;
columnLayout;
// GUI - E l e m e n t e e r z e u g e n
$field = ‘ t e x t F i e l d G r p - label " Bird Geometry : " ‘;
t e x t F i e l d G r p - edit - text " pSphere1 " $field ;
$f_map = ‘ t e x t F i e l d G r p - label " Color - Map : " ‘;
t e x t F i e l d G r p - edit - text " test . png " $f_map ;
$b_gener at e = ‘ button - al " center " - label " Generate Feathers " - command
" b _ g e n e r a t e P r e s s e d () " ‘;
$layout = ‘ columnLayout ‘;
$cl_color 1 = ‘ a t t r C o l o r S l i d e r G r p - at ( $feather1 + " . color " ) - cal 1 " right "
- label " Color1 : " - sb off - rgb 1 0 0 ‘;
$cl_color 2 = ‘ a t t r C o l o r S l i d e r G r p - at ( $feather2 + " . color " ) - cal 1 " right "
- label " Color2 : " - sb off - rgb 0 1 0 ‘;
$cl_color 3 = ‘ a t t r C o l o r S l i d e r G r p - at ( $feather3 + " . color " ) - cal 1 " right "
- label " Color3 : " - sb off - rgb 0 0 1 ‘;
$s_count = ‘ i n t S l i d e r G r p - min 0 - max 100000 - label " Feathers : " - v 500
- field true ‘;
$s_scale = ‘ f l o a t S l i d e r G r p - min 0 - max 50 - label " Scale : " -v 1 - field
true ‘;
$s_fluff = ‘ i n t S l i d e r G r p - min 0 - max 300 - label " Fluff : " - v 0 - field
true ‘;
$b_fluff = ‘ button - label " Key " - command " b _ f l u f f P r e s s e d () " ‘;
$s_pass = ‘ i n t S l i d e r G r p - min 1 - max 10 - label " Blur : " - v 2 - field true ‘;
$b_update = ‘ button - label " Update " - command " b _ u p d a t e P r e s s e d () " ‘;
showWindo w ;
Schaltfläche Federgenerierung
Die Schaltfläche b generate zur Generierung des Federsystems ruft die Funktion
b generatePressed() auf. Die Funktion liest den Namen des Objekts aus, das Federn erhalten
soll und die Pfadangabe zu der Bilddatei mit der Verteilung der Federarten und übergibt
sie der Funktion createFeathers(). Die Funktion erzeugt dann das Federsystem, auf Basis
der übergebenen Optionen. Der dritte Übergabeparameter an die Funktion createFeathers()
setzt die Anzahl der zu erstellenden Federn. Dieser wird zunächst nicht vom Benutzer abgefragt, sondern standardmäßig mit einem relativ kleinen Wert von 500 belegt. Dadurch
5.5. Programmierung
wird gewährleistet, dass es nicht schon bei der Generierung des Systems zu Performanceproblemen kommt. Der Benutzer kann diesen Wert später anpassen. Zusätzlich wird die
Schaltfläche b generate deaktiviert, da pro Szene die Generierung von genau einem Federsystem vorgesehen ist.
proc b _ g e n e r a t e P r e s s e d () {
// V a r i a b l e n d e k l a r a t i o n
...
$geoBird = " pSphere1 " ;
$mapName = " test . png " ;
int $count
= 0;
$geoBird = ‘ t e x t F i e l d G r p - q - text $field ‘;
$mapName = ‘ t e x t F i e l d G r p - q - text $f_map ‘;
disable $b_genera t e ;
c r e a t e F e a t h e r s ( $geoBird , $mapName , 500) ;
}
Schaltfläche Keyframe für das Aufplustern des Vogels
Die Schaltfläche b key ruft die Funktion b keyPressed() auf. Diese Funktion liest den Wert
Fluff, für das Aufplustern der Federn, aus dem Textfeld aus und setzt damit das Attribut rootFrizz der drei hairShape-Objekte. Danach wird für jedes der drei Haarsysteme ein
Keyframe für das Attribut rootFrizz gesetzt. Abbildung 5.5 illustriert die Verwendung des
Attributs Fluff.
proc b _ g e n e r a t e P r e s s e d () {
// V a r i a b l e n d e k l a r a t i o n
...
$geoBird = " pSphere1 " ;
$mapName = " test . png " ;
int $count
= 0;
$geoBird = ‘ t e x t F i e l d G r p - q - text $field ‘;
$mapName = ‘ t e x t F i e l d G r p - q - text $f_map ‘;
disable $b_genera t e ;
c r e a t e F e a t h e r s ( $geoBird , $mapName , 500) ;
}
87
88
Implementierung eines MEL-Scripts zur Anwenderunterstützung
Abbildung 5.5: Beispiel eines Gefieders mit unterschiedlichen Werten des Attributs Fluff,
das das Aufplustern des Gefieders steuert.
Schaltfläche Update
Die Schaltfläche b update ruft die Funktion b updatePressed() auf. Diese Funktion liest
die Werte in den Textfeldern Feathers, Scale, Fluff und Blur aus und setzt sie auf die zugehörigen Attribute der drei hairShape-Knoten hairCount, scale, rootFrizz und hairPasses.
proc b _ g e n e r a t e P r e s s e d () {
// V a r i a b l e n d e k l a r a t i o n
...
$geoBird = " pSphere1 " ;
$mapName = " test . png " ;
int $count
= 0;
$geoBird = ‘ t e x t F i e l d G r p -q - text $field ‘;
$mapName = ‘ t e x t F i e l d G r p -q - text $f_map ‘;
disable $b_genera t e ;
c r e a t e F e a t h e r s ( $geoBird , $mapName , 500) ;
}
5.5. Programmierung
5.5.2
Automatisierung des Federsystems
Die Funktion createFeathers() erstellt ein Federsystem aus drei Federtypen.
proc c r e a t e F e a t h e r s ( string $geoName , string $mapName , int $count )
Die Funktion realisiert die folgenden Schritte, die zur Generierung des Federsystems notwendig sind:
1. Polygon-Plane erstellen.
2. Shader für die Plane mit Alpha-Map erstellen.
3. Shave and a hairuct Haarsystem erstellen.
4. Dem Haarsystem Instanzen zuweisen.
5. Vorgang für zwei weitere Haarsysteme wiederholen.
Die Programmierumsetzung dieser Schritte soll nun näher betrachtet werden.
Polygon-Plane erstellen
Die Polygon-Plane dient als Grundgeometrie für die Federinstanzen des ersten Haarsystems,
daher muss sie den in Kapitel 4 hergeleiteten Anforderungen genügen. Die Plane hat eine
Höhe von einer Einheit, eine Breite von 0.5 Einheiten und sechs Unterteilungen in y-Richtung.
Sie wird so transliert und skaliert, dass ihre Grundfläche im Ursprung liegt und sie in Richtung der y-Achse steht. Zuletzt wird die Federgeometrie einer neuen Gruppe mit dem Namen
feathers zugeordnet. In dieser Gruppe werden alle erzeugten Objekte des Scripts übersichtlich
zusammengefasst.
// Plane erstellen , r o t i e r e n und b e n e n n e n
polyPlane -w 0.5 -h 1 - sx 1 - sy 6 - ax 0 1 0;
rotate -r - os 90 0 0 ;
rename pPlane1 " planeF1 " ;
move 0 0.5 0 ;
group ;
xform - os - piv 0 0 0;
rename feathers ;
Shader für die Plane mit Alpha-Map erstellen
Drei Shader vom Typ Lambert mit den Namen feather1, feather2 und feather3 wurden
bereits zu Beginn des Scripts erstellt. Für den Shader feather1 wird nun eine Textur namens
fileFeather erzeugt. Diese verweist auf die Bilddatei feather.png. Das Attribut outTransparency der Textur wird hierzu mit dem Attribut transparency des Shaders verbunden. Die
89
90
Implementierung eines MEL-Scripts zur Anwenderunterstützung
Abbildung 5.6: Das Shader-Netzwerk für die Federgeometrien wird automatisch erzeugt.
Datei feather.png wird mit dem Script zur Verfügung gestellt. Sie muss in den sourceimagesOrdner des aktuellen Maya-Projekts verschoben werden.
// Shader erstellen , z u w e i s e n und Alpha - Map setzen
select planeF1 ;
hyperShad e - assign feather1 ;
shadingNo d e - asTexture file ;
rename fileFeath er ;
connectAt t r - force fileFeath er . o u t T r a n s p a r e n c y
feather1 . t r a n s p a r e n c y ;
$path = " / s o u r c e i m a g e s / feather . png " ;
setAttr - type " string " " fileFeathe r . ftn " $path ;
Shave and a haircut Haarsystem erstellen
Für das Federsystem wird das Standard-Preset Default von Shave and a haircut verwendet. Dieses Preset erfordert die wenigsten nachträglichen Änderungen an den Attributen,
um als Federsystem verwendet werden zu können. Das Hair-Shape Objekt wird auf der
vom Anwender übergebenen Geometrie erstellt und in feather fur1 umbenannt. Der Befehl
shaveRecomb richtet die Guide-Hairs des Haarsystems anhand der Geometrie aus, so dass
sie nicht mehr in alle Richtungen abstehen. Das Haarsystem wird über den Befehl parent
der Gruppe feathers zugeordnet. Zuletzt müssen noch die beiden Attribute rootFrizz und
tipFrizz auf null gesetzt werden. tipFrizz regelt wie weit sich die Haarspitzen nach außen
wölben. Da Federn dies in der Regel nicht tun, wird das Attribut auf null gesetzt. rootFrizz
regelt, wie nah die Haare an der Geometrie anliegen. Dieses Attribut wird für das Aufplustern
der Federn verwendet. Zu Beginn sollen die Federn eng an der Geometrie anliegen, daher
wird auch dieser Wert auf null gesetzt.
5.5. Programmierung
$presetPat h = " C :/ Programme / Autodesk / Maya2008 / presets / attrPrese t s
/ shaveHair / Default . mel " ;
...
// Shave Hair e r z e u g e n
select $geoName ;
s h a v e C r e a t e H a i r F r o m P r e s e t $presetPa t h ;
rename f e a t h e r _ f u r 1 ;
shaveRecom b ;
parent f e a t h e r _ f u r 1 feathers ;
...
setAttr " f e a t h e r _ f u r 1 . rootFrizz " 0;
...
setAttr " f e a t h e r _ f u r 1 . tipFrizz " 0;
Instanzen zuweisen
Die Polygon-Plane muss nun dem Haarsystem als Basisgeometrie für die Instanzen zugewiesen werden. Hierzu müssen Haarsystem und Plane selektiert sein und danach der Befehl
shaveSetInstance ausgeführt werden.
// I n s t a n z e n z u w e i s e n
select -r shaveHair1 ;
select - add planeF1 ;
shaveSetInstance;
m a k e I d e n t i t y - apply true - t 1 -r 1 -s 1 - n 0;
Vorgang für die zwei weiteren Haarsysteme wiederholen.
Um ein mehrfarbiges Gefieder realisieren zu können, müssen noch zwei weitere Haarsysteme
mit eigenen Grundgeometrien erstellt werden. Die letzten Schritte werden zu diesem Zweck
in einer Schleife noch zweimal wiederholt.
// V o r g a n g für die zwei w e i t e r n H a a r s y s t e m e w i e d e r h o l e n
for ( $i = 2; $i < 4; $i ++ )
{
string $shaderNam e = ( " feather " + $i ) ;
string $planeName
= ( " planeF " + $i ) ;
string $furName = ( " feather_ fu r " + $i ) ;
duplicate ;
connectAt t r - force fileFeath er . o u t T r a n s p a r e n c y (
$shaderNa m e + " . t r a n s p a r e n c y " ) ;
select $planeName ;
hyperShad e - assign $shaderNa me ;
select $geoName ;
s h a v e C r e a t e H a i r F r o m P r e s e t $presetPa t h ;
rename $furName ;;
shaveReco m b ;
parent $furName feathers ;
91
92
Implementierung eines MEL-Scripts zur Anwenderunterstützung
select -r $furName ;
select - add $planeNam e ;
shaveSetInstance ;
m a k e I d e n t i t y - apply true -t 1 -r 1 - s 1 -n 0;
select planeF1 ;
}
5.5.3
Generierung der Cut Maps
Die automatische Generierung des Federsystems ist nun weitgehend abgeschlossen. Bisher
werden die drei Federtypen jedoch auf der gesamten Oberfläche verteilt und überlagern sich
gegenseitig. Für ein farblich abgetrenntes Gefieder müssen den drei Hair-Shapes sogenannte Cut Maps zugeordnet werden. Der Benutzer stellt zu diesem Zweck eine Bilddatei zur
Verfügung, in der die verschiedenen Haartypen mit den Farben Rot, Grün und Blau auf Basis
des UV-Sets der Geometrie gekennzeichnet sind, zur Verfügung. Kahle Stellen, wie beispielsweise der Schnabel werden mit Schwarz gekennzeichnet. Aus dieser Bilddatei müssen nun
drei Schwarz-Weiß Bilder erzeugt werden, die als Cut Maps verwendet werden können. Um
das Bild für den ersten Federtyp zu erhalten, müssen beispielsweise die Farben Blau und
Grün auf Schwarz gesetzt werden. Die Farbe Rot kennzeichnet die federbedeckten Regionen
und wird in die Farbe Weiß überführt. Um diesen Farbwechsel zu realisieren, wurde eine
Condition verwendet. Dieses Utility ermöglicht es einen übergebenen Wert mit einem zweiten zu vergleichen. Je nachdem ob beide Werte identisch sind oder nicht, wird eine andere
einstellbare Farbe ausgegeben. Als Eingangswert wird der Condition der Farbwert angegeben, der die federbedeckten Regionen für das entsprechende Haarsystem kennzeichnet. Für
das erste Haarsystem wäre dies der Rot-Wert. Der Wert des Farbkanals wird mit eins verglichen. Falls der Vergleich wahr ist, d.h. am aktuellen Pixel ein roter Farbanteil festgestellt
wurde, wird die Farbe Weiß ausgegeben, andernfalls die Farbe Schwarz. Abbildung 5.7 illustriert die erzeugten Verbindungen zwischen der vom Anwender übergebenen Bilddatei und
der Cut Map, im Hypershade. Zunächst wird ein neuer Shader vom Typ Lambert erstellt
und der übergebenen Geometrie zugeordnet. Dem Farbattribut des Shaders wird eine neue
Textur, die auf die übergebene Bilddatei verweist, übergeben. Die Textur wird in filecolor
umbenannt.
// Cut Maps e r z e u g e n
$lambert = ‘ shadingNod e - asShader lambert ‘;
rename colorshad er ;
select $bird ;
hyperShad e - assign colorshad er ;
shadingNo d e - asTexture file ;
rename filecolor ;
connectAt t r - force filecolor . outColor colorshad e r . color ;
setAttr - type " string " " filecolor . ftn " $mapName ;
...
5.5. Programmierung
Abbildung 5.7: Die Konvertierung der Bilddatei in die Cut Maps erfolgt mit Hilfe einer
Condition-Utility.
Um die Schwarz-Weiß Maps zu erzeugen, muss jeweils ein Shader erstellt werden, der als
Basis für die Generierung der erzeugten Bilddatei dient. Des weiteren müssen ConditionUtilities für jeden Federtyp erstellt werden.
...
$cutR = ‘ shadingNod e - asShader lambert ‘;
rename cutR_shad er ;
$cutG = ‘ shadingNod e - asShader lambert ‘;
rename cutG_shad er ;
$cutB = ‘ shadingNod e - asShader lambert ‘;
rename cutB_shad er ;
shadingNod e - asUtility condition ;
rename cutR_cond ;
shadingNod e - asUtility condition ;
rename cutG_cond ;
shadingNod e - asUtility condition ;
rename cutB_cond ;
...
Als nächstes müssen die Farbwerte der einzelnen Kanäle mit dem Eingang firstTerm verknüpft werden, der den zu vergleichenden Wert erwartet. Die von der Condition berechnete
Ergebnisfarbe wird dann mit dem Farbeingang des oben erzeugten Shaders verbunden.
93
94
Implementierung eines MEL-Scripts zur Anwenderunterstützung
...
connectAt t r - force filecolor . outColorR cutR_cond . firstTerm ;
connectAt t r - force filecolor . outColorG cutG_cond . firstTerm ;
connectAt t r - force filecolor . outColorB cutB_cond . firstTerm ;
connectAt t r - force cutR_cond . outColor cutR_shad e r . color ;
connectAt t r - force cutG_cond . outColor cutG_shad e r . color ;
connectAt t r - force cutB_cond . outColor cutB_shad e r . color ;
...
Um aus den gewonnen Farbinformationen eine Bilddatei im aktuellen Projektordner abzuspeichern, wird der Befehl convertSolidTx verwendet. Dem Befehl wird eine Reihe von Flags
und die Vogelgeometrie, auf deren UV-Set sich die erzeugte Bilddatei beziehen soll, übergeben. Abschließend werden die Schwarz-Weißen Bilddateien den Hair-Shapes als Cut Map
übergeben. Der Knoten für die Cut Map befindet sich in dem Attribut shaveTex[29] der
jeweiligen Haarsysteme.
...
// cutMap - File e r z e u g e n
c o n v e r t S o l i d T x - antiAlias 1 - bm 1 - fts 1 - sp 0 - sh 0 - alpha 0 doubleSi de d 0 - c o m p o n e n t R a n g e 0 - resolutio nX 512 - resolution Y
512 - n " cutR_file " - fileFormat " jpg " cutR_cond . outColor
$bird ;
c o n v e r t S o l i d T x - antiAlias 1 - bm 1 - fts 1 - sp 0 - sh 0 - alpha 0 doubleSi de d 0 - c o m p o n e n t R a n g e 0 - resolutio nX 512 - resolution Y
512 - n " cutG_file " - fileFormat " jpg " cutG_cond . outColor
$bird ;
c o n v e r t S o l i d T x - antiAlias 1 - bm 1 - fts 1 - sp 0 - sh 0 - alpha 0 doubleSi de d 0 - c o m p o n e n t R a n g e 0 - resolutio nX 512 - resolution Y
512 - n " cutB_file " - fileFormat " jpg " cutB_cond . outColor
$bird ;
// CutMap z u w e i s e n
connectAt t r - force cutR_file . outAlpha | feathers | shaveHair1 |
f e a t h e r _ f u r 1 . shaveTex [29];
connectAt t r - force cutG_file . outAlpha | feathers | shaveHair2 |
f e a t h e r _ f u r 2 . shaveTex [29];
connectAt t r - force cutB_file . outAlpha | feathers | shaveHair3 |
f e a t h e r _ f u r 3 . shaveTex [29];
...
5.6
Zusammenfassung und Ausblick
Das MEL-Script realisiert die wichtigsten Schritte zur Generierung des neuen Federsystems.
Außerdem bietet es dem Benutzer Möglichkeiten, die wichtigsten Parameter des Systems
einzustellen.
Um das Script für den professionellen Einsatz zu optimieren, könnten weitere Funktionen
5.6. Zusammenfassung und Ausblick
hinzugefügt werden. Die Interaktion über die grafische Oberfläche könnte um einen FileDialog zur Auswahl der Textur erweitert werden. Außerdem könnte die Auswahl der Geometrie
über Selektion innerhalb der Szene realisiert werden. Die Attribute zur Verfeinerung des
Federsystems könnten erweitert werden, beispielsweise könnte das Feld Masse der Federn
hinzugefügt werden. Zusätzlich könnte vor der Generierung eine Auswahl an Alpha-Maps
zur Auswahl gestellt werden, die die Formgebung der einzelnen Federn bestimmen.
95
Kapitel 6
Zusammenfassung und Ausblick
Das Ziel dieser Arbeit bestand darin, ein neues Federsystem für die Generierung von Gefieder
für 3D-Vögel zu entwickeln. Da das Gefieder von Vögeln als eine Variante von Körperbedeckungen eng mit dem Fell von Säugetieren verwandt ist, wurde in Kapitel 1 die Hypothese aufgestellt, dass auf der Basis aktueller Fellsysteme ein leistungsstarkes Federsystem
entwickelt werden kann. Diese Hypothese konnnte im Laufe der Arbeit bestätigt werden.
In Kapitel 2 wurde eine Analyse der in aktuellen Animationsfilmen verwendeten Techniken
zur Generierung von Fell und Federn durchgeführt. Da alle in die Analyse einbezogenen Unternehmen der Filmindustrie das 3D-Software-Paket Autodesk Maya als Grundlage für ihre
Filme verwenden, wurde diese auch für die Umsetzung des Federsystems verwendet. Die
Software bietet eine große Anzahl von Techniken und Methoden, von denen einige für die
Generierung und Verteilung von Federn in Betracht gezogen wurden. Es stellte sich heraus,
dass die Komponente Maya-Fur und das Plug-In Shave and a haircut für die Verteilung der
Federn am Besten geeignet sind. Die einzelnen Federn müssen so umgesetzt werden, dass sie
in einer sehr großen Anzahl erzeugt werden können ohne das System voll auszulasten. Maya
bietet zwei Methoden an, die dies ermöglichen. Zum einen können die Federn als angepasste
Haare eines Fellsystems dargestellt werden und zum anderen können sie als Polygon-Planes
mit Alpha-Maps realisiert werden. Die ermittelten Methoden wurden im nächsten Schritt in
drei Federsystemen miteinander kombiniert:
1. Die Maya-Fur Komponente kombiniert mit der Maya-Hair Komponente. Als Federn
wurden die Haare von Maya-Fur verwendet.
2. Das Plug-In Shave and a haircut mit den Haaren des Fellsystems als Federn.
3. Das Plug-In Shave and a haircut mit Polygon-Planes als Instanzen für die Federn.
Die drei Federsysteme wurden anhand einer speziell hierfür optimierten Testsequenz am
Beispiel eines Cartoon-Vogels miteinander verglichen. Die beiden Federsysteme auf Basis von
Shave and a haircut schnitten bei dem Vergleich sehr gut ab und sind dem dritten System auf
Basis der Maya-Fur Komponente klar überlegen. Das dritte Federsystem, das mit Instanzen
als Federn arbeitet, besitzt zudem sehr gute Zukunftsprognosen. Für dieses System wurde
anschließend ein Script implementiert, das auf die Arbeit mit dem Federsystem optimiert
97
98
Zusammenfassung und Ausblick
wurde. Das Script ermöglicht es dem Anwender ein dreifarbiges Gefieder automatisiert für
einen beliebigen Vogelcharakter erstellen zu lassen. Des weiteren kann das generierte Gefieder
über eine grafische Benutzeroberfläche verfeinert werden.
6.1
Ausblick
In dieser Arbeit wurde nachgewiesen, dass es mit den heute schon zur Verfügung stehenden
Software- und Hardwarelösungen möglich ist, ein komplexes Gefieder zu simulieren. Die
Erkenntnisse und Techniken zur Generierung von Fell können auf Gefieder übertragen werden.
Die bestehenden Fellsysteme reizen die Möglichkeiten der Fellsimulation bereits voll aus. Fell
kann in beliebiger Form und Dichte erstellt werden. Die Systeme bieten dem Anwender alle
Freiheiten seine Ideen zu verwirklichen. Allerdings ist der Rechenaufwand immer noch sehr
hoch und damit auch die Kosten für die Umsetzung eines fellbedeckten Charakters. Es kann
jeder beliebige Effekt erzielt werden, wenn nur genügend Rechnerleistung und Renderzeit zur
Verfügung gestellt wird. Natürlich wird sich die technische Weiterentwicklung im Bereich
der Computerhardware auch hier positiv auswirken. Dies wird jedoch keinen Einfluss auf
das maximal mögliche optische Endergebnis haben, sondern vielmehr Kostenersparnis und
angenehmeres Arbeiten mit dem System für die Entwicklungsstudios bedeuten. Dies ist in der
geringen Komplexität der einzelnen Haare eines Fells begründet. Die aktuelle Hardware ist
weit genug entwickelt, um eine sehr großen Anzahl Haaren darstellen und bewegen zu können,
ohne Abstriche in der Darstellungsqualität eines einzelnen Haares machen zu müssen.
Federn hingegen sind die komplizierteste Bildung der Haut im gesamten Tierreich. Jede
einzelne besteht aus einer großen Anzahl Komponenten. Der Rechenaufwand, der notwendig
wäre ein Gefieder in seiner vollen Komplexität virtuell abzubilden, kann von der heutigen
Hardware und Software noch nicht bewältigt werden. Das neue Federsystem umgeht das
hierdurch entstehende Problem, indem der Detailgrad einer einzelnen Feder reduziert wird.
Mit der zur Verfügung stehenden Hardware und der Abbildung der Feder als Polygon-Plane
konnten bereits sehr gute Ergebnisse erzielt werden. Die voraussichtliche Entwicklung im
Bereich der Computer-Hardware wird es in den nächsten Jahren ermöglichen komplexere
Federgeometrien zu verwenden, bei denen Schaft und Seitenäste ausmodelliert sind. Daher
ist abzusehen, dass das Federsystem von den zukünftigen Entwicklungen profitieren wird
und so nach und nach sein volles Potential entfalten kann.
Glossar
Alpha-Map
Graustufen Bilddatei, die die Durchsichtigkeit einer Geometrie definiert. Weiß: durchsichtig, Schwarz: deckend.
Animations-Clip
In Autodesk Maya eine Zusammenfassung einer Menge von Keyframes unabhängig der Zeitleiste. Wird zur non-linearen Animation
verwendet.
Artisan
Intuitives Zeichen- und Sculpting-Tool von Autodesk Maya, das von
vielen Komponenten der Software verwendet wird.
API
application programming interface. Programmierschnittstelle.
Batch Renderer
Maya-Routine zum automatisierten Rendern der Bilder einer Animation.
Blend Shape
Animationstechnik, die hauptsächlich für die Darstellung von Gesichtsausdrücken (Mimik) verwendet wird.
Blur
Weichzeicheneffekt in der Bildbearbeitung. Setzt die Bildschärfe herab.
Bones
Verbindung zweier Gelenke in einer Skelettkette.
Bounding-Box
Eine einfache Geometrie, die eine komplexere umschließt.
Box-Modeling
Polygon-Modellierungstechnik. Ausgehend von einer sehr groben
Grundgeometrie (Box) werden nach und nach Details herausgearbeitet.
Buffer-Renderer
Eigener Renderer von Shave and a haircut, der speziell für Haare und
Fell optimiert ist.
Bump-Map
Graustufen-Bilddatei, über die Tiefeninformationen in die Oberfläche
einer Geometrie eingearbeitet werden.
Checker-Textur
Bilddatei mit Schachbrettmuster.
Column-Layout
Anordnungsvariante für GUI-Elemente, bei der diese nebeneinander
(in einer Reihe) angeordnet werden.
99
100
Glossar
Condition-Utility
Dienstprogramm von Autodesk Maya, das eine Farbwahl aufgrund
des Vergleichs zweier Werte liefert.
Constraint
Abhängigkeitsbeziehung eines Objekts zu einem anderen.
Control-Object
Einfache Hilfsgeometrie, die das Animieren eines Charakters erleichtert.
Control-Rig
Menge aller Control-Objects eines Charakters.
Cut-Map
Graustufen-Bilddatei. Definiert bei Shave and a haircut die Haarmenge auf der Geometrie. Schwarz: keine Haare. Weiß: maximal eingestellte Haarmenge.
Directional Light
Lichtquelle in Autodesk Maya, die parallele Lichtstrahlen aussendet.
Wird hauptsächlich für Sonnenlicht verwendet.
Displacement-Map
Bilddatei, über die auf der Oberfläche einer Geometrie eine höhere
Detailtreue erzeugt wird.
Driven-Key
Animationsmethode, bei der Parameter eines Objekts an Parameter
eines anderen gebunden werden. Beispiel: Die Reifen eines Autos drehen sich in Abhängigkeit der Vorwärtsbewegung des Fahrzeugs.
Emitter
Quelle eines Partikelsystems, aus dem die einzelnen Partikel herausströmen.
Extrude
Modellierungswerkzeug von Autodesk Maya, mit dem u. a. aus Kanten einer Geometrie neue Flächen erzeugt werden können.
Final Gathering
Algorithmus aus dem Bereich Global Illumination in der Computergrafik. Basiert auf Raytracing.
Force Field
Werkzeuge in Autodesk Maya, die der Simulation von Kräften dienen.
Forward Kinematics
Methode zur Characteranimation, bei der die Gelenke des Skeletts
nacheinander rotiert werden bis die gewünschte Pose erreicht ist.
Global Illumination
Oberbegriff für Beleuchtungsmodelle, die die gesamte Szene bei der
Berechnung der Lichtintensitäten berücksichtigt.
GUI
graphical user interface, deutsch grafische Benutzeroberfläche. Programmoberfläche über die der Anwender mit der Software kommunizieren kann.
Hair Primitives
Grundelement für Haare in Autodesk Maya. Kann von dem Renderer
Mental Ray dargestellt werden.
Hair-Shape
Von Shave and a haircut erzeugtes Haar-System.
Glossar
101
History
In Autodesk Maya die Arbeitsschritte die an einem Objekt ausgeführt wurden. Nach löschen der History können diese nicht mehr
Rückgängig gemacht oder verändert werden.
Hypershade
Rendering Arbeitsbereich in Autodesk Maya, in dem ShadingNetzwerke erstellt werden können.
IK-Handle
Aninmationswerkzeug von Autodesk Maya auf Basis von Inverse
kinematics.
Image planes
Referenzbilder, die zur Erleichterung des Modellierungsprozesses im
Hintergrund einer Kamera in Autodesk Maya angezeigt werden
können.
Instanz
Abhängige Kopie eines Objekts. Änderungen des Objekts, ändern
auch die Instanz.
Interpreter-Sprache
Programmiersprache, deren Programm zur Laufzeit interpretiert werden.
Inverse Kinematics
Methode zur Characteranimation, bei der ein mathematisches System
die Rotationen einer Skelett-Kette von der Position eines Startknochen bis zu einem Endknochen berechnet.
Joints
Gelenke. Bestandteile einer Skelett-Kette in Autodesk Maya.
Key-Frame Animation
Animationsmethode, bei der Schlüsselbilder (engl. Key Frames) definiert werden. Die Animation erfolgt durch Interpolation der Schlüsselbilder.
Lambert-Shader
Material ohne Glanzlichteffekt. Wird für matte Oberflächen verwendet.
Lineare Animation
Animationstechnik, die auf dem Setzen von Keyframes in der Zeitleiste basiert.
Maya
3D-Modellierungssoftware der Firma Autodesk.
Maya Fur
Komponente von Autodesk Maya, zur Generierung von Fell.
Maya Hair
Komponente von Autodesk Maya, zur Generierung von (langem)
Haar.
Maya-Software
Renderer von Autodesk Maya.
MEL
Maya Embedded Language. Skriptsprache von Autodesk Maya.
Mental Ray
Leistungsstarker Renderer, mit Routinen zur Berechnung Globaler Beleuchtungsmodelle (siehe Global Illumination), der über ein Plug-In
in Autodesk Maya integriert ist.
Mesh
Polygonnetz eines 3D-Objekts.
102
Glossar
nCloth
Komponente von Autodesk Maya, zur Kleidungssimulation.
Non-lineare Animation
Animationstechnik, bei der Animationen von der Zeitleiste unabhängig zusammengefasst werden. Die Animationsstücke können
skaliert, wiederholt und ineinander übergeblendet werden.
Normal-Map
Bilddatei über die Tiefeninformationen, auf Basis der Normalen, in
die Oberfläche einer Geometrie eingearbeitet werden.
NURBS-Modellierung
NURBS =Non-Uniform Rational B-Splines. Modellierungstechnik auf
Basis von Kurven.
Paint-Script Tool
Werkzeug in Autodesk Maya, mit dem u. a. Instanzen eines Objekts
auf einem anderen verteilt werden können.
Partikel-System
System zur Generierung und Steuerung dynamischer Teilchenströme.
Kann beispielsweise für Rauch, Nebel oder Feuer verwendet werden.
Pelting
UV-Mapping Technik, bei der die UV-Shells aufgeschnitten und flach
aufgeklappt werden.
Plane
Polygonfläche ohne Dicke, bestehend aus Faces.
Polygon
Vieleck. Fläche im 3D-Raum, deren Eckpunkte über Kanten miteinander verbunden sind.
Quad
Polygon mit vier Eckpunkten.
Sculpting-Tool
Modellierungs-Werkzeug oder Programm dessen Technik sich an der
Arbeitsweise eines Bildhauers orientiert. .
Script-Sprache
Interpretersprache, die zur Vereinfachung auf eine Reihe von Sprachelementen wie Variablendeklaration verzichtet. Wird hauptsächlich
für überschaubare Programmieraufgaben verwendet.
Shader
Material eines 3D-Objekts. Spezifiziert Oberflächeneigenschaften wie
Farbe, Glanz, Reflexion und Durchsichtigkeit.
Shave and a haircut
Programm zur Haar- und Fellgenerierung das von dem Unternehmen
Joe Alter, Inc. vertrieben wird.
Skelett
Menge von Joints (Gelenken) in einer Vater-Kind Abhängigkeit. Wird
zur Animation von Charakteren verwendet.
Specular-Map
Graustufen-Bilddatei die die Spiegelung einer Geometrie definiert.
Weiß: spiegelnd, Schwarz: matt.
STAT-Datei
Wird von Shave and a haircut erzeugt. Enthält Informationen zur
Position und Form der Haare in einem Frame.
Subdivision Surface
Modellierungstechnik, bei der detailreiche Regionen einer Geometrie
feinere Unterteilungen enthalten als detailarme.
Glossar
103
Texture-Map
Bilddatei die die Farbe einer Geometrie definiert.
Trax-Editor
Editor von Autodesk Maya zur Erstellung von non-linearen Animationen.
Tri
Polygon mit drei Eckpunkten.
UV-Koordinaten
Texturkoordinaten eines Objekts.
UV-Layout
2-dimensionale Ausbreitung der Oberfläche einer Geometrie.
UV-Mapping
Generierung eines UV-Layouts auf Basis verschiedener Techniken.
UV-Shell
Zusammenhängender Bereich eines UV-Layouts.
Vertex
Eckpunkt einer Polygon-Geometrie.
Viewport
Arbeitsbereich in Autodesk Maya.
Weighting
Manuelle Korrektur der Abhängigkeit zwischen Skelett und Geometrie.
Wireframe
Drahtgittermodell eines 3D-Objekts.
Literaturverzeichnis
[AA09]
Adam Abraham Amid Amidi, John Lasseter. The Art of Pixar Short Films. Chronicle Books,
2009.
[BB08]
Kirsten Nutto Bruce Blitz. Cartoonzeichnen leichtgemacht: Figuren und Gesichter. Taschen
Verlag, 2008.
[Bie07]
Alain Bielik. Navigating the golden compass. VFXWorld, 2007.
[Cab08]
Cheryl Cabrera. An Essential Introduction to Maya Character Rigging. Butterworth Heinemann,
2008.
[DD07]
Eric Kuzendorf Dariush Derakhshani, John Kundert-Gibbs. Mastering Maya 8.5. Wiley & Sons,
2007.
[Der07]
Dariush Derakhshai. Introducing Maya 2008. Sybex, 2007.
[Gou03]
David A. D. Gould. Complete Maya Programming. An Extensive Guide to Mel and C++ Api
(The Morgan Kaufmann Series in Computer Graphics). Morgan Kaufmann, 2003.
[Gre07]
Stefan Greschik. Federn - zu schön, um nur damit zu fliegen. GEOlino, 05, 2007.
[Hap03]
Michael Happel. Trends im animationsfilm: Disney - rückblick & ausblick. Digital Production,
03:110–115, 2003.
[Ing08]
Michael Ingrassia. Maya for Games: Modeling and Texturing Techniques with Maya and Mudbox.
Focal Press, 2008.
[IS02]
Phil Hockey Ian Sinclair, J.C. Sinclair. Birds of Southern Africa. Princeton Univ Pr, 2002.
[JB00]
George Maestri Jeremy Birn. Digital Lighting & Rendering. New Riders Publishing, 2000.
[JKG05]
et. al. John Kundert-Gibbs, Dariush Derakhshani. Maya: Secrets of the Pros Second Edition. Dan
Brodnitz, 2005.
[KP07]
Leslie Iwerks Karen Paik. To Infinity and Beyond!: The Story of Pixar Animation Studios. 2007.
[Lan07]
Lee Lanier. Maya Professional Tips and Techniques. Wiley & Sons, 2007.
[Lan08]
Lee Lanier. Advanced Maya Texturing and Lighting. Wiley & Sons, 2008.
[MRW05] Chris Kazmier Mark R. Wilkins. MEL Scripting for Maya Animators. (The Morgan Kaufmann
Series in Computer Graphics). Morgan Kaufmann, 2005.
[Oli06]
Gary Oliverio. Maya 8 Character Modeling. Wordware Publishing Inc.,U.S., 2006.
[Osb08]
Robert Osborne. 80 Years of the Oscar: The Official History of the Academy Awards. Abbeville
Pr, 2008.
[Pfa87]
Ulli Pfau. Phantasien in Halle 4/5. Michael Endes Unendliche Geschichte und ihre Verfilmung.
DTV Deutscher Taschenbuch Verlag, 1987.
105
106
Literaturverzeichnis
[Rob01]
Barbara Robertson. Birds of a feather. Computer Graphics World, 2001.
[Rob05]
Barbara Robertson. Madagascar: Das große riggen. Digital Production, 05:27–32, 2005.
[Rob06a] Barbara Robertson. Jagdfieber: 3d-technik für 2d-tricks. Digital Production, 06:24–28, 2006.
[Rob06b] Barbara Robertson. King kong: Vfx im großformat. Digital Production, 02:18–23, 2006.
[Rob06c] Barbara Robertson. Mit subdivision surfaces ins holozän. Digital Production, 03:22–28, 2006.
[Rob06d] Barbara Robertson. Narnia: Im eisigen wunderland der effekte. Digital Production, 01:22–26,
2006.
[Rob06e] Barbara Robertson. Suburbia ins rechte licht gerückt. Digital Production, 04:36–40, 2006.
[Rob07a] Barbara Robertson. Framestore cfc, one of six studios that created effects for the fantasy film the
golden compass put armored bears in leading roles. CGSociety, 2007.
[Rob07b] Barbara Robertson. Haute cuisine à la pixar. Digital Production, 05:30–34, 2007.
[Rob07c] Barbara Robertson. Senior animation supervisor david schaub never gives up. he finds a way.
CGSociety, 2007.
[Rob08]
Barbara Robertson. Seuss’sches 3d. Digital Production, 02:20–27, 2008.
[Shu08]
Bruce Shutan. In search of seussian style, the blue sky crew tried to be true for horton hears a
who! CGSociety, 2008.
[Smi09]
Mark Jennings Smith. Maya plugin power: Shave and a haircut. VFXWorld, 2009.
[Teo02]
Leonard Teo. Evolutionary cgi - the story of ice age and blue sky’s journey from small studio to
the big screen. CGSociety, 2002.
[TF01]
Peter Schouten Tim Flannery. A Gap in Nature: Discovering the World’s Extinct Animals. Atlantic
Monthly Pr, 2001.
[Tsa07]
Francis Tsai. Effective character design. ImagineFX, 02, 2007.
[UKP07]
Peter Prinz Ulla Kirch-Prinz. C++ - Lernen und professionell anwenden. Vmi Buch, 2007.
Anhang: Quellcode MEL-Script
//
//
//
//
//
//
//
//
//
F e a t h e r S y s t e m 1.0
Author : Sabine L a n g k a m m
Year : 2009
D e s i g n e d for Maya 2008 with
Shave and a h a i r c u t 5.0 v23
// V a r i a b l e n D e k l a r a t i o n
global string $field = " t " ;
global string $f_map = " t " ;
global string $s_count = " t " ;
global string $cl_color1 = " t " ;
global string $cl_color2 = " t " ;
global string $cl_color3 = " t " ;
global string $b_generat e = " t " ;
global string $b_update = " t " ;
global string $s_scale = " t " ;
global string $s_fluff = " t " ;
global string $b_fluff = " t " ;
global string $s_pass = " t " ;
global string $feather1 = " t " ;
global string $feather2 = " t " ;
global string $feather3 = " t " ;
// Shader für die I n s t a n z e n a n l e g e n
$feather1 = ‘ shadingNo d e - asShader lambert ‘;
$feather1 = ‘ rename feather1 ‘;
$feather2 = ‘ shadingNo d e - asShader lambert ‘;
$feather2 = ‘ rename feather2 ‘;
$feather3 = ‘ shadingNo d e - asShader lambert ‘;
$feather3 = ‘ rename feather3 ‘;
// F e n s t e r e r z e u g e n
window - r e s i z e T o F i t C h i l d r e n 1 F e a t h e r S y s t e m ;
columnLayout;
// GUI - E l e m e n t e e r z e u g e n
$field = ‘ t e x t F i e l d G r p - label " Bird Geometry : " ‘;
t e x t F i e l d G r p - edit - text " pSphere1 " $field ;
$f_map = ‘ t e x t F i e l d G r p - label " Color - Map : " ‘;
t e x t F i e l d G r p - edit - text " test . png " $f_map ;
107
108
Anhang: Quellcode MEL-Script
$b_gener at e = ‘ button - al " center " - label " Generate Feathers " - command
" b _ g e n e r a t e P r e s s e d () " ‘;
$layout = ‘ columnLayout ‘;
$cl_color 1 = ‘ a t t r C o l o r S l i d e r G r p - at ( $feather1 + " . color " ) - cal 1 " right "
- label " Color1 : " - sb off - rgb 1 0 0 ‘;
$cl_color 2 = ‘ a t t r C o l o r S l i d e r G r p - at ( $feather2 + " . color " ) - cal 1 " right "
- label " Color2 : " - sb off - rgb 0 1 0 ‘;
$cl_color 3 = ‘ a t t r C o l o r S l i d e r G r p - at ( $feather3 + " . color " ) - cal 1 " right "
- label " Color3 : " - sb off - rgb 0 0 1 ‘;
$s_count = ‘ i n t S l i d e r G r p - min 0 - max 100000 - label " Feathers : " - v 500
- field true ‘;
$s_scale = ‘ f l o a t S l i d e r G r p - min 0 - max 50 - label " Scale : " -v 1 - field
true ‘;
$s_fluff = ‘ i n t S l i d e r G r p - min 0 - max 300 - label " Fluff : " - v 0 - field
true ‘;
$b_fluff = ‘ button - label " Key " - command " b _ f l u f f P r e s s e d () " ‘;
$s_pass = ‘ i n t S l i d e r G r p - min 1 - max 10 - label " Blur : " - v 2 - field true ‘;
$b_update = ‘ button - label " Update " - command " b _ u p d a t e P r e s s e d () " ‘;
showWindo w ;
// liest den Wert der T e x t f e l d e r aus und ruft c r e a t e F e a t h e r s auf
proc b _ g e n e r a t e P r e s s e d () {
global
global
global
global
global
global
global
string
string
string
string
string
string
string
$field ;
$f_map ;
$s_count ;
$cl_color1 ;
$cl_color2 ;
$cl_color3 ;
$b_genera t e ;
$geoBird = " pSphere1 " ;
$mapName = " test . png " ;
int $count
= 0;
$geoBird = ‘ t e x t F i e l d G r p -q - text $field ‘;
$mapName = ‘ t e x t F i e l d G r p -q - text $f_map ‘;
disable $b_genera t e ;
c r e a t e F e a t h e r s ( $geoBird , $mapName , 500) ;
}
// ü b e r t r ä g t die g e s e t z t e n A t t r i b u t e auf die H a i r S h a p e s
proc b _ u p d a t e P r e s s e d () {
global
global
global
global
string
string
string
string
$s_scale ;
$s_fluff ;
$s_pass ;
$s_count ;
$count = ‘ i n t S l i d e r G r p -q -v $s_count ‘;
$scale = ‘ f l o a t S l i d e r G r p -q -v $s_scale ‘;
$fluff = ‘ i n t S l i d e r G r p -q -v $s_fluff ‘;
$pass = ‘ i n t S l i d e r G r p -q -v $s_pass ‘;
for ( $i = 1; $i < 4; $i ++ )
Anhang: Quellcode MEL-Script
109
{
string $fName = ( " feather_f u r " + $i ) ;
setAttr
setAttr
setAttr
setAttr
( $fName
( $fName
( $fName
( $fName
+
+
+
+
" . hairCount " ) $count ;
" . scale " ) $scale ;
" . rootFrizz " ) $fluff ;
" . hairPasses " ) $pass ;
}
}
// Setzt einen K e y f r a m e auf das A t t r i b u t fluff
proc b _ f l u f f P r e s s e d () {
global string $s_fluff ;
global string $b_fluff ;
$fluff = ‘ i n t S l i d e r G r p -q -v $s_fluff ‘;
for ( $i = 1; $i < 4; $i ++ )
{
string $fName = ( " feather_f u r " + $i ) ;
setAttr ( $fName + " . rootFrizz " ) $fluff ;
setKeyfra m e ( $fName + " . rootFrizz " ) ;
}
}
//
// G e n e r i e r t drei H a a r s y s t e m e mit F e d e r i n s t a n z e n
//
// g e o N a m e: G e o m e t r i e die mit Federn b e s e t z t werden soll
// m a p N a m e: Datei die die V e r t e i l u n g der v e r s c h i e d e n f a r b i g e n Federn
e n t h ä l t
// count : Anzahl der Federn pro System
//
proc c r e a t e F e a t h e r s ( string $geoName , string $mapName , int $count )
{
select - cl ;
$bird = $geoName ;
int $ f e a t h e r C o u n t = $count ;
$presetPat h =
" C :/ Programme / Autodesk / Maya2008 / presets / attrPrese t s / shaveHair / Default . mel " ;
// Plane erstellen , r o t i e r e n und b e n e n n e n
polyPlane -w 0.5 -h 1 - sx 1 - sy 6 - ax 0 1 0;
rotate -r - os 90 0 0 ;
rename pPlane1 " planeF1 " ;
move 0 0.5 0 ;
group ;
xform - os - piv 0 0 0;
rename feathers ;
// Shader erstellen , z u w e i s e n und Alpha - Map setzen
select planeF1 ;
hyperShade - assign feather1 ;
shadingNod e - asTexture file ;
110
Anhang: Quellcode MEL-Script
rename fileFeath er ;
connectAt t r - force fileFeath er . o u t T r a n s p a r e n c y
feather1 . t r a n s p a r e n c y ;
$path =
" D :/ Maya - Projekte / F e a t h e r _ S y s t e m s / s o u r c e i m a g e s / feather . png " ;
setAttr - type " string " " fileFeathe r . ftn " $path ;
// Shave Hair e r z e u g e n
select $geoName ;
s h a v e C r e a t e H a i r F r o m P r e s e t $presetPa t h ;
rename f e a t h e r _ f u r 1 ;
shaveReco m b ;
parent f e a t h e r _ f u r 1 feathers ;
// I n s t a n z e n z u w e i s e n
select -r shaveHair1 ;
select - add planeF1 ;
shaveSetInstance;
m a k e I d e n t i t y - apply true -t 1 -r 1 -s 1 - n 0;
select planeF1 ;
// V o r g a n g für die zwei w e i t e r n H a a r s y s t e m e w i e d e r h o l e n
for ( $i = 2; $i < 4; $i ++ )
{
string $shaderNam e = ( " feather " + $i ) ;
string $planeName
= ( " planeF " + $i ) ;
string $furName = ( " feather_f u r " + $i ) ;
duplicate ;
connectAt t r - force fileFeathe r . o u t T r a n s p a r e n c y
( $shaderNam e + " . t r a n s p a r e n c y " ) ;
select $planeName ;
hyperShade - assign $shaderNam e ;
select $geoName ;
s h a v e C r e a t e H a i r F r o m P r e s e t $presetPa t h ;
rename $furName ;;
shaveReco m b ;
parent $furName feathers ;
select -r $furName ;
select - add $planeNam e ;
shaveSetInstance ;
m a k e I d e n t i t y - apply true -t 1 -r 1 - s 1 -n 0;
select planeF1 ;
}
// A t t r i b u t e i n i t i a l i s i e r e n
setAttr " f e a t h e r _ f u r 1 . rootFrizz " 0;
setAttr " f e a t h e r _ f u r 2 . rootFrizz " 0;
setAttr " f e a t h e r _ f u r 3 . rootFrizz " 0;
setAttr " f e a t h e r _ f u r 1 . tipFrizz " 0;
setAttr " f e a t h e r _ f u r 2 . tipFrizz " 0;
setAttr " f e a t h e r _ f u r 3 . tipFrizz " 0;
// Cut Maps e r z e u g e n
$lambert = ‘ shadingNod e - asShader lambert ‘;
rename colorshad er ;
select $bird ;
hyperShad e - assign colorshad er ;
Anhang: Quellcode MEL-Script
shadingNod e - asTexture file ;
rename filecolor ;
connectAtt r - force filecolor . outColor colorshade r . color ;
setAttr - type " string " " filecolor . ftn " $mapName ;
$cutR = ‘ shadingNod e - asShader lambert ‘;
rename cutR_shad er ;
$cutG = ‘ shadingNod e - asShader lambert ‘;
rename cutG_shad er ;
$cutB = ‘ shadingNod e - asShader lambert ‘;
rename cutB_shad er ;
shadingNod e - asUtility condition ;
rename cutR_cond ;
shadingNod e - asUtility condition ;
rename cutG_cond ;
shadingNod e - asUtility condition ;
rename cutB_cond ;
connectAtt r - force filecolor . outColorR cutR_cond . firstTerm ;
connectAtt r - force filecolor . outColorG cutG_cond . firstTerm ;
connectAtt r - force filecolor . outColorB cutB_cond . firstTerm ;
connectAtt r - force cutR_cond . outColor cutR_shade r . color ;
connectAtt r - force cutG_cond . outColor cutG_shade r . color ;
connectAtt r - force cutB_cond . outColor cutB_shade r . color ;
// cutMap - File e r z e u g e n
c o n v e r t S o l i d T x - antiAlias 1 - bm 1 - fts 1 - sp 0 - sh 0 - alpha 0
- doubleSid ed 0 - c o m p o n e n t R a n g e 0 - resolutio n X 512
- resolutio nY 512 -n " cutR_file " - fileFormat " jpg "
cutR_cond . outColor $bird ;
c o n v e r t S o l i d T x - antiAlias 1 - bm 1 - fts 1 - sp 0 - sh 0 - alpha 0
- doubleSid ed 0 - c o m p o n e n t R a n g e 0 - resolutio n X 512
- resolutio nY 512 -n " cutG_file " - fileFormat " jpg "
cutG_cond . outColor $bird ;
c o n v e r t S o l i d T x - antiAlias 1 - bm 1 - fts 1 - sp 0 - sh 0 - alpha 0
- doubleSid ed 0 - c o m p o n e n t R a n g e 0 - resolutio n X 512
- resolutio nY 512 -n " cutB_file " - fileFormat " jpg "
cutB_cond . outColor $bird ;
// CutMap z u w e i s e n
connectAtt r - force cutR_file . outAlpha
| feathers | shaveHair1 | f e a t h e r _ f u r 1 . shaveTex [29];
connectAtt r - force cutG_file . outAlpha
| feathers | shaveHair2 | f e a t h e r _ f u r 2 . shaveTex [29];
connectAtt r - force cutB_file . outAlpha
| feathers | shaveHair3 | f e a t h e r _ f u r 3 . shaveTex [29];
}
111