Blender Dokumentation: Driven Shape Keys
Diese Seite bezieht sich auf Blender v2.41 |
Ein Driven Shape Key ist die Steuerung des Key Value eines relativen Shape Key durch die Bewegung eines anderen Objektes.
Möchte man relative Shape Keys in Blender animieren, so kann dies leider nicht mit Hilfe von Actions geschehen. Stattdessen benutzt man eine "Hilfskonstruktion", Ipo Drivers. Ein Ipo Driver bedeutet, dass ein durch eine Ipo Kurve kontrollierter Wert durch die Bewegung eines anderen Objektes verändert wird. So kann z.B. die Farbe eines Objektes (die Energie einer Lampe, das Mapping einer Textur, ...) von der Rotation eines anderen Objektes abhängig sein. Genauso kann auch der Key Value - also die Einflussstärke - eines Shapes von der Rotation oder Bewegung eines anderen Objektes abhängig sein.
Das macht vor allem deswegen Sinn, weil man z.B. die Form von Muskeln von der Rotation oder Bewegung der Knochen abhängig machen kann.
Driven Shape Keys sind eine typische Blenderfunktion: zusammengesetzt aus mehreren Elementen, die erst in der richtigen Kombination ihre Mächtigkeit entfalten. In diesem Fall sind das die Vertexanimation mit relativen Shape Keys und die Zusammenstellung von Aktionen im NLA für Armatures. Wir müssen als "Treiber" für die Shape Keys nicht unbedingt Armatures (bzw. Bones) benutzen, aber die Animationsmöglichkeiten mit Posen sind am besten. Die gesamte Funktionalität wird daher eigentlich schon auf anderen Seiten beschrieben, man kommt nur nicht unbedingt von allein auf die Kombination der Elemente.
Beispiel
BearbeitenWir beginnen mit einem einfachen Beispiel, welches aber alle wesentlichen Elemente zeigt.
Das Basis Mesh habe ich aus einer Ebene in Draufsicht (Num7) durch drei Loopcuts (Strg-R) und anschließendes Rippen (V) im Edit Modus erzeugt (Abbildung 1). Nun werden fünf Shapes eingefügt.
Zunächst der Basis Shape durch I->Mesh. Jeweils ausgehend vom Basis Mesh werden dann noch vier weitere Shapes erzeugt. Auf dem Shapes Panel in den Editing Buttons (F9) kann zwischen den Shapes gewechselt werden. Die Shapes werden nun in Form gebracht.
Die fünf Shapes:
- Basis - Die Ausgangsposition, halb geöffneter Mund, Mundwinkel in Mittelstellung zwischen fröhlich (Smile) und traurig.
- Close - Der geschlossene Mund.
- Smile - Beide Mundwinkel nach oben.
- LeftUp - Nur der linke Mundwinkel nach oben.
- RightUp - Nur der rechte Mundwinkel nach oben.
Wir werden gleich sehen, wie aus diesen Positionen auch die entsprechenden entgegengesetzten Position erzeugt werden können.
Nun werden die steuernden (treibenden) Objekte eingefügt. Wir benutzen hier Bones einer Armature. Dabei soll ein Bone zum Öffnen und Schließen des Mundes dienen, ein Bone um die Mundwinkel zu heben und zu senken. Da wir alle drei Raumrichtungen der Bones separat benutzen können, können wir durch Bewegen in vertikale Richtung beide Mundwinkel bewegen, durch Bewegen in horizontale Richtung jeweils nur die eine Seite.
Wieviele Bones Sie benutzen müssen lässt sich nicht pauschal sagen, es hängt davon ab, wie bequem und flexibel Sie die Bedienung gestalten wollen.
Die Armature wird in ZX-Ansicht (Num1) eingefügt. Das hat nur etwas mit der Ansicht der Bones zu tun, die Funktionalität ist davon völlig unabhängig. Sie können die Bones auch auf einem eigenen Layer platzieren, und ein weiteres 3D-Fenster benutzen um die Shapes zu steuern. Sie sollten die Bones allerdings an den globalen Achsen ausrichten, das wird uns später bei der Steuerung helfen. Der linke Bone erhält den Namen "Close", der rechte Bone den Namen "Smile". Nennen Sie das Armature Objekt "Driver".
Teilen Sie nun das 3D-Fenster und wechseln Sie in einem Fenster in den Ipo Curve Editor. Wählen Sie den Ipo Type Shape (Abbildung 3).
Verbinden von Shape Key und Driver
BearbeitenUm den Shape Key mit dem kontrollierenden Objekt - dem Driver - zu verbinden, wählen Sie den Shape Key aus, und drücken im Ipo Fenster N, um das Transform Properties Panel aufzurufen. Klicken Sie auf Add Driver. Tragen Sie den Namen der Armature in das OB: Feld ein. In der Drop-Down Box wählen Sie Pose. Im Feld BO: tragen Sie den Namen des kontrollierenden Bone ein, hier "Close". Als kontrollierende Richtung ist bei dem hier verwendeten Setup Loc Z einzutragen (Abbildung 4). Sind Sie im Zweifel über die richtige Koordinate, können Sie den Bone im 3D-Fenster bewegen, und die Änderung der Koordinaten im Transform Properties Panel des 3D-Fensters beobachten.
Um eine Ipo Kurve einzufügen drücken Sie im Ipo Curve Editor I->Default one-to-one mapping. Es wird eine von (0,0) zu (1,1) verlaufende Kurve eingefügt. Die Anzeige der Ipo Kurve vor dem Shape Namen erhält einen Punkt, um anzuzeigen, dass ein Driver für die Kurve vorhanden ist.
Die Ipo Kurve besagt nun, dass Sie den Bone um einen Blendereinheit (BU) in Z Richtung bewegen müssen, damit der Key Value des Shapes von 0 auf 1 steigt. Bewegen Sie den Bone um eine BU in negative Z Richtung, wird der Shape invertiert, d.h. die Vertices bewegen sich in entgegengesetzte Richtung. Verläuft die Ipo Kurve waagerecht, ändert sich der Shape nicht mehr wenn Sie den Bone bewegen. Das können wir ausnutzen, um die Grenzen der sinnvollen Bewegung des Bone festzulegen.
Bei meinem Setup möchte ich ein Mapping von (-1, -1), (1, 1), der Extend Modus sollte auf Constant gestellt werden (Curve->Extend Mode->Constant). Mit T->Linear stellt man wieder einen linearen Kurventyp ein, falls sich der Kurventyp beim verändern des Extend Mode ändert.
Für den Shape "Smile" wiederholen wir das Ganze mit dem Bone "Smile", die Ipo Kurve muss aber umgedreht werden (S-X), also von (-1, 1) zu (1, -1) führen, damit beim Hochbewegen des Bones die Mundwinkel nach oben bewegt werden.
Um die Mundwinkel einzeln anzuheben, wird der Shape Key mit der X-Koordinate des Bones verbunden. Bewegt sich der Bone in positive X-Richtung soll der rechte Mundwinkel angehoben werden, bewegt er sich in negative Y-Richtung der linke (Abbildung 6).
Bewegen Sie nun die Bones im Pose Modus, verändert sich die Form entsprechend. Wenn Sie mehr Formen benötigen, oder diese flexibler handhaben möchten, müssen Sie entsprechend mehr oder andere Driver definieren.
Custom Controls
Bearbeiten"Custom Controls" - also im wesentlichen selbstgebastelte Regler - erleichtern den Umgang mit Driven Shape Keys. Es gibt dazu kein eigenes Blenderobjekt, wir benutzen Mesh Objekte um diese Regler anzuzeigen, und schränken die Bewegungsrichtung der Driver Objekte über die Optionen im Transform Properties Panel ein.
Wie vollständig Sie diese Kontrollen gestalten, bleibt natürlich Ihnen überlassen. Es ist aber wohl sinnvoll, die Bewegungsgrenzen der Bones sichtbar zu machen. Im folgenden Beispiel werden außerdem noch die Bewegungsgrenzen durch Floor Constraints abgesteckt. Das mag sinnvoll sein wenn jemand anderes später die Controls benutzen soll, da diese sich dann noch mehr wie echte Schieberegler verhalten.
In Abbildung 7a habe ich einige Beispiele für Custom Controls zusammengestellt (basierend auf einer Idee von "PolygoneUK" aus dem Elysiun Forum). Mit den Einschränkungen der Bewegungsrichtung im Transform Properties Panel wird verhindert, dass der Bone aus dem Schieberegler herausbewegt wird.
Man kann die Visualisierung auch etwas anschaulicher machen, wenn man ein "Gesicht" symbolisiert, in dem die Regler die Anfasser sind. Nach: Zeyne 2.4 rig with facial controller.
Bei Beispiel 2 befinden sich an den Ecken noch zwei weitere Objekte, die als Floor Constraints genutzt werden, und das Bewegen des Bones über die angezeigten Grenzen hinaus verhindern. Allerdings benötigt man für das Rechteck gleich vier Constraints auf den Bone, für den Schieberegler 1 nur zwei Constraints (Abbildung 9).
Wenn die Anzeigen fertig sind, verschieben wir sie in eine globale Szene, dann können Sie nicht mehr versehentlich bearbeitet werden. Fügen Sie eine neue, leere Szene hinzu (der Doppelpfeil neben dem SCE: Feld, Add new->Empty). Nennen Sie die Szene "Global". Markieren Sie alle Objekte die zu den Anzeigen gehören, aber nicht die Armature, die müssen wir ja noch verändern. Verlinken Sie die Objekte in die Szene "Global" mit Strg-L->To Szene...->Global. Dann entfernen wir die Verbindung zwischen den Objekten: U->Object. Und zum Schluss in unserer Ausgangsszene löschen. Jetzt sind die Objekte zwar noch da, werden aber nicht angezeigt.
Wechseln Sie in die Szene Buttons (F10) und klicken Sie im Output Panel auf den kleinen Button mit dem Doppelpfeil und dem unauffälligen Tooltip Scene to link as a Set (siehe Szenen). Wählen Sie "Global". Nun werden die Kontrollen angezeigt, sind aber nicht mehr auswähl- und bearbeitbar.
NLA
BearbeitenDie einzelnen "Gesichts" Bewegungen können nun zu Aktionen [Actions] zusammengestellt werden, und diese wiederum im NLA-Editor zu komplexen Gruppen. Eine Aktion wäre ein bestimmter Gesichtsausdruck, wie z.B. fröhlich, traurig, überrascht, böse etc. Hat man alle benötigten Aktionen erstellt, arbeitet man nur noch mit diesen Aktionen.
Sie sind natürlich nicht gezwungen mit dem NLA Editor zu arbeiten, statt dessen könnten Sie auch eine einzige lange Aktion erstellen, in die Sie alle Ipos einfügen.
Aktionen definieren
BearbeitenWie im Abschnitt Non Linear Animation ausführlich beschrieben wird, werden zunächst die einzelnen Aktionen für das "Gesicht" erstellt.
In unserem Beispiel wurde das Gesicht noch um zwei "Augen" erweitert. Drei Aktionen werden im Action Editor Fenster erstellt: "Wink", "Joy" und "Anger" (Abbildung 11). Nun wird mit den Bones der Armature im Pose Modus der entsprechende Gesichtsausdruck erzeugt, die benötigten Bones ausgewählt und ein Ipo eingefügt. Dann zehn Frames weitergehen, und die genau gleiche Pose speichern. Die Zeitdauer legen wir gleich im NLA Editor Fenster fest.
Mit den bekannten Methoden werden die Gesichtsausdrücke im NLA Editor zusammengestellt, und der zeitliche Ablauf festgelegt. Besonders nützlich ist das Überblenden verschiedener Gesichtsausdrücke (Blendin/Blendout). Wenn man die Option Hold für die Strips benutzt, sollte man noch eine Aktion "Basis" definieren, damit man zur Ausgangsposition überblenden kann.
Links
BearbeitenIpo Drivers, Releasenotes zu v2.40
Orange Blog: License to drive Driven Shape Keys mit Blend Datei.
Using Ipo driven shape keys to correct deformations in joints