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