diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2019-09-29 12:10:01 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2019-09-29 17:48:59 +0300 |
commit | 704ace1b48181180b70a5b4ed0039420c4acb4db (patch) | |
tree | 134f9f39da2b1df29ab4f691ef8fb16df7ef9157 /rigify/generate.py | |
parent | 6bb8ab3ad7b8131ffa9ed3261b6da8627903f3b1 (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.py | 9 |
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 |