|
BTD /
Modul3BTD/Modul 3: Rigging Engineering Inhalte:
Vorlesung 3Rigging Engineering – Technische Rigs, Automatisierung und DebuggingDiese Vorlesung behandelt Rigging aus der Perspektive des Technical Directors. Der Fokus liegt nicht auf manuellem Character-Rigging, sondern auf skalierbaren, überprüfbaren und automatisierbaren Rig-Systemen. 1. Rolle des Rigging EngineersEin Rigging Engineer entwickelt technische Systeme, die:
Wichtige TD-Fragestellungen im Rigging:
2. Armature- und Bone-Grundlagen (technische Sicht)Ein Rig basiert auf einer Armature mit hierarchisch organisierten Bones. Wichtige technische Eigenschaften:
import bpy
arm = bpy.context.object
for bone in arm.data.bones:
print(bone.name, "Parent:", bone.parent)
3. Bone Constraints – Konzepte und RisikenConstraints steuern das Verhalten von Bones ohne direkte Keyframes. Typische Bone Constraints:
Risiken aus TD-Sicht:
import bpy
pose_bone = bpy.context.object.pose.bones[0]
for c in pose_bone.constraints:
print(c.name, c.type)
4. Custom Rig ControlsRig Controls sind meist:
Ziel:
import bpy
ctrl = bpy.data.objects.new("CTRL_Arm", None)
bpy.context.scene.collection.objects.link(ctrl)
ctrl.empty_display_type = 'CIRCLE'
5. Deformations-WorkflowsDeformation entsteht primär durch:
Technische Fehlerquellen:
import bpy
obj = bpy.context.active_object
for vg in obj.vertex_groups:
print(vg.name)
6. Rigging Quality Control (QC)Technische Qualitätskontrollen sind essenziell für große Produktionen. Typische Checks:
import bpy
issues = []
for obj in bpy.data.objects:
if obj.type == 'ARMATURE':
if obj.scale != (1,1,1):
issues.append(f"{obj.name}: Scale nicht angewendet")
for issue in issues:
print(issue)
Dieses Prinzip bildet die Grundlage für Übung 1. 7. Automatisiertes Bone-SetupAutomatisierung reduziert Fehler und spart Zeit. Typische Schritte:
import bpy
bpy.ops.object.armature_add()
arm = bpy.context.object
arm.name = "AutoRig"
arm_data = arm.data
bone = arm_data.edit_bones.new("root")
bone.head = (0,0,0)
bone.tail = (0,0,1)
8. Hierarchien automatisch erzeugen
import bpy
arm = bpy.context.object
bones = arm.data.edit_bones
root = bones["root"]
child = bones.new("spine")
child.head = (0,0,1)
child.tail = (0,0,2)
child.parent = root
Saubere Hierarchien sind Voraussetzung für stabile Rigs. 9. Python-gestützte Rigging-ToolsPython ermöglicht:
import bpy
for bone in bpy.context.object.pose.bones:
bone.lock_location = (True, True, True)
10. Auto-Rigging-Systeme (z.B. Rigify)Auto-Rigging-Systeme:
TD-Aufgaben bei Auto-Rigs:
import bpy
for obj in bpy.data.objects:
if "rig" in obj.name.lower():
print("Mögliches Rig:", obj.name)
11. Performance-Aspekte im RiggingPerformance-Killer im Rigging:
TDs sollten regelmäßig prüfen:
12. Debugging von RigsHilfreiche Debug-Techniken:
import bpy
pb = bpy.context.object.pose.bones[0]
print("Location:", pb.location)
print("Rotation:", pb.rotation_euler)
13. Custom Controls mit Properties (Bonus-Thema)Rig-Controls können über Properties steuerbar gemacht werden.
import bpy
arm = bpy.context.object
arm["stretch"] = 0.0
print("Stretch-Wert:", arm["stretch"])
Diese Technik bildet die Basis für UI-Slider in Übung 3. 14. Verbindung zu den ÜbungenDie Übungen zu diesem Modul setzen direkt auf den gezeigten Konzepten auf:
Die Aufgaben finden Sie unter Modul 3 – Übungen. |