diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2019-10-21 16:27:22 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2019-10-22 19:26:51 +0300 |
commit | 1d656f36618e5f2d5b1f7d0ff86e87ca6e705be4 (patch) | |
tree | 1559c5840f88810ea8c9212ba30210094263970a /rigify/rigs/limbs/limb_rigs.py | |
parent | bde1bc48cd7a57e6187b5849d6208a4816102f01 (diff) |
Rigify: clear custom pivots in IK->FK snap and use in widget placement.
Diffstat (limited to 'rigify/rigs/limbs/limb_rigs.py')
-rw-r--r-- | rigify/rigs/limbs/limb_rigs.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/rigify/rigs/limbs/limb_rigs.py b/rigify/rigs/limbs/limb_rigs.py index c195a9cb..493ba33a 100644 --- a/rigify/rigs/limbs/limb_rigs.py +++ b/rigify/rigs/limbs/limb_rigs.py @@ -23,7 +23,7 @@ import json from ...utils.animation import add_generic_snap_fk_to_ik, add_fk_ik_snap_buttons from ...utils.rig import connected_children_names -from ...utils.bones import BoneDict, put_bone, compute_chain_x_axis, align_bone_orientation +from ...utils.bones import BoneDict, put_bone, compute_chain_x_axis, align_bone_orientation, set_bone_widget_transform from ...utils.naming import strip_org, make_derived_name from ...utils.layers import ControlLayersOption from ...utils.misc import pairwise_nozip, padnone, map_list @@ -324,13 +324,14 @@ class BaseLimbRig(BaseRig): # IK controls def get_extra_ik_controls(self): - return [] + if self.component_ik_pivot: + return [self.component_ik_pivot.control] + else: + return [] def get_all_ik_controls(self): ctrl = self.bones.ctrl controls = [ctrl.ik_base, ctrl.ik_pole, ctrl.ik] - if self.component_ik_pivot: - controls.append(self.component_ik_pivot.control) return controls + self.get_extra_ik_controls() @stage.generate_bones @@ -411,9 +412,13 @@ class BaseLimbRig(BaseRig): @stage.generate_widgets def make_ik_control_widgets(self): - self.make_ik_base_widget(self.bones.ctrl.ik_base) - self.make_ik_pole_widget(self.bones.ctrl.ik_pole) - self.make_ik_ctrl_widget(self.bones.ctrl.ik) + ctrl = self.bones.ctrl + + set_bone_widget_transform(self.obj, ctrl.ik, self.get_ik_control_output()) + + self.make_ik_base_widget(ctrl.ik_base) + self.make_ik_pole_widget(ctrl.ik_pole) + self.make_ik_ctrl_widget(ctrl.ik) def make_ik_base_widget(self, ctrl): if self.main_axis == 'x': |