diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2019-10-15 19:21:25 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2019-10-16 13:41:48 +0300 |
commit | 358bc43ef460e97239bccc379086f98ef6d95472 (patch) | |
tree | 6456ee46d145dd7f8a7269eabeff61dfd686e81f /rigify/rigs/spines/basic_spine.py | |
parent | 465f3e3f581f7dc25b299a15c5be6cdc58bbe053 (diff) |
Rigify: implement optional custom pivot controls.
- Add an optional custom pivot between torso and the rest of the spine.
- Add a custom pivot rig that can be used as a parent of the spine.
- Add an optional custom pivot under limb IK controls.
Diffstat (limited to 'rigify/rigs/spines/basic_spine.py')
-rw-r--r-- | rigify/rigs/spines/basic_spine.py | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/rigify/rigs/spines/basic_spine.py b/rigify/rigs/spines/basic_spine.py index 08255bb4..00ba2f4f 100644 --- a/rigify/rigs/spines/basic_spine.py +++ b/rigify/rigs/spines/basic_spine.py @@ -80,13 +80,9 @@ class Rig(BaseSpineRig): #################################################### # Master control bone - @stage.generate_bones - def make_master_control(self): - super().make_master_control() - - # Put the main control in the middle of the hip bone - base_bone = self.get_bone(self.bones.org[0]) - put_bone(self.obj, self.bones.ctrl.master, (base_bone.head + base_bone.tail) / 2) + def get_master_control_pos(self, orgs): + base_bone = self.get_bone(orgs[0]) + return (base_bone.head + base_bone.tail) / 2 #################################################### # Main control bones @@ -112,8 +108,9 @@ class Rig(BaseSpineRig): @stage.parent_bones def parent_end_control_bones(self): ctrl = self.bones.ctrl - self.set_bone_parent(ctrl.hips, ctrl.master) - self.set_bone_parent(ctrl.chest, ctrl.master) + pivot = self.get_master_control_output() + self.set_bone_parent(ctrl.hips, pivot) + self.set_bone_parent(ctrl.chest, pivot) @stage.generate_widgets def make_end_control_widgets(self): @@ -247,7 +244,7 @@ class Rig(BaseSpineRig): @stage.parent_bones def parent_mch_chain(self): - master = self.bones.ctrl.master + master = self.get_master_control_output() chain = self.bones.mch.chain fk = self.fk_result for child, parent in zip(reversed(chain.hips), [master, *reversed(fk.hips)]): |