Blender Dokumentation: Constraints
Diese Seite bezieht sich auf Blender v2.48a |
Zwangsbedingungen (Constraints)
BearbeitenMit Zwangsbedingungen lassen sich drei Dinge erreichen:
- Eine Zwangsbedingung lässt ein Objekt (den Owner [Träger] des Constraints) in Abhängigkeit von einem anderen Objekt (des Targets [Zielobjektes]) bestimmte Dinge "tun". Objekte sind dabei häufig Armature-Bones, es kann sich aber auch um beliebige andere Objekte (z. B. Meshobjekte) handeln. So kann eine Zwangsbedingung dafür sorgen, dass ein Objekt immer auf ein anderes Objekt ausgerichtet ist, die Drehung eines anderen Objektes übernimmt oder seine Z-Position nicht überschreitet.
- Mit einer Zwangsbedingung lässt sich die Bewegungsfreiheit von Objekten einschränken, z. B. die möglichen Drehwinkel.
- Eine Zwangsbedingung kann aber auch ein Python-Script sein, das die Bewegung eines Objektes steuert.
Zwangsbedingungen werden häufig für Bones eingesetzt, insbesondere der IK-Solver hat überragende Bedeutung für die Animation mit Armatures. Aber auch sonst erleichtern Zwangsbedingungen die Animation von Objekten sehr.
Ich habe einen Constraint für einen Bone in einer Bone-Kette gesetzt, der Bone hält sich aber nicht an den Constraint!
- Wenn zwei Bones miteinander verbunden sind, hat die Bewegung des Parents immer Vorrang vor einem Constraint. Der Parent zwingt den Child-Bone u. U. zu einer Bewegung, bei der der Child den Constraint nicht einhalten kann. Lösen Sie dann die Verbindung zwischen den Bones.
- Komische Dinge passieren, wenn Sie Zirkelschlüsse zwischen den Bones einer Armature haben, also sich die Constraints wechselseitig auf bestimmte Bones beziehen. Die Bewegung wird dann zufällig.
Constraints können auf andere Objekte kopiert werden. Das ist sehr nützlich, wenn man viele gleichartige Objekte animieren will (z. B. die Finger einer Hand). Wählen Sie zunächst die Objekte aus, die das Constraint erhalten sollen. Dann wählen Sie mit Shift-RMT das Objekt aus, welches das Constraint trägt. Drücken Sie im 3D-Fenster Strg-C und wählen Sie Constraints vom Copy Pose Attributes-Pop-up-Menü aus. Damit kopieren Sie die Constraints vom aktiven Objekt auf die ausgewählten Objekte.
IK-Constraints können nicht nur über das Constraints-Panel, sondern auch über Tastenkürzel eingefügt werden (Shift-I). Näheres dazu erfahren Sie im Abschnitt IK-Solver.
Bones mit Constraints werden im Pose Mode farblich gekennzeichnet (Abbildung 1). Die Farben haben folgende Bedeutung:
- Grau: kein Constraint, keine IPOs.
- Gelb: ein Bone mit einem IK-Constraint.
- Orange: ein Bone mit einem IK-Constraint ohne Target.
- Grün: ein Bone mit einem anderen Constraint.
- Blau: ein Bone mit IPOs (und Action).
Das Constraints-Panel
Bearbeiten- Ein Objekt erhält ein Constraint, indem Sie es auswählen und in den Object Buttons (F7) auf dem Constraints-Panel ein Constraint hinzufügen. Ein Bone erhält sein Constraint im Pose Mode, entweder in den Object Buttons oder in den Editing Buttons (F9).
Das Constraints-Panel ist zunächst - bis auf den Button Add Constraint - leer.
- Klicken Sie Add Constraint, können Sie den gewünschten Constraint aus der erscheinenden Auswahlliste auswählen. Die Constraints IK Solver und Action sind nur für Bones im Pose-Modus verfügbar.
- Wenn Sie einen neuen Constraint hinzufügen, wird ein Datenblock in den Stapel [Stack] hinzugefügt. Die Bedienung ähnelt dem Modifier-Stack. Jeder Block entspricht einem Constraint. Mit dem X löschen Sie den Constraint, mit den Hoch/Runter Pfeilen bewegen Sie ihn nach oben oder unten. Mit dem horizontalen Pfeil blenden Sie die Constraint spezifischen Optionen ein oder aus (Abbildung 3).
- Constraints werden von oben nach unten ausgewertet. Wenn also zwei Constraints die gleiche Eigenschaft betreffen, z. B. Location, dann überschreibt der zweite Constraint den ersten.
- Die meisten Constraints - bis auf den Null Constraint - haben Influence (Einfluss) Buttons. Damit können Sie die verschiedenen Constraints miteinander mixen.
- Den Einfluss können Sie animieren, indem Sie mit dem Key-Button entsprechende IPOs einfügen. Öffnen Sie ein IPO-Fenster, zeigt Show gleich die richtige Kurve an, die Sie dann bearbeiten können.
- Der Name des Constraints kann im Constraint Name Feld geändert werden, wenn das Constraint "offen" ist.
- Sie wechseln das Constraint im IPO-Fenster, wenn Sie auf die Titelzeile des Constraints klicken (das gleiche wie Show).
- Bei fast allen Constraints - bis auf den Null-Constraint und u. U. dem Script-Constraint - können Sie den Namen eines Objektes angeben, das als Referenz oder Ziel [Target] dienen soll. Ist das Ziel ein Bone, müssen Sie zunächst den Namen der Armature, dann den Namen des Bones in ein weiteres Feld eintragen (Abbildung 4). Sie können dazu das "Autoausfüllen" Feature benutzen. Geben Sie den ersten Buchstaben des Objektes/Bones in das Feld ein und drücken Tab. Ist der Name eindeutig, wird das Feld ausgefüllt, sonst müssen Sie den Namen so weit ergänzen, dass er eindeutig wird.
Koordinatenraum (CSpace)
BearbeitenDie meisten Constraints besitzen einen Parameter CSpace, mit dem der Koordinatenraum eingestellt werden kann. Je nach Art des Constraints kann der Koordinatenraum nur für den Träger [Owner] des Constraints, oder auch für das Ziel [Target] angegeben werden.
- Bevor der Constraint ausgewertet wird, werden die Koordinaten des Trägers des Constraints vom Welt-Koordinatensystem in das ausgewählte Koordinatensystem umgerechnet.
- Das gleiche geschieht nun für das Zielobjekt des Constraints.
- Jetzt wird der Constraint berechnet und angewendet.
- Die Koordinaten des Constraintträgers werden zurück in Weltkoordinaten transformiert.
Folgende Koordinatenräume stehen zur Verfügung: Wenn hier jemand eine gute, verständliche Erklärung hat, immer her damit.
- Für Objekte:
- World: Benutzung globaler, oder besser gesagt der Weltkoordinaten, d.h. die Koordinaten beziehen sich auf den Ursprung des 3D-Fensters. Es ist also egal, ob das Objekt einen Parent hat oder nicht.
- Local (without Parent): Eine etwas unglücklich gewählte Bezeichnung, da er gerade für Objekte mit Parent gilt. Besitzt ein Objekt einen Parent, bestimmt der Parent Ursprung und Ausrichtung des Koordinatensystems für das Child. Mit Local sind hier also nicht die sonst üblichen lokalen Koordinaten gemeint, sondern die globalen Koordinaten, die das Child sieht. Damit lässt sich z.B. ein Versatz für den Träger des Constraints erzeugen, und insbesondere eine Drehung über den Parent einstellen. Besitzt ein Objekt keinen Parent, sind die Einstellungen World und Local identisch.
- Für Bones im Pose-Modus (mit Beispiel für einen Copy Location-Constraint):
- World: Wie für Objekte. Der Bone "klebt" an seinem Target, auch wenn die Armature im Ganzen bewegt wird.
- Pose Space: Der Bone wird mit dem Armature-Objekt bewegt, und relativ an sein Target versetzt. Bewegungen des Parent-Bones im Pose-Modus werden ignoriert.
- Local with Parent: Pseudo lokal (was immer das heißen soll)
- Local: Echt lokal, also bezogen auf die Rest-Position des Bones (also die im Edit-Modus, inklusive Drehung usw.).
Einflussstärke (Influence)
BearbeitenDer Parameter Influence stellt die Einflussstärke des Constraints auf die Bewegung des Objektes ein.
- Influence: Die Einflussstärke des Constraints.
- Show: Öffnet die Kurve des Constraints im IPO-Curve-Editor
- Key: Fügt ein Keyframe für die Influence des Constraints ein.
Über die Animation der Einflussstärke kann bspw. das Aufheben oder Ablegen von Gegenständen animiert werden.
Constraints Übersicht
Bearbeiten- Child Of
- Transformation
- Copy Constraints
- Limit Constraints
- Track To
- Floor
- Locked Track
- Follow Path
- Clamp To
- Stretch To
- Rigid Body: Dieser Constraint funktioniert nur in der Game Engine, und wird in diesem Handbuch daher nicht besprochen.
- Script
- Null: Dieser Constraint bewirkt nichts. Er hat keine Bedeutung mehr, und ist nur noch aus Kompatibilitätsgründen vorhanden.
- IK Solver (nur für Bones im Pose-Modus)
- Action (nur für Bones im Pose-Modus)
Links
Bearbeiten- Die englischsprachige Vorlage dieses Textes
- Das englischsprachige Handbuch zu Constraints
- Releasenotes zu Version 2.46: Constraints