Automatisierungsmöglichkeiten im Rigging-Prozess am Beispiel Autodesk Maya - eingereicht am in Hagenberg im September 2008
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Automatisierungsmöglichkeiten im Rigging-Prozess am Beispiel Autodesk Maya Dietmar Minichmayr MASTERARBEIT eingereicht am Fachhochschul-Masterstudiengang Digitale Medien in Hagenberg im September 2008
Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbst- ständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und die aus anderen Quellen entnommenen Stellen als solche gekennzeichnet habe. Hagenberg, am 23. September 2008 Dietmar Minichmayr iii
Inhaltsverzeichnis Erklärung iii Kurzfassung vii Abstract viii 1 Einleitung 1 1.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Anforderungen bei der Erstellung eines humanoiden 3D Character- Rigs 3 2.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Anforderungen an das 3D Charakter Modell . . . . . . . . . . 4 2.2.1 Ausrichtung und Symmetrie . . . . . . . . . . . . . . . 4 2.3 Anforderungen an die Skelettgenerierung . . . . . . . . . . . . 5 2.3.1 Allgemeine Skelettstruktur und Naming-Convention . 5 2.3.2 Ausrichtung der Joints . . . . . . . . . . . . . . . . . . 6 2.3.3 Positionierung der Joints . . . . . . . . . . . . . . . . . 9 2.3.4 Spiegeln der Joints . . . . . . . . . . . . . . . . . . . . 10 2.4 Anforderungen an die Rig-Generierung . . . . . . . . . . . . . 11 2.4.1 Forward Kinematik . . . . . . . . . . . . . . . . . . . . 12 2.4.2 Inverse Kinematik . . . . . . . . . . . . . . . . . . . . 12 2.4.3 Kontrollobjekte . . . . . . . . . . . . . . . . . . . . . . 13 2.4.4 IK/FK Switch . . . . . . . . . . . . . . . . . . . . . . 14 2.4.5 Reverse Foot . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.6 No-Flip Knee . . . . . . . . . . . . . . . . . . . . . . . 17 2.4.7 Auto-Forearm Twist . . . . . . . . . . . . . . . . . . . 19 2.4.8 Wirbelsäule mittels IK Spline Handle . . . . . . . . . . 19 2.4.9 Squash and Stretch . . . . . . . . . . . . . . . . . . . . 19 2.4.10 Flexibilität im Rigging-Prozess . . . . . . . . . . . . . 21 iv
Inhaltsverzeichnis v 3 Aktuelle Lösungen 23 3.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 createFBIK_skeleton . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.1 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 Rig-o-matic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3.1 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4 abAutoRig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4.1 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5 Advanced Skeleton . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5.1 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . 28 4 Automatisierung des Rigging-Prozesses 32 4.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2 dRiggingTool . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2.1 Python vs. Mel . . . . . . . . . . . . . . . . . . . . . . 33 4.2.2 Architektur . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2.3 Programmieren in Python . . . . . . . . . . . . . . . . 37 4.2.4 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . 38 5 Evaluierung von dRiggingTool 42 5.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.2 Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2.1 Allgemeine Fragen . . . . . . . . . . . . . . . . . . . . 43 5.2.2 Fragen zur Installation . . . . . . . . . . . . . . . . . . 44 5.2.3 Fragen zur Skeletterstellung . . . . . . . . . . . . . . . 44 5.2.4 Fragen zur Rig-Erstellung . . . . . . . . . . . . . . . . 46 5.2.5 Fragen zu Funktionen zur Animationsunterstützung . 47 5.2.6 Fragen zur Verwendung des Tools . . . . . . . . . . . . 49 5.3 Zusammenfassung und Ergebnis der Evaluierung . . . . . . . 50 5.4 Analyse und Vergleich unterschiedlicher Rigging-Tools . . . . 53 6 Ausblick 56 6.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.2 Automatisches Riggen und Animieren von 3D Charakteren . . 56 6.2.1 Performance Capture und Mesh-Animation . . . . . . 58 6.2.2 Exkurs: Multi-View Stereo Technik . . . . . . . . . . . 59 6.2.3 Automatisches Konvertieren einer Mesh-Animation in eine skelettbasierende Animation . . . . . . . . . . . . 59 6.3 Skin Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.4 Muskelsimulation . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.4.1 Pose Space Deformation (PSD) . . . . . . . . . . . . . 63 6.4.2 Muskelsysteme . . . . . . . . . . . . . . . . . . . . . . 63 6.5 Character Setup Pipeline . . . . . . . . . . . . . . . . . . . . 64
Inhaltsverzeichnis vi 7 Schlussbemerkungen 68 A Inhalt der CD-ROM/DVD 71 A.1 Diplomarbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 A.2 dRiggingTool . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 A.3 Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.4 Quellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.5 Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Literaturverzeichnis 73
Kurzfassung Die vorliegende Arbeit beschäftigt sich mit dem Rigging-Prozess für einen zweibeinigen 3D Charakter und dessen Automatisierungsmöglichkeiten. Es werden Anforderung an den Prozess der Erstellung eines Rigs dargestellt. Diese Anforderungen beziehen sich dabei auf das 3D Charakter Modell, für welches ein Rig erstellt werden soll, sowie auf den Prozess der Skelettgenerie- rung und den der Rig-Generierung. Aktuelle Lösungsansätze bzw. Rigging- Tools werden miteinander verglichen. Es wird dabei untersucht, inwieweit diese Tools über Funktionen zur Erfüllung dieser Anforderungen verfügen. Zwecks Darstellung des Automatisierungsprozesses und zur Darstellung der bei der Automatisierung entstehenden Probleme und Herangehensweisen wurde in einem eigenem Projekt dRiggingTool entwickelt. Es handelt sich hierbei um ein Rigging-Tool, welches als praktische Grund- lage dieser Arbeit dient und mittels Fragebogenanalyse einer Evaluierung unterzogen wurde. Analysiert wurde inwieweit das Tool Anforderungen hin- sichtlich Benutzerfreundlichkeit, Verständlichkeit, Flexibilität und Funkti- onserfüllung gerecht wird. Diese Anforderungen können somit als Qualitäts- merkmale zur Auswahl einer automatisierten Standardlösung gesehen und zum Einsatz gebracht werden. Weiters erfolgt ein Ausblick über der dem Rigging folgenden Arbeitsschritte, wie Skinning bzw. Muskelsimulation für ein 3D Charakter Modell, Arbeiten zum automatischen Riggen und Animie- ren von 3D Charakteren sowie ein Überblick über einen effizienten Workflow bei der 3D Charakteranimation. vii
Abstract The thesis at hand discusses the rigging process for a two-legged 3D charac- ter and its potential for automation. Requirements for the rigging process are presented, in reference to the 3D character model, for which a rig should be produced, and the processes of skeleton creation and rig generation. Re- lated works, or more specifically, other rigging tools are compared and their existing functionality to handle these tasks is examined. To demonstrate the automation process and the problems related to this approach, dRigging- Tool was developed by the author in an independent project and serves as a practical basis for this thesis. This tool was evaluated utilizing a questionnaire that analyzed how well the tool meets standards of operation, intelligibility, flexibility and function fulfillment. These criteria can be seen as quality characteristics for the selec- tion of an automated standard solution. Finally, an overview is provided of the individual work stages which have to be done after rigging (e.g. skinning and muscle simulation for a 3D character model), in addition to works for automatic rigging and animation of 3D characters and a description of an efficient workflow for the 3D character creation pipeline. viii
Kapitel 1 Einleitung 1.1 Zielsetzung Die zentrale Fragestellung welche diese Arbeit behandeln soll liegt darin, in- wieweit sich der Rigging-Prozess eines 3D Charakters automatisieren bzw. rationalisieren lässt. Das automatisch erstellte Rig soll sich in einem späte- ren Arbeitsschritt einfach mittels Motion-Capture Daten animieren lassen. Als praktische Grundlage dient dabei ein erstelltes Rigging-Tool, welches den Prozess der Skeletterstellung und den des Riggings für einen zweibeini- gen Character weitgehend automatisiert. Es soll dargestellt werden, welche Anforderungen an ein derartiges Tool gestellt werden bzw. welche weite- ren Funktionen notwendig sind, um es möglichst optimal in einen effekti- ven Animationsworkflow einbinden zu können. Dabei werden unterschiedli- che Lösungsansätze und Applikationen untersucht und diskutiert. Außerdem soll auch auf den Automatisierungsprozess und auf die dabei anfallenden Problemstellungen eingegangen werden. Die 3D Software welche dabei zur Anwendung kommt ist Autodesk Maya. Zur Implementierung können zwei Skriptsprachen zur Anwendung kommen – Mel und Python. Somit sollen diese beiden Sprachen auch miteinander verglichen werden. Ein wesentlicher Bestandteil der Arbeit stellt dabei die Evaluierung des Istzustands dar. Es soll auf bestehende Konzepte, Problemstellungen und Anforderungen im Rigging- und Animationsprozess eingegangen werden. Da- bei wird das erstellte Tool bzw. der dargestellte Workflow einer detaillierten Analyse unterzogen. 1.2 Motivation Da es sich in der Produktionspipeline einer Charakteranimation beim Rigging- Prozess um einen relativ technischen Bereich handelt, liegt es auf der Hand diesen zu automatisieren. Die Vorteile einer Automatisierung des Rigging- Prozesses liegen in einer immensen Zeitersparnis und sind somit auch finanzi- 1
1. Einleitung 2 eller Natur. Auch können Änderungen an einem automatisch generierten Rig relativ rasch und problemlos durchgeführt werden. Anwendungen mit einer Fülle von Charakteren, welche ähnlichen Anforderungen besitzen, rechtferti- gen es sich mit der Automatisierung des Rigging-Prozesses und der automa- tischen Erzeugung von Animationen zu beschäftigen. Dies vor allem in der Hinsicht, dass die Prozessorleistung und die Nachfrage nach Assets ständig steigt, jedoch die Erzeugung von Animationsdaten im herkömmlichen Sinn dieser Nachfrage oft nicht mehr gerecht wird. Einsatzgebiete wären zum Bei- spiel im Spielebereich Computerrollenspiele und 3D Shooter. Weitere Ein- satzmöglichkeiten sind Animationsfilme und technische Simulationen. In der Praxis ist es erforderlich den Zeit und Kostenaufwand für die Verwendung einer Standardlösung oder einer Individuallösung abzuschätzen bzw. ob eine automatisierte Lösung sinnvoll ist. 1.3 Übersicht Kapitel 1: Beinhaltet die Zielsetzung, zentrale Fragestellung und Motivation zur Erstellung der Diplomarbeit. Kapitel 2: Ziel dieses Kapitels ist es einen Einblick in den Rigging-Prozess eines zweibeinigen Charakters zu schaffen. Dabei wird auf bestehende Kon- zepte, Problemstellungen und Anforderungen eingegangen. Kapitel 3: In diesem Kapitel werden aktuelle Lösungsansätze zur auto- matisierten Rig-Erstellung in Autodesk Maya dargestellt. Kapitel 4: Beschäftigt sich mit der Automatisierung des Rigging-Prozesses. Es werden die zur Auswahl stehenden Skriptsprachen gegenübergestellt. Wei- ters erfolgt eine Darstellung des erstellten Rigging-Tools und seiner Archi- tektur, Algorithmen und Arbeitsweise. Kapitel 5: Das erstellte Rigging-Tool wurde einer Fragebogenanalyse un- terzogen. Die dabei gewonnenen Ergebnisse und Erkenntnisse werden in die- sem Kapitel dargestellt. Abschließend werden die untersuchten Rigging-Tools analysiert und miteinander verglichen. Kapitel 6: Liefert einen Ausblick über die dem Rigging folgenden Ar- beitsschritte, wie Skinning und Muskelsimulation beziehungsweise beschäf- tigt sich mit Ansätzen zur automatischen Skelettgenerierung und Animation sowie mit der Straffung der Animationspipeline. Kapitel 7: Beinhaltet Schlussbemerkungen zur erstellten Arbeit. Die vorliegende Arbeit soll einen Einblick in die Automatisierungsmöglichkei- ten im Rigging-Prozess eines 3D Charakters liefern. Grundlegende Kenntnis- se im Umgang mit der 3D Software Autodesk Maya werden dabei vorausge- setzt, da sich die diversen Beispiele und Anwendungsfälle auf diese Software beziehen.
Kapitel 2 Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 2.1 Allgemeines Betrachtet man den Rigging-Prozess im gesamten Workflow einer Charakter Animation, so zeigt sich dass es sich hierbei um einen relativ technischen Vor- gang handelt. Bezeichnend für die Beschreibung der Aufgaben beim Rigging sind folgende Worte aus [9]: Ein fertig modellierter 3D-Charakter bleibt ein lebloses Objekt, solange ihm kein Rig zugewiesen wird. Unter der Bezeichnung Rigging versteht man den Prozess, ein Knochengerüst und die zugehörigen Kontrollobjekte zu erstellen und im 3D-Objekt zu platzieren. Erst dadurch lässt sich das Modell deformieren und somit im Folgenden eine Animation realisieren. Ein fertiges Rig besteht nicht einfach nur aus 3D-Knochen. Entscheidend ist das komplexe Zusammenspiel zwischen den Bestandteilen des Ske- letts und den Kontrollobjekten sowie Kinematik-Funktionen und diversen Expressions. Ziel der Arbeit des Riggers ist es, der Ani- mationsabteilung ein fertiges Rig zu übergeben, das den Anfor- derungen der folgenden Prozesse standhält. Ist es nun erforderlich, in einer Produktion diesen Prozess des Riggings für eine große Anzahl von Charakteren zu durchlaufen, so liegt es nahe diesen zu automatisieren. „Dies bietet Animatoren die Möglichkeit die sehr techni- schen Arbeitsvorgänge zu beschleunigen und sich auf den kreativeren Teil – die eigentliche Animation – zu konzentrieren“ [25]. Ein mögliches Beispiel wär hier eine Anwendung mit einer Unzahl an verschiedenen Charakteren 3
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 4 (Computerrollenspiel, Massenszene bei der 3D Charaktere zum Einsatz kom- men etc.). Viele dieser Charaktere können mit demselben Rig ausgestattet werden, da sich deren Meshes in deren Anatomie sehr ähnlich sind. Untersucht man nun den Vorgang des Riggings für sich, so sieht man, dass die Ausgangsbasis für das Rig das Mesh des 3D Charakters darstellt. Als Einschränkung gilt, dass es sich beim 3D Charakter um einen Zweibei- ner handelt. Die Erstellung des eigentlichen Rigs erfolgt in zwei Schritten. Zunächst werden an das Mesh die Joints des Skeletts angepasst. Für die Er- stellung des Rigs ist es notwendig zuerst ein Skelett zu erstellen, um dann in einem zweiten Schritt Controller für Inverse- und Forward-Kinematik zu erzeugen. Ein Skelett bzw. das Rig eines Zweibeiners besteht wiederum aus mehreren Teilrigs bzw. Ästen in der Skelettstruktur, welche einen baumarti- gen Aufbau besitzt. Diese Bestanteile sind bei einem standardmäßigen Zwei- beiner: • Beine • Torso • Kopf • Arme • Finger Bei der manuellen Erstellung des Rigs wird auch meist diese Reihenfolge eingehalten. Auch ist es üblich für einen Körperteil, zum Beispiel den Beinen, die Skelettstruktur zu erstellen und anschließend sofort das entsprechende Teilrig zu erstellen. Im Unterschied dazu wird bei der automatischen Rig- Generierung das Skelett zuerst als Ganzes erstellt. 2.2 Anforderungen an das 3D Charakter Modell 2.2.1 Ausrichtung und Symmetrie Um ein einwandfreies Rigging zu garantieren, muss das erstellte Charakter Modell [12] die T-Pose einnehmen und in die positive Z-Richtung schauen (siehe Abb. 2.1). Die Füße sollten dabei den Boden berühren und die Arme parallel zum Boden verlaufen. Das Charakter Modell sollte entlang der YZ Ebene gespiegelt worden sein und so ein symmetrisches Modell darstellen. Die YZ Ebene teilt somit das Modell in zwei gleiche aber spiegelverkehrte Teile. Dies deswegen, da im Regelfall die Joints für Arme, Finger, Beine und Augen gespiegelt werden. Nicht symmetrische Modelle bedürfen einer nachträglichen Anpassung der Joints.
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 5 Abbildung 2.1: Charakter Modell in T-Pose aus Digital Tutors: Creating stylized females in Maya. 2.3 Anforderungen an die Skelettgenerierung 2.3.1 Allgemeine Skelettstruktur und Naming-Convention Da es sich beim Skelett um das eines Zweibeiners handelt, kann man von einer allgemeinen Struktur ausgehen. Diese Struktur verfügt über einen hierarchi- schen Aufbau. Es ist lediglich der jeweilige Joint an das Mesh anzupassen, wobei jedoch die Struktur unverändert bleibt. Abbildung 2.2 zeigt den Auf- bau des Skeletts für einen Zweibeiner. Dadurch dass der Skelettaufbau einer allgemeinen Struktur entspricht ist es auch möglich, diesen in einen Algorithmus zu fassen. Um die Integration mit Autodesk MotionBuilder zu erleichtern, ist es ratsam die Joints des Ske- letts mit der MotionBuilder eigenen Naming-Convention auszustatten. Diese Naming-Convention kann der MotionBuilder Mapping List entnommen wer- den [4]. Wird die Naming-Convention eingehalten, so können auch Skelette, wel- che mit jedweder Software erstellt wurden, zB mit Autodesk Maya, in Moti- onBuilder automatisch characterized werden. Unter Characterizing versteht man das Zuordnen der Skelettstruktur bzw. der Joints des erstellten Cha- rakters an die in MotionBuilder dafür vorgesehenen Nodes (siehe Abbildung 2.3). Entsprechen nun diese Joints einer in MotionBuilder vorgesehenen Na- menskonvention so kann dieses Zuordnen automatisch ausgeführt werden. Wird die Naming-Convention nicht eingehalten, so hat das Zuordnen in der MotionBuilder Mapping List manuell zu erfolgen. Wird zum Beispiel der Joint für das linke Knie mit „LeftLeg“ benannt, so erfolgt das Mapping auto- matisch, wäre es jedoch zum Beispiel mit „lftKnee“ benannt worden, so hätte man es in MotionBuilder manuell dem Node für das Knie zuordnen müssen. Um das Rig mit einem Auto-Forearm Twist ausstatten zu können, be- nötigt man zwischen dem Joint für den Ellbogen und dem Handgelenk noch
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 6 Head_End Head LeftEye Neck Spine3 LeftShoulder LeftArm Spine2 LeftForeArm Spine1 LeftForeArmRoll Spine LeftHand LeftHandThumb1.. Hips LeftUpLeg LeftHandIndex1.. Root LeftLeg LeftHandMiddle1.. LeftFoot LeftHandRing1.. LeftToeBase LeftHandPinky1.. LeftToeEnd Abbildung 2.2: Hierarchischer Skelettaufbau eines Zweibeiners. einen Joint (LeftForeArmRoll ). 2.3.2 Ausrichtung der Joints Das Festlegen der lokalen Rotationsachse eines Joints wird in Autodesk Ma- ya als Joint Orientation bezeichnet. Erfolgt keine Joint Orientation so wird die lokale Rotationsachse nach dem Weltkoordinatensystem ausgerichtet. Die linke Joint-Kette in Abbildung 2.4 zeigt eine ausgerichtete Joint-Kette, bei der die lokale Y-Achse immer in Richtung des Child-Joints zeigt. Die Joints der rechten Joint-Kette sind nicht ausgerichtet bzw. entsprechen einer Aus- richtung nach dem Weltkoordinatensystem. Bei der Erstellung des Skeletts, sollte man sich im Klaren sein, was die Ausrichtung der Joints für das Verhalten des Rigs bedeutet. In der Literatur gibt es verschiedene Ansätze. Digital Tutors verzichtet in Character Setup in Maya auf eine Ausrichtung der Joints [10]. Eine Ausrichtung erfolgt dort, wo sie definitiv benötigt wird. Dies ist zum Beispiel beim Auto-Forearm Twist der Fall, da sich hier der Split-Joint um die eigene Achse zu drehen hat. Eine Ausrichtung der Joints nach den Child-Joints geschieht auch bei den Fingern, damit sich diese richtig eindrehen, um sie zu einer Faust ballen zu können. Ein
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 7 Head_End LeftEye Neck Head Spine3 LeftArm LeftForeArmRoll LeftHand Spine2 LeftShoulder LeftForeArm Spine1 Spine Hips Root LeftUpLeg LeftLeg LeftFoot LeftToeBase LeftToeEnd Abbildung 2.3: MotionBuilder Naming-Convention. Rotationsachse Ro tat ion sa ch se Abbildung 2.4: Joint Orientation. zweiter Ansatz ist, die Joints des Skeletts immer nach dem jeweiligen Child- Joint auszurichten. Die Achse, welche nach dem Child-Joint ausgerichtet wird, wird als Twisting Axis bezeichnet. In Abbildung 2.4 war dies die Y- Achse. Dabei kann aber auch die X oder Z Achse gewählt werden. In Art of Rigging werden die Joints so ausgerichtet, das die X-Achse die Twisting
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 8 Twisting Axis Abbildung 2.5: Drehung um X-Achse im Weltkkoordinatensystem. Twisting Ax is Abbildung 2.6: Drehung um lokale X-Achse. Axis ist und eine Rotation um diese Achse eine Drehbewegung darstellt. Die Rotation um die Y-Achse stellt eine Seitwärtsbewegung und die Rotation um die Z-Achse eine Auf- Abbewegung dar [18]. Welche Ausrichtung der Joints man nun wählt, entscheidet sich dadurch, wie sich das fertige Rig verhalten sollte. Abbildung 2.5 zeigt, einen Arm bei dem die Twisting Axis der X- Achse im Weltkoordinatensystem entspricht. Bei einer Animation mittels des FK-Controllers für die Schulter und Rotation um die X-Achse wird der Arm um diese Achse gedreht. Abbildung 2.6 zeigt ein Rig, bei dem die lokale X-Achse nach dem Joint für den Ellbogen ausgerichtet ist. Bei einer entsprechenden FK Animation der Schulter wird um diese Achse rotiert. Welche Art der Ausrichtung nun gewählt wird, beeinflusst natürlich auch die Animation des Charakters bei einer Rotation um die anderen Achsen.
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 9 Rotation um lokale Z-Achse Rotation um lokale Z-Achse (a) (b) Abbildung 2.7: Beispiel für ein Joint Setup der Hände, Daumen zeigt nach vorne (a), Daumen zeigt nach oben (b). Wichtig ist bei dieser Art der Ausrichtung, dass die lokale Achse des Con- trollers, nach dem Joint der von diesem kontrolliert wird, ausgerichtet wird. Vergleiche dazu den Abschnitt 2.4.3. Soll für die Animation der Finger um eine bestimmte Achse rotiert wer- den, zum Beispiel um die Z-Achse, so gilt zu beachten das je nach Ausrich- tung der Hand auch die Joints der Finger ausgerichtet werden müssen. In Abbildung 2.7 (a) zeigt der Daumen nach vorne das heißt im Weltkoordina- tensystem in Z-Richtung. Die lokale Z-Achse der Joints für die Finger zeigt hier ebenfalls nach vorne. In Abbildung 2.7 (b) zeigt der Daumen nach oben als auch die lokale Z-Achse der Joints für die Finger. 2.3.3 Positionierung der Joints Um eine optimale Kontrolle der Ellbogen mittels eines Pole Vector Cons- traints zu erreichen, sollte der Joint für den Ellbogen so positioniert werden, dass sich dieser in der XY-Ansicht auf einer Linie mit den Joints für Oberarm und Handgelenk befindet (siehe Abb. 2.8 (a)). Weiters sollte der Joint für den Ellbogen in Z-Richtung leicht nach hinten versetzt werden (siehe Abb. 2.8 (b)). Dasselbe gilt natürlich auch für das Setup der Beine. Die Joints für den Oberschenkel, Knie und Fußgelenk befinden sich in XY-Ansicht auf einer Linie. In Z-Richtung wird das Knie leicht nach vorne verschoben. Die Joints für die Wirbelsäule den Hals und Kopf sollten sich auf der Y-Achse befinden, um die Arme und Beine später entlang der YZ-Ebene spiegeln zu können. Um ein gut funktionierendes Reverse Foot Rig erstellen zu können, sollten die Joints für die Zehen und den Fußballen in der Seitenansicht parallel zur Z-Achse verlaufen. In der Topansicht sollten die Joints für das Fußgelenk, den Fußballen und den Zehen ebenfalls parallel zur Z-Achse verlaufen. Dies wird in Abbildung 2.9 dargestellt.
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 10 (a) (b) Abbildung 2.8: : Joint Setup für Arme. Sicht von vorne (a), Sicht von oben (b) Ankle Ankle Toe Ball Ball Toe (a) (b) Abbildung 2.9: Beispiel für ein Joint Setup der Füße, Seitenansicht (a), Topansicht (b). 2.3.4 Spiegeln der Joints Soll ein Skelett für einen symmetrischen Charakter erzeugt werden, so las- sen sich die Joints für die Arme, Hände, Beine und Füße auf einfache Weise spiegeln. Im Normalfall sollten dabei die gespiegelten Joints die gegensätzli- che Ausrichtung als ihr Original haben. Die lokalen Rotationsachsen welche parallel zur Spiegelungsebene, in Abbildung 2.10 ist dies die YZ-Ebene, lie- gen werden bei der gespiegelten Joint-Kette invertiert. Dies ist in Abbildung 2.10 (a) der Fall. Bleibt die Ausrichtung der gespiegelten Joints gleich, so
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 11 (a) (b) Abbildung 2.10: gespiegelte Joints, mittels Behavior (a), mittels Orienta- tion (b). verändern sich auch nicht deren lokale Rotationsachsen (siehe Abb. 2.10 (b)). Wird wie in Abbildung 2.10 (a) gespiegelt, so können Animationen der Original-Joints auf die gespiegelten Joints kopiert werden. Dies ist vor allem nützlich für Charaktere in Computerspiele, da diese eine Menge sym- metrischer und zyklischer Animationen aufweisen (Gehen, Schleichen und Laufen) [18]. 2.4 Anforderungen an die Rig-Generierung Ist das Skelett bzw. ein Teilskelett erstellt, so kann man daran gehen das erforderliche Rig zu erstellen. Um neben Forward Kinematik auch Inver- se Kinematik verwenden zu können müssen einzelne Joint-Ketten mit IK Handles versehen werden. Um den Charakter nicht direkt mittels Joints und IK-Handles animieren zu müssen, werden sogenannte Kontrollobjekte ver- wendet. Unter einem Rig versteht man das Zusammenspiel aller Joints, IK Handles, Gruppen, Nodes und Kontrollobjekte in einer einzigen Hierarchie. In dieser Hierarchie sind all diese Objekte zu einem logischen einfach zu be- nützenden Setup zusammengefasst [22]. Die Elemente des Rigs sollten dabei in drei Gruppen organisiert werden: • Gruppe für das Mesh bzw. wenn erforderlich der unterschiedlichen De- tailierungsgrade der Geometrie zum Beispiel Low-Res, Medium-Res, High-Res. • Gruppe für die Joints und deren Constraints. • Gruppe für die Kontrollobjekte, IK-Handles und sonstigen Nodes. Um die Verwendung des Charakters in einer anderen Szene zu erleich- tern und übersichtlicher zu gestalten, können diese drei Gruppen zu einer einzelnen Gruppe zusammengefasst werden.
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 12 2.4.1 Forward Kinematik Wurde ein Skelett erstellt, so lässt sich dieses standardmäßig mittels For- ward Kinematik animieren. Die Joints werden dabei vom obersten Element bis zum untersten Element einer Hierarchie animiert. Wenn man zum Bei- spiel den Joint für den Ellbogen rotiert wird dementsprechend auch die Hand mitrotiert. Bei Verwendung der Forward Kinematik lassen sich mit Ausnah- me des Beckens (der Root-Joint kann auch transliert werden) die einzelnen Körperteile mittels Rotation der Joints animieren. 2.4.2 Inverse Kinematik Soll ein Charakter nach einem bestimmten Gegenstand greifen, so wird man feststellen, dass dies mittels Forward Kinematik etwas umständlich zu rea- lisieren ist. Man müsste zuerst die Schultern, dann den Ellbogen, dann das Handgelenk und schließlich die Finger rotieren, um nach den Gegenstand zu greifen. Die Hierarchie wird praktisch vom Anfang bis zum Ende durchwan- dert. Es gibt keine Möglichkeit die Hand am Gegenstand zu platzieren, da der Arm dieser nicht folgt [21]. Die Lösung dieses Problems stellt die Inverse Kinematik dar. Bei die- ser ist der gewünschte Endpunkt der Bewegung bekannt. Die Winkelstel- lungen der einzelnen Joints werden berechnet [24, S. 192–203]. Eine IK- Animation wird durch ein IK-Steuerelement (IK-Handle bzw. Endeffector ) kontrolliert (siehe Abb. 2.11). Im Gegensatz zur Forward Kinematik wer- den bei der Inverse Kinematik ausschließlich Translationswerte für das IK- Steuerelement herangezogen. In Autodesk Maya gibt es 3 verschiedene Arten von IK-Handles: • Rotate Plane (RP) IK Solver – ermöglicht dem Animator die Ausrich- tung der Joints innerhalb des Solvers. • Single Chain (SC) IK Solver – ermöglicht keine Ausrichtung der Joints. • Spline IK Solver – die Ausrichtung der Joints wird durch eine Nurbs Kurve kontrolliert. Diese Art von IK Solvern eignet sich für die Ani- mation von Tentakeln, Antennen, Wirbelsäulen, Schlangen etc. Welche Animationstechnik verwendet wird hängt von den Anforderungen an die Animation bzw. vom jeweiligen Körperteil, welches animiert werden soll, ab. Forward Kinematik wird meist für den Oberkörper benutzt. Die Wir- belsäule, Schultern und Arme können mittels Forward Kinematik animiert werden. Steht ein Charakter bzw. gestikuliert dieser mit seinen Händen so lässt sich dies mittels Forward Kinematik realisieren. Soll ein Charakter je- doch seinen Hut anheben bzw. werfen, einen anderen Charakter berühren oder einfach mit einem anderen Gegenstand interagieren, wird Inverse Kine- matik benötigt. Vor allem die Arme sind daher auch mit Inverse Kinematik
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 13 Root Knee Joint Bone Effector Abbildung 2.11: Rotate Plane IK Solver. auszustatten. Die Wirbelsäule mittels Inverse Kinematik bzw. eines Spline IK Solvers zu realisieren macht zwecks Vereinfachung bei der Animation durchaus Sinn. Für die Beine und Füße wird Inverse Kinematik am häufigs- ten verwendet. Inverse Kinematik ist ideal um einen Walkcycle zu realisieren bzw. um einen Charakter am Boden fortzubewegen. Soll ein Charakter je- doch schwimmen, so wird man eher Forward Kinematik für Arme und Beine verwenden [21]. Dies verdeutlicht, das es für ein gutes Character Setup un- erlässlich ist ein IK/FK Switching für Arme und Beine zur Verfügung zu stellen (siehe Abschnitt 2.4.4). 2.4.3 Kontrollobjekte Abbildung 2.12 zeigt ein Rig mit den dazugehörenden Kontrollobjekten. Meist werden für diese Kontrollobjekte Nurbs Kurven verwendet, da diese nicht gerendert werden und sich auch einfach wegschalten lassen. Es ist auch üblich die Controller für die linke Seite blau und die rechte Seite rot zu fär- ben. Somit sieht der Animator, unabhängig von der Kameraposition, sofort welche Seite des Charakters er gerade bearbeitet [18]. Die Controller für die mittleren Körperbereiche sind meist gelb oder weiß. Es ist eine gute Technik die Shapes eines Kontrollobjekts so zu erstellen, dass sie dem zu kontrollie- renden Körperteil ähneln. So kann zum Beispiel der Controller für die Füße die Form eines Fußabdrucks besitzen. Die Hauptaufgabe der Kontrollobjekte ist es eben die Kontrolle des Rigs zu vereinfachen. Im Grunde gibt es drei verschiedene Arten, wie ein Kontrollobjekt ein Rig beeinflussen kann: • Ausrichtung eines Joints: Diese Art wird hauptsächlich für FK Con- troller verwendet und wird mittels Orient Constraints realisiert. Für einen FK Controller ist wichtig, dass die lokale Rotationsachse des Kon-
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 14 Abbildung 2.12: Rig mit Kontrollobjekten. trollobjekts nach der lokalen Rotationsachse des zu steuernden Joints ausgerichtet ist. Wie dies bewerkstelligt werden kann, ist in [18] auf Seite 10 beschrieben. • Positionierung eines Joints oder IK Handles: Wird verwendet zur Kon- trolle des Root Joints und für IK-Handles der Arme und Beine. Dies wird realisiert mittels Point oder Parent Constraining der Joints oder IK-Handels auf die Controller. • Steuerung mittels eines benutzerdefinierten Attributs: Mittels diesen Attributs wird ein komplexer Bewegungsablauf kontrolliert. Beispiele sind das Ballen der Finger zu einer Faust oder die Abrollbewegung der Füße. Realisiert wird dies mittels Expressions [32] oder Set Driven Keys [5]. Eine Beschreibung der einzelnen Animationsbeschränkungen (Constraints) findet sich in [5]. Nicht benötigte Attribute eines Kontrollobjekts sollten der Klarheit wegen und um Probleme zu vermeiden nicht angezeigt werden. 2.4.4 IK/FK Switch Wie in Abschnitt 2.4.3 erwähnt ist es für ein gutes Character Setup nö- tig auf jeden Fall für die Arme ein IK/FK Blending zu realisieren. Für die Beine kann sich dies durchaus auch als nützlich erweisen. Manche Setups ge- hen sogar soweit, dass ein IK/FK Blending für die Wirbelsäule möglich ist. Der „klassische“ IK/FK Switch besteht aus drei Joint-Ketten. An die erste Kette wird die Geometrie des Charakters gebunden. Die zweite Kette ist für das Forward Kinematik Blending zuständig und die dritte wird mittels ei- nes IK-Handles kontrolliert. Die Mesh Joint-Kette wird dabei mittels Orient Constraints an die IK und FK Kette gebunden. Das Blending zwischen IK und FK wird durch die Gewichtung dieser Orient Constraints realisiert. Die Vorgehensweise zur Erstellung des „klassischen“ IK/FK Switch kann in [18] auf Seite 16 ff. nachgelesen werden.
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 15 Gruppe_Par Gruppe_Rot FK Jointkette Ellbogen_FK_Ctrl Ellbogen_Fk_Jnt Mesh Jointkette Schulter_Fk_Jnt IK Jointkette Abbildung 2.13: IK/FK Blending mittels drei Joint-Ketten. Tabelle 2.1: Constraints eines FK Kontrollobjektes. Ellbogen_FK_Ctrl Ellbogen_FK_Jnt Schulter_FK_Jnt Gruppe_Par ParentConstraint Gruppe_Rot PointConstraint Ellbogen_FK_Jnt OrientConstraint Ist das FK Kontrollobjekt nach der lokalen Rotationsachse des zu steu- ernden Joints ausgerichtet worden, so befindet sich dieses in einer Gruppe (Gruppe_Rot – siehe dazu Abschnitt 2.4.3). Um sich bei FK Bewegun- gen mitzubewegen, wird Gruppe_Rot mittels eines Point Constraints an den Joint des Ellbogens der FK Kette gebunden. Umgekehrt steuert das FK Kon- trollobjekt Rotationen des Joints mittels eines Orient Constraints. Damit der Ellbogen Bewegungen der Schulter mitmacht, muss dieser noch hierarchisch der Schulter untergeordnet werden. Dies wird realisiert indem Gruppe_Rot nochmals gruppiert wird (Gruppe_Par). (Gruppe_Par) wird nun mittels ei- nes Parent Constraints an den Joint für die Schulter gebunden. Diese Vorge- hensweise für Schulter (Parent) und Ellbogen (Child) kann auch auf andere FK Elemente angewendet werden. Mittels Set Driven Keys oder Expressions sollte zwecks besserer Übersichtlichkeit die Sichtbarkeit der Kontrollobjekte durch das IK_FK Blend Attribut gesteuert werden (siehe Abbildung 2.13). Tabelle 2.1 zeigt welche Elemente durch Constraints verbunden sind. Dies kann so verstanden werden, das die Elemente der linken Spalte Anima- tionsbeschränkungen (Constraints) auf die Elemente der ersten Zeile erhal- ten.
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 16 Abbildung 2.14: klassischer vs. automatischer IK/FK Switch. Seit Autodesk Maya Version 5.0 sind IK Handles mit einem Attribut IK Blend ausgestattet, welches ein automatisches IK/FK Blending ermög- licht. Unglücklicherweise kommt es bei dessen Verwendung immer wieder zu ungewünschten Effekten bzw. Rotationen. Daher scheint es sinnvoll, den Mehraufwand zur Generierung eines klassischen IK/FK Switchs in Kauf zu nehmen, um sich bei der Animation des Charakters viel Ärger zu ersparen. Abbildung 2.14 zeigt ein IK/FK Blending des linken Fußes dreier Charak- tere. Nur der mittlere Charakter ist mit dem „klassischen“ IK/FK Switch ausgestattet. Die beiden anderen Charaktere verwenden den automatischen IK/FK Switch von Autodesk Maya. Der linke Charakter „Animo“ ist dem Walkcycle Tutorial von Digital Tutors entnommen [11]. Die beiden ande- ren Charaktere verwenden das Setup von dRiggingTool, wobei das Setup des rechten Charakters mit einer älteren Version erstellt wurde, welche mit dem automatischen IK/FK Switch ausgestattet ist. Es zeigt sich, dass nur der mittlere Charakter, mit dem klassischen IK/FK Switch, das gewünschte Ergebnis liefert. 2.4.5 Reverse Foot Um das Abrollen der Füße, bzw. generell einen Walkcycle eines Charakters zu animieren, ist es nötig das Setup mit einem Reverse Foot System auszustat- ten. Dabei ist die IK Joint-Kette der Beine bzw. des Fußes um dieses System zu erweitern. Prinzipiell gibt es hier zwei Möglichkeiten der Realisierung. • Reverse Foot System mittels Gruppen: Hierbei erfolgt eine entspre-
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 17 Abbildung 2.15: Reverse Foot System mittels Gruppen. chende Gruppierung der IK-Handles für das Fußgelenk, Ballen und Zehen. Um diverse Bewegungen auszuführen, wird um den Pivot der jeweiligen Gruppe rotiert, welcher entsprechend zu positionieren ist. Eine Beschreibung dieser Vorgehensweise findet sich in [18] Seite 18 folgende. Bei dieser Methode werden keine zusätzlichen Joints benö- tigt. Ein weiterer Vorteil ist, dass eine Auf- Abbewegung der Zehen einfach zu realisieren ist (siehe Abbildung 2.15). Das Setup bei diesem System ist einfacher realisiert, jedoch ist es etwas schwerer zu durch- blicken, als jenes mittels Joints. • Reverse Foot System mittels Joints: Dies ist die klassische Vorgehens- weise. Es wird eine zusätzliche Joint-Kette bestehend aus 4 Joints er- zeugt (siehe Abbildung 2.16). Die Hierarchie ist dabei RLBase_Jnt > RLToe_Jnt > RLBall_Jnt > RLAnkle_Jnt. Die IK-Handles der IK Joint-Kette AnkleIK, BallIK, ToeIK werden dabei dem entprechenden Joint der Reverse Foot Joint-Kette untergeordnet. RLBase_Jnt wird anschließend dem IK Kontrollobjekt untergeordnet. Wichtig ist, dass dieser Joint dort positioniert wird, wo sich die Ferse des Charakters befindet bzw. der Absatz des Schuhs den Boden berührt. 2.4.6 No-Flip Knee Mit dieser Technik wird es dem Animator ermöglicht den Fuß zu animie- ren, ohne das Kontrollobjekt mitanimieren zu müssen, um ein „Flipping“ des Knies zu verhindern. Um das Kontrollobjekt für das Knie bzw. Ellbogen optimal zu positionieren erstellt man für dieses einen Point Constraint auf die Joints für den Oberschenkel, Knie und das Fußgelenk. Dadurch wird das Kontrollobjekt genau im Zentrum der Ebene, welche diese drei Joints be-
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 18 AnkleIK RLAnkle_Jnt BallIK ToeIK RLBase_Jnt RLToe_Jnt RLBall_Jnt Abbildung 2.16: Reverse Foot System mittels Joints. schreiben, positioniert. Um das Kontrollobjekt nach dieser Ebene auszurich- ten, erstellt man einen Aim Constraint auf den Joint für das Knie. Dadurch erreicht man, dass die lokale X-Achse des Kontrollobjekts genau in Richtung Knie zeigt. Die Constraints können nun gelöscht und das Kontrollobjekt ent- lang seiner lokalen X-Achse entsprechend positioniert werden. Anschließend läßt sich für dieses Kontrollobjekt ein Pole Vector Constraint erstellen [29]. Bei einem No-Flip Knee wird dieses Kontrollobjekt für das Knie automatisch mitanimiert bzw. zeigt in die Richtung des Fußes. Bei Bedarf kann auch ein Offset eingegeben werden. Zur Realisierung gibt es zwei Möglichkeiten: • Realisierung mittels eines Plus Minus Average Utility Nodes: Eine Be- schreibung dessen findet sich in [18] Seite 13 folgende. Hierbei erspart man sich ein Kontrollobjekt für das Knie zu erstellen. Man ist jedoch dann nicht so flexibel in der Animation des Charakters. • Realisierung mittels Constraints und eines Kontrollobjektes: Hierbei wird das Kontrollobjekt gruppiert und der Pivot dieser Gruppe (Knee_ CtrlGrp) auf den RLBase_Jnt positioniert. Anschließend wird mittels eines Point Constraints diese Knee_CtrlGrp an RLBase_Jnt gebun- den. Somit verfolgt das Knie Kontrollobjekt Bewegungen des Fußes. Soll das Knie automatisch in dieselbe Richtung wie der Fuß zeigen, so muss die Knee_CtrlGrp zusätzlich mittels eines Orient Constraints an RLBase_Jnt gebunden werden. Dieser Orient Constraint ist mit einem Offset zu generieren. Für ein flexibles Setup sollten diese beiden Cons- traints natürlich mittels entsprechend benutzerdefinierten Attributen des Knie Kontrollobjektes aktiviert und deaktiviert werden können. Um die Position des Knies zum Fuß variiren zu können, kann auch ein Attribut zur Veränderung des Offsets des Orient Constraints erstellt
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 19 werden. 2.4.7 Auto-Forearm Twist Zur Simulation der Drehbewegung des Unterarms und um eine realistische Verformung der Geometrie zu erhalten, sollte das Setup eines Charakters mit einem Auto-Forearm Twist ausgestattet sein. Die Erzeugung eines sol- chen Setups wird in [18] Seite 21 folgende erklärt. Die Drehbewegung des Unterarms kann dabei auch mittels einer Expression angepasst werden. Zum Beispiel foreArm_Jnt.rotateX = wristControl.rotateX * 0.3 bedeutet, dass sich der Unterarm ein Drittel weniger dreht als das Hand- gelenk, was ein realistisches Verhalten darstellt. Bei Charakteren mit langen bzw. sehr großen Unterarmen können auch mehrere Split-Joints verwendet werden. Dabei soll das Setup für die Drehbewegung so erstellt werden, dass diese zum Ellbogen hin weniger wird. Bei einem Setup mit klassischem IK/FK Switch wird die Joint-Kette der Geometrie mit einem Split-Joint bzw. einem Auto-Forearm Twist ausge- stattet . Die IK Joint-Kette bleibt unverändert. Das heißt, dass somit keine Änderung der Positionen der Pivots des Effektors und IK-Handles nötig sind. 2.4.8 Wirbelsäule mittels IK Spline Handle Um Bewegungen der menschlichen Wirbelsäule zu animieren verwendet man in einem Character Setup für einen 3D Charakter normalerweise IK Spline Handles. Hierbei werden die Rotationen der vom IK Spline Handle umschlos- senen Joints mittels Control Vertices einer Kurve gesteuert. Diese Vertices können dann wiederum mittels Cluster durch Kontrollobjekte gesteuert wer- den. Abbildung 2.17 zeigt ein Setup für eine Wirbelsäule. Hierbei handelt es sich um ein relativ einfaches IK Setup für die Wirbelsäule [10]. Ein etwas komplexeres Setup für den Oberkörper unter Verwendung von Forward und Inverse Kinematik findet sich in [22] auf Seite 97 folgende (sie- he Abbildung 2.18). Hier ermöglicht eine zusätzliche FK Joint-Kette die Steuerung des Oberkörpers mittels Forward Kinematik. Durch ein benutzer- definiertes Attribut können mehrere FK Joints gesteuert werden und so ein realistisches nach vorne Beugen bzw. seitwärts Beugen des Körpers ermögli- chen. Die Controller der IK Kinematik sind durch Parent Constraints an die Joints der FK Kinematik gebunden. Die Verformung der Geometrie wird bei diesem Setup nach wie vor von den IK Joints der Wirbelsäule beeinflusst. 2.4.9 Squash and Stretch Zur Verwirklichung des Animationsprinzips Squash and Stretch in einem 3D Charakter, muss dieser mit einem entsprechenden Setup ausgestattet sein.
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 20 End Effector Nurbs Curve Cluster Control Objects Start Joint Abbildung 2.17: einfaches IK Setup für die Wirbelsäule. IK Joints FK Joints Abbildung 2.18: komplexes IK/FK Setup für die Wirbelsäule. Dieses Setup kann mittels Expressions oder Utility Nodes realisiert werden. Dabei ist die Realisierung mittels Utility Nodes zu bevorzugen, da diese Lö- sung in den Dependency Graph integriert ist und so die bessere Performance besitzt. Die Erstellung eines solchen Setups für einen Rotate Plane oder Sin- gle Chain IK Handle erfordert folgende Schritte [18]: • Ermittlung der Start- und End-Joints der IK Joint-Kette. • Berechnung der ursprünglichen Länge der Joint-Kette. • Erstellung zweier Group Nodes welche jeweils durch Point Constraints an den Start-Joint und den IK Handle gebunden werden. Diese beiden Nodes repräsentieren die Anfangs- und Endpunkt der IK Joint-Kette. • Die aktuelle Distanz zwischen diesen beiden Group Nodes wird mittels
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 21 Programm 2.1: Beispiel für die Erzeugung eines Curve Info Nodes. 1 import maya.cmds as cmds 2 curveInfoNode = cmds.arclen('curveName', ch=True) eines DistanceBetween Nodes ermittelt. • Mittels eines Condition Nodes wird ermittelt ob die aktuelle Distanz die ursprüngliche Länge der Joint-Kette übersteigt. Ist dies der Fall, so wird die Kette gedehnt. Der Faktor um den die Joint-Kette gedehnt werden soll beträgt aktuelle Distanz/ursprüngliche Länge der Joint- Kette. Dieser wird mittels eines Multiply Divide Nodes errechnet. • Die Joints der Joint-Kette werden nun um diesen Faktor in die ent- sprechende Richtung skaliert. Dabei ist es wichtig, dass die lokalen Rotationsachsen der Joints ausgerichtet sind. Je nachdem in welche Richtung die Joints ausgerichtet sind wird skaliert. Um einen Spline IK Handle zu stretchen ist lediglich ein CurveInfo Node für die Nurbs Kurve des Spline IK Handles erforderlich. Dieser kann mittels folgenden Python Befehls erstellt werden. Erfolgt nun eine Translation der Kontrollobjekte welche mit den Clustern und CVs der IK Spline Kurve verbunden sind, so verändert die Kurve ihre Länge. Die Länge der Kurve erhält man durch das Attribut curveInfoNo- de.arcLength. Mittels eines Multiply Divide Nodes kann nun der Skalierungs- faktor jedes Joints des IK Spline Handles ermittelt werden. Wichtig ist dabei natürlich wieder eine Ausrichtung der lokalen Rotationsachsen der Joints. 2.4.10 Flexibilität im Rigging-Prozess Generell lässt sich sagen, dass für spezielle Animationsanforderungen oft spe- zielle Rigs notwendig sind. So musste für den Animationsfilm „Madagascar“ von PDI/Dreamworks ein Rig ohne anatomische Abhängigkeiten erstellt wer- den. Dadurch war es möglich einzelne Gliedmaßen separat vom Rest des Körpers zu animieren [27]. Oft ist es auch nötig für eine Figur mehrere Rigs zu erstellen. Für Elastigirl im Pixar Film „Die Unglaublichen“ wurden ein normales Skelett-Rig und ein „Snake“ Rig erstellt, mit dem sie ihren Arm dehnen und wie eine Schlange um Objekte wickeln kann [28]. Diese Ansprü- che lassen sich mittels Standardrigs beziehungsweise automatisch erstellten Rigs oft nicht bzw. nur schwer erfüllen. Dennoch können Standardrigs eine Ausgangsbasis für eine Reihe von Anwendungsfällen darstellen. Dazu ist es wichtig, dass die grundlegenden Anforderungen an den Rigging-Prozess er- füllt sind und das Rig keine Fehler aufweist. Auch sollte großer Wert auf eine klare Namensgebung und Hierarchie gelegt werden. Dies erleichtert die
2. Anforderungen bei der Erstellung eines humanoiden 3D Character-Rigs 22 Erweiterbarkeit um spezielle Anforderungen. Um Probleme mit dem Rig zu vermeiden, sollten bei den Kontrollobjekten nicht benötigte Attribute aus- geschaltet werden. Einige Flexibilitätsmerkmale für Rigging-Tools sind: • Rig für Zweibeiner, Vierbeiner, geflügelte Charaktere etc. erstellbar. • Möglichkeit asymmetrische Modelle zu riggen bzw. ein Skelett dafür zu erstellen. • Einfache und rasche Vorgehensweise beim Anpassen des Rigs an das Mesh. • Einstellungsmöglichkeiten für die lokale Rotationsachse der Joints. • Variable Anzahl von Joints für die Wirbelsäule, den Nacken und Un- terarm. • Möglichkeit nur Teile des Körpers zu riggen. • Auswahlmöglichkeit unterschiedlicher Setups. Zum Beispiel Reverse Foot mittels Gruppen oder Joints, Footroll oder Raise Ball, Raise Toe, Raise Heel. • Forward und Inverse Kinematik für Arme, Beine und Torso. • Squash and Stretch für Arme, Beine und Torso. • Die Fähigkeit im Charaktererstellungsprozess wieder eine Schritt zu- rück zu gehen. • Die Möglichkeit erstellte Zwischenstände zu speichern. • Unterstützung bei der Erstellung gängiger Accessoires wie Zehen, Flü- gel, Tentakel, Schwanz, zusätzliche Objekte wie Waffen und Werkzeuge etc.. • Unterstützung beim Rigging des Gesichts.
Kapitel 3 Aktuelle Lösungen 3.1 Allgemeines Im folgenden Kapitel sollen einige Rigging-Tools für Autodesk Maya vorge- stellt und miteinander verglichen werden. Diese Tools stellen unterschiedliche Lösungsansätze zur automatischen Erstellung eines 3D Charakter Setups für einen Zweibeiner dar und können allesamt kostenlos von www.highend3d.com heruntergeladen werden. Weitere Auswahlkriterien waren Aktualität (letzte Version nicht älter als aus 2006) und Anzahl der Downloads (mindestens 10.000). Die einzelnen Tools sind in ihrer Funktionsweise relativ unterschied- lich. Dabei erfolgt ein Vergleich hinsichtlich Workflow des Tools und hinsicht- lich der zur Verfügung gestellten Funktionen und erfüllten Anforderungen für ein Character Setup. Diese Funktionen und Anforderungen werden wiederum in die Kategorien Installation, Skelett, Rig und Animation unterteilt (siehe Tabelle 5.1). 3.2 createFBIK_skeleton Aktuelle Version: V1.6.3 Skriptsprache: Mel Downloads per 07.07.2008: 10.597 Autor: mononoke Dieses Tool (siehe Abbildung 3.1) ermöglicht rasch und einfach ein Skelett für einen zwei oder vierbeinigen Charakter zu erstellen. Das Skript lässt sich sehr einfach installieren, indem man das File createFBIK_skeleton.mel in den Autodesk Maya Skriptordner kopiert ../maya/skripts. Gestartet wird das Programm dann mit dem Befehl source createFBIK_skeleton. Das Pro- gramm muss mittels des Source-Befehls gestartet werden, da die Prozedur (proc createFBIK_Skeleton()) im Sourcecode nicht mit dem Zusatz global (global proc createFBIK_Skeleton()) versehen ist. 23
3. Aktuelle Lösungen 24 Abbildung 3.1: createFBIK_skeleton 3.2.1 Workflow Als erstes wählt man aus ob man einen Zweibeiner oder Vierbeiner erstellen möchte. Hat man einen Vierbeiner gewählt so, lässt sich noch spezifizieren, ob dieser Finger oder Hufen hat. Auch kann eine abgespeicherte Template- Curve geladen werden. In einem nächsten Schritt, falls nicht Quadruped/Hoof gewählt wurde, lassen sich die Anzahl der Finger und Zehen wählen bzw. ob diese einen Daumen besitzen. Anschließend kann die TemplateCurve erstellt werden, welche an das Mesh anzupassen ist. Mittels eines Mirror Buttons wird ermöglicht Teile der TemplateCurve von links nach rechts oder um- gekehrt zu spiegeln. Abschließend kann man noch auswählen, ob man Roll Joints (Split Joints) an Armen und Beinen haben möchte und ob ein Prefix bei der Namensgebung hinzugefügt werden soll. Das nun erstellte Skelett ist einfach und ohne Probleme für Autodesk Maya Full Body IK und Motion- Builder verwendbar, da die Naming Conventions eingehalten wurden (siehe Abschnitt 2.3.1). Es lässt sich mit Hilfe dieses Tools sehr rasch und einfach ein Skelett er- stellen(siehe Abbildung 3.2). Auch ist man in der Generierung sehr flexibel, da eine Reihe von Auswahlmöglichkeiten zur Verfügung steht, wie zum Bei- spiel: Zweibeiner, Vierbeiner, Fingeranzahl, Zehenanzahl, Hufen, Roll Joints. Ein weiterer Vorteil besteht darin, dass sich auch asymmetrische Charaktere erstellen lassen. Die erstellten TemplateCurves lassen sich abspeichern und wieder laden. Im Vergleich zu dRiggingTool beinhaltet dieses Tool im Be- reich der Skelettgenerierung sicher mehr Flexibilität. Jedoch handelt es sich hierbei um ein reines Tool zur Skeletterzeugung. Die Generierung eines Rigs wird nicht geboten.
3. Aktuelle Lösungen 25 Abbildung 3.2: mittels createFBIK_Skeleton erstellte Skelette. Abbildung 3.3: Rig-o-matic 3.3 Rig-o-matic Aktuelle Version: V4.2.0 Skriptsprache: Mel Downloads per 07.07.2008: 12.066 Autor: Jason Baskin Dieses Tool ermöglicht es, ein Rig für ein vorher erstelltes Skelett eines Zwei- beiners zu erstellen (siehe Abbildung 3.3). Die Installation geschieht indem das Skript rigomatic.mel in den Skriptordner kopiert wird. Gestartet wird das Programm, indem rigomatic in die Autodesk Maya Mel Command Line eingegeben wird.
3. Aktuelle Lösungen 26 Abbildung 3.4: Auswahl der Leg Joints. 3.3.1 Workflow In einem ersten Schritt ist ein Skelett selbst bzw. mit einem anderen Tool zu erstellen, wobei ein Beispielskelett heruntergeladen werden kann. Dieses Skelett besteht nur aus der linken Seite. Zur Generierung des Rigs müssen dann die jeweiligen Joints des Teilrigs selektiert werden (siehe Abbildung 3.4). Dies erfolgt am Besten im Hypergraph: Hierarchy Window. Wahlweise kann auch noch ein Name als Prefix eingegeben werden bzw. lässt sich auch automatisch ein Character Set erstellen. Der Hauptnachteil bei diesem Tool liegt darin, dass die Skelettgenerie- rung nicht unterstützt wird. Die Joints müssen natürlich in ihrer Anzahl, Aufbau und Orientierung gewissen Anforderungen entsprechen. Dies zu er- füllen ist Aufgabe des Benutzers und wird nicht vom Tool übernommen. Das Rig ermöglicht stretchy IK und FK Arme und Beine sowie einen stretchy Torso. Es besteht die Möglichkeit einen IK oder FK Schwanz zu riggen und auch ein Controller für die Augen wird zur Verfügung gestellt. 3.4 abAutoRig Aktuelle Version: V2.2.3 Skriptsprache: Mel Downloads per 07.07.2008: 11.990 Autor: Brendan Ross Mit Hilfe dieses Tools (siehe Abbildung 3.5) kann der Benutzer schnell und einfach ein Skelett und Rig für einen zweibeinigen Charakter erzeugen. Zur Installation muss das File abAutoRig.mel in das Skriptverzeichnis kopiert werden und kann dann einfach aufgerufen werden. Zusätzlich stehen auch
3. Aktuelle Lösungen 27 Abbildung 3.5: abAutoRig Icons zur Installation zur Verfügung. Dieses Tool wurde für dRiggingTool als Framework verwendet, wobei ein eigenes Rig und Interface erstellt wurde. 3.4.1 Workflow Am Beginn des Workflows ist der Name für den Charakter einzugeben. Dieser wird dann als Prefix für die Namensgebung verwendet. Nun kann daran gegangen werden ein Skelett zu erstellen. In einem ersten Schritt wird die Fingeranzahl eingegeben und ein Proxy erstellt(siehe Abbildung 3.6). Das Proxy Skelett ist an das Mesh anzupassen, wobei die rechte Seite gespiegelt wird. Es besteht auch die Möglichkeit die- ses abzuspeichern. Bevor man das Skelett erzeugt, kann man noch ein oder zwei Split Joints für die Oberschenkel bzw. Ober- und Unterarme eingeben. Ist das Skelett erstellt, so lassen sich einzelne Teilrigs für Spine, Head/Neck, Legs/Feet, Arms und Hands erstellen. Das Rig verfügt über alle Anforderun- gen, die man an ein Standardrig stellt zuzüglich stretchy IK und FK Arme und Beine und einen stretchy Torso. Weiters verfügt diese Applikation über eine Reihe weiterer Tools wie zum Beispiel • einem Wire Replacer mit dem sich die Control Curves anpassen lassen; • einem Rig Remover mit dem sich Teile des Rigs wieder entfernen lassen; • ein Joint Orient Rotation Tool mit dem sich die Orientierung der Joints im Nachhinein noch ändern lässt; • Stretchy Spline from Curve, ermöglicht eine dehnbare IK Spline Joint- Kette zu erzeugen;
3. Aktuelle Lösungen 28 Abbildung 3.6: Proxy mit abSkeletonMaker. • Funktion, um den Charakter bzw. die ausgewählte Control Curve wie- der in die Ausgangsposition zurückzubewegen. Die Nachteile dieses Tools bestehen darin, dass keine Möglichkeit besteht automatisch ein Character Set zu erzeugen und auch das Skin Binding an die IK Spline Joints erfolgt nicht automatisch, indem man das Mesh und den Root Joint des Skeletts selektiert und so das Mesh and das Skelett aneinander bindet. 3.5 Advanced Skeleton Aktuelle Version: V2.0.0 Skriptsprache: Mel Downloads per 07.07.2008: 80.634 Autor: Oyvind Nostdal Bei Advanced Skeleton handelt es sich um das umfangreichste der dargestell- ten Tools (siehe Abbildung 3.7). Advanced Skeleton ist eine Sammlung von Tools für ein komplettes Character Setup. Die Installation erfolgt über ein eigenes Setup Programm. Man bekommt ein eigenes Shelf Tab, in welchem dann die Icons für die einzelnen Tools für das Character Setup enthalten sind. 3.5.1 Workflow Advanced Skeleton besteht aus folgenden Tools: • Fit Tool: Erzeugt ein FitSkeleton für zwei oder vierbeinige Charaktere es können auch abgespeicherte FitSkeletons hinzugefügt werden. Die-
Sie können auch lesen