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/generate.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/generate.py')
-rw-r--r--rigify/generate.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/rigify/generate.py b/rigify/generate.py
index bebe4fc3..88b216ed 100644
--- a/rigify/generate.py
+++ b/rigify/generate.py
@@ -463,7 +463,7 @@ class Generator(base_generate.BaseGenerator):
create_selection_sets(obj, metarig)
# Create Bone Groups
- create_bone_groups(obj, metarig)
+ create_bone_groups(obj, metarig, self.layer_group_priorities)
t.tick("The rest: ")
@@ -544,12 +544,13 @@ def create_selection_sets(obj, metarig):
bone_id.name = bone.name
-def create_bone_groups(obj, metarig):
+def create_bone_groups(obj, metarig, priorities={}):
bpy.ops.object.mode_set(mode='OBJECT')
pb = obj.pose.bones
layers = metarig.data.rigify_layers
groups = metarig.data.rigify_colors
+ dummy = {}
# Create BGs
for l in layers:
@@ -566,7 +567,9 @@ def create_bone_groups(obj, metarig):
for b in pb:
try:
- layer_index = b.bone.layers[:].index(True)
+ prios = priorities.get(b.name, dummy)
+ enabled = [ i for i, v in enumerate(b.bone.layers) if v ]
+ layer_index = max(enabled, key=lambda i: prios.get(i, 0))
except ValueError:
continue
if layer_index > len(layers) - 1: # bone is on reserved layers