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-09-29 12:10:01 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2019-09-29 17:48:59 +0300
commit704ace1b48181180b70a5b4ed0039420c4acb4db (patch)
tree134f9f39da2b1df29ab4f691ef8fb16df7ef9157 /rigify/utils/layers.py
parent6bb8ab3ad7b8131ffa9ed3261b6da8627903f3b1 (diff)
Rigify: implement priorities to add toes to the FK bone group.
Toes behave as FK, but are needed both in IK and FK mode.
Diffstat (limited to 'rigify/utils/layers.py')
-rw-r--r--rigify/utils/layers.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/rigify/utils/layers.py b/rigify/utils/layers.py
index b624e9ac..7a1bcef8 100644
--- a/rigify/utils/layers.py
+++ b/rigify/utils/layers.py
@@ -52,6 +52,13 @@ def get_layers(layers):
return [x in layers for x in range(0, 32)]
+def set_bone_layers(bone, layers, combine=False):
+ if combine:
+ bone.layers = [ a or b for a, b in zip(bone.layers, layers) ]
+ else:
+ bone.layers = layers
+
+
#=============================================
# UI utilities
#=============================================
@@ -72,7 +79,7 @@ class ControlLayersOption:
else:
return None
- def assign(self, params, bone_set, bone_list):
+ def assign(self, params, bone_set, bone_list, combine=False):
layers = self.get(params)
if isinstance(bone_set, bpy.types.Object):
@@ -84,7 +91,18 @@ class ControlLayersOption:
if isinstance(bone, bpy.types.PoseBone):
bone = bone.bone
- bone.layers = layers
+ set_bone_layers(bone, layers, combine)
+
+ def assign_rig(self, rig, bone_list, combine=False, priority=None):
+ layers = self.get(rig.params)
+ bone_set = rig.obj.data.bones
+
+ if layers:
+ for name in bone_list:
+ set_bone_layers(bone_set[name], layers, combine)
+
+ if priority is not None:
+ rig.generator.set_layer_group_priority(name, layers, priority)
def add_parameters(self, params):
prop_toggle = bpy.props.BoolProperty(