Skip to content

Commit d8beaac

Browse files
committed
Convert the updated rigs to use stage decorators where appropriate.
1 parent 130c0ef commit d8beaac

File tree

4 files changed

+59
-93
lines changed

4 files changed

+59
-93
lines changed

rigs/basic/copy_chain.py

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
from ...utils.widgets_basic import create_bone_widget
2929
from ...utils.misc import map_list, map_apply
3030

31+
from ...base_rig import *
32+
3133

3234
class Rig(SimpleChainRig):
3335
""" A "copy_chain" rig. All it does is duplicate the original bone chain
@@ -43,41 +45,45 @@ def initialize(self):
4345
self.make_deforms = self.params.make_deforms
4446

4547

46-
def generate_bones(self):
47-
# Create the deformation and control bone chains.
48+
@stage_generate_bones
49+
def make_control_chain(self):
4850
if self.make_controls:
49-
self.make_control_chain()
51+
super(Rig,self).make_control_chain()
5052

53+
@stage_generate_bones
54+
def make_deform_chain(self):
5155
if self.make_deforms:
52-
self.make_deform_chain()
53-
56+
super(Rig,self).make_deform_chain()
5457

55-
def parent_bones(self):
58+
@stage_parent_bones
59+
def parent_control_chain(self):
5660
if self.make_controls:
57-
self.parent_control_chain()
61+
super(Rig,self).parent_control_chain()
5862

63+
@stage_parent_bones
64+
def parent_deform_chain(self):
5965
if self.make_deforms:
60-
self.parent_deform_chain()
61-
66+
super(Rig,self).parent_deform_chain()
6267

63-
def configure_bones(self):
68+
@stage_configure_bones
69+
def configure_control_chain(self):
6470
if self.make_controls:
65-
self.configure_control_chain()
71+
super(Rig,self).configure_control_chain()
6672

67-
68-
def rig_bones(self):
69-
# Create the deformation and control bone chain constraints.
73+
@stage_rig_bones
74+
def rig_org_chain(self):
7075
if self.make_controls:
71-
self.rig_org_chain()
76+
super(Rig,self).rig_org_chain()
7277

78+
@stage_rig_bones
79+
def rig_deform_chain(self):
7380
if self.make_deforms:
74-
self.rig_deform_chain()
75-
81+
super(Rig,self).rig_deform_chain()
7682

77-
def generate_widgets(self):
78-
# Create control widgets
83+
@stage_generate_widgets
84+
def make_control_widgets(self):
7985
if self.make_controls:
80-
self.make_control_widgets()
86+
super(Rig,self).make_control_widgets()
8187

8288

8389
@classmethod

rigs/chain_rigs.py

Lines changed: 14 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import bpy
2222
from itertools import count, repeat
2323

24-
from ..base_rig import BaseRig
24+
from ..base_rig import *
2525

2626
from ..utils.errors import MetarigError
2727
from ..utils.rig import connected_children_names
@@ -43,16 +43,14 @@ def initialize(self):
4343
bbone_segments = None
4444

4545
# Generate
46-
def generate_bones(self):
47-
self.make_control_chain()
48-
self.make_deform_chain()
49-
46+
@stage_generate_bones
5047
def make_control_chain(self):
5148
self.bones.ctrl.main = map_list(self.make_control_bone, self.bones.org)
5249

5350
def make_control_bone(self, org):
5451
return self.copy_bone(org, strip_org(org), parent=True)
5552

53+
@stage_generate_bones
5654
def make_deform_chain(self):
5755
self.bones.deform = map_list(self.make_deform_bone, self.bones.org)
5856

@@ -63,47 +61,39 @@ def make_deform_bone(self, org):
6361
return name
6462

6563
# Parent
66-
def parent_bones(self):
67-
self.parent_control_chain()
68-
self.parent_deform_chain()
69-
64+
@stage_parent_bones
7065
def parent_control_chain(self):
7166
self.parent_bone_chain(self.bones.ctrl.main, use_connect=True)
7267

68+
@stage_parent_bones
7369
def parent_deform_chain(self):
7470
self.parent_bone_chain(self.bones.deform, use_connect=True)
7571

7672
# Configure
77-
def configure_bones(self):
78-
self.configure_control_chain()
79-
73+
@stage_configure_bones
8074
def configure_control_chain(self):
8175
map_apply(self.configure_control_bone, self.bones.org, self.bones.ctrl.main)
8276

8377
def configure_control_bone(self, org, ctrl):
8478
self.copy_bone_properties(org, ctrl)
8579

8680
# Rig
87-
def rig_bones(self):
88-
self.rig_org_chain()
89-
self.rig_deform_chain()
90-
81+
@stage_rig_bones
9182
def rig_org_chain(self):
9283
map_apply(self.rig_org_bone, self.bones.org, self.bones.ctrl.main)
9384

9485
def rig_org_bone(self, org, ctrl):
9586
self.make_constraint(org, 'COPY_TRANSFORMS', ctrl)
9687

88+
@stage_rig_bones
9789
def rig_deform_chain(self):
9890
map_apply(self.rig_deform_bone, self.bones.org, self.bones.deform)
9991

10092
def rig_deform_bone(self, org, deform):
10193
self.make_constraint(deform, 'COPY_TRANSFORMS', org)
10294

10395
# Widgets
104-
def generate_widgets(self):
105-
self.make_control_widgets()
106-
96+
@stage_generate_widgets
10797
def make_control_widgets(self):
10898
map_apply(self.make_control_widget, self.bones.ctrl.main)
10999

@@ -115,11 +105,7 @@ class TweakChainRig(SimpleChainRig):
115105
"""A rig that adds tweak controls to the triple chain."""
116106

117107
# Generate
118-
def generate_bones(self):
119-
self.make_control_chain()
120-
self.make_tweak_chain()
121-
self.make_deform_chain()
122-
108+
@stage_generate_bones
123109
def make_tweak_chain(self):
124110
orgs = self.bones.org
125111
self.bones.ctrl.tweak = map_list(self.make_tweak_bone, count(0), orgs + orgs[-1:])
@@ -135,20 +121,13 @@ def make_tweak_bone(self, i, org):
135121
return name
136122

137123
# Parent
138-
def parent_bones(self):
139-
self.parent_control_chain()
140-
self.parent_tweak_chain()
141-
self.parent_deform_chain()
142-
124+
@stage_parent_bones
143125
def parent_tweak_chain(self):
144126
ctrl = self.bones.ctrl
145127
map_apply(self.set_bone_parent, ctrl.tweak, ctrl.main + ctrl.main[-1:])
146128

147129
# Configure
148-
def configure_bones(self):
149-
self.configure_control_chain()
150-
self.configure_tweak_chain()
151-
130+
@stage_configure_bones
152131
def configure_tweak_chain(self):
153132
map_apply(self.configure_tweak_bone, count(0), self.bones.ctrl.tweak)
154133

@@ -165,10 +144,7 @@ def configure_tweak_bone(self, i, tweak):
165144
tweak_pb.lock_scale = (False, True, False)
166145

167146
# Rig
168-
def rig_bones(self):
169-
self.rig_org_chain()
170-
self.rig_deform_chain()
171-
147+
@stage_rig_bones
172148
def rig_org_chain(self):
173149
tweaks = self.bones.ctrl.tweak
174150
map_apply(self.rig_org_bone, self.bones.org, tweaks, tweaks[1:])
@@ -179,10 +155,7 @@ def rig_org_bone(self, org, tweak, next_tweak):
179155
self.make_constraint(org, 'STRETCH_TO', next_tweak)
180156

181157
# Widgets
182-
def generate_widgets(self):
183-
self.make_control_widgets()
184-
self.make_tweak_widgets()
185-
158+
@stage_generate_widgets
186159
def make_tweak_widgets(self):
187160
map_apply(self.make_tweak_widget, self.bones.ctrl.tweak)
188161

rigs/limbs/simple_tentacle.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from ...utils.layers import ControlLayersOption
66
from ...utils.misc import map_list, map_apply
77

8+
from ...base_rig import *
89
from ..chain_rigs import TweakChainRig
910

1011

@@ -20,22 +21,20 @@ def prepare_bones(self):
2021
align_chain_x_axis(self.obj, self.bones.org)
2122

2223
# Parent
24+
@stage_parent_bones
2325
def parent_control_chain(self):
2426
# use_connect=False for backward compatibility
2527
self.parent_bone_chain(self.bones.ctrl.main, use_connect=False)
2628

2729
# Configure
30+
@stage_configure_bones
2831
def configure_tweak_chain(self):
2932
super(Rig,self).configure_tweak_chain()
3033

3134
ControlLayersOption.TWEAK.assign(self.params, self.obj, self.bones.ctrl.tweak)
3235

3336
# Rig
34-
def rig_bones(self):
35-
super(Rig,self).rig_bones()
36-
37-
self.rig_control_chain()
38-
37+
@stage_rig_bones
3938
def rig_control_chain(self):
4039
ctrls = self.bones.ctrl.main
4140
map_apply(self.rig_control_bone, ctrls, [None] + ctrls)

rigs/limbs/super_finger.py

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from ...utils.widgets_basic import create_circle_widget
1212
from ...utils.misc import map_list, map_apply
1313

14+
from ...base_rig import *
1415
from ..chain_rigs import SimpleChainRig
1516

1617

@@ -29,14 +30,8 @@ def prepare_bones(self):
2930
###############
3031
# GENERATE
3132

32-
def generate_bones(self):
33-
self.make_master_control_bone()
34-
self.make_control_chain()
35-
self.make_mch_bend_chain()
36-
self.make_mch_stretch_chain()
37-
self.make_deform_chain()
38-
3933
# Master control:
34+
@stage_generate_bones
4035
def make_master_control_bone(self):
4136
orgs = self.bones.org
4237
name = self.copy_bone(orgs[0], self.master_control_name(orgs[0]), parent=True)
@@ -54,6 +49,7 @@ def master_control_name(self, org_name):
5449
return name_base + 'master' + name_suffix
5550

5651
# Detail control:
52+
@stage_generate_bones
5753
def make_control_chain(self):
5854
orgs = self.bones.org
5955
self.bones.ctrl.main = map_list(self.make_control_bone, orgs)
@@ -69,13 +65,16 @@ def make_tip_control_bone(self, org, name_org):
6965
self.get_bone(name).length /= 2
7066

7167
return name
68+
7269
# MCH:
70+
@stage_generate_bones
7371
def make_mch_bend_chain(self):
7472
self.bones.mch.bend = map_list(self.make_mch_bend_bone, self.bones.org)
7573

7674
def make_mch_bend_bone(self, org):
7775
return self.copy_bone(org, make_mechanism_name(strip_org(org)) + "_drv", parent=False)
7876

77+
@stage_generate_bones
7978
def make_mch_stretch_chain(self):
8079
self.bones.mch.stretch = map_list(self.make_mch_stretch_bone, self.bones.org)
8180

@@ -85,31 +84,25 @@ def make_mch_stretch_bone(self, org):
8584
###############
8685
# PARENT
8786

88-
def parent_bones(self):
89-
self.parent_control_chain()
90-
self.parent_mch_bend_chain()
91-
self.parent_mch_stretch_chain()
92-
self.parent_deform_chain()
93-
87+
@stage_parent_bones
9488
def parent_control_chain(self):
9589
ctrls = self.bones.ctrl.main
9690
map_apply(self.set_bone_parent, ctrls, self.bones.mch.bend + ctrls[-2:])
9791

92+
@stage_parent_bones
9893
def parent_mch_bend_chain(self):
9994
ctrls = self.bones.ctrl.main
10095
map_apply(self.set_bone_parent, self.bones.mch.bend, [self.first_parent] + ctrls)
10196

97+
@stage_parent_bones
10298
def parent_mch_stretch_chain(self):
10399
ctrls = self.bones.ctrl.main
104100
map_apply(self.set_bone_parent, self.bones.mch.stretch, [self.first_parent] + ctrls[1:])
105101

106102
###############
107103
# CONFIGURE
108104

109-
def configure_bones(self):
110-
self.configure_master_control_bone()
111-
self.configure_control_chain()
112-
105+
@stage_configure_bones
113106
def configure_master_control_bone(self):
114107
master = self.bones.ctrl.master
115108

@@ -122,6 +115,7 @@ def configure_master_control_bone(self):
122115
self.script.add_panel_selected_check(self.bones.ctrl.flatten())
123116
self.script.add_panel_custom_prop(master, 'finger_curve', text="Curvature", slider=True)
124117

118+
@stage_configure_bones
125119
def configure_control_chain(self):
126120
map_apply(self.configure_control_bone, self.bones.org + [None], self.bones.ctrl.main)
127121

@@ -137,12 +131,6 @@ def configure_control_bone(self, org, ctrl):
137131
###############
138132
# RIG
139133

140-
def rig_bones(self):
141-
self.rig_mch_bend_chain()
142-
self.rig_mch_stretch_chain()
143-
self.rig_org_chain()
144-
self.rig_deform_chain()
145-
146134
# Match axis to expression
147135
axis_options = {
148136
"automatic": {"axis": 0,
@@ -162,6 +150,7 @@ def rig_bones(self):
162150
}
163151

164152
# MCH:
153+
@stage_rig_bones
165154
def rig_mch_bend_chain(self):
166155
map_apply(self.rig_mch_bend_bone, count(0), self.bones.mch.bend)
167156

@@ -183,6 +172,7 @@ def rig_mch_bend_bone(self, i, mch):
183172
variables={'sy': (master, '.scale.y')}
184173
)
185174

175+
@stage_rig_bones
186176
def rig_mch_stretch_chain(self):
187177
ctrls = self.bones.ctrl.main
188178
map_apply(self.rig_mch_stretch_bone, count(0), self.bones.mch.stretch, ctrls, ctrls[1:])
@@ -196,6 +186,7 @@ def rig_mch_stretch_bone(self, i, mch, ctrl, ctrl_next):
196186
self.make_constraint(mch, 'STRETCH_TO', ctrl_next, volume='NO_VOLUME')
197187

198188
# ORG:
189+
@stage_rig_bones
199190
def rig_org_chain(self):
200191
map_apply(self.rig_org_bone, self.bones.org, self.bones.mch.stretch)
201192

@@ -212,10 +203,7 @@ def rig_deform_bone(self, org, deform):
212203
###############
213204
# WIDGETS
214205

215-
def generate_widgets(self):
216-
self.make_master_control_widget()
217-
self.make_control_widgets()
218-
206+
@stage_generate_widgets
219207
def make_master_control_widget(self):
220208
master_name = self.bones.ctrl.master
221209

0 commit comments

Comments
 (0)