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:
authorDemeter Dzadik <Mets>2020-11-07 17:32:29 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2020-11-24 17:23:54 +0300
commit46590bb7800eea5aa1826f6e9305d7e0320829be (patch)
tree23e19892343abcc9ab1ffcf5f1b5a4e072c997bd /rigify/utils/bones.py
parent3bbcfa7c2d5ca564804c30f0b19c219e00dc4892 (diff)
Rigify: Fix T78463: better support unguligrade animals (horse) setup.
Add support for 5 bone chains to the limbs.paw rig. Implement a new limbs.rear_paw rig, which provides a three bone IK mechanism designed to keep the first and third bones nearly parallel by default (based on a YouTube video by @Pieriko as suggested by @icappiello). Implement a limbs.front_paw rig with automation that aims to keep the angle between second and third bones mostly stable by default (has influence option), as suitable for front paws. The horse and wolf metarigs are updated to use these new rig types, with the horse rig further overhauled by @icappiello. Maniphest Tasks: T78463 Differential Revision: https://developer.blender.org/D8496
Diffstat (limited to 'rigify/utils/bones.py')
-rw-r--r--rigify/utils/bones.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/rigify/utils/bones.py b/rigify/utils/bones.py
index f0341a8f..f0e5e388 100644
--- a/rigify/utils/bones.py
+++ b/rigify/utils/bones.py
@@ -659,13 +659,15 @@ def align_bone_to_axis(obj, bone_name, axis, *, length=None, roll=0, flip=False)
bone_e.roll = roll
-def set_bone_widget_transform(obj, bone_name, transform_bone, use_size=True, scale=1.0):
+def set_bone_widget_transform(obj, bone_name, transform_bone, use_size=True, scale=1.0, target_size=False):
assert obj.mode != 'EDIT'
bone = obj.pose.bones[bone_name]
if transform_bone and transform_bone != bone_name:
- bone.custom_shape_transform = obj.pose.bones[transform_bone]
+ bone.custom_shape_transform = bone2 = obj.pose.bones[transform_bone]
+ if use_size and target_size:
+ scale *= bone2.length / bone.length
else:
bone.custom_shape_transform = None