Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2019-10-21 16:27:22 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2019-10-22 19:26:51 +0300
commit1d656f36618e5f2d5b1f7d0ff86e87ca6e705be4 (patch)
tree1559c5840f88810ea8c9212ba30210094263970a /rigify/rigs
parentbde1bc48cd7a57e6187b5849d6208a4816102f01 (diff)
Rigify: clear custom pivots in IK->FK snap and use in widget placement.
Diffstat (limited to 'rigify/rigs')
-rw-r--r--rigify/rigs/limbs/leg.py6
-rw-r--r--rigify/rigs/limbs/limb_rigs.py19
-rw-r--r--rigify/rigs/limbs/paw.py2
-rw-r--r--rigify/rigs/spines/basic_spine.py4
-rw-r--r--rigify/rigs/spines/basic_tail.py5
-rw-r--r--rigify/rigs/spines/spine_rigs.py9
6 files changed, 25 insertions, 20 deletions
diff --git a/rigify/rigs/limbs/leg.py b/rigify/rigs/limbs/leg.py
index 309688e3..35e68f58 100644
--- a/rigify/rigs/limbs/leg.py
+++ b/rigify/rigs/limbs/leg.py
@@ -121,10 +121,10 @@ class Rig(BaseLimbRig):
# IK controls
def get_extra_ik_controls(self):
+ controls = super().get_extra_ik_controls() + [self.bones.ctrl.heel]
if self.pivot_type == 'ANKLE_TOE':
- return [self.bones.ctrl.heel, self.bones.ctrl.ik_spin]
- else:
- return [self.bones.ctrl.heel]
+ controls += [self.bones.ctrl.ik_spin]
+ return controls
def make_ik_control_bone(self, orgs):
name = self.copy_bone(orgs[2], make_derived_name(orgs[2], 'ctrl', '_ik'))
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':
diff --git a/rigify/rigs/limbs/paw.py b/rigify/rigs/limbs/paw.py
index 8e9d2480..a13348d1 100644
--- a/rigify/rigs/limbs/paw.py
+++ b/rigify/rigs/limbs/paw.py
@@ -84,7 +84,7 @@ class Rig(BaseLimbRig):
# IK controls
def get_extra_ik_controls(self):
- return [self.bones.ctrl.heel]
+ return super().get_extra_ik_controls() + [self.bones.ctrl.heel]
def make_ik_control_bone(self, orgs):
name = self.copy_bone(orgs[3], make_derived_name(orgs[2], 'ctrl', '_ik'))
diff --git a/rigify/rigs/spines/basic_spine.py b/rigify/rigs/spines/basic_spine.py
index 09d9b5d2..c2905463 100644
--- a/rigify/rigs/spines/basic_spine.py
+++ b/rigify/rigs/spines/basic_spine.py
@@ -27,7 +27,7 @@ from mathutils import Matrix
from ...utils.errors import MetarigError
from ...utils.layers import ControlLayersOption
from ...utils.naming import strip_org, make_deformer_name, make_mechanism_name, make_derived_name
-from ...utils.bones import BoneDict, put_bone, align_bone_to_axis, align_bone_orientation
+from ...utils.bones import BoneDict, put_bone, align_bone_to_axis, align_bone_orientation, set_bone_widget_transform
from ...utils.widgets import adjust_widget_transform_mesh
from ...utils.widgets_basic import create_circle_widget
from ...utils.misc import map_list
@@ -123,7 +123,7 @@ class Rig(BaseSpineRig):
shape_bone = self.get_bone(wgt_mch)
is_horizontal = abs(shape_bone.z_axis.normalized().y) < 0.7
- self.get_bone(ctrl).custom_shape_transform = shape_bone
+ set_bone_widget_transform(self.obj, ctrl, wgt_mch)
obj = create_circle_widget(
self.obj, ctrl,
diff --git a/rigify/rigs/spines/basic_tail.py b/rigify/rigs/spines/basic_tail.py
index 845c3ca3..716116bf 100644
--- a/rigify/rigs/spines/basic_tail.py
+++ b/rigify/rigs/spines/basic_tail.py
@@ -23,7 +23,8 @@ import bpy
from itertools import count
from ...utils.naming import strip_org, make_derived_name
-from ...utils.bones import put_bone, flip_bone, is_same_position, connect_bbone_chain_handles, align_bone_orientation
+from ...utils.bones import put_bone, flip_bone, is_same_position, connect_bbone_chain_handles
+from ...utils.bones import align_bone_orientation, set_bone_widget_transform
from ...utils.widgets_basic import create_circle_widget
from ...utils.layers import ControlLayersOption
from ...utils.misc import map_list
@@ -69,7 +70,7 @@ class Rig(BaseHeadTailRig):
@stage.generate_widgets
def make_master_control_widget(self):
bone = self.bones.ctrl.master
- self.get_bone(bone).custom_shape_transform = self.get_bone(self.bones.ctrl.tweak[-1])
+ set_bone_widget_transform(self.obj, bone, self.bones.ctrl.tweak[-1])
create_ballsocket_widget(self.obj, bone, size=0.7)
####################################################
diff --git a/rigify/rigs/spines/spine_rigs.py b/rigify/rigs/spines/spine_rigs.py
index cf563994..9f62595a 100644
--- a/rigify/rigs/spines/spine_rigs.py
+++ b/rigify/rigs/spines/spine_rigs.py
@@ -24,7 +24,7 @@ from itertools import count
from ...utils.layers import ControlLayersOption
from ...utils.naming import make_derived_name
-from ...utils.bones import align_bone_orientation, align_bone_to_axis, put_bone
+from ...utils.bones import align_bone_orientation, align_bone_to_axis, put_bone, set_bone_widget_transform
from ...utils.widgets_basic import create_cube_widget
from ...utils.switch_parent import SwitchParentBuilder
from ...utils.components import CustomPivotControl
@@ -123,10 +123,9 @@ class BaseSpineRig(TweakChainRig):
@stage.generate_widgets
def make_master_control_widget(self):
- create_cube_widget(
- self.obj, self.bones.ctrl.master,
- radius=0.5,
- )
+ master = self.bones.ctrl.master
+ set_bone_widget_transform(self.obj, master, self.get_master_control_output())
+ create_cube_widget(self.obj, master, radius=0.5)
####################################################
# Tweak bones