Dokument 1

April 21, 2018 | Author: Anonymous | Category: N/A
Share Embed


Short Description

Download Dokument 1...

Description

Analyse bestehender Systeme zur Generierung von K¨ orperbedeckungen 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¨ arung Hiermit versichere ich, die vorliegende Diplomarbeit selbstst¨andig und nur mit den angegebenen Hilfsmitteln und Literaturquellen verfasst zu haben.

Friedberg, den 13.07.2009

Sabine Langkamm

i

Danksagung Ich m¨ochte mich an dieser Stelle bei all denen bedanken, die mich bei der Anfertigung meiner Diplomarbeit so kr¨aftig unterst¨ utzt haben. Mein besonderer Dank geht an meine Eltern, die mir das Studium erst erm¨ oglicht haben und mich die gesamte Zeit u utzt und an ¨ber unterst¨ mich geglaubt haben. Den Referenten meiner Diplomarbeit Dipl.-Math. Cornelius Malerczyk und Prof. Dr. Manfred Merkel m¨ ochte ich herzlich f¨ ur ihre Geduld danken und daf¨ ur, dass sie mir stets vorgelebt haben, was es heißt mit Begeisterung und Engagement seinem Beruf nachzugehen. Ren´e Nold und Klaus Halassek danke ich daf¨ ur, dass sie mir das Gebiet der grafischen Datenverarbeitung n¨aher gebracht haben. Ein großes Dankesch¨on geht auch an Sonja Emmel die mir stets eine gute Freundin und ein Vorbild war. Nico Smentek, Dennis Kolwe und Timo Kr¨amer danke ich f¨ ur die wundervolle Arbeitsatmosph¨are im Labor. Prof. Dr. Monika Lutz danke ich daf¨ ur, dass sie schon fr¨ uher als ich selbst meine Leidenschaft f¨ ur das Themengebiet der grafischen Datenverarbeitung erkannt hat und mich von Beginn an unterst¨ utzt und gef¨ordert hat. Schließlich gilt mein ganz pers¨ onlicher Dank meinem Freund und Lebenspartner Dirk Fidorski f¨ ur sein Verst¨andnis und seine F¨ ursorge w¨ahrend der letzten Monate.

iii

Inhaltsverzeichnis Eidesstattliche Erkl¨ arung

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¨onige der Wellen . . . . . . . . . . . . 2.5.4 Vlad Vlad-I-Kloff in Horten h¨ort 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¨ uberstellung 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¨ utzung 5.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Die Script-Sprache von Maya . . . . . . . . . . . . . . . . . . . 5.3 Anforderungen an das Script . . . . . . . . . . . . . . . . . . . 5.4 Die Programmoberfl¨ache . . . . . . . . . . . . . . . . . . . . . 5.5 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Programmierung der Oberfl¨ache . . . . . . . . . . . . . 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¨aufig von Tieren nachempfundenen Cartoon-Figuren. Wenn diese Tiere K¨ orperbedeckungen wie etwa Fell oder Gefieder aufweisen, muss dies bei der Entwicklung der 3D-Figur ber¨ ucksichtigt werden. Durch die immer leistungsf¨ahigere Computer-Hardware und Software k¨ onnen immer komplexere und damit auch realistischere Systeme zur Generierung von K¨ orperbedeckungen verwendet werden. Diese Systeme erm¨oglichen die Entwicklung neuer Cartoon-Stile, die den Computeranimationsfilm lebendiger erscheinen lassen. Bei Fell und Fell ¨ahnlichen K¨orperbedeckungen 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¨ ugen sie ¨uber Algorithmen, u ¨ber die die Bewegung der Haare simuliert wird. Systeme zur Generierung von Federn existieren bisher nur vereinzelt. In vielen Filmen werden Cartoon-V¨ ogel noch ganz ohne Federn oder lediglich mit entsprechenden Feder-Texturen dargestellt. Bei einigen Vogelarten, wie etwa Pinguinen, werden Fellsysteme als Ersatz f¨ ur ur das Gefieder der meisten Vogelchaein Gefieder verwendet (siehe Abbildung 1.1 rechts). F¨ raktere 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¨ogeln optimiert ist.

1.2

Problemstellung und Zielsetzung

Eine realit¨atsnahe Simulation von K¨orperbedeckungen ist bei der Erstellung von Computeranimationsfilmen eine der gr¨ oßten Herausforderungen. Das Gefieder und Fell von Tieren besteht aus einer sehr großen Anzahl Elemente, die aufgrund ihrer geringen Gr¨oße und des geringen Gewichts besonders stark auf Umwelteinfl¨ usse reagieren. Jede Bewegung des Tieres und jeder Windstoß wirkt sich auf das Fell oder Gefieder des Tieres aus. Die dynamischen Berechnungen, die f¨ ur eine realistische Darstellung notwendig sind, stellen einen erheblichen Rechenaufwand dar. F¨ ur die Umsetzung von Tieren mit Fell, stehen bereits ausgereifte Systeme zur Verf¨ ugung. Diese Systeme werden zum Teil auch f¨ ur 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¨asentativen Software-Auswahl zu entwickeln. Dabei muss das System an folgenden Qualit¨atskriterien gemessen werden k¨ onnen: • Renderzeit: Die Renderzeiten sollten m¨oglichst gering sein. Dabei sollten sie stets in Abh¨angigkeit zur Qualit¨at und Komplexit¨at des Ergebnisses betrachtet werden. In Computeranimationsstudios steht in der Regel sehr leistungsf¨ahige Hardware in großer St¨ uckzahl zur Verf¨ ugung. Daher sollte der Verlauf der Renderzeit bei immer komplexeren Einstellungen u uft werden. ¨berpr¨ • Bedienbarkeit: Das System sollte m¨ oglichst einfach, u ¨bersichtlich und intuitiv gestaltet sein. Dies erspart zum einen Einarbeitungszeit und erleichtert es dem Anwender zum anderen seine Ideen umzusetzen. • Flexibilit¨ at: Das Federsystem soll f¨ ur 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¨at der einzelnen Elemente • Qualit¨ at des Ergebnisses: Bei diesem Kriterium muss zwingend ein zufriedenstellender Wert erreicht werden. Erf¨ ullt ein System alle anderen Kriterien, versagt jedoch bei der Qualit¨at, so wird es niemals bei einem Projekt zum Einsatz kommen. Auf der anderen Seite, kann durchaus ein System mit schlechterer Endqualit¨at aufgrund der Kostenersparnis einem hochwertigerem mit h¨ oherer Renderzeit, vorgezogen werden. Federn sind eine Variante von K¨ orperbedeckungen bei Tieren. Sie kommen nur bei V¨ogeln ¨ vor. Ahnlich 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¨ ulle bilden. Der Aufbau einer Feder ist etwas komplexer als der eines Haares, wie es in Fell vorkommt. Trotzdem orperbedeckungen so sehr, dass Federn vereinfacht als ein ¨ahneln sich beide Sorten von K¨ komplexes Fellsystem angesehen werden k¨onnen. Abbildung 1.2 zeigt Nahaufnahmen von ¨ Fell und Gefieder, hier ist die Ahnlichkeit der beiden K¨orperbedeckungsvarianten deutlich zu erkennen. Um ein neues System zu entwickeln, das auf die Generierung von Federn spezialisiert ist, muss zun¨achst eine Analyse der bestehenden Systeme zur Generierung von Fell durchgef¨ uhrt werden. Aufbauend auf diesen Vor¨ uberlegungen kann f¨ ur 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¨atskriterien im Vergleich zu konkurrierenden Ans¨atzen am besten erf¨ullt.

1.3

Organisation der Arbeit

Im Rahmen dieser Arbeit soll zun¨achst in Kapitel 2 eine Analyse der bisher in Computeranimationsfilmen angewandten Techniken zur Visualisierung von K¨orperbedeckungen durchgef¨ uhrt 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¨oglichkeit auf die schon vorhandenen Ans¨atze von Federsystemen und deren Arbeitsweise in Computeranimationsfilmen eingegangen. Aus den gewonnenen Erkenntnissen wird in Kapitel 3 zun¨achst eine Softwareauswahl getroffen. Die Komponenten der ausgew¨ahlten Software werden danach auf ihre Brauchbarkeit in Hinblick auf das zu entwickelnde Federsystem untersucht. Mit Hilfe der ausgew¨ahlten 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 u ¨ber die Programmierung einer einfachen Oberfl¨ache f¨ ur die ausgew¨ahlte 3D-Software erfolgen.

1.4

Zusammenfassung der wichtigsten Ergebnisse

Im Rahmen dieser Arbeit soll ein neues Federsystem zur Erstellung von Gefieder f¨ ur 3D-V¨ogel 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¨aufig statt Gefieder Fell auf dem Charakter verteilt. Da ¨ zwischen Federn und Fell eine große Ahnlichkeit besteht wird vermutet, dass die bestehenden Fellsysteme als Basis f¨ ur ein neues Federsystem verwendet werden k¨onnen. F¨ ur 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¨achst ermittelt welche der bereitgestellten Techniken und Methoden f¨ ur die Generierung und Verteilung von Federn auf einem Charakter verwendet werden k¨onnen. Bei der Umsetzung der einzelnen Federn ergeben sich hier zwei Verfahren. Zum einen k¨onnen die Federn als Haare eines Fellsystems generiert werden und u ugung stehenden Attribute dieser Systeme ¨ber die zur Verf¨ soweit wie m¨ oglich an die Form von Federn angepasst werden. Zum anderen k¨onnen die Federn als Geometrien mit geringer Polygonanzahl erstellt werden. Um den Detailgrad bei der zweiten Technik zu erh¨ ohen, kann eine Alpha-Map zur Texturierung verwendet werden. Die Verteilung der Federn auf der Geometrie sollte in jedem Fall u ¨ber ein Fellsystem realisiert werden, da diese Systeme Algorithmen bereitstellen, u ¨ber die die Bewegung der Federn umgesetzt werden kann. Hierf¨ ur 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¨ uhrt 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¨ uhlen l¨asst. Die Federsysteme werden anhand der Sequenz in Hinblick auf zuvor festgelegte Qualit¨atskriterien bewertet und verglichen. Das erste Kriterium ist die Renderzeit f¨ ur ein Frame der Testsequenz, wobei darauf geachtet werden muss, ein vergleichbar dichtes Gefieder, unabh¨angig von der ben¨ otigten Federanzahl, zu erzeugen. Außerdem wird die Bedienbarkeit des Systems und die Flexibilit¨at bei der Darstellung verschiedener Gefiederarten in die Bewertung miteinbezogen. Die Qualit¨at des erzeugten Bildmaterials fließt als letztes Kriterium in die Bewertung der Systeme ein. Die beste Bewertung erh¨alt 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¨otigen Arbeitsschritte zur Erstellung des Federsystems automatisiert. Im Anschluss erh¨alt der Anwender u ¨ber eine grafische Benutzeroberfl¨ache zudem die M¨ oglichkeit das Gefieder u ¨ber eine Reihe von Parametern anzupassen.

5

Kapitel 2

Stand der Technik ¨ Dieses Kapitel gibt einen Uberblick der in Computeranimationsfilmen eingesetzten Techniken zur Generierung von K¨ orperbedeckungen. Zun¨achst wird speziell auf Methoden zur Fellgenerierung eingegangen, da sich die hierbei gewonnen Erkenntnisse auf Federsysteme u onnen in diesem Bereich bereits auf ausgereifte Sys¨bertragen lassen. Die Unternehmen k¨ teme zur¨ uckgreifen. Diese Systeme k¨ onnen wichtige Erkenntnisse f¨ ur 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¨asentieren. 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¨altiger Form produziert. Jedes Jahr laufen mehrere neue Filme in den Kinos. Die Handlung vieler dieser Filme dreht sich um Tiercharaktere mit K¨ orperbedeckungen. Meist sind dies S¨augetiere mit Fell. Vereinzelt existieren auch bereits Vogelcharaktere. Fell stellt wie Federn eine Variante der K¨orperbedeckungen dar. Diese Verwandtschaft l¨asst sich bei der Generierung der Federsysteme insofern nutzen, dass die bestehenden Techniken zur Fellgenerierung als Referenzmaterial herangezogen werden k¨onnen. Daher soll soweit m¨ oglich 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¨ale. Ein Grund f¨ ur diese Entwicklung ist sicherlich, dass im Gegensatz zu ihren Vorg¨angern, den 2D-Animationsfilmen, 3D-Filmen nicht mehr so stark der Ruf eines reinen Kinderfilmes anh¨angt. Sie haben sich mittlerweile einen 7

8

Stand der Technik

c Abbildung 2.1: Der Ballsaal aus Die Sch¨one und das Biest, 1991 Walt Disney

Platz als Unterhaltungskino f¨ ur s¨amtliche 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¨one und das Biest zum ersten Mal ein Animationsfilm f¨ ur den Oskar in der Kategorie Bester Film nominiert war, wurde eigens f¨ ur den Animationsfilm eine neue Kategorie geschaffen [Osb08]. Unter der Bezeichnung Best Animated Feature wird seitdem jedes Jahr ein Animationsfilm geehrt. ¨ Der Ubergang vom 2D-Trickfilm hin zum 3D-Animationsfilm war fließend [Hap03]. 3DSoftware wurde zun¨achst nur f¨ ur einzelne Szenen oder Hintergr¨ unde in Trickfilmen eingesetzt. Der erste computergenerierte Hintergrund war 1991 der Ballsaal in dem Walt Disney Klassiker Die Sch¨one und das Biest (siehe Abbildung 2.1). Die Figuren wurden dabei per Hand gezeichnet und danach mit dem Hintergrund zusammengef¨ ugt. 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¨ankte die M¨oglichkeiten der Computeranimateure ein. Sie mussten zugunsten eines einheitlichen Gesamtbildes unter ihren M¨oglichkeiten arbeiten. Trotz dieses Nachteils entstanden in den n¨achsten Jahren weitere bemerkenswerte Filme aus einer Kombination von 2D- und 3D-Techniken. Im Jahr 1994 erreichte Disney mit Der K¨onig der L¨owen einen neuen H¨ohepunkt in der Geschichte des Trickfilms. Die beeindruckenste 3D-Szene zeigt eine aus tausenden von Gnus bestehende Herde eine H¨ ugelkette herabst¨ urmen. 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¨ahrend der Szene um 360 Grad umkreist, auch dies stellte eine Premiere im traditionellen Animationsfilm dar. In den n¨achsten Jahren wurden die Anteile von computergenerierten Bildern in Animationsfilmen immer gr¨ oßer und die Szenen immer aufw¨andiger. Waren in Der K¨onig der L¨owen 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¨andig am Computer generierte Kinofilm. Er entstand aus einer Zusammenarbeit zwischen der Walt Disney Company und den damals noch von Disney unabh¨angigen Pixar Animation Studios. Nach dem großen Erfolg des Films entstand ¨ eine enge Zusammenarbeit zwischen Disney und Pixar, die im Jahr 2006 in der Ubernahme von Pixar durch Disney endete. Zu den bekanntesten Pixar Produktionen z¨ahlen die Filme [KP07]: • Toy Story 1 und 2 (1995 und 1999) • Findet Nemo (2004) • Ratatouille (2007) • WALL-E - Der Letzte r¨aumt 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¨ uhe 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¨ onnen. 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¨ahlen 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¨offentlicht pro Jahr etwa zwei Kinofilme. Ein weiteres f¨ uhrendes Animationsstudio ist Blue Sky Studios 2 , welches zu 20th Century Fox Filmed Entertainment geh¨ ort. 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¨ ort 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¨ ungste der aufgef¨ uhrten 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¨ ur den 3D-Film nun zu einer Besinnung auf die alten Werte kommt und somit in Zukunft beide Genres, n¨amlich das des traditionell gezeichneten Trickfilms und das des 3D-Animationsfilms nebeneinander existieren werden, wird sich zeigen. Die Walt Disney Company hat zumindest f¨ ur Ende 2009 mit The Princess And The Frog ihren ersten 2D-Animationsfilm seit 2004 angek¨ undigt. Computeranimationsfilme werden wie oben bereits angedeutet zumeist in einem auf diese Filme spezialisierten Subunternehmen eines großen Filmstudios produziert. Tabelle 2.1 ¨ beinhaltet einen Uberblick 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¨oglicht es heutzutage Charaktere mit sehr aufw¨andigen Haar- und Fellsystemen zu generieren. Dennoch bringen solche Systeme einige Probleme mit sich. Meist ist es mit aktivem Fellsystem nicht mehr m¨oglich in Echtzeit zu arbeiten. Dies hat zur Folge, dass f¨ ur das Animieren der Figuren das Fellsystem deaktiviert wird. Dadurch entstehen aber wiederum Probleme, da die Gr¨oß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¨ ussen außerdem in einer Verformung des Fells an den Ber¨ uhrungsfl¨achen 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¨ ort 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¨ort ein Hu!

Sony Pictures Entertainment

Sony Pictures Animation

Jagdfieber K¨onige der Wellen

¨ Tabelle 2.1: Uberblick 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 u ¨ber das Setzen von Keyframes animiert. Durch die hohe Anzahl von zum Teil mehreren Millionen einzelnen Haaren pro Charakter und die aufw¨andigen 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¨aß bei Szenen mit vielen Charakteren zu Programmabst¨ urzen f¨ uhren. In den n¨achsten 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¨ ur die Modellierung ihrer Figuren haupts¨achlich 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 ¨ uber 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¨ uhmte Filmproduktionen der letzten Jahre, die RenderMan verwenden sind beispielsweise The Dark Knight, Spider-Man und Harry Potter. F¨ ur 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¨altnism¨aßig geringen Anzahl von Haaren bedeckt. Diese k¨onnen 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¨ange, Dichte, Steifheit und Farbe des Fells k¨onnen u ¨ber Parameter f¨ ur 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¨oglich, Haare in bestimmten Regionen l¨anger oder k¨ urzer darzustellen oder kahle Stellen zu generieren. Außerdem gibt es die M¨oglichkeit Haar-zu-Haar-Kollisionen zu berechnen. Dies wird aufgrund des hohen Rechenaufwands in der Regel nur f¨ ur Hauptcharaktere verwendet. Zuletzt verwendete Pixar das oben beschriebene Fellsystem bei der Entwicklung des Films Ratatouille. Die Frisur der K¨ ochin 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¨ochte. Die Besonderheit lag darin, dass in einigen Szenen Massen von Ratten auftraten. F¨ ur diese Einstellungen verwendete Pixar die Crowd-Simulationssoftware Massive, die schon in der Herr-der-Ringe-Trilogie f¨ ur 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¨ ur eine solche Sequenz w¨aren also 500 Millionen Haare zu rendern. Der Rechenaufwand f¨ ur diese Szenen w¨are 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 u ¨berschaubarem Rechenaufwand zu erzeugen. Sie schufen eine M¨oglichkeit, die Haarstruktur je nach Distanz zur Kamera zu ver¨andern. 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¨ orperbedeckungen 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¨ornchen besitzen kurzes, die B¨aren 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 u ¨ber ein Raytracing-Verfahren bestimmen, wie sich die Haut der Charaktere einander n¨ahert. Die Verfahren zum Gl¨atten des Fells bei Kontakt der Tiere sind jedoch so aufw¨andig, 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¨ ußung nicht umarmen sollten, sondern sich auf die Schultern klopften. Außerdem wurde die Zeit, in der der Hauptcharakter, Waschb¨ar Richie, seinen Golfsack tr¨agt, minimiert. In Kung Fu Panda bestand die Schwierigkeit darin, dass die Tiere Kleidung tragen sollten. Um dies zu erm¨oglichen, war es notwendig, die Tiere mit m¨oglichst 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¨alt 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¨ ur ihre Animationsfilme ebenfalls die 3D-Software Autodesk Maya [Rob06c]. Fell wurde bei Blue Sky in der Vergangenheit u ¨ber tausende von sogenannten sprite cards, d.h. Fl¨achen mit zugewiesener Textur, dargestellt, die prozedural auf der Oberfl¨ache verteilt wurden. Heute arbeitet das Studio mit einem selbstentwickelten, in Maya integrierten, propriet¨aren Haar- und Fell-System. Die Software ist u ¨ber ein Plug-In mit Maya verbunden ¨ und liefert Spezialwerkzeuge wie Vektoren, Spiralen und Ventilatoren. Uber das Tool k¨onnen mehrere Millionen Haare erzeugt werden. Diese werden u ¨ber Guide-Hairs und Vektorfelder gesteuert und k¨ onnen exakt an den vorgesehenen Bereichen der Charaktere positioniert werden. Die Bereiche werden dabei u ur die Haare k¨onnen eine ¨ber Bounding Boxes definiert. F¨ Vielzahl von Charakteristika wie Farbe, L¨ange und Welligkeit definiert werden. Die Haarspezialisten k¨ onnen mit Hilfe von Zwischenrenderings die Qualit¨at ihrer Arbeit u ufen. ¨berpr¨ F¨ ur die Animation der Haare setzt Blue Sky auf ein weiteres propriet¨ares System, das echte Dynamik in einer physikalischen Umgebung imitiert. Dadurch k¨onnen die Animatoren beispielsweise Parameter f¨ ur 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¨ache zu legen und damit die Komplexit¨at des Materials zu erzeugen. Abbildung 2.8 illustriert die unterschiedlichen Techniken am Beispiel

15

16

Stand der Technik

Abbildung 2.8: Scrat das Eichh¨ornchen. 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¨ ornchens 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¨andern. Dazu legte Blue Sky Studios f¨ ur die Hauptcharaktere drei Parameters¨atze 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¨onnen 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¨ ur ein Frame, in dem Tiere mit Fell und bewegtes Wasser vorkamen, auf einem Rechner zehn bis zw¨olf 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¨aren Frisursystem f¨ ur die Erstellung von Haaren und Fell, das auf Mayas Haarsimulations-Software basiert. Das System wurde urspr¨ unglich f¨ ur die Stuart Little Filme realisiert. Es multipliziert beim Rendern einzelne Kontrollhaare millionenfach, die vorher in die gew¨ unschte Richtung geb¨ urstet wurden. Darin enthalten sind verschiedene Werkzeuge, die die Haare nach vorgegebenem Design verklumpen und legen. Das System erm¨ oglicht es außerdem die Form des Haares w¨ahrend der Simulation zu kontrollieren. Um die Realit¨at m¨ oglichst genau abzubilden, w¨are eine Physik-Simulation sinnvoller. 4

¨ Voxel = von volumetric und pixel. Dreidimensionales Aquivalent eines Pixels.

2.3. Haar- und Fellsysteme aktueller Entwicklungsstudios

Abbildung 2.9: Szene aus Jagdfieber. Die Masse an Eichh¨ornchen sorgte w¨ahrend des c Renderns zu Programmabst¨ urzen 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¨ urde. 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¨ ur 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¨ache 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¨ar die Figur mit dem aufw¨andigsten Fell. Die Renderzeit f¨ ur ein Frame in HD-Qualit¨at mit Boog betrug etwa 45 Minuten. Szenen mit einzelnen Tieren stellten f¨ ur die Entwickler daher kein großes Problem dar, schwieriger wurde es bei Massenszenen. Eine Einstellung mit sehr vielen Eichh¨ornchen (siehe Abbildung 2.9) hatte extrem hohe Renderzeiten und lastete die vorhandene Hardware voll aus. Dies f¨ uhrte zu Programmabst¨ urzen. Um die Szene zu rendern, verringerte Imageworks die Anzahl der Haare und renderte die Szenen dann in mehreren Durchg¨angen, soweit dies ohne sichtbare Einbußen bei der Qualit¨at des Fells m¨ oglich war. Bei Jagdfieber arbeiteten etwa 16 Personen allein an dem Fell der Tiere.

17

18

Stand der Technik Fr¨ uher war alles OK, solange die Haare den Grundgesetzen der Physik folgten. ” F¨ ur diesen Film mussten wir Haar aber auf eine besondere Weise schwingen oder sich im Wind u urmen lassen und unsere Pipeline an solche Aufgaben ¨bertrieben auft¨ 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¨oglich, 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¨ unscht verhielt. Produktionen, die mit exotischen Tieren arbeiteten, wurden außerdem h¨aufig mit dem Vorwurf der Tierqu¨alerei 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¨oglich 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¨ uhmtesten Beispiele f¨ ur ein k¨ unstliches Fantasywesen ist der Drache Fuchur (Abbildung 2.10 links) ur ihn angefertigten Modelle aus Die unendliche Geschichte [Pfa87]. Das imposanteste der f¨ ist heute im Filmpark Babelsberg ausgestellt. Das Drachen-Modell ist u ¨ber 15 Meter lang. Allein der drei Meter große Kopf wiegt u ¨ber 100 kg. Die aufw¨andige Mechanik erlaubte es Fuchur verschiedene Mimiken wie Sprechen, Lachen, Augenrollen, Zwinkern und Stirnrunzeln darzustellen. F¨ ur 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¨ unstlich. 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¨oglichkeiten der Computergraphik zu nutzen. Ein Beispiel, was zu dieser Zeit technisch schon m¨oglich war, zeigt die Umsetzung des Drachen Draco in dem Film Dragonheart (siehe Abbildung 2.10 rechts). Der Film wurde 1996 ver¨offentlicht und erz¨ahlt die Geschichte einer Freundschaft zwischen einem Drachen und einem Drachent¨ oter. F¨ ur 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¨ ur den Oscar nominiert. Mittlerweile werden f¨ ur 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¨abe. In den n¨achsten Abschnitten wird exemplarisch an einigen aktuellen Produktionen die Vorgehensweise großer Spezialeffekte-Studios bei der Generierung von Figuren mit K¨orperbedeckungen 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¨ahlt 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¨olkerten M¨archenwelt. An der Umsetzung des Stoffs arbeiteten insgesamt drei Studios f¨ ur Spezialeffekte [Rob06d]. Industrial Light & Magic fertigte Charaktere f¨ ur die Schlachtszenen an. Da hierbei keine Fell-Simulationen ben¨ otigt wurden, wird auf eine n¨ahere Betrachtung ihrer Arbeit verzichtet. Das Studio Rhythm & Hues gestaltete ebenfalls Kampfszenen, daneben war es auch f¨ ur die Umsetzung des L¨ owengotts Aslan (siehe Abbildung 2.11) zust¨andig. 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¨ahne des L¨owen stellte eine besondere Herausforderung dar. Sie enth¨alt etwa 20 Millionen Haare, aufgeteilt in 15 verschiedene Haartypen von krausem bis str¨ahnigem Haar. Rhythm & Hues entwickelte f¨ ur das Frisieren der M¨ahne ein spezielles System, das auf Guide-Hairs mit verschiedenen Rekursionsebenen besteht. So k¨onnen Guide-Hairs mit geringerer Dichte solche mit h¨oherer steuern. Das dritte Animationsstudio, das an dem Film arbeitete, war Sony Pictures Imageworks. Es schuf neben der digitalen Umgebung auch die u ¨brigen Fabelwesen des M¨archens. Hierzu geh¨oren die sprechenden Tiere Mr. und Mrs. Beaver, F¨ uchse und W¨olfe und einen Faun5 . Um das Fell der Tiere realistisch darzustellen, arbeitete Imageworks bei den einzelnen Tieren mit unterschiedlichen Felltypen, die in Ebenen ¨ubereinander gelegt wurden. Beispielsweise bestehen die Felle der Biber aus einer unteren, dicken, flaumigen Schicht Fell, w¨ahrend 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¨ahne des L¨owengotts Aslan aus Die Chroniken von Narnia besteht c aus etwa 20 Millionen Haaren. Walt Disney Picutres

Das Fell der F¨ uchse und W¨ olfe besteht ebenfalls aus jeweils zwei Schichten. Die Felltypen unterscheiden sich hier jedoch weniger in ihrer Beschaffenheit, sondern haupts¨achlich in der Farbgebung. Das Fell der W¨ olfe musste besonders realit¨atsnah gestaltet werden, da die computergenerierten Tiere in einigen Szenen neben echten W¨olfen auftreten. Um die nicht menschliche H¨alfte des Fauns zu gestalten wurde auf ¨ahnliche Weise wie bei den Tiercharakteren verfahren. Der Schauspieler des Fauns trug w¨ahrend der Dreharbeiten eine farblich abgesetzte Hose, die sp¨ater 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 u ¨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¨ ur die Umsetzung des Riesengorillas (siehe Abbildung 2.12) war das Studio Weta Digital, das auch f¨ ur die Spezialeffekte in der Herr der Ringe-Trilogie zust¨andig war, verantwortlich. F¨ ur die Herr der Ringe-Reihe hatte das Unternehmen bereits ein eigenes Fellsystem entwickelt, f¨ ur 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¨ orpern u ¨bers¨at sein sollte. In seiner finalen Version enthielt das Fell 2000 Bl¨atter von 20 verschiedenen Pflanzen und 2000 Klumpen aus Schlamm und getrocknetem Blut. Hinzu kamen noch Baumstr¨ unke, die auf dem Riesengorilla jedoch wie kleine St¨ocke erschienen. King Kongs Fell besteht durchschnittlich aus vier Millionen Haaren. F¨ ur Nahaufnahmen wurde die Zahl der Haare in den sichtbaren Bereichen des K¨orpers erh¨oht, die Zahl an sichtbaren Haaren blieb dabei nahezu konstant. Gerendert wurden die Szenen sp¨ater mit Pixars Renderer RenderMan. Im Schnitt dauerte es etwa zwei Stunden, um ein Frame mit Kong zu rendern. In sehr aufw¨andigen Szenen, mit vielen Lichtern und Motion Blur erh¨ohte 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¨ uhmten 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¨ opf namens Daemon. Die Daemonen haben die Gestalt von Tieren. Bevor sie erwachsen werden k¨ onnen 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¨onig der Panzerbjoeerne und der goldene Affe. New Line Cinema

verwandeln. Mit dem Heranwachsen des Menschen entscheidet sich sein Daemon dann f¨ ur eine feste Tierform. Neben den Daemonen nehmen die Panzerbjoerne eine zentrale Rolle im Film ein. Panzerbjoerne sind ein monarchisches Volk intelligenter, sprechender Eisb¨aren. Zu allen diesen Tiergestalten mussten f¨ ur den Film Computermodelle mit sehr hoher Qualit¨at erzeugt werden, damit der Film nicht zusammengesetzt wirkte. Mit einem Gesamtbudget von 180 Millionen US-Dollar und neun Spezialeffektestudios, die f¨ ur 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¨orperbedeckungen 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¨ onnen, kamen noch einige weitere Tiere in k¨ urzeren Szenen hinzu. Der Film beinhaltet u ¨ber 500 Einstellungen mit Daemonen. Die digitale Umsetzung dieser Kreaturen u ur die Realisierung des ¨bernahm das Spezialeffekte-Studio Rhythm & Hues, das bereits f¨ L¨owen Aslan in Die Chroniken von Narnia beauftragt worden war. Auf den dort gesammelten Erfahrungen konnte das Unternehmen aufbauen. Rhythm & Hue verwendete f¨ ur 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¨atze gesucht die Renderzeiten und somit die Komplexit¨at des Fells zu verringern. Zun¨achst 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¨ urde, daher entschied man sich letzlich doch f¨ ur eine realit¨atsnahe 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¨andigste Fellsystem wurde f¨ ur 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¨altnis zu seiner K¨ orpergr¨ oße lange und vor allen Dingen sehr d¨ unne Haare. F¨ ur 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¨adel und dem oberen R¨ ucken 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 u ¨bernahm die Firma Framestore CFC [Rob07a]. Die Eisb¨aren (Abbildung 2.13 Mitte) wurden mit Autodesk Maya modelliert und animiert. Als Renderer wurde Pixars RenderMan verwendet. Das Fell wurde mit einem propriet¨aren System auf der Basis von Maya realisiert. Das Fell jedes Eisb¨aren bestand aus etwa drei Millionen einzelner Haare, darunter kurze Haare f¨ ur die Schnauze, mittellange unter dem Kinn und lange Haare f¨ ur den restlichen K¨ orper. Die Form des Fells wurde von den Framestore CFC mit Hilfe von Guide-Hairs erstellt. Die B¨aren in Philip Pullmans Welt sind ein kriegerisches Volk, sie fertigen Panzerung f¨ ur sich selbst an, die ihren R¨ ucken und Kopf im Kampf sch¨ utzen sollen. Die Interaktion des Fells mit der Panzerung der B¨aren 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¨aren realistisch dargestellt werden. Am Set wurde zu diesem Zweck ein Stofftier verwendet, das sp¨ater durch die digitale Form des B¨aren 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¨arte die Digital Production: Unter CG-Artists sind sie ungef¨ahr so beliebt ” wie eine ansteckende Krankheit: Haare, Fell und Federn.“ Daran hat sich bis heute scheinbar kaum etwas ver¨andert. Die Generierung von K¨orperbedeckungen stellt in vielen Computeranimationsfilmen noch immer eine der gr¨oßten Herausforderungen dar. Die Rechenleistung der verwendeten Hardware hat sich in den letzten Jahren zwar erh¨ oht, der Anspruch der Entwickler und der Zuschauer an die Qualit¨at des Fells

23

24

Stand der Technik ist jedoch proportional dazu mitgewachsen. Heute k¨onnen Szenen mit einer großen Anzahl behaarter Tiere realisiert werden, die fr¨ uher nicht denkbar waren. Sie stellen f¨ ur die Haarspezialisten der Studios jedoch immer komplexere Herausforderungen dar. Aufgrund der noch ¨ immer sehr hohen Renderzeiten ist es zudem nicht m¨oglich, jede Anderung des Fell-Designs oder bei der sp¨ateren Animation der Charaktere zu Vorschauzwecken zwischenzurendern. Die Vorgehensweise der großen Entwicklungsstudios l¨asst 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, u ¨ber das die Generierung und Animation des Fells realisiert wird. Auch das Rendern u ¨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¨ahrtes 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¨oglich ist, die gegebenen Defizite mit Eigenentwicklungen zufriedenstellend zu l¨ osen, ergibt sich hier zudem eine Marktl¨ ucke f¨ ur Drittanbieter. Andererseits hat bisher noch keines der großen Studios sein propriet¨ares System erweitert, um es auf dem kommerziellen Markt zu verkaufen. Als Grund hierf¨ ur w¨are denkbar, dass die Studios die Vorteile durch den Verkauf ihrer Systeme als geringer einsch¨atzen, als die Nachteile die entstehen k¨ onnten, wenn alle Studios Zugang zu ihrer besonders leistungsf¨ahigen Software h¨atten. Andererseits ist dieses Vorgehen in anderen Bereichen durchaus u ¨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¨ ur die Schlachtszenen in Der Herr der Ringe-Trilogie. Bis heute ist Massive die einzige kommerzielle Software f¨ ur Massensimulation. Die Software wird daher in sehr vielen Produktionen verwendet. Auch f¨ ur die Entwicklung neuer Innovationen auf dem Gebiet der Generierung von K¨orperbedeckungen w¨are es sinnvoll, wenn alle Studios auf ein oder zwei gemeinsam genutzte Systeme zur¨ uckgreifen w¨ urden. Stattdessen scheint es, dass jedes Studio f¨ ur sich dasselbe System immer wieder neu erfindet. Vielleicht wird es Drittanbieter in Zukunft m¨oglich sein ein Fundament hierf¨ ur 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¨achst 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 Ubersicht 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 ¨ ublich, 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¨ ur den besten animierten Kurzfilm. Der Film handelt von einer Reihe kleiner, spatzen¨ahnlicher V¨ogel die auf einem Telefonmast sitzen und einem großen storchenartigen Vogel, der sich zu ihnen setzen m¨ ochte. Abbildung 2.14 zeigt eine Szene des Kurzfilms. F¨ ur die kleinen, runden V¨ ogel wurde ein Basismodell in Autodesk Maya erstellt [Rob01]. Das Federkleid wurde erst im letzten Schritt hinzugef¨ ugt. Einige der Federn sollten flaumig sein, w¨ahrend andere harte Kanten besitzen sollten. Aus diesem Grund verwendete das Team Kugelprimitive mit Haaren und Texturen f¨ ur die Transparenz. Jeder Vogel besitzt 2873 einzelne Federn, was zu der damaligen Zeit zu erheblichen Problemen mit der Arbeitsspeicherauslastung f¨ uhrte. 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¨atzlich zu den Hauptfedern mussten in einigen Szenen weitere Federn zum Ausgleichen von kahlen Stellen hinzugef¨ ugt 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¨ uhrte, 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 - ¨ahnlich 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¨ ogel werden zur Mitte hin aneinandergedr¨ uckt (siehe Abbildung 2.14). Kollisionen waren somit nicht vermeidbar, sondern bildeten ein Kernelement des Kurzfilms. ¨ Um Uberschneidungen der V¨ ogel untereinander zu verhindern entwickelte Pixar verformbare, runde Kollisionsdetektoren die sie selbst als contact pads oder Pringles 7 bezeichneten. Die Kontaktplatten wurden zwischen den V¨ogeln platziert und von den Animationsspezialisten verformt. F¨ ur die V¨ ogel wurde ein Algorithmus erstellt, der die Position der Vertices der V¨ogel im Verh¨altnis zu den Kontaktplatten beschreibt. Waren die Geometriepunkte innerhalb einer definierten Bounding-Box um die Kontaktplatten, wurde ihre Position angepasst. Auf diese Weise wurden Kollisionen u ¨ber Verformungen der Vogelgeometrie selbst behoben und nicht etwa durch das Gl¨atten der Federn. Der Vorteil dieser Methode bestand darin, dass eine Kontaktplatte auf zwei benachbarte V¨ogel wirken konnte und sich so beide an diese Fl¨ache anschmiegten. Die Qualit¨at der V¨ ogel und ihres Federkleides ist f¨ ur die damals zur Verf¨ ugung stehende Hardware sehr beeindruckend, dennoch fand die Technik in keinem der sp¨ateren Pixar-Filme ¨ Verwendung. Uber die Gr¨ unde hierf¨ ur kann nur spekuliert werden, sie d¨ urften 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¨ uckbringen. Auf ihrem Weg treffen sie auf eine Gruppe von Dodos, mit denen Sie um eine Wassermelone k¨ampfen (siehe Abbildung 2.15 links). Der Dodo war ein flugunf¨ahiger 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¨ache 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 ¨ ahnelte

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¨onige der Wellen. Sony Pictures Imageworks

ohne K¨orperbedeckung ¨ ublich ist.

2.5.3

Pinguine in K¨ onige der Wellen

K¨onige der Wellen erschien im Jahr 2007 [Rob07c]. Produziert wurde der computeranimierte Film ¨uber 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¨ orper der Tiere verteilt sind, k¨onnen sie realit¨atsnah als Fell visualisiert werden. Pinguine bilden also einen Spezialfall, da f¨ ur ihre Darstellung kein Federsystem ben¨ otigt wird.

2.5.4

Vlad Vlad-I-Kloff in Horten h¨ ort ein Hu!

Horton h¨ort 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¨ umpels und erz¨ahlt die Geschichte des Elefanten Horton. Horton entdeckt auf einem Staubkorn die mikroskopische Stadt Huheim und versucht diese an den sichersten Ort in N¨ umpels, die Spitzte des N¨ umpelsberges, zu bringen. Auf seinem Weg muss er das Staubkorn gegen ein verbittertes K¨anguruhweibchen und den Adler Vlad Vlad-I-Kloff verteidigen. Abbildung 2.16 zeigt ein Bild des Adlers. Vlad verf¨ ugt u ¨ber ein komplexes Federsystem. Der K¨orper 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 u ¨berdimensional großen Federn scheint jedoch eher gering zu sein. Es kann vermutet werden, dass f¨ ur die 8

Mockumentary = fiktionaler Dokumentarfilm, der das Genre parodiert

27

28

Stand der Technik

Abbildung 2.16: Vlad Vlad-I-Kloff aus Horton h¨ort ein Hu!

Federgenerierung viel Handarbeit n¨otig 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¨ogel 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¨andiges Federkleid dargestellt. Ist dies nicht m¨oglich, wird auf schon vorhandene Fell-Systeme zur¨ uckgegriffen. 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¨at im Vordergrund steht. Dennoch bedeutet dieses Vorgehen eine Einschr¨ankung f¨ ur die Entwicklung neuer Charaktere. Lediglich f¨ ur den speziellen Vogeltyp der Pinguine, hat sich die Verwendung von Fellsystemen bew¨ahrt. Dies d¨ urfte der Grund daf¨ ur sein, dass mittlerweile zwei Animationsfilme existieren, in denen Pinguine die Hauptrolle spielen. Ein erster Ansatz eines komplexen Federsystems ist in dem Film Horten h¨ort 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¨orperbedeckungen, die in diesem Kapitel durchgef¨ uhrt wurde, liefert wichtige Informationen f¨ ur 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¨ ur 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¨ ur den professionellen Einsatz geeignet sind und eingesetzt werden. Allerdings werden diese Programmkomponenten meist durch eigene propriet¨are Systeme erweitert und so den individuellen Bed¨ urfnissen angepasst. Im weiteren Verlauf soll daher auch gepr¨ uft werden, ob eine ¨ahnliche Vorgehensweise f¨ ur das Federsystem in Betracht kommt. Im n¨achsten Kapitel werden am Beispiel der 3D-Modellierungssoftware Maya Methoden getestet und bewertet, die f¨ ur das Federsystem verwendet werden k¨onnten.

29

Kapitel 3

Gegenu ¨berstellung verschiedener Methoden und Techniken Im letzen Kapitel wurde das Vorgehen der Filmstudios bei der Entwicklung von K¨orperbedeckungen 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¨aufig auch f¨ ur die Federgenerierung die schon vorhanden Fellsysteme. 3D-Modellierungssoftwarepakete bieten verschiedene Komponenten, die bei der Entwicklung eines Federsystems als Basis dienen k¨onnten, an. Daher soll in diesem Kapitel ein ¨ Uberblick alternativer Techniken und Methoden, eines ausgew¨ahlten 3D-Softwarepakets, zur Darstellung und Verteilung von Federn auf Vogelcharakteren herausgearbeitet werden. Diese Methoden werden in den n¨achsten Abschnitten zun¨achst theoretisch beleuchtet, um ihre Tauglichkeit f¨ ur ein Federsystem bewerten zu k¨onnen. 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¨ ur 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¨onnen Probleme auf ganz unterschiedliche Arten und unter Einsatz unterschiedlicher ¨ Komponenten gel¨ ost werden. Daher soll zun¨achst ein Uberblick erstellt werden, der die Komponenten des verwendeten Basisprogramms in Hinblick auf ihre Einsatzm¨oglichkeit bei dem zu entwickelnden Federsystem, bewertet. Auf Basis dieser Auflistung kann dann eine engere Auswahl an Methoden getroffen werden, die im darauffolgenden Kapitel n¨aher ausgearbeitet werden. Um eine umfassende Bewertung der Methoden vornehmen zu k¨onnen, muss zun¨achst der Aufbau eines Gefieders und der einzelnen Federkomponenten analysiert 31

32

Gegen¨ uberstellung 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¨ahlt.

3.2

Aufbau eines typischen Vogelgefieders

Um ein hochwertiges Federsystem zu erzeugen, muss zun¨achst die Komplexit¨at eines in der Natur vorkommenden Gefieders betrachtet werden. Federn sind neben Fell eine Variante von K¨ orperbedeckungen. W¨ahrend Fell und K¨orperbehaarung die Haut von S¨augetieren bedecken, ist Gefieder nur bei V¨ogeln anzutreffen. Das Federkleid von V¨ogeln besteht aus zum Teil tausenden einzelner Federn [Gre07]. Die Komplexit¨at reicht von etwa 1000 Federn bei Kolibris bis zu 30.000 Federn bei Schw¨anen. Einzelne Federn sind sehr leicht, die große Anzahl, die bei einem Vogel das Gefieder bildet, sorgt jedoch daf¨ ur, dass das Gefieder eines Vogels zwei- bis dreimal soviel wiegt als sein Skelett. Das Gefieder erf¨ ullt eine Vielzahl verschiedener Aufgaben. Es dient der Isolation der Haut vor ¨außeren Einfl¨ ussen wie K¨alte und N¨asse. Die F¨ahigkeit zu Fliegen verdanken V¨ogel unter anderem ihrem Federkleid. Je nach Farbgebung des Gefieders kann es entweder der Tarnung des Vogels dienen oder dem Schmuck des Vogels, um m¨ogliche Partner anzulocken. ¨ Federn sind die komplizierteste Bildung der Haut im gesamten Tierreich. Ahnlich aufgebaut wie das Fell der S¨augetiere, 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¨ ugeln.

zelnen Haar, sondern aus komplexen Federgeometrien. Federn bestehen aus Hornsubstanz, wie auch Haare und Fingern¨agel. Sie sind mit der Haut verbunden und k¨onnen mit Hilfe feiner Muskeln bewegt werden. So k¨ onnen V¨ogel ihr Gefieder bei K¨alte str¨auben, um die isolierende Luftschicht zu vergr¨ oßern, oder sie k¨onnen es als Schutz vor Hitze eng an den K¨orper 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¨aste ab. Die Feder¨aste werden zusammengefasst als Fahne bezeichnet. Abbildung 3.1 zeigt eine Feder mit ihren typischen Bestandteilen. Das Gefieder von V¨ ogeln ist ein komplexes System verschiedener Arten von Federn. Grob lassen sich zwei Haupt-Federtypen unterscheiden: • Konturfedern Konturfedern besitzen einen sichtbar ausgebildeten Schaft. Die Feder¨aste bilden ein flaches, stabiles Blatt. Um die typische Federform zu gew¨ahrleisten, sind die Feder¨aste untereinander u ¨ber Haken miteinander verbunden. Dadurch entsteht eine Art Reißverschlusssystem, das die Stabilit¨at der Feder gew¨ahrleistet und die Fahne als eine geschlossene Fl¨ache erscheinen l¨asst. Im unteren Bereich des Schafts sind die Feder¨aste unverbunden und somit beweglicher und weicher. Dieser Bereich kann je nach Vogelart unterschiedlich stark ausgepr¨agt sein oder auch ganz fehlen. Konturfedern bilden die ¨außere Schicht des Federkleids. Sie sind daher haupts¨achlich f¨ ur das Erscheinungsbild des Vogels verantwortlich. Die Konturfedern k¨ onnen noch weiter in Kleingefieder und Großgefieder unterteilt werden, je nachdem in welchen K¨ orperregionen sie sich befinden. Konturfedern, die der K¨orperbedeckung dienen, werden in ihrer Gesamtheit als Kleingefieder bezeichnet. Das

33

34

Gegen¨ uberstellung verschiedener Methoden und Techniken Großgefieder setzt sich aus Schwungfedern und Steuerfedern zusammen. Schwungfedern sind Konturfedern an den Fl¨ ugeln 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¨aste sind ¨uber die gesamte Fahne hinweg nicht miteinander verbunden. Sie besitzen feine Seiten¨aste, wodurch die Daunenfedern leicht und flauschig weich werden. Daunenfedern bilden die untere Schicht des Gefieders. Sie dienen haupts¨achlich der Isolation und sind von außen kaum zu sehen.

3.3

Mindestanforderungen an das Federsystem

F¨ ur 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¨ urden. Auch das Großgefieder soll vernachl¨assigt werden. F¨ ur 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¨ uchen aktueller Computeranimationsfilmen gerecht zu werden. Das System soll die folgenden Bedingungen erf¨ ullen: • Dynamische Reaktion auf Bewegungen. Bewegungen des Vogels, wie Sch¨ utteln oder Fl¨ ugelbewegungen, sollen sichtbare, nat¨ urliche Auswirkungen auf die Federn haben. Im Idealfall ist es m¨oglich das gesamte Gefieder oder Regionen dynamisch aufzustellen oder anzulegen. • Interaktion mit Kr¨ aften in der Welt. Kr¨afte k¨ onnen in diesem Zusammenhang sowohl Gravitationskr¨afte als auch Windkr¨afte sein. Das Gefieder des Vogels soll beispielsweise auf eine Windb¨oe reagieren k¨ onnen. Ob zu diesem Zweck schon bestehende Kr¨aftesysteme der 3D-Software verwendet werden k¨ onnen oder eigene Systeme implementiert werden m¨ ussen, ist dabei nicht relevant. • Hohe Flexibilit¨ at. Das Federsystem sollte auf m¨oglichst viele Vogelarten anwendbar sein. Es sollte beispielsweise sowohl das Gefieder eines Adlers, als auch das einer Taube umgesetzt werden k¨ onnen. Daher darf es nicht zu starren Einschr¨ankungen unterliegen. Es m¨ ussen m¨ oglichst viele Attribute zur Beschaffenheit und Optik der einzelnen Federn und ihrer Anordnung innerhalb des Gefieders vom Benutzer angepasst werden k¨onnen.

3.3. Mindestanforderungen an das Federsystem • Simulation einer angemessenen Anzahl von Federn. Die Federmenge sollte in H¨ ohe eines durchschnittlichen, in der Natur vorkommenden Vogels liegen. Mehrere tausend Federn m¨ ussen von dem System bew¨altigt werden k¨onnen. • Kompatibilit¨ at zu realistischen Beleuchtungsmodellen. In aktuellen Produktionen werden sehr realit¨atsnahe Beleuchtungsmodelle verwendet. H¨aufig 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¨at 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¨angerversion Maya 2008 kann bei Kompatibilit¨atsproblemen ebenfalls herangezogen werden. Bei Bedarf kann die Basissoftware u ¨ber Plug-Ins durch zus¨atzliche Komponenten erg¨anzt werden. Auch der Einsatz von Spezialsoftware, die mit Maya kombiniert eingesetzt werden kann, ist m¨oglich. Hierzu steht die 3D-Sculpting Software Autodesk Mudbox und das Haarsystem Shave and a haircut zur Verf¨ ugung. Diese Systeme werden im weiteren Verlauf n¨aher 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¨ ur die Entwicklung eines repr¨asentativen Federsystems geeignet. Die Leistungsf¨ahigkeit von 3D-Softwarel¨osungen steht in direkter Verbindung zur Hardware auf der sie ausgef¨ uhrt wird. Um die verschiedenen Ans¨atze 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¨ ugung: 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 ¨ uberpr¨ uft. 1

www.autodesk.de

35

36

Gegen¨ uberstellung verschiedener Methoden und Techniken

Abbildung 3.3: Modellierungsvarianten einer Feder mit etwa 300 Tris.

Anmerkung 1 (Fachvokabular) In den n¨achsten 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¨ur eine umfassende Einf¨uhrung in das Themengebiet der Grafischen Datenverarbeitung wird auf die einschl¨agige Fachliteratur verwiesen.

3.4

Detailgrad der Feder als Geometrie

Die Konturfedern, aus denen sich das Gefieder zusammensetzt, k¨onnen in Autodesk Maya mit den zur Verf¨ ugung stehenden Modellierungsmethoden nachgebaut werden [DD07] [Der07]. Zu beachten ist hierbei, dass f¨ ur ein detailliertes Gefieder tausende von Federn erzeugt werden m¨ ussen. 3D-Softwarepakete k¨onnen abh¨angig 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¨achen, 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¨oglichen Detailgrad bei 300 Tris. Abh¨angig von der Komplexit¨at 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¨oglich ist, eine genaue Nachbildung einer Konturfeder, bestehend aus Schaft und einzelnen Seiten¨asten, als Basis f¨ ur das Federsystem zu verwenden. Aus diesem Grund muss eine sinnvolle Vereinfachung gefunden werden. ¨ Konturfedern besitzen eine starre Form, die Aste der Fahne sind reißverschlußartig ineinander ussen von verkeilt [Gre07]. Dies hat zur Folge, dass sich die Feder bei nicht zu starken Einfl¨ außen - Bewegungen des Vogels, leichter Wind - wie eine biegsame Gesamtfl¨ache 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¨ache kann mit einer Farb- und Alpha-Map versehen werden. Eine etwas aufw¨andigere Struktur ergibt sich, wenn man statt einem Polygon-Face ein Plane-Primitiv mit einigen Unterteilungen in y-Richtung verwendet. Die Unterteilungen erm¨oglichen es, der Feder eine Kr¨ ummung hinzuzuf¨ ugen und sie so nat¨ urlicher erscheinen zu lassen. In der Praxis hat sich eine Unterteilung in sieben Polygone bew¨ahrt, um ein gutes Kr¨ ummungsverhalten zu erreichen. Dies ergibt 14 Tris. Ein h¨ oherer Detailgrad kann erreicht werden, indem der Schaft ausmodelliert wird und die Fahne u ugt wird. Die ¨ber ein oder zwei Planes hinzugef¨ Fahne kann wiederum mit Alpha-Maps weiter verfeinert werden. Je nach Detailgrad des Schafts ergeben sich bei dieser Methode bereits 50-100 Tris. F¨ ur eine vollst¨andige Nachbildung einer Feder, m¨ ussten auch die Feder¨aste ausmodelliert werden. Wie bereits erw¨ahnt, kann diese Variante nicht f¨ ur das Federsystem verwendet werden, da die Polygonanzahl zu hoch w¨are und bei mehreren hundert bis tausend Tris liegen d¨ urfte. 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¨ oglichkeit 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¨ ummung scheint ein guter Kompromiss aus Performance und Qualit¨at zu sein. Ein Face ohne Unterteilungen bietet zwar den gr¨oßten

37

38

Gegen¨ uberstellung verschiedener Methoden und Techniken

¨ Abbildung 3.5: Uber 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¨ uckgegriffen werden. Detailliertere Modellierungsans¨atze m¨ ussen 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¨ ur die ben¨otigten Attribute versehen. Je nach Stil kann im einfachsten Fall nur die Farbe des K¨orpers gesetzt werden. Sollen auf der Oberfl¨ache einzelne Federn zumindest grob erkennbar dargestellt werden, eignet sich eine Bilddatei mit Federmuster, die mit dem Farbknoten des Shaders verbunden und u ¨ber die Geometrie gekachelt wird. Aus den Farbinformationen der Bilddatei k¨onnen dann Maps f¨ ur weitere Attribute generiert werden, beispielsweise Specular- und Bump-Maps, die die einzelnen Federn noch st¨arker von einander abgrenzen und den Detailgrad erh¨ohen [DD07] [Der07]. Abbildung 3.5 verdeutlicht die Methode am Beispiel einer Polygonkugel. 3D-Sculpting Tools bieten außerdem die M¨oglichkeit 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¨achlich 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¨at 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¨oglichkeit, den Eindruck eines Federkleides zu verst¨arken, besteht darin, an markanten Stellen der Grundgeometrie grobe Federans¨atze einzuarbeiten. So kann beispielsweise ein Federschopf am Kopf des Vogels erzeugt werden. In dem Federsystem, das im n¨achsten Kapitel entwickelt werden soll, wird diese Methode nicht verwendet werden, da sie die Mindestanforderungen nicht erf¨ ullt. Die Methode wird beispielsweise in dem Film Ice Age f¨ ur 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¨ ogeln besteht aus einer sehr großen Anzahl Federn. Daher muss eine Methode gefunden werden, die erstellten Federgeometrien auf der Oberfl¨ache 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 u ¨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¨ ur die Verteilung stehen noch eine Reihe von Einstellungen zu Gr¨ oße, Offset und Ausrichtung zur Verf¨ ugung. 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¨ uberstellung verschiedener Methoden und Techniken Instanzen auf einer Polygonkugel und in der Mitte die Benutzeroberfl¨ache 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¨onnen aus Kanten der Grundgeometrie neue Fl¨achen extrudiert werden. Abbildung 3.6 rechts zeigt das Verfahren am Beispiel einer Polygonkugel. Die Federfl¨achen k¨onnen im Anschluss von der Hauptgeometrie getrennt und einzeln texturiert werden oder Bestandteil von ihr bleiben. Bewertung Das Paint Script-Tool bietet sehr hohe Kontrolle ¨uber die Verteilung der Federn auf der Geometrie. Unvorteilhaft ist, dass die Federn per Hand auf die Oberfl¨ache aufgetragen werden m¨ ussen. Ein automatisiertes Verfahren mit einer Randomizer-Funktion zur nat¨ urlichen Anordnung, w¨are hier eine bessere Variante. F¨ ur das Federsystem wird das Tool daher nicht verwendet werden. Auch die Extrude-Methode ist f¨ ur 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¨ ur die sp¨atere Animation optimiert werden und nicht f¨ ur die Federverteilung.

3.7

Paint Effects

Eine weitere M¨ oglichkeit Federn auf der Oberfl¨ache einer Geometrie zu verteilen bietet die Komponente Paint Effects. Paint Effects erm¨oglichen 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¨onnen u ¨ber eine Reihe von Attributen angepasst werden. Trotz ihres hohen Detailgrad arbeiten PaintEffects verh¨altnism¨aßig ressourcenschonend. In der Paint Effects-Bibliothek finden sich auch Brushes f¨ ur Federn. Das Erscheinungsbild der Federn kann durch eine große Auswahl an Attributen ver¨andert 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 (¨außere Astfarbe) ¨ • Num Leaf Clusters (Anzahl der Aste) ¨ • Leaf Segments (Unterteilungen in den Asten) • 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¨ utzt und k¨ onnen mit ihm daher nicht dargestellt werden. Um unter dem Einsatz von Mental Ray dennoch von der vorhanden Bibliothek zu profitieren, k¨onnen Paint Effects in Polygone umgewandelt werden. Bei der Konvertierung kann eine Obergrenze f¨ ur die Polygonanzahl angegeben werden. So kann das Verh¨altnis von Qualit¨at zu Performance vom Anwender verwaltet werden. Die in Abbildung 3.7 dargestellten Testrenderings w¨ urden ohne Qualit¨atsverlust zu einer Polygonzahl von 2,5 Millionen f¨ uhren. Diese Anzahl ¨uberstieg bereits die M¨ oglichkeiten 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¨atsverlust mit 1.400 Polygonen und einmal begrenzt auf 550 Polygone. Bewertung

41

42

Gegen¨ uberstellung verschiedener Methoden und Techniken

F¨ ur das Federsystem sind Paint Effects nicht geeignet. Sie k¨onnen nur mit dem SoftwareRenderer von Maya dargestellt werden. Dieser ist jedoch in seinen M¨oglichkeiten aufwendige globale Beleuchtungsmodelle umzusetzen, stark eingeschr¨ankt und wird daher in der Filmindustrie praktisch nicht eingesetzt. Die Umwandlung in Polygone bietet theoretisch eine komfortable M¨ oglichkeit, Federgeometrien mit unterschiedlichem Detailgrad zu erzeugen. Allerdings ben¨ otigt 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¨oglichkeit Federn auf einem Charakter zu verteilen. F¨ ur die Generierung von Fell und Haaren in Computeranimationsfilmen wurden bereits umfangreiche Komponenten und Plug-Ins f¨ ur 3D-Modellierungssoftwarepakete entwickelt. Diese Systeme basieren in der Regel auf Guide-Hairs u ¨ber die per Interpolation das eigentliche Haar oder Fell generiert wird. Autodesk Maya enth¨alt in der Unlimited Version f¨ ur die Darstelur die Erstellung lung von K¨ orperbedeckungen die Komponente Maya Fur [DD07] [Der07]. F¨ von l¨angeren 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¨ahnt, vergleichbar mit dem Fell eines Tieres ist, empfiehlt sich der Einsatz der Fur-Komponente. Außerdem kann das Fellsystem sp¨ater 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¨ ur die Entwicklung des Federsystems zur Verf¨ ugung. Viele Entwicklungsstudios machen sich bei ¨ der Erstellung von Vogelcharakteren in Computeranimationsfilmen die Ahnlichkeit von Fell und Federn zu Nutze und verwenden f¨ ur V¨ogel die gleichen Systeme wie f¨ ur 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¨ urfnissen des Entwicklers angepasst werden kann, ist es vorstellbar, ¨uber Parameter die die Klumpenbildung des Fells steuern und u ¨ber die Dicke der einzelnen Haare den Eindruck von Federn zu vermitteln. Außerdem bieten die heutigen Fellsysteme zum Teil die M¨oglichkeit anstelle von Haaren einfache Polygongeometrien, als sogenannt Instanzen, zu rendern. So k¨onnte eine einfache Feder mo¨ delliert werden und durch Ubergabe an das Fellsystem auf der Oberfl¨ache 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¨onnen also zum einen als eine Menge von Haaren mit besonderen Eigenschaften angesehen werden, um so auf einer Geometrie verteilt zu werden und auf Kr¨afte wirken zu k¨onnen. Zum anderen kann eine Feder selbst auch als eine Geometrie, dem Federkiel mit einem Fell, n¨amlich der Federfahne angesehen werden. Daher stellt sich die Frage, ob die aktuellen Fellsysteme mit Rekursionen umgehen k¨onnen. Des weiteren muss die Anbindung von Kr¨aften wie Wind oder Gravitation an das Fellsystem, auch mit Federn gut funktionieren. Außerdem m¨ usste f¨ ur eine realistische Darstellung Kollisionserkennung in das System integriert sein. Zum einen sollte das Fell mit dem Objekt auf dem es w¨achst 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¨at, unabh¨angig 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¨afteerkennung, diese werden auch in einem Federsystem ben¨otigt. Die Systeme werden

43

44

Gegen¨ uberstellung 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¨ ur fellbedeckte Charaktere eingesetzt. Dies alles l¨asst vermuten, dass Haar- und Fellsysteme auch als Basis f¨ ur ein Federsystem geeignet sind.

3.9

Partikel-Systeme

Um Federn auf der Oberfl¨ache 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¨arme zu generieren, mit denen beispielsweise Rauch, Nebel oder Feuer simuliert werden kann [DD07] [Der07]. Das System kann jedoch auch f¨ ur 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 u ¨ber zahlreiche Parameter beeinflusst werden. Maya enth¨alt wie jede große 3D-Software ein eigenes Partikel-System. Mit dem Partikel-System von Maya ist es m¨oglich die Oberfl¨ache eines Objekts als Emitter zu verwenden. Partikel str¨ omen dann gleichm¨aßig von der gesamten Oberfl¨ache des Objekts weg. Neben Partikeln k¨ onnen auch Instanzen von Polygon-Geometrien emittiert werden. ¨ Die ausgestoßenen Partikel str¨ omen allerdings fortlaufend von der Geometrie weg. Uber Attribute f¨ ur die Lebensdauer kann verhindert werden, dass sich die Partikel allzu weit von der Oberfl¨ache entfernen. Dennoch ergeben sich auf diese Weise keine mit der Oberfl¨ache verbundenen K¨ orperbedeckungen, es bildet sich eher eine dichte H¨ ulle von Objekten ¨uber der Geometrie. Abbildung 3.11 zeigt die m¨ogliche Verwendung des Partikelsystems an einer Polygonkugel. Bewertung Partikel-Systeme bieten im Hinblick auf das Federsystem ¨ahnliche Funktionen, wie Fellsysteme. Auch hier k¨ onnen Instanzen einer Basisgeometrie auf der Oberfl¨ache verteilt werden. Kollisionserkennung und Interaktion mit Kr¨aften werden ebenfalls unterst¨ utzt. 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¨ ucksichtigt.

3.10

Kleidungssimulation

Eine M¨oglichkeit 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¨ange zu simulieren. Das dynamische System kann f¨ ur das Federsystem verwendet werden, um Bewegungen im gesamten Gefieder oder einzelner Federn zu erzeugen. Polygon-Geometrien k¨ onnen mit Hilfe der Komponente zu nCloth-Objekten umgewandelt und im weiteren Verlauf mit Wind und Gravitationskr¨aften ausgestattet werden. Die Beschaffenheit des Stoffs kann ¨ uber eine große Anzahl Parameter genau spezifiziert werden. Außerdem k¨ onnen Objekte in der Szene zu Kollisions-Objekten deklariert werden und somit auf Ber¨ uhrung mit dem nCloth-Objekt reagieren. Auch eine Kollision des Kleidungsstoffes mit sich selbst kann integriert werden. Die Kleidungsst¨ ucke k¨onnen außerdem ¨uber Abh¨angigkeitsbedingungen, die in Maya Constraints genannt werden, an anderen Objekten befestigt werden. F¨ ur 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 Ubergangspunkten zu kahlen Regionen befestigt wird. Der Vogel erh¨alt sozusagen ein T-Shirt, dessen Textur einem Gefieder nachempfunden ist. Das nCloth-Objekt w¨ urde 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¨ uberstellung verschiedener Methoden und Techniken Die zweite Methode ist in sofern interessant, als dass mit ihr eine dynamische Verformung der gesamten Oberfl¨ache realisiert werden kann. Die Federgeometrien k¨onnen an ihrer Unterkante ¨ uber einen Constraint mit der Geometrie verbunden werden. Jede Feder repr¨asentiert hierbei ein St¨ uck Stoff, das auf der Vogeloberfl¨ache befestigt ist. Allerdings ist es mit den Tools von Maya nicht m¨ oglich Instanzen von nCloth-Objekten zu erzeugen. Eine L¨osung f¨ ur dieses Problem k¨ onnte darin bestehen, die Federgeometrien zun¨achst mit einem beliebigen Verfahren auf der Oberfl¨ache zu verteilen und anschließend u ¨ber den Befehl Combine zu einem Mesh zusammenzuf¨ ugen. Allerdings m¨ usste danach, um das Constraint f¨ ur jede Feder zu erstellen, eine Auswahl von Vertices selektiert werden. Per Hand ist dieser Vorgang unpraktikabel. Dies k¨ onnte mit Hilfe eines selbstentwickelten Scripts gel¨ost werden. Ein weiterer Nachteil ist, dass f¨ ur eine realistische Verformung der Federn ein zu detailliertes Mesh ben¨otigt wird. Abbildung 3.12 zeigt die m¨ogliche Verwendung von Cloth-Objekten als Federn. Bewertung Beide vorgestellten Varianten k¨onnen f¨ ur das Federsystem nicht verwendet werden. Das gesamte Federsystem u ¨ber ein nCloth-Objekt zu simulieren, bringt im Vergleich zur reinen Texturierung nicht gen¨ ugend Vorteile. Einzelne Federn mit nCloth zu simulieren f¨ uhrt zwar zun¨achst zu zufriedenstellenden Ergebnissen, der ben¨otigte Detailgrad der Federgeometrie u ur das System. ¨bersteigt jedoch die Obergrenze der Polygonanzahl f¨

3.11

Schlussfolgerung und Zusammenfassung

F¨ ur die Darstellung der Federgeomtrie stehen zwei Varianten zur Verf¨ ugung. 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 u ugung stehenden Attribute wie Breite, L¨ange und Farbe angepasst wird. ¨ber die zur Verf¨ Die Verteilung der Federn auf der Oberfl¨ache 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¨aften viele Funktionen, die auch in einem Federsystem von Bedeutung sind. Fur-Systeme bieten außerdem die M¨oglichkeit, Geometrien als Instanzen anstelle von Haaren zu verteilen und zu rendern. Daher kann auch die Variante einer Polygon-Geometrie als Federobjekt umgesetzt werden. ¨ der getesteten Methoden und ihre Bewertungen nach Tabelle 3.1 enth¨alt einen Uberblick den definierten Mindestanforderungen. Die in diesem Kapitel zusammengetragenen Techniken werden im n¨achsten Kapitel zu Federsystemen zusammengef¨ ugt. Diese werden anschließend anhand festgelegter Qualit¨atskriterien bewertet. Das beste System wird im Anschluss weiter verfeinert.

dynamische Reaktion

Interaktion mit Kr¨ aften

Flexibilit¨ at

unterst¨ utzte Federmenge

Kompatibilit¨ at mit GI

Bewertung

Feder als Geometrie

Abh¨ angig von Verteilungstechnik.

Abh¨ angig von Verteilungstechnik.

Feder kann texturiert und verformt werden +

Je nach Unterteilungen 15.000 Federn +

Vollst¨ andig kompatibel +

+

Feder als Haar

¨ Uber Haarsystem +

¨ Uber Haarsystem +

Viele Attribute, jedoch keine Texturierung m¨ oglich. +

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¨ angig. -

ca. 10.000 Federn -

Kompatibel +

-

Paint-Effects

Ja +

Nein -

Viele Attribute. +

weniger als 1.000 Federn -

Nicht kompatibel -

-

Fellsysteme

Ja +

Ja +

Abh¨ angig von Darstellungsmethode der Federn. +

je nach Methode 50.000 Federn und mehr +

Kompatibel +

+

Partikel-System

Ja +

Ja +

¨ Uber 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: Ubersicht 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¨ ussen nun genauer untersucht und an einem konkreten, repr¨asentativen Beispiel getestet werden. Zu diesem Zweck wird eine geeignete Testanimation mit einer nicht zu komplexen Polygongeometrie eines Vogels im Cartoon-Stil erstellt. F¨ ur die Geometrie des Vogels wird im weiteren Verlauf die Bezeichnung Vogelmodell verwendet. Auf Basis der ausgew¨ahlten Techniken werden erste Federsysteme entwickelt. Diese werden auf das Vogelmodell angewendet. F¨ ur 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¨ uhrt werden. Das System mit der besten Bewertung wird im weiteren Verlauf verfeinert und im n¨achsten Kapitel in ein Skript gekapselt, um dem Anwender die Verwendung des Systems zu erleichtern. F¨ ur die Bewertung der Federsysteme sollen die in Kapitel 1 definierten Qualit¨atskriterien herangezogen werden: • Renderzeit: Die Renderzeiten sollten m¨ oglichst gering sein. Dabei sollten sie stets in Abh¨angigkeit zur Qualit¨at und Komplexit¨at des Ergebnisses betrachtet werden. In Computeranimations-Studios steht in der Regel sehr leistungsf¨ahige Hardware in großer St¨ uckzahl zur Verf¨ ugung. Daher sollte der Verlauf der Renderzeit bei immer komplexeren Einstellungen u uft werden. ¨berpr¨ • Bedienbarkeit: Das System sollte m¨ oglichst einfach, u ¨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¨ udafrikanische Toko dient als Vorlage f¨ ur den 3D-Cartoon-Vogel

• Flexibilit¨ at: Das Federsystem soll f¨ ur das Gefieder einer großen Anzahl von Vogeltypen einsetzbar sein. • Qualit¨ at des Ergebnisses: Bei diesem Kriterium muss zwingend ein zufriedenstellender Wert erreicht werden. Erf¨ ullt ein System alle anderen Kriterien, versagt jedoch bei der Qualit¨at, so wird es niemals bei einem Projekt zum Einsatz kommen. Auf der anderen Seite kann durchaus ein System mit schlechterer Endqualit¨at, aufgrund der Kostenersparnis einem hochwertigerem mit h¨ oherer Renderzeit vorgezogen werden.

4.1

Das Vogelmodell

Die verschiedenen Techniken sollen zur Analyse in diesem Kapitel an einem Vogelmodell angewendet werden. Aus Gr¨ unden der Zeitersparnis bei den Vorschau-Renderings soll hier ein einfacher Cartoon-Vogel verwendet werden. Als Vorlage f¨ ur die Entwicklung dient der s¨ udafrikanische Toko, der in Abbildung 4.1 zu sehen ist [IS02]. Um das Modell mit dem typischen Cartoon-Look zu versehen, m¨ ussen zun¨achst die Charakteristika von Cartoonfiguren im Allgemeinen und von Cartoon-V¨ogeln im speziellen analysiert werden.

4.1. Das Vogelmodell

c Abbildung 4.2: Ber¨ uhmte Cartoon V¨ ogel. 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¨ uge der Figur dargestellt. Des Weiteren werden die Proportionen der Figur ver¨andert, h¨aufig wird der Kopf als zentrales Element optisch vergr¨oßert. Es k¨onnen aber auch oder zus¨atzlich weitere Elemente vergr¨oß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¨anderung der Grundstruktur noch einen Schritt weiter. Das Gesicht der Tiere wird h¨aufig vermenschlicht. Gerade bei Beutetieren f¨ uhrt dies dazu, dass die Position der Augen von der Seite des Kopfes in die Mitte uhmte Cartoon-V¨ogel Tweety von Walt verschoben wird. Abbildung 4.2 zeigt die zwei ber¨ Disney und den Roadrunner von Warner Bros. Bei beiden Charakteren ist die Vermenschlichung deutlich zu erkennen. Die Fl¨ ugel des Kanarienvogels Tweety ¨ahneln Armen und H¨anden, 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¨achst 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¨ udafrikanischen Tokos ein Cartoon-Modell zu erzeugen, wurde auf einige der beschriebenen Cartoonstil-Charakteristika zur¨ uckgegriffen. So wurden zun¨achst 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¨ unner dargestellt. Die Augen werden vergr¨ oßert und aus der f¨ ur 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¨atze in die Geometrie integriert. Abbildung 4.3 zeigt das fertige Modell des Vogels im Wireframe-Modus und als erstes Test-Rendering. F¨ ur die Texturierung von 3D-Modellen und f¨ ur einige der sp¨ater angewandten Techniken zur Generierung von Federn muss ein UV-Layout erstellt werden [Oli06]. Ein UV-Layout beschreibt die 2-dimensionale Ausbreitung der Oberfl¨ache einer Geometrie. Dabei werden die 3-dimensionalen Punkte der Geometrie aus dem xyz-Weltkoordinatensystem in das 2dimensionale uv-Texturkoordinatensystem ¨uberf¨ uhrt. Die Texturpunkte werden analog zu den Achsen des Koordinatensystems als UV-Koordinaten, oder kurz UVs bezeichnet. Wichtige Kriterien f¨ ur die Qualit¨at eines UV-Mapping sind die Schnittkanten und die gleichm¨aßige Ausbreitung der UVs. Um die Geometrie flach auslegen zu k¨onnen muss sie aufgetrennt werden und gegebenenfalls in verschiedene Bereiche, die sogenannten Shells aufgeteilt werden. ¨ An den Schnittkanten k¨ onnen bei der Texturierung sichtbare Uberg¨ ange 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¨are dies bei¨ spielsweise der Ubergang vom Schnabel zum Kopf. Die Schnittkanten d¨ urfen allerdings nur soweit minimiert werden, dass eine gleichm¨aßi¨ ¨ ge Ausbreitung des Mesh ohne Uberschneidungen m¨oglich ist. Uberschneidungen der UVKoordinaten f¨ uhren dazu, dass an den entsprechenden Bereichen der Geometrie keine unterschiedlichen Texturinformationen, wie beispielsweise Farbwerte, hinterlegt werden k¨onnen. Dies ist daher unbedingt zu vermeiden. Eine gleichm¨aßige Verteilung der UVs ist hingegen notwendig, damit die Textur auf der Geometrie nicht verzogen dargestellt wird. Das UV-Layout f¨ ur 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¨achst wurde die Geometrie des Vogels in f¨ unf Shells aufgeteilt: • Kopf • Schnabel • K¨orper • F¨ usse (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¨aßige Verteilung der UVs kann mit Hilfe einer sogenannten Checker-Textur leicht u uft werden. Daf¨ ur wird dem Material des Vogels eine Textur mit einem m¨oglichst ¨berpr¨ feinen Schachbrettmuster zugewiesen. Wird dieses verzerrungsfrei dargestellt, sind die UVKoordinaten gleichm¨aßig ausgebreitet. Abbildung 4.4 zeigt das UV-Layout des Vogels und die gleichm¨aß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¨ utzen sollen. Der Vogel wurde in T-Pose, mit ausgestreckten Fl¨ ugeln 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¨ onnen.

siert [Cab08]. Eine Skelett-Kette besteht aus sogenannten Gelenken (engl.: Joints), die zur Veranschaulichung u ¨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¨onnen, muss das Skelett an die Geometrie gebunden werden. Maya stellt daf¨ ur verschiedene Techniken zur Verf¨ ugung. Durch das Binden werden den Vertices des Vogels Joints des Skeletts mit verschieden starken Einfl¨ ussen zugeordnet. Die Position der Vertices richtet sich dann nach den Positionen der zugeordneten Joints. Maya verf¨ ugt bereits u ¨ber ausgereifte Algorithmen, ¨uber welche die Zuordnung zwischen Vertices und Joints berechnet wird. Bei Problemen mit der Verformung der Geometrie kann die Zuordnung nachtr¨aglich ver¨andert werden. Dieser Vor¨ gang wird als Weighting bezeichnet. F¨ ur den Vogel waren nur geringf¨ ugige Anderungen im ¨ Bereich des Ubergangs der Fl¨ ugel zum K¨orper notwendig. Nachdem die Geometrie erfolgreich mit dem Skelett verbunden wurde, wird sie indirekt ¨uber Rotationen der Skelett-Knochen animiert. Abbildung 4.5 zeigt das fertige Vogelskelett. Das Skelett kann noch weiter f¨ ur die sp¨atere Animation optimiert werden Die Joints des Skeletts besitzen Rotationsachsen, welche typischerweise in Richtung des n¨achstliegenden Joints zeigen. Bei der Positionierung der Gelenke in Autodesk Maya wird diese Ausrichtung automatisch ausgef¨ uhrt. Transliert man ein Gelenk jedoch im Nachhinein, bleibt die Rotationsachse unver¨andert und weicht somit von der neuen Ausrichtung des Joints ab. Dies kann zu Komplikationen bei der Animation f¨ uhren. Die Rotation der Gelenke wurde daher u berpr¨ u ft und korrigiert. In Autodesk Maya kann die Korrektur automatisiert u ¨ ¨ber den Befehl Orient Joint vorgenommen werden. In manchen F¨allen ist es jedoch sinnvoll, die Rotation selbst einzustellen und dabei von der Standardausrichtung zum n¨achstgelegenen Joint abzuweichen. Eine solche Anpassung wurde beispielsweise an den Krallen des Vogels vorgenommen um das Zusammenziehen dieser nat¨ urlich 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¨ urfen Joints nur rotiert und nicht transliert werden. Durch die Translation w¨ urde sich die L¨ange der Knochen ver¨andern, dies ist weder in der Realit¨at m¨oglich, noch im Virtuellen sinnvoll. Die grunds¨atzliche Vorgehensweise bei der Charakteranimation besteht darin, das Skelett durch Rotation der Gelenke in verschiedene Posen zu bringen, die dann ineinander u ¨bergeblendet werden k¨ onnen. Um ein Skelett in eine Pose zu bringen, stehen in Maya zwei verschiedene Techniken zur Verf¨ ugung. 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¨ unschte Pose erreicht ist. Keyframes werden bei dieser Methode f¨ ur 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, ¨uber das die Skelett-Kette bewegt werden kann. Bei Inverse kinematics werden Keyframes auf die Position des IKHandle gesetzt. F¨ ur die Animation des Vogels wurden haupts¨achlich Forward kinematics verwendet, da sie sich gut ¨uber Control-Elemente steuern lassen. Die Beine des Vogels erhielten jedoch IKHandles, die bei Bedarf am Boden befestigt werden k¨onnen. 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 u ¨ber Constraint-Abh¨angigkeiten und Driven-Keys. Die Augenlider k¨ onnen unabh¨angig voneinander geschlossen werden. Die Geometrien und Shader der Augen wurden aus einem fertigen Paket ¨ubernommen1 . 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¨ ur ¨ sehr gut, um sp¨ater den Offnungswinkel des Auges ¨uber die daf¨ ur vorgesehenen SweepAttribute steuern zu k¨ onnen. Als Ausgangspunkt f¨ ur die Animation wird der Start-Sweep der Augen auf 0 und der End-Sweep auf 180 eingestellt. Das Auge erscheint somit vollst¨andig ge¨offnet. 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 ¨uber den Befehl Center Pivot der Schwerpunkt der Gruppe korrigiert. Blickwinkel und Stellung des Augenlid sollen u ¨ber drei Kreisobjekte angesteuert werden k¨onnen. Je ein Kreisobjekt kontrolliert dabei die Animation eines Auges, u ¨ber das dritte Objekt k¨ onnen beide Augen gleichm¨aßig animiert werden. Die Kreise werden wie in Abbildung 4.6 rechts dargestellt angeordnet. Zwischen dem ¨außeren Kreis und den beiden inneren besteht eine Vater-Kind Abh¨angigkeit. 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¨ origen Kreis wird ein Aim-Constraint erstellt, dadurch fokusiert das Auge immer den Kreis an. ¨ Das Offnen und Schließen des Auges wird u ¨ber ein extra-Attribut der Kreis-Primitive gesteuert. Attribute k¨ onnen in Maya u ugt ¨ber den Befehl Modify - Add Attribute hinzugef¨ 1

Quelle: www.highend3d.com

4.1. Das Vogelmodell

Abbildung 4.8: Die Schwanzfedern des Vogelmodells k¨onnen gespreizt und gebogen werden.

werden. Um die Bedienung zu vereinfachen, werden außerdem die nicht ben¨otigten Attribute f¨ ur die Rotation und Skalierung der Kreise aus der Anzeige entfernt. Dies kann u ¨ber den Men¨ ueintrag Window - General Editors - Channel-Control realisiert werden. Zwischen ¨ dem Sweep-Attributen der Augenlider und dem Blink-Attribut f¨ ur das Offnen und Schließen des Auges wird eine Driven Key Abh¨angigkeit hergestellt. Abbildung 4.7 verdeutlicht die Animationsm¨ oglichkeiten anhand einiger Beispielbilder. Das gesamte Auge wird mit einer sogenannte Lattice-Box umgeben. Sie erm¨oglicht es die Form des Auges beliebig zu ver¨andern. Die M¨oglichkeit Augen zu animieren, kann zur Generierung von Gesichtsausdr¨ ucken (Mimik) verwendet werden.

Die Schwanzfedern Die Schwanzfedern des Vogels k¨ onnen 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 u ¨ber einen Driven Key mit der Skalierung des Kreises ebenfalls in Richtung der x-Achse verbunden wurde. F¨ ur 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 u ¨ber die Skalierung des Kreises in y-Richtung gesteuert. Zun¨achst wurde anstelle der Joint-Kette eine Kurve f¨ ur die Verformung der Federn verwendet. Die Federgeometrien wurden mit Hilfe des Wire-Tools an die Form der Kurve gebunden. Diese Variante f¨ uhrt jedoch dazu, dass sich die Federn der L¨ange nach verformen. Daher wurde die Variante zugunsten der oben aufgef¨ uhrten verworfen. Die Fl¨ ugel Die Fl¨ ugel wurden ebenfalls mit Driven Keys versehen. Aus der Basisposition wurde durch Joint-Rotation die Position mit angelegtem Fl¨ ugel erstellt. F¨ ur die Knochen beider Arme

57

58

Entwicklung eines neuen Federsystems

Abbildung 4.9: Die Fl¨ ugel k¨ onnen u ¨ber den Parameter Fold am K¨orper des Vogels angelegt werden.

Abbildung 4.10: Die Krallen des Vogels k¨onnen u ¨ber das Attribut Grab geschlossen werden. Die Bewegung der Beine erfolgt u ¨ber IK-Handles.

wurde ein Driven Key, der die Basisstellung in die Stellung mit angelegtem Fl¨ ugel u uhrt, ¨berf¨ erstellt. Das Control-Object f¨ ur den Fl¨ ugel erhielt ein Attribut Fold, das auf den Driven Key zugreift (siehe Abbildung 4.11). Außerdem wurden zwischen dem Root-Joint der Fl¨ ugel und den Control-Objects, Orient Constraints erstellt, wodurch sich die Rotationen des ControlObjects auf die Fl¨ ugel u ¨bertragen l¨asst. Die Schwungfedern der Fl¨ ugel 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¨angig sind. Dadurch schieben sich die Federn beim Anlegen der Fl¨ ugel leicht u ¨bereinander. Die Krallen F¨ ur die Krallen wurde eine NURBS-Kurve erstellt und um ein zus¨atzliches Attribut Grab erweitert. Der Driven Key f¨ ur das Schließen der Kralle wurde mit diesem Attribut verbunden. Außerdem wurden IK-Handles f¨ ur die Beine erstellt. Abbildung 4.10 illustriert die Animtaionsm¨ oglichkeiten. K¨ orper und Kopf Da die Wirbels¨aule 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¨orpers wird u ¨ber NURBS-Circles gesteuert.

chen und einem NURBS-Circle erstellt. Die Bewegungen des Kopfes werden auf die gleiche Art u ¨ber einen Circle verbunden und mit dem Hals-Knochen gesteuert.

4.1.4

Blend Shapes

F¨ ur die Animation des Gesichts wurden Blend Shapes verwendet [DD07] [Der07]. Bei dieser Animationstechnik werden Duplikate der Geometrie verformt und mit der Basisgeometrie ¨ u der ¨ber einen BlendShape-Knoten verbunden. Die Animation erfolgt durch Uberblenden beiden Meshs. Blend Shapes werden bevorzugt f¨ ur Gesichtsanimation verwendet, daf¨ ur werden die Duplikate im Kopfbereich so verformt, dass sie die ben¨otigten Gesichtsausdr¨ ucke darstellen. ¨ F¨ ur die Testsequenz wurden Blendshapes f¨ ur das Offnen und Schließen des Schnabels, sowie f¨ ur die Reaktion der ausmodellierten Kopffedern auf Wind erstellt. Abbildung 4.12 zeigt die Basis-Geometrie des Vogels und die angepassten Duplikate. F¨ ur die Animation der Mundwinkel wurde eine leicht modifizierte Form der BlendShapes verwendet. An die Konturen des Schnabelansatzes wurde eine Kurve angepasst und u ¨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¨ankt werden. Die Blend Shapes k¨onnen 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¨achlich durch die Form der Kurve festgelegt, es m¨ ussen weder Vertices der Geometrie ausgew¨ahlt 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¨oglichen Techniken zur Entwicklung des Federsystems nach den festgelegten Qualit¨atskriterien bewerten und testen zu k¨onnen, soll eine Animationssequenz erstellt werden. Die Sequenz muss einigen Kriterien unterliegen, um die Techniken optimal vergleichen zu k¨onnen. Diese Kriterien werden wie folgt definiert:

59

60

Entwicklung eines neuen Federsystems

Abbildung 4.12: Blendshapes f¨ ur die Testsequenz. In der Mitte das Basis-Modell, links ¨ das Duplikat f¨ ur das Offnen bzw. Schließen des Schnabels, rechts f¨ ur die Windreaktion des Federschopfes.

Abbildung 4.13: F¨ ur die Animation der Mundwinkel wurde eine Kombination von WireDeformers und Blend Shapes verwendet.

4.2. Die Testsequenz

Abbildung 4.14: Der Szenenaufbau f¨ ur die Testsequenz wurde bewusst klassisch, schlicht gew¨ahlt. Der Ventilator erzeugt die zum Testen der Federbewegung notwendige Windkraft.

• Bewegungen des Vogels W¨ urde der Vogel passiv an einer Stelle stehen und keine Bewegungen ausf¨ uhren, k¨onnten die Reaktionen des Federsystems auf Verformungen der Geometrie des Vogels nicht u uft werden. ¨berpr¨ • Ausreichende L¨ ange der Sequenz. Hier muss ein angemessener Kompromiss gefunden werden. Die Szene sollte nicht zu lang sein, da dies die Renderzeiten unn¨otig in die H¨ohe treiben w¨ urde. Andererseits muss sie lang genug sein, damit ein Gesamteindruck bei dem Zuschauer entstehen kann. • Reaktion auf Kr¨ afte In die Szene sollte, neben der Gravitation, eine weitere Kraft auf das Federsystem einwirken, damit getestet werden kann, wie gut das Federsystem auf Einfl¨ usse 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¨afteeinwirkung erstellen zu k¨ onnen. • 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¨ upft 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¨ uhrt. Der Vogel bet¨atigt freudig den Schalter mit dem Schnabel, breitet seine Fl¨ ugel aus und genießt das Gef¨ uhl des

61

62

Entwicklung eines neuen Federsystems

Abbildung 4.15: Non-lineare Animation mit dem Trax-Editor (oben), erg¨anzt 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¨ ur die zu animierenden Attribute. Non-lineare Animation fasst eine Menge von Keyframes zu Gruppen, die in Maya als Clips bezeichnet werden, zusammen. Zun¨achst wird zu diesem Zweck ein sogenannter Charakter erstellt. Dieser stellt eine Zusammenfassung aller animierbaren Attribute einer logischen Einheit zusammen. F¨ ur 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¨onnen dort kombiniert, gestreckt oder u ¨berblendet werden. Der Animationsaufwand soll durch die Techniken der non-linearen Animation verringert werden und das Animieren soll u ¨bersichtlicher gestaltet sein. Maya bietet einen eigenen, umfangreichen Editor namens Trax-Editor (siehe Abbildung 4.15) zum Arbeiten mit Animations-Clips. F¨ ur den Charakter des Vogels wurden Clips f¨ ur alle komplexen oder sich wiederholenden Bewegungen erstellt. Beispielsweise f¨ ur Springen oder Dr¨ucken des Schalters. Kleinere Bewegungen, die nur f¨ ur die spezielle Situation von Interesse sind, wurden parallel auf der Zeitleiste mit Hilfe von Keyframes animiert. Ein Beispiel hierf¨ ur sind die Bewegungen des Kopfes. Lichtsetzung und Wahl des Renderers Die Testsequenzen mit den verschiedenen Federsystemen sollen nach M¨oglichkeit alle mit

4.3. Federsystem auf Basis der Fur-Komponente von Maya dem gleichen Renderer erstellt werden. Dadurch soll ein sp¨aterer Vergleich vereinfacht werden. Externe Renderer unterst¨ utzen in der Regel nur eine begrenzte Zahl Maya-eigener Funktionen. Um in den m¨ oglichen Techniken nicht durch den Renderer eingeschr¨ankt zu sein, soll hier einer der integrierten Renderer - Maya-Software oder Mental Ray - verwendet werden [Lan08]. F¨ ur ein qualitativ hochwertiges Ergebnis sollen außerdem Methoden der Globalen Beleuchtung zum Einsatz kommen. Da der Maya-Software Renderer diese Methoden nur begrenzt unterst¨ utzt, wird Mental Ray als Renderer f¨ ur die Testsequenzen verwendet. F¨ ur die Beleuchtung der Szene wurde auf die realistische Tageslichtsimulation Physical Sun and Sky von Mental Ray zur¨ uckgegriffen. 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¨andert bleiben. Verwendet wird das Preset Production von Mental Ray, zus¨atzlich wurde Raytracing aktiviert. Die gesamte Sequenz hat eine L¨ange von 1.200 Frames, dies entspricht 50 Sekunden Spielzeit. Die Aufl¨ osung wird auf 640x480 Pixel festgelegt. Die Renderzeit f¨ ur ein Frame der Testsequenz ohne Federsystem auf dem Testrechner betrug im Schnitt 12 Sekunden. Mit Hilfe der erstellten Testsequenzen k¨ onnen nun, in den n¨achsten Abschnitten, verschiedene Federsysteme getestet und bewertet werden. Diese Systeme setzen sich aus den im letzen Kapitel entwickelten Techniken und Methoden zusammen. Als Basis f¨ ur 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¨andig in die Anwendung integriert [DD07] [Der07]. Polygon-, NURBS- und Subdivision-Surface Geometrien kann u ¨ber eine Schnellstartleiste eines von 18 Fell-Presets zugewiesen werden. Dies erzeugt einen Fur-Knoten der eine große Anzahl von Attributen enth¨alt. Mit Hilfe des Maya Artisan Tools k¨ onnen die meisten Attribute direkt auf die Geometrie gemalt werden. Zu den Attributen werden automatisch Graustufen-Maps erzeugt, die auf Grundlage des UVLayouts die Intensit¨at 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¨ ugen: • Die UVs d¨ urfen sich nicht ¨ uberlagern. • Alle UVs m¨ ussen im linken, oberen Quadranten des UV-Texture-Editors angeordnet werden. • Um das K¨ammen des Fells zu vereinfachen, sollten die einzelnen UV-Shells nach ihrer K¨ammrichtung gedreht angeordnet werden. • Die Verteilung der UVs sollte m¨ oglichst gleichm¨aßig sein.

63

64

Entwicklung eines neuen Federsystems

Abbildung 4.16: Bild der Testsequenz mit Maya-Fur.

F¨ ur 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 u ur die Testsequenz wurde ein ¨ber das Attribut Density gesetzt. F¨ Wert von 50.000 verwendet. Das Fur-System von Maya enth¨alt eine sehr große Anzahl Attribute, Abbildung 4.17 zeigt die Basisattribute. Zu jedem dieser Attribute existieren nochmals Untermen¨ us, in denen Parameter wie Noise, d.h. Variationen des Wertes, spezifiziert werden k¨onnen. Es ist sehr zeitintensiv, die optimale Kombination der Werte zu finden, die zu dem gew¨ unschten Aussehen des Fells, bzw. in diesem Fall der Federn, f¨ uhren. F¨ ur die Testse2 quenz wurde das Duckling-Preset verwendet. Davon ausgehend wurden haupts¨achlich die Attribute Base Color, Tip Color, Length, Baldness, Inclination, Base Width, Tip Width, Roll und Clumping angepasst. Außerdem wurde die Map-Gr¨oße auf 512 Pixel erh¨oht. Die Renderzeit f¨ ur ein Frame der Testsequenz betrug mit diesem Federsystem etwa 55 Sekunden. Bewegungen des Fells und Reaktion auf Kr¨afte k¨onnen 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¨afte reagieren zu lassen, kann es mit einer weiteren Komponente - Maya Hair - kombiniert werden. Mit Maya Hair k¨ onnnen dynamische Haarsysteme erstellt werden, mit deren Hilfe ur das Federsystem Haarfrisuren und Haarverhalten simuliert werden kann [DD07] [Der07]. F¨ soll lediglich das Verhalten auf das vorhandene Fell u ¨bertragen werden. Das Haar-System von Maya basiert auf einer Menge Haar-Follikeln. Jedes Follikel wird durch eine NURBS-Kurve repr¨asentiert. Die Kurven werden dynamisch verformt. Die Bewegung anderer Objekte kann u ¨ber die Haar-Follikel gesteuert werden. 2

Duckling (engl.) = Entenk¨ uken

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¨ ugung. Das Haar-System stellt Attribute zur Verf¨ ugung u ¨ber die die Bewegung der Haare angepasst werden kann. Die Mindestanforderungen an ein Federsystem aus Kapitel 3 beinhalten die F¨ahigkeit der dynamischen Verformung bei Bewegung und die Interaktion mit Kr¨aften wie Wind. Die Verformung bei Bewegung wird durch die Kombination mit der Hair-Komponente gew¨ahrleistet. In die Komponente ist zus¨atzlich bereits eine Gravitatsionskraft eingearbeitet. Außerdem kann das Verhalten der Haare u ¨ber Attribute wie Masse weiter konfiguriert werden. Maya bietet f¨ ur die Simulation von Kr¨aften sogenannte Fields an, die mit der Hair-Komponente kombiniert werden k¨ onnen. Fields sind globale oder lokale Kr¨afte die auf Objekte wirken. Sie k¨ onnen vom Typ Stand-alone oder Object sein. Stand-alone Fields beeinflussen Objekte von einer station¨aren oder beweglichen Position in der Arbeitsfl¨ache, w¨ahrend Object Fields an Objekte in der Szene gebunden sind. In der Testsequenz wurde ein Ventilator integriert, um die Qualit¨at der Interaktion mit Kr¨aften der jeweiligen Federsysteme testen zu k¨onnen. F¨ ur die Simulation des Windstroms des Ventilators wurde f¨ ur dieses Federsystem das Stand-alone Field Air verwendet. Dieses Field ist speziell f¨ ur die Simulation von Luftbewegungen konzipiert und daher f¨ ur den Ventilator am Besten geeignet. Das Field wird vor die Rotorbl¨atter des Ventilators positioniert. Der Ventilator wird erst im Verlauf der Animation eingeschaltet, daher wird das Attribut Speed des Fields u ucken ¨ber Key Frames animiert. Von Beginn der Animation bis zum Dr¨ des Schalters wird der Wert auf 0 gesetzt. Nach dem Anlaufen des Ventilator wird das Attribut auf den Wert 100 erh¨ oht. 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 ¨uber 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¨ under 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¨ us in der Dateileiste und eine Shelf in der Schnellstartleiste von Maya zur Verf¨ ugung. Anmerkung zur Kompatibilit¨ at mit Autodesk Maya: Zu Beginn dieser Ausarbeitung stand noch kein Plug-In zur Verf¨ ugung, das mit der aktuellen Version Maya 2009 kompatibel war. Daher wurde die Testsequenz in die Vorg¨angerversion Maya 2008 u uhrt. Dieser Vorgang verlief ohne Probleme, da zur Modellierung und Ani¨berf¨ mation des Vogels keine zu Maya 2008 inkompatiblen Funktionen verwendet wurden. Noch w¨ahrend der Arbeit an der Testsequenz ver¨offentlichte 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 ¨ahnlich wie das Hair-System von Maya mit Guide-Hairs. Eine Geometrie oder Teile von Geometrien k¨ onnen u ¨ber Anwahl eines von 11 Presets mit Haaren bedeckt werden. Die Selektion kann wahlweise Polygon-Geometrien, NURBS-Oberfl¨achen oder Subdivision Surfaces beinhalten, zudem gibt es die M¨oglichkeit, eine Auswahl an Faces einer Polygon-Geometrie mit Haaren zu versehen (siehe Abbildung 4.19). Die Haare k¨ onnen im n¨achsten Schritt in L¨ange 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¨ oglichkeiten f¨ ur Haarpartien als hilfreich. So kann die Selektion beispielsweise u ¨ber markieren von Punkten am Ende der Guide-Hairs erfolgen, oder ¨uber solche an der Haarwurzel. Das Styling der Haare erfolgt mit Hilfe des Artisan Tools. Hier¨ uber k¨onnen sehr intuitiv L¨ange, K¨ammrichtung und Winkel einzelner Haarpartien angepasst werden. Abbildung 4.20 zeigt die zur Verf¨ ugung 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¨ ugung. Hier k¨onnen beispielsweise Breite und L¨ange 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: Uber das angelegte Men¨ u Shave kann ein neues Haarsystem aus einer Vorlage erstellt werden.

Abbildung 4.20: Die Schnellstartleiste von Shave and a haircut.

den. Die Parameter k¨ onnen entweder u ur das gesamte Haar festgelegt ¨ber Werte global f¨ werden oder ¨ uber Schwarz-Weiß Texturen differenziert f¨ ur einzelne Regionen. Dem Vogel wurde so eine Cut-Map zugewiesen, die die kahlen Bereiche Schnabel und Krallen definiert. Zun¨achst soll das Haarsystem von Shave and a haircut so konfiguriert werden, dass jedes erzeugte Haar eine Feder repr¨asentiert. Zu diesem Zweck werden die Attribute f¨ ur 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¨alliger Anordnung u ¨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¨ ur 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¨ ugt. • Die Haare werden in Hair Primitives, die von Mental Ray dargestellt werden k¨onnen, konvertiert. Die beiden Methoden f¨ uhren 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¨ uhrt. Der BufferRender von Shave and a haircut liefert im direkten Vergleich ein detailreicheres Ergebnis. Die Renderzeiten f¨ ur 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¨ ohere Renderzeit im Vergleich zum Rendern von Hair Primitives, durch die Qualit¨at des Ergebnisses gerechtfertigt ist. W¨ahrend 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¨ unschte Verhalten wird durch Abbildung 4.23 verdeutlicht. Das Problem ließ sich letztlich auf die Einstellungen der verwendeten Kamera zur¨ uckf¨ uhren. Der Parameter Fit Resolution Gate ist standardm¨aßig auf den Wert fill eingestellt. Dieser Parameter kontrolliert die Gr¨oße der zu rendernden Region (Resolution Gate) relativ zur Kamera (Film Gate). Um das Abstandsproblem zwischen Geometrie und Federn zu l¨osen, muss dieser Wert von fill auf horizontal ge¨andert werden.

69

70

Entwicklung eines neuen Federsystems

Abbildung 4.22: Die beiden Renderm¨oglichkieten 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 ¨ Uber den shaveHairShape-Knoten k¨ onnen Farbwerte f¨ ur die Spitze und Basis der Haa¨ re u ber die Attribute Tip Color und Root Color gesetzt werden. Uber einen Prozentwert ¨ k¨onnen zus¨atzlich sogenannte Mutant Hairs hinzugef¨ ugt werden, f¨ ur die eine weitere Farbe definiert werden kann. Die Mutant Hairs werden zuf¨allig in der gew¨ unschten Anzahl in das Fell eingestreut. F¨ ur die Testsequenz wurden keine Mutant Hairs verwendet. Neben einer globalen Farbeinstellung f¨ ur das gesamte Fell-System k¨onnen Farb-Maps mit den Attributen verbunden werden. Dadurch ist es m¨ oglich, Federregionen mit unterschiedlichen Farben zu erzeugen und diese ineinander ¨ uberblenden zu lassen.

4.4.1

Shave and a haircut und Forces

Die Integration einer Gravitationskraft, f¨allt im Vergleich zu dem Fur-System von Maya leicht [Smi09]. Sie muss lediglich f¨ ur die schon vorhanden Guide-Hairs aktiviert werden. Die Kombination mit einem zus¨atzlichen System, wie der Hair-Kompontente von Maya, ist nicht n¨otig. Die Reaktionen des Fells werden in Shave and a haircut nicht w¨ahrend des Renderns berechnet, sondern m¨ ussen zuvor einmalig f¨ ur die gesamte Szene generiert werden. Dabei wird f¨ ur 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¨oße bei der Beispielsequenz von 1200 Frames um ca. 2,4 GB erh¨oht. F¨ ur den Windstrom des Ventilators kann das Force-Field aus Abschnitt 4.4 verwendet werden. Die Renderzeit f¨ ur ein einzelnes Frame der Testsequenz lag bei etwa 56 Sekunden.

4.5

Federsystem auf Basis von Shave and a haircut und Instanzen

F¨ ur das dritte Federsystem wird, wie bereits bei dem zweiten, Shave and a hairuct als Basis verwendet. Allerdings wird hier die M¨oglichkeit, an Stelle von Haaren, Geometrien in Abh¨angigkeit der Guide-Hairs auf der Oberfl¨ache zu verteilen, ausgenutzt [Smi09]. Zun¨achst muss hierf¨ ur eine Grundgeometrie erstellt werden, die dann auf der Oberfl¨ache des Vogelmodells verteilt werden kann. Bei der Erstellung dieser Grundgeometrie, m¨ ussen einige Vorkehrungen getroffen werden. F¨ ur die Testsequenz wurde eine Polygon-Plane mit sechs Unterteilungen in y-Richtung erstellt. Obwohl die Anzahl der Polygone der verwendeten Geometrie aus Performance-Gr¨ unden gering sein muss, ist es sinnvoll einige Unterteilungen in y-Richtung einzuarbeiten. So k¨ onnen Attribute zum Biegen der Haare auf das instanzierte Mesh wirken. Diese k¨ onnten sonst nicht verwendet werden. F¨ ur eine korrekte Darstellung sollte die Geometrie eine H¨ ohe von einer Einheit nicht u ¨berschreiten und im Ursprung be¨ ginnen. Wird die Geometrie in y-Richtung verschoben, entstehen Uberschneidungen oder L¨ ucken zwischen der Feder-Geometrie und dem Basismodell, also dem Vogel. Sinnvoll ist es außerdem die History des Objekts zu l¨oschen und die Transformationen zur¨ uckzusetzen.

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 u ur die Anordnung der Instanzen werden die schon ¨bergeben. Als Grundlage f¨ fertig gestylten Guide-Hairs aus dem vorherigen Beispiel verwendet. Damit die Federgeometrien nicht verzerrt werden, muss im Attribute-Editor f¨ ur die Root-Thickness und die Tip-Thickness jeweils ein Wert von eins eingetragen werden. F¨ ur 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¨ ur 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¨ ur die Grundgeometrie alle M¨oglichkeiten, die Maya zur Texturierung bereitstellt, zur Verf¨ ugung. Allerdings ist es nicht m¨oglich, die Farbinformation, die in dem Shave-Knoten definiert werden, auf die Instanzen zu u ¨bertragen. Der Grund hierf¨ ur ist, dass die Instanzen alle auf das gleiche UV-Set zur¨ uckgreifen. Die einzige L¨osung 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 u uft. ¨berpr¨

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¨atskriterien durchgef¨ uhrt werden. Anhand des Vergleichs kann dann das beste System f¨ ur die Generierung von Gefieder bestimmt werden. Renderzeit Die geringste Renderzeit hatte das Federsystem 3 mit 45 Sekunden f¨ ur 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¨ochste Renderzeit f¨ ur ein einzelnes Bild der Testsequenz. Anmerkungen: Die Renderzeit h¨angt 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¨ onnen wurden Gefieder erstellt, die in ihrer Dichte auf der Geometrie in etwa u ¨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¨otigte Zeit f¨ ur ein optisch ¨ahnliches Ergebnis. F¨ ur den praktischen Einsatz liefern ¨ aller die Werte eine gute Entscheidungshilfe. Tabelle 4.1 gibt einen detaillierten Uberblick getesteten Verfahren. Hierin ist auch eine Auflistung der Menge an generierten Federn der Systeme f¨ ur die Testsequenz. Bedienbarkeit Die Bedienbarkeit des Systems h¨angt 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¨ uhrt zu einer erh¨ ohten Einarbeitungszeit in das System. Die Bezeichnungen der Attribute sind nicht immer intuitiv verst¨andlich, dies erschwert die Arbeit mit der Komponente zus¨atzlich. Die Erstellung von Maps f¨ ur die einzelnen Attribute kann mit Hilfe des Artisan-Tools von Maya vorgenommen werden. F¨ ur viele Attribute funktioniert dies sehr gut, bei anderen, wie etwa dem Attribut f¨ ur die K¨ammrichtung des Fells k¨onnen zufriedenstellende Ergebnisse nur u ¨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 u ¨bersichtlich gestaltet. Auch hier steht eine Reihe von Attributen zur Konfiguration des Fells zur Verf¨ ugung. Die Benennung dieser Attribute ist intuitiv und erleichtert somit die Einarbeitung. Zum frisieren der Haare steht eine eigene Auswahl an Werkzeugen zur Verf¨ ugung. ¨ Die Arbeit ¨ahnelt der eines echten Friseurs und ist sehr intuitiv. Auch kleinere Anderungen k¨onnen pr¨azise 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¨ ussen speziell auf die Verwendung als Instanzen vorbereitet werden. Der Prozess erfolgt nach einem festen Schema und ist u ¨bersichtlich. Dennoch bildet er im Vergleich zu Federsystem 2 einen zus¨atzlichen Arbeitsschritt. Flexibilit¨ at Alle Federsysteme bieten die M¨ oglichkeit L¨ange und Dicke der einzelnen Federn anzupassen. Federsystem 3 bietet zudem die M¨oglichkeit die Silhouette der Feder u ¨ber eine Alpha-Map festzulegen. Ebenfalls alle Systeme bieten Attribute, u ¨ber die die Verteilung der Federn auf der Vogelgeometrie gesteuert werden kann. So kann etwa die Dichte der Federn eingestellt werden und es k¨ onnen 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¨ onnen die Farben f¨ ur 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¨onnen auch aufw¨andige Muster, wie sie etwa in einer Pfauenfeder vorkommen, eingearbeitet werden. Die Farbgebung des Gefieders kann bei Federsystem 3 allerdings nur umst¨andlich realisiert werden. F¨ ur jede gew¨ unschte Farbe im Gefieder muss ein eigenes Haarsystem mit einer neuen Federgeometrie erzeugt werden. Bei Federsystem 1 und 2 ist hingegen kein Umweg u ¨ber weitere Haarsysteme notwendig. Das Muster f¨ ur das Gefieder kann dem bestehenden System per Farbdatei u ¨bergeben werden und wird daraufhin automatisch auf die einzelnen Haarinstanzen ¨ubertragen. Qualit¨ at des Ergebnisses Die Qualit¨at des Ergebnisses h¨angt im Einzelfall stark vom gew¨ unschten 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¨afte wird von allen drei Systemen zufriedenstellend umgesetzt. Bei Nahaufnahmen des Gefieders zeigen sich jedoch Unterschiede. W¨ahrend 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¨atskriterien nochmals zusammen. Dabei wird zur Veranschaulichung eine Abstufung in R¨ange vorgenommen. Das System mit

4.7. Zusammenfassung der besten Bewertung in einem der Qualit¨atskriterien erh¨alt drei Punkte, gekennzeichnet durch +++. Das System mit der zweitbesten Bewertung erh¨alt zwei Punkte (++) und das mit der schlechtesten Bewertung erh¨alt einen Punkt (+). K¨onnen mehrere Systeme f¨ ur ein Qualit¨atskriterium als gleichwertig angesehen werden, so erhalten sie die gleiche Anzahl Punkte in Relation zur Leistung und zum dritten Federsystem. Die Zeile Bewertung enth¨alt als Vergleichskriterium f¨ ur die G¨ ute des Systems, die Aufsummierung der erreichten Punkte in den Qualit¨atskriterien. Der Vergleich der entwickelten Federsysteme zeigt, dass alle zufriedenstellende Ergebnisse liefern und die festgelegten Qualit¨atskriterien erf¨ ullen. 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¨at und Flexibilit¨at dem zweiten System sehr ¨ahnlich. Bei den restlichen Kriterien bleibt es hinter diesem jedoch zur¨ uck. 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¨achen. 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¨ ullt die Qualit¨atskriterien am Besten. Insbesondere im Bereich der Bildqualit¨at liefert es sehr gute Ergebnisse. Die Nahaufnahmen sind erheblich detailreicher als die der beiden anderen Systeme. Lediglich bei Gefieder mit sehr aufw¨andigem, vielfarbigem Muster sollte das System zugunsten des zweiten Federsystems verworfen werden. Mit 10 Punkten erh¨alt 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¨onnen wurde zun¨achst 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 +++

Intuitive Werkzeuge und Attribute. Kurze Einarbeitungszeit. +++

Intuitive Werkzeuge und Attribute. Kurze Einarbeitungszeit. Instanzen m¨ ussen erzeugt werden. ++

¨ Uber Attribute und Farbdatei. ++

¨ Uber Texturierung und zus¨atzliche Haarsysteme. ++

Haarqualit¨ at 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

Flexibilit¨ at

¨ Uber Attribute und Farbdatei. ++

++++++ (6 Punkte)

¨ Tabelle 4.1: Ubersicht der Federsysteme mit Bewertung in Hinblick auf die Qualit¨atskriterien.

Entwicklung eines neuen Federsystems

Bedienbarkeit Lange Einarbeitungszeit, Attribute beeinflussen sich gegenseitig. +

4.7. Zusammenfassung den k¨onnen. Um die Interaktion des Gefieders mit Kr¨aften testen zu k¨onnen, wurde in die Testsequenz ein Ventilator als Windquelle eingebaut, der von dem Vogel bet¨atigt wird. Nachdem die Testsequenzen mit den jeweiligen Federsystemen erstellt wurden, konnten die Systeme anhand der Qualit¨atskriterien bewertet und verglichen werden. Das dritte System auf Basis von Shave and a haircut mit Instanzen lieferte hier die zufriedenstellensten Ergebnisse. Im n¨achsten Kapitel soll daher ein Script implementiert werden, das dem Anwender die Umsetzung dieses Systems erleichtert.

77

Kapitel 5

Implementierung eines MEL-Scripts zur Anwenderunterstu ¨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¨ ust soll u ¨ber ¨ das Script automatisch generiert werden. Uber eine grafische Benutzeroberfl¨ache 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¨ ugung stehenden Software-Paketen im Vordergrund. Zu diesem Zweck werden die vorhandenen Komponenten den eigenen Bed¨ urfnissen angepasst. Dies erfolgt u ¨ber die Implementierung eigener Programmbausteine, in Form von Plug-Ins oder Scripts. Dieses Vorgehen dient zum einen der Automatisierung immer wiederkehrender Vorg¨ange. Anstatt den Anwender die Aufgaben jedes Mal per Hand ausf¨ uhren zu lassen, kann ein Script geschrieben werden, das diesen Vorgang automatisch ausf¨ uhrt. Zum anderen kann die Attribut- und Tool-Auswahl den individuellen Bed¨ urfnissen angepasst werden. Typische Beispiele f¨ ur Aufgaben die u ¨ber ein Programm automatisiert werden k¨onnen 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¨ utzung

5.2

Die Script-Sprache von Maya

Maya verwendet zwei Programmiersprachen, u ¨ber die es auch m¨oglich 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¨ ur Maya Embedded Language. Die grafische Benutzeroberfl¨ache wird ¨uber MEL-Befehle gesteuert, daher k¨ onnen nahezu alle Funktionen der Software u ¨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¨ ussen compiliert werden [UKP07]. Im Gegensatz dazu k¨ onnen Programme, die in einer Scriptsprache erstellt wurden, direkt ausgef¨ uhrt werden. MEL-Scripte k¨ onnen direkt in Maya geschrieben und getestet werden und ben¨ otigen keinen externen Compiler oder Debugger. Wird ein MEL-Befehl ausgef¨ uhrt, so greift dieser auf eine C++ Funktion der Maya API zu. Interpreter-Programme sind, da sie zur Laufzeit interpretiert werden m¨ ussen, 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¨ ur jeden Anwender sichtbar. Dies w¨are unter Verwendung von C++ nicht der Fall. Ein weiterer Vorteil von Scriptsprachen allgemein und MEL im Speziellen, ist die Plattformunabh¨angigkeit. Nahezu alle MEL-Befehle k¨onnen 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¨ ur 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¨ahrleisten. Hierzu m¨ ussen alle Arbeitsschritte die f¨ ur den Aufbau des Federsystems erforderlich sind, automatisch abgearbeitet werden k¨onnen. 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¨ oglichkeit ohne Vorgabe des Benutzers mit performancearmen Standardwerten belegt werden. Die Attribute k¨onnen im weiteren Verlauf angepasst werden, da der Anwender zu diesem Zeitpunkt ein visuelles Feedback der Werte zur Verf¨ ugung hat. Neben der Generierung des Federsystems soll auch die Konfiguration optimiert werden. ¨ Uber eine grafische Benutzeroberfl¨ache erh¨alt der Benutzer im Idealfall genau die Einstellungsm¨ oglichkeiten die er ben¨ otigt. 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¨ ur jeden Federtyp erstellen. 3. Den Befehl recomb zum Anlegen der Haare f¨ ur jeden Hair-Shape Knoten ausf¨ uhren. 4. Cut-Maps f¨ ur die Hair-Shapes erstellen. 5. Plane-Primitive f¨ ur die Federinstanzen erstellen. 6. Shader mit Alpha-Maps f¨ ur die Plane-Primitive erstellen. 7. Instanzen an die jeweiligen Hair-Shapes binden. Das Erstellen von Geometrie und UV-Set muss unabh¨angig vom Federsystem bleiben und wird daher vorausgesetzt. Die restlichen Punkte k¨onnen automatisiert von dem Script abgearbeitet werden. Als Benutzereingabe wird zum einen die Geometrie, die die Federn erhalten soll ben¨otigt und zum anderen muss der Benutzer die Verteilung der verschiedenen Federtypen auf der Geometrie vorgeben. Die ben¨otigten Alpha-Maps f¨ ur die Federgeometrien k¨onnen standardm¨aßig zur Verf¨ ugung gestellt werden. Um diesen Vorgang ¨ubersichtlich zu gestalten und sowohl f¨ ur 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¨ ur die Federtypen erforderlich sind, k¨onnte außerdem zu Instabilit¨at f¨ uhren. Nachdem das Federsystem aufgebaut wurde, k¨onnen 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¨ ugung stehenden Tools von Shave and a haircut. Der Vorgang unterscheidet sich bei Federn in keinster Weise von dem bei Fell. Es m¨ ussen hierf¨ ur keine Funktionen in das Script integriert werden, da die Tools von Shave and a haircut hier bereits optimale Ergebnisse liefern. Alle weitern Eigenschaften k¨onnen u ¨ber Attribute der Shave-Hair Knoten konfiguriert werden. Die Knoten beinhalten allerdings weitere Attribute, die f¨ ur das Federsystem irrelevant sind. Des weiteren m¨ ussen die Attribute f¨ ur ein gleichm¨aßiges Erscheinungsbild, in allen Hair Knoten gesetzt werden. Aus diesem Grund sollen die Attribute Farbe, Anzahl, Skalierung und Anlegen der Federn ¨uber eine kompakte grafische Benutzeroberfl¨ache f¨ ur alle Hair-Shapes angepasst werden k¨onnen. Das Anlegen bzw. Abspreizen der Federn dient neben dem konfigurieren der Grunderscheinung auch der Animation des Vogels. Daher m¨ ussen f¨ ur dieses Attribut Keyframes gesetzt werden k¨onnen,

81

82

Implementierung eines MEL-Scripts zur Anwenderunterst¨ utzung

Abbildung 5.1: Die Verteilung der Federtypen kann vom Anwender komfortabel u ¨ber eine Bilddatei festgelegt werden.

um beispielsweise ein Aufplustern des Vogels umsetzen zu k¨onnen. Verteilung der Federtypen Der Anwender soll auf m¨ oglichst einfache Weise die Verteilung der Federtypen bestimmen k¨onnen. Im letzen Kapitel wurden die federreichen Regionen u ¨ber Schwarz-Weiße Cut-Maps angegeben. Der Benutzer m¨ usste also zuvor drei Cut-Maps erzeugen. An jeder Stelle der Geometrie soll jedoch eindeutig bestimmt sein, welche Federart dort vorhanden ist. F¨ ur eine realistische Umsetzung sollen sich die verschiedenen Federtypen auf der Geometrie nicht u otigten Informationen lassen sich dadurch auf eine einzige Bilddatei re¨berlagern. Die ben¨ duzieren. Man ben¨ otigt zu diesem Zweck vier Zust¨ande, die wie folgt farblich gekennzeichnet werden sollen: • keine Feder - Schwarz • Federtyp 1 - Rot • Federtyp 2 - Gr¨ un • Federtyp 3 - Blau Der Benutzer stellt also nur eine Datei mit den RGB-Farben Rot, Gr¨ un und Blau, sowie der Farbe Schwarz zur Verf¨ ugung. Abbildung 5.1 zeigt eine solche Farbdatei angepasst an das UV-Layout des Vogelmodells. Aus der Farbdatei m¨ ussen dann zur Laufzeit die ben¨otigten Schwarz-Weiß Bilder, die als Cut-Maps f¨ ur die Hair-Shapes dienen sollen, erzeugt werden.

5.4. Die Programmoberfl¨ ache

Abbildung 5.2: Die grafische Benutzeroberfl¨ache des Federsystem-Scripts.

5.4

Die Programmoberfl¨ ache

ur die grafische Benutzeroberfl¨ache - GUI - des FederAbbildung 5.2 zeigt den Entwurf f¨ systems. Sie unterteilt sich grob in die markierten Bereiche 1 und 2. Der obere Bereich dient der automatisierten Generierung des Systems. Die einzelnen Bestandteile erf¨ ullen folgenden Zweck: • 1a - Textfeld Bird Geometry. Der Benutzer tr¨agt 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¨ache Generate Feathers. Generiert das Federsystem auf der in 1a angegebenen Geometrie auf Grundlage der in 1b hinterlegten Map. un hinterlegt ist, enth¨alt die wichDer untere Bereich des Fensters, der in Abbildung 5.2 gr¨ ¨ tigsten Parameter, um das Federsystem n¨aher zu konfigurieren. Es folgt eine Ubersicht aller Funktionen: • 2a - Farb Slider. Hier¨ uber k¨ onnen Farben f¨ ur jeden Federtyp individuell gesetzt werden. Die Grundeinstellungen sind rot, gr¨ un und blau.

83

84

Implementierung eines MEL-Scripts zur Anwenderunterst¨ utzung

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¨ache Key. Setzt einen Keyframe f¨ ur das Attribut Fluff bei dem aktuellen Frame in der Zeitleiste. • 2f - Zahlenfeld Blur. Setzt den Parameter Hair Passes f¨ ur die HairShapes. Bei gr¨oßeren Werten entsteht ein Blur-Effekt. Grundeinstellung ist 2. • 2g - Schaltfl¨ache 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¨at des Interfaces zus¨atzlich 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 ¨aquivalent zu dem aus Abbildung 5.4: polySpher e -r 2 - sX 4;

Befehl Modis Jeder Befehl verf¨ ugt u ¨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): Andert eine schon bestehende Eigenschaft eines Objekts Es folgt je ein Beispiel f¨ ur 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¨aher eingegangen und die Programmierroutinen werden erkl¨art. Das gesamte Script befindet sich im Anhang.

5.5.1

Programmierung der Oberfl¨ ache

Zun¨achst 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¨ater den Federgeometrien, die als Grundlage f¨ ur die Instanzen dienen, zugeordnet. Den Textfeldern werden Attribute f¨ ur Minimal- , Maximal- und Defaultwert zugeordnet. Die Felder Count, Fluff und Pass k¨onnen nur ganzzahlige Werte annehmen, das Feld Scale akzeptiert Werte vom Typ

85

86

Implementierung eines MEL-Scripts zur Anwenderunterst¨ utzung float, d.h. Gleitkommazahlen. Die drei Schaltfl¨achen rufen spezielle Funktionen bestehend aus ihrem Namen und dem Zusatz pressed auf. Zur Generierung der Programmoberfl¨ache wurde folgender Code verwendet: // Shader f¨ u 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¨ ache Federgenerierung Die Schaltfl¨ache 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 u ¨bergibt sie der Funktion createFeathers(). Die Funktion erzeugt dann das Federsystem, auf Basis ¨ der ¨ubergebenen Optionen. Der dritte Ubergabeparameter an die Funktion createFeathers() setzt die Anzahl der zu erstellenden Federn. Dieser wird zun¨achst nicht vom Benutzer abgefragt, sondern standardm¨aßig mit einem relativ kleinen Wert von 500 belegt. Dadurch

5.5. Programmierung wird gew¨ahrleistet, dass es nicht schon bei der Generierung des Systems zu Performanceproblemen kommt. Der Benutzer kann diesen Wert sp¨ater anpassen. Zus¨atzlich wird die Schaltfl¨ache 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¨ ache Keyframe f¨ ur das Aufplustern des Vogels Die Schaltfl¨ache b key ruft die Funktion b keyPressed() auf. Diese Funktion liest den Wert Fluff, f¨ ur das Aufplustern der Federn, aus dem Textfeld aus und setzt damit das Attribut rootFrizz der drei hairShape-Objekte. Danach wird f¨ ur jedes der drei Haarsysteme ein Keyframe f¨ ur 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¨ utzung

Abbildung 5.5: Beispiel eines Gefieders mit unterschiedlichen Werten des Attributs Fluff, das das Aufplustern des Gefieders steuert.

Schaltfl¨ ache Update Die Schaltfl¨ache 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¨ origen 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¨ ur die Plane mit Alpha-Map erstellen. 3. Shave and a hairuct Haarsystem erstellen. 4. Dem Haarsystem Instanzen zuweisen. 5. Vorgang f¨ ur zwei weitere Haarsysteme wiederholen. Die Programmierumsetzung dieser Schritte soll nun n¨aher betrachtet werden. Polygon-Plane erstellen Die Polygon-Plane dient als Grundgeometrie f¨ ur die Federinstanzen des ersten Haarsystems, daher muss sie den in Kapitel 4 hergeleiteten Anforderungen gen¨ ugen. Die Plane hat eine H¨ohe von einer Einheit, eine Breite von 0.5 Einheiten und sechs Unterteilungen in y-Richtung. Sie wird so transliert und skaliert, dass ihre Grundfl¨ache 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 u ¨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¨ ur 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¨ ur 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¨ utzung

Abbildung 5.6: Das Shader-Netzwerk f¨ ur die Federgeometrien wird automatisch erzeugt.

Datei feather.png wird mit dem Script zur Verf¨ ugung 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¨ ur das Federsystem wird das Standard-Preset Default von Shave and a haircut verwen¨ det. Dieses Preset erfordert die wenigsten nachtr¨aglichen Anderungen an den Attributen, um als Federsystem verwendet werden zu k¨onnen. Das Hair-Shape Objekt wird auf der vom Anwender u ¨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 u ¨ber den Befehl parent der Gruppe feathers zugeordnet. Zuletzt m¨ ussen noch die beiden Attribute rootFrizz und tipFrizz auf null gesetzt werden. tipFrizz regelt wie weit sich die Haarspitzen nach außen w¨olben. 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¨ ur 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¨ ur die Instanzen zugewiesen werden. Hierzu m¨ ussen Haarsystem und Plane selektiert sein und danach der Befehl shaveSetInstance ausgef¨ uhrt 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¨ ur die zwei weiteren Haarsysteme wiederholen. Um ein mehrfarbiges Gefieder realisieren zu k¨onnen, m¨ ussen 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¨ u 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¨ utzung 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¨ache verteilt und u ¨berlagern sich gegenseitig. F¨ ur ein farblich abgetrenntes Gefieder m¨ ussen den drei Hair-Shapes sogenannte Cut Maps zugeordnet werden. Der Benutzer stellt zu diesem Zweck eine Bilddatei zur Verf¨ ugung, in der die verschiedenen Haartypen mit den Farben Rot, Gr¨ un und Blau auf Basis des UV-Sets der Geometrie gekennzeichnet sind, zur Verf¨ ugung. Kahle Stellen, wie beispielsweise der Schnabel werden mit Schwarz gekennzeichnet. Aus dieser Bilddatei m¨ ussen nun drei Schwarz-Weiß Bilder erzeugt werden, die als Cut Maps verwendet werden k¨onnen. Um das Bild f¨ ur den ersten Federtyp zu erhalten, m¨ ussen beispielsweise die Farben Blau und Gr¨ un auf Schwarz gesetzt werden. Die Farbe Rot kennzeichnet die federbedeckten Regionen und wird in die Farbe Weiß ¨ uberf¨ uhrt. Um diesen Farbwechsel zu realisieren, wurde eine Condition verwendet. Dieses Utility erm¨oglicht es einen u ¨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¨ ur das entsprechende Haarsystem kennzeichnet. F¨ ur das erste Haarsystem w¨are 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 ¨ubergebenen Bilddatei und der Cut Map, im Hypershade. Zun¨achst wird ein neuer Shader vom Typ Lambert erstellt und der ¨ ubergebenen Geometrie zugeordnet. Dem Farbattribut des Shaders wird eine neue Textur, die auf die u ¨bergebene Bilddatei verweist, u ¨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¨ ur die Generierung der erzeugten Bilddatei dient. Des weiteren m¨ ussen ConditionUtilities f¨ ur 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¨achstes m¨ ussen die Farbwerte der einzelnen Kan¨ale mit dem Eingang firstTerm verkn¨ upft 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¨ utzung

... 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, u ¨bergeben. Abschließend werden die Schwarz-Weißen Bilddateien den Hair-Shapes als Cut Map u ur die Cut Map befindet sich in dem Attribut shaveTex[29] der ¨bergeben. Der Knoten f¨ 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¨oglichkeiten, die wichtigsten Parameter des Systems einzustellen. Um das Script f¨ ur den professionellen Einsatz zu optimieren, k¨onnten weitere Funktionen

5.6. Zusammenfassung und Ausblick hinzugef¨ ugt werden. Die Interaktion u ¨ber die grafische Oberfl¨ache k¨onnte um einen FileDialog zur Auswahl der Textur erweitert werden. Außerdem k¨onnte die Auswahl der Geometrie u ¨ber Selektion innerhalb der Szene realisiert werden. Die Attribute zur Verfeinerung des Federsystems k¨ onnten erweitert werden, beispielsweise k¨onnte das Feld Masse der Federn hinzugef¨ ugt werden. Zus¨atzlich k¨ onnte 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¨ ur die Generierung von Gefieder f¨ ur 3D-V¨ogel zu entwickeln. Da das Gefieder von V¨ogeln als eine Variante von K¨orperbedeckungen eng mit dem Fell von S¨augetieren 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¨atigt werden. In Kapitel 2 wurde eine Analyse der in aktuellen Animationsfilmen verwendeten Techniken zur Generierung von Fell und Federn durchgef¨ uhrt. Da alle in die Analyse einbezogenen Unternehmen der Filmindustrie das 3D-Software-Paket Autodesk Maya als Grundlage f¨ ur ihre Filme verwenden, wurde diese auch f¨ ur die Umsetzung des Federsystems verwendet. Die Software bietet eine große Anzahl von Techniken und Methoden, von denen einige f¨ ur 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¨ ur die Verteilung der Federn am Besten geeignet sind. Die einzelnen Federn m¨ ussen so umgesetzt werden, dass sie in einer sehr großen Anzahl erzeugt werden k¨onnen ohne das System voll auszulasten. Maya bietet zwei Methoden an, die dies erm¨ oglichen. Zum einen k¨onnen die Federn als angepasste Haare eines Fellsystems dargestellt werden und zum anderen k¨onnen sie als Polygon-Planes mit Alpha-Maps realisiert werden. Die ermittelten Methoden wurden im n¨achsten 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¨ ur die Federn. Die drei Federsysteme wurden anhand einer speziell hierf¨ ur 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 u ¨berlegen. Das dritte Federsystem, das mit Instanzen als Federn arbeitet, besitzt zudem sehr gute Zukunftsprognosen. F¨ ur 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¨ oglicht es dem Anwender ein dreifarbiges Gefieder automatisiert f¨ ur einen beliebigen Vogelcharakter erstellen zu lassen. Des weiteren kann das generierte Gefieder u ¨ber eine grafische Benutzeroberfl¨ache verfeinert werden.

6.1

Ausblick

In dieser Arbeit wurde nachgewiesen, dass es mit den heute schon zur Verf¨ ugung stehenden Software- und Hardwarel¨ osungen m¨oglich ist, ein komplexes Gefieder zu simulieren. Die Erkenntnisse und Techniken zur Generierung von Fell k¨onnen auf Gefieder u ¨bertragen werden. Die bestehenden Fellsysteme reizen die M¨oglichkeiten 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¨ ur die Umsetzung eines fellbedeckten Charakters. Es kann jeder beliebige Effekt erzielt werden, wenn nur gen¨ ugend Rechnerleistung und Renderzeit zur Verf¨ ugung gestellt wird. Nat¨ urlich wird sich die technische Weiterentwicklung im Bereich der Computerhardware auch hier positiv auswirken. Dies wird jedoch keinen Einfluss auf das maximal m¨ ogliche optische Endergebnis haben, sondern vielmehr Kostenersparnis und angenehmeres Arbeiten mit dem System f¨ ur die Entwicklungsstudios bedeuten. Dies ist in der geringen Komplexit¨at der einzelnen Haare eines Fells begr¨ undet. Die aktuelle Hardware ist weit genug entwickelt, um eine sehr großen Anzahl Haaren darstellen und bewegen zu k¨onnen, ohne Abstriche in der Darstellungsqualit¨at eines einzelnen Haares machen zu m¨ ussen. 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¨are ein Gefieder in seiner vollen Komplexit¨at virtuell abzubilden, kann von der heutigen Hardware und Software noch nicht bew¨altigt werden. Das neue Federsystem umgeht das hierdurch entstehende Problem, indem der Detailgrad einer einzelnen Feder reduziert wird. Mit der zur Verf¨ ugung 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¨achsten Jahren erm¨oglichen komplexere Federgeometrien zu verwenden, bei denen Schaft und Seiten¨aste ausmodelliert sind. Daher ist abzusehen, dass das Federsystem von den zuk¨ unftigen 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¨angig 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¨achlich f¨ ur die Darstellung von Gesichtsausdr¨ ucken (Mimik) verwendet wird.

Blur

Weichzeicheneffekt in der Bildbearbeitung. Setzt die Bildsch¨arfe 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¨ ur Haare und Fell optimiert ist.

Bump-Map

Graustufen-Bilddatei, u ¨ber die Tiefeninformationen in die Oberfl¨ache einer Geometrie eingearbeitet werden.

Checker-Textur

Bilddatei mit Schachbrettmuster.

Column-Layout

Anordnungsvariante f¨ ur 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¨angigkeitsbeziehung 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¨achlich f¨ ur Sonnenlicht verwendet.

Displacement-Map

Bilddatei, u ohere ¨ber die auf der Oberfl¨ache einer Geometrie eine h¨ 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¨angigkeit der Vorw¨artsbewegung des Fahrzeugs.

Emitter

Quelle eines Partikelsystems, aus dem die einzelnen Partikel herausstr¨ omen.

Extrude

Modellierungswerkzeug von Autodesk Maya, mit dem u. a. aus Kanten einer Geometrie neue Fl¨achen erzeugt werden k¨onnen.

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¨aften dienen.

Forward Kinematics

Methode zur Characteranimation, bei der die Gelenke des Skeletts nacheinander rotiert werden bis die gew¨ unschte Pose erreicht ist.

Global Illumination

Oberbegriff f¨ ur Beleuchtungsmodelle, die die gesamte Szene bei der Berechnung der Lichtintensit¨aten ber¨ ucksichtigt.

GUI

graphical user interface, deutsch grafische Benutzeroberfl¨ache. Programmoberfl¨ache ¨uber die der Anwender mit der Software kommunizieren kann.

Hair Primitives

Grundelement f¨ ur 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¨ uhrt wurden. Nach l¨oschen der History k¨onnen diese nicht mehr R¨ uckg¨angig gemacht oder ver¨andert werden.

Hypershade

Rendering Arbeitsbereich in Autodesk Maya, in dem ShadingNetzwerke erstellt werden k¨onnen.

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¨ onnen.

Instanz

¨ Abh¨angige Kopie eines Objekts. Anderungen des Objekts, ¨andern 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¨ usselbilder (engl. Key Frames) definiert werden. Die Animation erfolgt durch Interpolation der Schl¨ usselbilder.

Lambert-Shader

Material ohne Glanzlichteffekt. Wird f¨ ur matte Oberfl¨achen 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 u ¨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¨angig zusammengefasst werden. Die Animationsst¨ ucke k¨ onnen skaliert, wiederholt und ineinander u ¨bergeblendet werden.

Normal-Map

Bilddatei u ¨ber die Tiefeninformationen, auf Basis der Normalen, in die Oberfl¨ache 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¨onnen.

Partikel-System

System zur Generierung und Steuerung dynamischer Teilchenstr¨ ome. Kann beispielsweise f¨ ur Rauch, Nebel oder Feuer verwendet werden.

Pelting

UV-Mapping Technik, bei der die UV-Shells aufgeschnitten und flach aufgeklappt werden.

Plane

Polygonfl¨ache ohne Dicke, bestehend aus Faces.

Polygon

Vieleck. Fl¨ache im 3D-Raum, deren Eckpunkte u ¨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¨achlich f¨ ur u ¨berschaubare Programmieraufgaben verwendet.

Shader

Material eines 3D-Objekts. Spezifiziert Oberfl¨acheneigenschaften 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¨angigkeit. 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¨alt 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¨ache einer Geometrie.

UV-Mapping

Generierung eines UV-Layouts auf Basis verschiedener Techniken.

UV-Shell

Zusammenh¨angender Bereich eines UV-Layouts.

Vertex

Eckpunkt einer Polygon-Geometrie.

Viewport

Arbeitsbereich in Autodesk Maya.

Weighting

Manuelle Korrektur der Abh¨angigkeit 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¨ on, um nur damit zu fliegen. GEOlino, 05, 2007.

[Hap03]

Michael Happel. Trends im animationsfilm: Disney - r¨ uckblick & 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¨ ur 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¨ an. 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¨ uckt. 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 ` a 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¨ u 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) ; } // ¨ ubertr¨ a 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 enth¨ alt // 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¨ u 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

View more...

Comments

Copyright © 2020 DOCSPIKE Inc.