Skip to content

Commit cafd248

Browse files
committed
fix: pop external folder in rig_lists.rigs_dict
1 parent e916838 commit cafd248

File tree

2 files changed

+69
-1
lines changed

2 files changed

+69
-1
lines changed

__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ def update_external_rigs(self, context):
127127
custom_rigs_folder = bpy.context.user_preferences.addons['rigify'].preferences.custom_rigs_folder
128128

129129
if custom_rigs_folder == "":
130-
rig_lists.rigs_dict['external'] = {}
130+
rig_lists.rigs_dict.pop('external')
131+
return
131132

132133
if custom_rigs_folder not in sys.path:
133134
sys.path.append(bpy.context.user_preferences.addons['rigify'].preferences.custom_rigs_folder)

rigs/experimental/bendy_face.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import bpy, re
2+
from mathutils import Vector
3+
from ...utils import copy_bone, flip_bone, put_bone
4+
from ...utils import org, strip_org, make_deformer_name, connected_children_names, make_mechanism_name
5+
from ...utils import create_circle_widget, create_sphere_widget, create_widget, create_cube_widget
6+
from ...utils import MetarigError
7+
from rna_prop_ui import rna_idprop_ui_prop_get
8+
from ..widgets import create_face_widget, create_eye_widget, create_eyes_widget, create_ear_widget, create_jaw_widget, create_teeth_widget
9+
10+
11+
class Rig:
12+
13+
CTRL_SCALE = 0.1
14+
15+
def __init__(self, obj, bone_name, params):
16+
self.obj = obj
17+
self.bones = dict()
18+
self.bones['org'] = [bone_name]
19+
20+
for edit_bone in self.obj.data.edit_bones[bone_name].children_recursive:
21+
self.bones['org'].append(edit_bone.name)
22+
23+
for edit_bone in self.obj.data.edit_bones[bone_name].children_recursive:
24+
if self.obj.pose.bones[edit_bone.name].rigify_type != "":
25+
self.bones['org'].remove(edit_bone.name)
26+
for child in edit_bone.children_recursive:
27+
self.bones['org'].remove(child.name)
28+
29+
self.bones['ctrl'] = dict()
30+
31+
def create_controls(self):
32+
bpy.ops.object.mode_set(mode='EDIT')
33+
edit_bones = self.obj.data.edit_bones
34+
35+
start_bones = []
36+
37+
for name in self.bones['org'][1:]:
38+
if not edit_bones[name].use_connect:
39+
start_bones.append(name)
40+
41+
for name in start_bones:
42+
subchain = [name]
43+
subchain.extend(connected_children_names(self.obj, name))
44+
self.bones['ctrl'][strip_org(name)] = []
45+
46+
for subname in subchain:
47+
ctrl = copy_bone(self.obj, self.bones['org'][0], assign_name=strip_org(subname))
48+
put_bone(self.obj, ctrl, edit_bones[subname].head)
49+
edit_bones[ctrl].length *= self.CTRL_SCALE
50+
self.bones['ctrl'][strip_org(name)].append(ctrl)
51+
52+
last_name = subchain[-1]
53+
last_ctrl = copy_bone(self.obj, self.bones['org'][0], assign_name=strip_org(last_name))
54+
put_bone(self.obj, last_ctrl, edit_bones[last_name].tail)
55+
edit_bones[last_ctrl].length *= self.CTRL_SCALE
56+
self.bones['ctrl'][strip_org(name)].append(last_ctrl)
57+
58+
bpy.ops.object.mode_set(mode='OBJECT')
59+
for subchain in self.bones['ctrl']:
60+
for ctrl in self.bones['ctrl'][subchain]:
61+
create_sphere_widget(self.obj, ctrl)
62+
63+
def generate(self):
64+
65+
self.create_controls()
66+
67+
return [""]

0 commit comments

Comments
 (0)