Blender Dokumentation: Verbinden von Armature und Mesh
Diese Seite bezieht sich auf Blender v2.41 |
Wenn die Armature (das Skelett) fertig gestellt ist, muss die Oberfläche des Objektes mit der Armature verbunden werden. Wenn sich die Bones der Armature bewegen, bewegt sich das Mesh mit den zugehörigen Bones. Man muss also bestimmen welche Vertices zu welchem Bone gehören. Da ein Vertex zu mehreren Bones gehören kann, kann festgelegt werden welche Einflussstärke ein bestimmter Bone auf den Vertex hat.
Es gibt grundsätzlich zwei verschiedene Möglichkeiten, einen Vertex einem Bone zuzuordnen:
- Vertexgruppen: Die Vertices einer Vertexgruppe werden von dem gleichnamigen Bone bewegt. Gibt es bspw. eine Gruppe "Arm.L" und einen Bone "Arm.L", werden die Vertices der Gruppe "Arm.L" von dem Bone bewegt.
- Envelopes: Ein Bone bewegt alle Vertices in einer bestimmten, einstellbaren Entfernung. Die Entfernung kann dabei an Wurzel und Spitze des Bones unterschiedlich sein.
Vertexgruppen und Envelopes können miteinander kombiniert werden, ein Bone kann also sowohl Vertices bewegen die zu seinem Envelope gehören, als auch Vertices einer gleichnamigen Vertexgruppe. Ein Vertex wiederum kann sich in einem Envelope eines Bones befinden, aber auch zu (multiplen) Vertexgruppen anderer Bones gehören.
Einem Mesh eine Armature zuweisen
[Bearbeiten]Es gibt zwei Methoden einem Mesh eine Armature zuzuweisen:
- Den Armature Modifier. Das ist die neue, empfohlene Methode.
- Parenting. Diese Methode hat noch einige nützliche Optionen, eine so vorgenommene Zuweisung kann anschließend problemlos in einen Modifier umgewandelt werden.
Der Armature Modifier
[Bearbeiten]Einen Armature Modifier fügen Sie über Add Modifier auf dem Modifier Panel in den Editing Buttons (F9) hinzu (siehe Modifiers). Das Meshobjekt wird dazu nicht an die Armature geparentet, das ist nur dann nötig, wenn Sie die Armature als Ganzes bewegen wollen und das Objekt der Armature folgen soll. In diesem Fall wählen Sie zunächst das Meshobjekt aus, dann die Armature, drücken Strg-P->Object.
Folgende Armature spezifische Felder enthält der Modifier (Abbildung 1):
- In das Ob: Feld tragen Sie den Namen der Armature ein, die das Objekt verformen soll. Sie können mehr als eine Armature benutzen, allerdings sind die Ergebnisse dann schwer zu beherrschen.
- Vert. Groups: Ermöglicht die Verwendung von Vertexgruppen zur Verformung des Meshes.
- Envelopes: Ermöglicht die Verwendung von Envelopes zur Verformung des Meshes.
Sind beide Optionen ausgewählt, werden Vertices nur dann von Envelopes beeinflusst, wenn Sie keiner von einem Bone beeinflussten Vertexgruppe angehören.
Dazu gehören zwei Optionen für die Bones (im Pose- oder im Edit-Modus, Abbildung 2):
- Deform: Der Bone verformt überhaupt.
- Mult: Envelopes arbeiten zusammen mit Vertexgruppen.
Die Optionen Vertex Groups und Envelopes auf dem Armature Panel gelten nicht für echte Modifier, nur für virtuelle (siehe unten).
Parenting
[Bearbeiten]Es ist weiterhin möglich ein Mesh an eine Armature zu parenten, um das Mesh verformen zu lassen. Es entsteht ein virtueller Modifier, der sich anschließend in einen echten Modifier umwandeln lässt. Diese Methode bietet noch einige zusätzliche Optionen.
Wählen Sie zunächst das Objekt, dann die Armature mit Shift-RMT an und drücken Strg-P. Ist die Armature im Pose-Modus, erhalten Sie drei Auswahlmöglichkeiten (Abbildung 3) (im Objekt-Modus nur zwei):
- Bone: Verbindet das Objekt mit dem Bone. Das ist immer dann gut, wenn Sie das Mesh nicht verformen wollen, also bei der Animation von mechanischen Gegenständen. Es wird eine Child-Parent Beziehung erstellt.
- Armature: Erstellt einen virtuellen Modifier und eine Child-Parent Beziehung. Es erscheint ein weiteres Menü mit drei Auswahlmöglichkeiten (Abbildung 4):
- Don't create Groups: Erstellt nur einen virtuellen Modifier.
- Name Groups: Erstellt Vertexgruppen, weist aber noch keine Vertices zu. Diese Methode ist praktisch überflüssig geworden, da Blender beim Weight Painting (siehe unten) ebenfalls automatisch Gruppen erstellt.
- Create from Closest Bone: Das ist nützlich, um Vertexgruppen automatisch erstellen zu lassen. Dabei werden die Vertices automatisch zugewiesen. Da man mit Vertexgruppen bessere Kontrolle hat als mit Envelopes, kann man die Envelopes in Vertices umwandeln [bake].
- Object: Erstellt eine normale Child-Parent Beziehung.
Auf dem Modifier Panel des Meshes wird der virtuelle Modifier angezeigt (Abbildung 5). Wandeln Sie ihn mit Make Real in einen echten Modifier um.
Envelopes in Vertexgruppen umwandeln [Bake]:
Dazu gibt es zwei Methoden, eine neue und eine alte:
- Neu: Diese Methode funktioniert nur für jeden Bone einzeln. Bringen Sie die Armature in den Pose-Modus und das Mesh in den Weight Paint-Modus. Wählen Sie den Bone mit RMT aus, drücken W->Apply Bone Envelopes to Vertex Groups.
- Alt: Ist die Envelope fertig gestellt, löschen Sie den Armature Modifier und parenten das Mesh an die Armature (Strg-P->Armature->Create from Closest Bones). Nun konvertieren Sie zunächst den virtuellen Modifier in einen echten und löschen anschließend die Child-Parent Beziehung mit Alt-P->Clear Parent. Damit werden alle Envelopeeinstellungen in Vertexgruppen konvertiert.
Vertex Groups
[Bearbeiten]Mit Vertexgruppen können Sie definieren, welche Bones welche Vertices verformen. Ein Vertex kann Mitglied in mehreren Gruppen sein, was weiche Übergänge erlaubt. Ist ein Vertex nur Mitglied in einer Vertexgruppe, wird er immer entweder vollständig bewegt (Weight>0) oder gar nicht (Weight=0). Das Weight stellt also nicht direkt ein, wie stark ein Vertex von dem entsprechenden Bone bewegt wird.
Die beste Methode Vertexgruppen für Armatures zu erzeugen, ist es, Weight Painting einzusetzen.
- Erstellen Sie einen Armature Modifier für das Mesh.
- Wechseln Sie in den Edit-Modus der Armature.
- Wählen Sie alle Bones aus und korrigieren Sie mit Strg-N den sog. Bone Roll-Winkel.
- Wechseln Sie in den Pose-Modus der Armature.
- Wählen Sie das Meshobjekt aus und wechseln in den Weight Paint-Modus (Strg-Tab).
- Mit RMT wählen Sie den Bone aus, für den Sie den Weight malen möchten.
- Malen Sie den entsprechenden Weight mit der linken Maustaste auf das Mesh (siehe Weight Paint Mode).
Hat der Bone noch keine Vertexgruppe, erstellt Blender die entsprechende Gruppe mit gleichem Namen wie der Bone automatisch. Dann kann der Bone die entsprechende Vertexgruppe bewegen, sofern der Vert. Groups Button auf dem Armature Modifier aktiviert ist.
Tips zum Weight Painting:
- Schalten Sie die Option Soft auf dem Paint Panel in den Editing Buttons des Objektes aus.
- Mit F schalten Sie in den Select-Modus. Hier können Sie Faces (wie üblich) auswählen und anschließend nur auf den ausgewählten Faces malen. Sie können auch ausgewählte Faces verstecken (H) oder versteckte Faces wieder sichtbar machen (Alt-H). Über das Select-Menü können Sie die Auswahl auch umkehren. Insbesondere für verwinkelte Meshes ist diese Option Voraussetzung für bequemes Arbeiten.
- Mit Alt-B können Sie Teilbereiche des Meshes ausblenden, diese werden dann nicht versehentlich bemalt.
- Wenn Sie Bones rotieren, können Sie gut beurteilen, welche Vertices noch nicht in der richtigen Gruppe sind. Mit Alt-R kann man die Rotation der Bones wieder rückgängig machen.
- Bei einer spiegelsymmetrischen Armature (Namenskonvention) können Sie mit der Option X-Mirror auf dem Paint Panel automatisch die spiegelsymmetrische Gruppe erstellen lassen.
In Abbildung 6 ist ein einfaches Beispiel gezeigt, wie zwei Bones ein Mesh beeinflussen.
Die Gruppen sind so gemalt, dass das Zentrum des Bones rot erscheint (Weight=1) und die Zone am Gelenk der Bones von rot nach blau (Weight=0) verläuft. Es hilft beim Malen sehr, wenn Sie den Wire Button auf dem Paint Panel anstellen, damit Sie erkennen, wo die Vertices sind.
Ist Subsurfing aktiviert, benötigt das Malen relativ viel CPU Leistung, Sie sollten den SubSurf Level für die 3D Anzeige zumindest temporär herunterstellen (und Optimal Draw anstellen um das Ausgangsmesh zu erkennen).
Sie können die Vertexgruppen auch von Hand erstellen, indem Sie im Edit-Modus auf den New Button in der Vertex Groups-Gruppe auf dem Link and Materials Panel in den Editing Buttons (F9) klicken. Die Vertexgruppen müssen den gleichen Namen wie der Bone tragen (einschließlich Groß- und Kleinschreibung). Innerhalb eines Meshes sind die Gruppen eindeutig benannt. Zu einer Vertexgruppe werden die Vertices hinzugefügt, indem man die Vertices auswählt und Assign anklickt.
Je nach Einstellung des Weight Feldes, wird eine Gruppe mehr oder weniger stark von dem Bone beeinflusst. Es handelt sich dabei nicht um einen absoluten Wert, sondern um einen relativen. Zunächst wird die Summe aller "Weights" berechnet und dann der relative Anteil jeder Gruppe. Die Gesamtbewegung beträgt aber 100%.
Welcher Vertex gehört zu welcher Gruppe?
Es ist manchmal schwierig herauszufinden, welcher Vertex zu welcher Vertexgruppe gehört. Im Weight Paint-Modus können Sie das leicht feststellen.
- Sie sehen es an der Farbe. Bereiche in Blau haben einen Weight von Null oder gehören nicht zur Vertexgruppe.
- Klicken Sie mit Shift-LMT auf eine Fläche, wird angezeigt, zu welchen Gruppen die Vertices gehören, die diese Fläche bilden (Abb. 7). Man kann dann auch gleich zwischen den Gruppen wechseln.
- Im Edit-Modus können Sie die Vertexgruppen eines einzelnen ausgewählten Vertices auf dem Transform Properties Panel einsehen.
Envelopes
[Bearbeiten]Envelopes sind "Einhüllende" des Bones. Der Bone beeinflusst alle Vertices, die sich in seinem Envelope befinden. Sie können die Envelopes größer und kleiner skalieren, so dass Sie die Einflussstärke eines jeden Bones genau einstellen können. Wählen Sie die Armature aus und klicken Sie in der Display Options-Gruppe auf dem Armature Panel in den Editing Buttons auf Envelope (Abbildung 9).
Nur noch einmal zur Erinnerung: Die Optionen Vertex Groups und Envelopes unter Deform Options spielen für einen Armature Modifier keine Rolle!
Einflussbereich des Bones [Bone deformation distances]
[Bearbeiten]Sie können drei verschiedene Werte beeinflussen, um den Einflussbereich des Bones einzustellen:
- Bone Root Radius/Bone Tip Radius: Diese beiden Werte werden als Körper dargestellt (der Bone selbst). Alle Vertices innerhalb dieses Radius werden zu 100% beeinflusst. Sie verändern diese Werte im Edit-Modus durch einfaches Skalieren, dabei können Sie die Wurzel [Root] und die Spitze [Tip] des Bones einzeln auswählen.
- Bone Distance: Das ist das heller gezeichnete Volumen um den Bone herum. Der Einfluss nimmt in diesem Raum quadratisch bis auf Null ab. Diesen Wert können Sie im Edit-Modus und im Pose-Modus mit Alt-S verändern.
Bearbeiten Sie die Envelopes im Pose-Modus, wird die Beeinflussung des Meshes in Echtzeit angezeigt.
Envelopes benutzen um Vertexgruppen zu erzeugen
[Bearbeiten]Befindet sich das Mesh im Weight Paint-Modus, können Sie mit RMT einen Bone auswählen und ebenfalls mit Alt-S den äußeren Einflussbereich skalieren.
Mit W->Apply Bone Envelopes to VertexGroups können Sie im Weight Paint-Modus die Envelopes ausgewählter Bones in Vertexgruppen umwandeln lassen. Sofern die Gruppen noch nicht existieren, werden sie erstellt.
Weitere Optionen
[Bearbeiten]- Wenn Sie ein Mesh mit Strg-P an eine Armature parenten, benutzt die Option Create Vertex Groups ebenfalls die Envelopes zum Erstellen der Gruppen.
- Der Bone Weight auf dem Armature Bones Panel wird mit dem Envelope-Wert multipliziert.
- Die Option Mult multipliziert den Envelope Wert mit dem Vertexgruppenwert, sonst werden die Envelopes ignoriert, falls Vertexgruppen existieren und beide Optionen für den Modifier aktiviert sind. Ein Beispiel: Ein Envelope-Wert von 0,7 multipliziert mit einem Weight der Gruppe von 0,5 ergibt eine Gesamtbeeinflussung von 0,35. Hat ein Vertex einen Weight von 0, entfernt ihn das effektiv aus der Beeinflussung, so können Sie die Form des Envelope beliebig einstellen.
Links
[Bearbeiten]Skin Weighting (Releasenotes zu v2.40)
Releasenotes zu v2.40: Deformation methods
Dokumentation zu v2.31
Skinning bei "From Noob to Pro"
Ausgabe 2 des Blenderart Magazines enthält einen guten Artikel über Rigging und Skinning einer Spinne