Morphing

Innerhalb der Gesichtsanimation ist das Morphing, also die Verwandlung des Zustandes eines Objekts (Original) in einen anderen, das so genannte Morph-Target, unumgänglich. Reglementiert wird diese Technik einzig durch die Vorgabe, dass nur die Anordnung der Vertices verändert werden darf, also deren Anzahl gleich bleiben muss. Das Modell darf zusätzlich auch nicht durch Entfernen und wieder Hinzufügen von Geometrie modifiziert werden, selbst dann nicht, wenn die Anzahl der Vertices am Ende gleich ist. Da wir uns bereits ausgiebig mit Modellierung beschäftigt haben, werde ich auf die Formung der Morph-Targets nicht eingehen.

Üblicherweise wird für die Gesichtsanimation der Kopf vom Körper getrennt, um das Objekt mit dem Morpher-Modifier in einem bearbeitbaren Zustand zu erhalten. Das für den Morpher zu berechnende Modell ist dadurch so klein wie möglich und kann im besten Fall auch in Echtzeit separat animiert werden. Nachteilig ist die dadurch entstehende Naht zwischen Hals und Oberkörper, die bestenfalls durch Kleidung oder andere Elemente verdeckt werden kann. Wie diese Problematik elegant umgangen werden kann, folgt im Anschluss. Von dem Kopf wird dann eine Kopie angefertigt und mit dem jeweiligen Gesichtsausdruck mittels “Vertex Pushing” versehen. Dieser Vorgang wird so lange wiederholt, bis das Spektrum der benötigten Mimik ausgefüllt ist.

Nachdem wir die ersten Morph-Targets mittels abgeänderter Kopien vom Ausgangsobjekt erstellt haben, weisen wir dem Original einen Morpher-Modifier zu und laden die erste Variation über Pick Object From Scene in einen der freien Kanäle. Der Name und ein grüner Balken erscheinen in dem Kanal – das Morph- Target ist jetzt aktiv. Dasselbe wiederholen wir für das zweite Morph-Target.

Über den Spinner können wir jetzt die Morph-Targets auf das Morpher-Objekt anwenden. Siehe Szene “morph_01.max”.

Häufig wiederkehrende Morph-Target-Kombinationen können über die Capture State-Funktion zu einem neuen zusammengefasst und anschließend über Extract extrahiert werden. Hierzu “regeln” wir die jeweiligen Morph- Targets wie gewünscht ein, klicken auf einen leeren Kanal und aktivieren dann Capture State. Ein blauer Balken entsteht vor diesem Kanal als Zeichen dafür, dass hier kein Moprhtarget geladen ist, sondern lediglich Morph- Daten. Danach können wir mit den Morph- Daten im Kanal weiterarbeiten oder diese über Extract in ein Morph-Target umwandeln. Siehe Szene “morph_02.max”.

Das Progressive Morphing ermöglicht die Zusammenstellung einer Abfolge mehrerer Morph-Targets innerhalb eines Kanals. Hierzu laden wir wie gehabt in einen leeren Kanal ein Morph-Target über Pick Object From Scene und laden, ohne den Kanal zu verlassen, das nächste Morph-Target. Wenn wir den Spinner des Kanals jetzt betätigen, wird bei 100 Prozent eine Abfolge, keine Mischung, der geladenen Variationen ablaufen. Siehe Szene “morph_03.max”.

Das Dilemma beim Morphing ist nur zu gut bekannt: Die Basis, also das Objekt, das mit dem Morpher-Modifier belegt wird, muss nach Erstellung diverser Morph-Targets modifiziert werden. An dieser Stelle steigt der Stresspegel des Operators für gewöhnlich, und die Suche nach Lösungen zur Erhaltung der geleisteten Arbeit beginnt. Das Problem liegt darin, dass es keine wirkliche Lösung gibt! Der Versuch, “Backward Compatible Morph-Targets” zu erstellen, welche die an der Basis vorgenommenen Änderungen übernehmen, funktioniert zwar, allerdings nur mit der nicht akzeptablen Einschränkung, dass nicht mehrere Morph- Targets auf gleiche Vertices zugreifen können, ohne dabei das Morphing zu zerstören. Das bedeutet, dass beispielsweise nur ein Morph- Target für den Mundbereich möglich ist. Aus diesem Grunde werde ich diese Technik nicht weiter ausführen.

Morph Materials

Neben Geometrie können auch Materialien über Morphing verändert werden. Wir selektieren das Morpher-Objekt und aktivieren im Global Parameters-Rollout die Funktion Assign New Material. Der Material-Editor wird geöffnet, und wir erstellen als Erstes ein Duplikat vom Material des Morpher-Objekts. Über Pick Material From Object (die grün markierte Pipette) greifen wir das im Modify-Panel zugewiesene neue Material ab – die Morpher Basic Parameters erscheinen im Material-Editor automatisch. Jetzt müssen wir nur noch die Kopie unseres Basismaterials in den “Base Slot” ablegen und dasselbe für die Materialien der jeweiligen Morph-Targets im Channel Material Setup ausführen. Wenn jetzt der Slider für Kanal 1 oder 2 betätigt wird, wird nicht nur dessen Mimik, sondern auch sein Material geladen (dies ist allerdings nur im Rendering sichtbar!). Siehe Szene “morph_03.max”.

Seamless Characters

Wenn ein animierter Kopf als losgelöste Komponente erhalten bleiben soll, aber dennoch keine Naht zu sehen sein darf, kann man durch folgendes Modifier-Konstrukt beiden Ansprüchen gerecht werden. Zunächst einmal habe ich den Körper von Nils mit meinem Kopf kombiniert und die beiden Komponenten durch Weld im Vertex-Level zu einem Objekt gemacht. Siehe Szene “seamless_01.max”. Im Face-Level habe ich dann den Kopf vom Körper mittels Detach getrennt.

Von dem abgetrennten Kopf erstelle ich eine Kopie und forme diese zu einem Morph- Target. Das Original wird danach mit einem Morpher-Modifier versehen und das Morph- Target geladen. Als Nächstes platziere ich über dem Morpher-Modifier einen Edit Mesh- Modifier und mache aus den einzelnen Komponenten über Attach wieder eine Einheit. Anschließend müssen noch die jetzt aufeinander liegenden Vertices von Körper und Kopf mittels Weld verschweißt werden. Über den Edit Mesh-Modifier lege ich dann den Physique- Modifier, und fertig ist die Konstruktion. Wir haben jetzt einen nahtlosen Charakter, dessen Kopf losgelöst vom Körper animierbar ist, ohne dass sich dabei der Morpher-Modifier auf das gesamte Modell auswirkt. Siehe Szene “seamless_02.max”.