Skip to content

Commit d65db73

Browse files
committed
leg and paw fix: mch_parent_socket was missing
1 parent 5d3746c commit d65db73

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

rigs/limbs/leg.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ def create_def(self, tweaks):
363363

364364
# Rubber hose drivers
365365
pb = self.obj.pose.bones
366-
for i,t in enumerate( tweaks[1:-1] ):
366+
for i, t in enumerate(tweaks[1:-1]):
367367
# Create custom property on tweak bone to control rubber hose
368368
name = 'rubber_tweak'
369369

@@ -406,18 +406,18 @@ def create_def(self, tweaks):
406406
def create_ik(self, parent):
407407
org_bones = self.org_bones
408408

409-
bpy.ops.object.mode_set(mode ='EDIT')
409+
bpy.ops.object.mode_set(mode='EDIT')
410410
eb = self.obj.data.edit_bones
411411

412412
ctrl = get_bone_name(org_bones[0], 'ctrl', 'ik')
413413
mch_ik = get_bone_name(org_bones[0], 'mch', 'ik')
414414
mch_target = get_bone_name(org_bones[0], 'mch', 'ik_target')
415415

416-
for o, ik in zip( org_bones, [ ctrl, mch_ik, mch_target ] ):
417-
bone = copy_bone( self.obj, o, ik )
416+
for o, ik in zip(org_bones, [ctrl, mch_ik, mch_target]):
417+
bone = copy_bone(self.obj, o, ik)
418418

419-
if org_bones.index(o) == len( org_bones ) - 1:
420-
eb[ bone ].length /= 4
419+
if org_bones.index(o) == len(org_bones) - 1:
420+
eb[bone].length /= 4
421421

422422
# Create MCH Stretch
423423
mch_str = copy_bone(
@@ -687,6 +687,13 @@ def create_leg(self, bones):
687687
else:
688688
leg_parent = None
689689

690+
mch_name = get_bone_name(strip_org(org_bones[0]), 'mch', 'parent_socket')
691+
mch_main_parent = copy_bone(self.obj, org_bones[0], mch_name)
692+
eb[mch_main_parent].length = eb[org_bones[0]].length / 12
693+
eb[mch_main_parent].parent = eb[bones['parent']]
694+
eb[mch_main_parent].roll = 0.0
695+
eb[bones['main_parent']].parent = eb[mch_main_parent]
696+
690697
# Create heel ctrl bone
691698
heel = get_bone_name(org_bones[2], 'ctrl', 'heel_ik')
692699
heel = copy_bone(self.obj, org_bones[2], heel)
@@ -948,6 +955,10 @@ def create_leg(self, bones):
948955
'max_y' : 1.05,
949956
'owner_space' : 'LOCAL'
950957
})
958+
make_constraint(self, mch_main_parent, {
959+
'constraint': 'COPY_ROTATION',
960+
'subtarget': org_bones[0]
961+
})
951962

952963
# Create ik/fk switch property
953964
pb_parent = pb[bones['main_parent']]
@@ -1481,7 +1492,7 @@ def parameters_ui(layout, params):
14811492

14821493
row = col.row(align=True)
14831494

1484-
for i in range(16,24):
1495+
for i in range(16, 24):
14851496
icon = "NONE"
14861497
if bone_layers[i]:
14871498
icon = "LAYER_ACTIVE"
@@ -1490,15 +1501,15 @@ def parameters_ui(layout, params):
14901501
col = r.column(align=True)
14911502
row = col.row(align=True)
14921503

1493-
for i in range(8,16):
1504+
for i in range(8, 16):
14941505
icon = "NONE"
14951506
if bone_layers[i]:
14961507
icon = "LAYER_ACTIVE"
14971508
row.prop(params, layer + "_layers", index=i, toggle=True, text="", icon=icon)
14981509

14991510
row = col.row(align=True)
15001511

1501-
for i in range(24,32):
1512+
for i in range(24, 32):
15021513
icon = "NONE"
15031514
if bone_layers[i]:
15041515
icon = "LAYER_ACTIVE"

rigs/limbs/paw.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,13 @@ def create_paw(self, bones):
672672
else:
673673
paw_parent = None
674674

675+
mch_name = get_bone_name(strip_org(org_bones[0]), 'mch', 'parent_socket')
676+
mch_main_parent = copy_bone(self.obj, org_bones[0], mch_name)
677+
eb[mch_main_parent].length = eb[org_bones[0]].length / 12
678+
eb[mch_main_parent].parent = eb[bones['parent']]
679+
eb[mch_main_parent].roll = 0.0
680+
eb[bones['main_parent']].parent = eb[mch_main_parent]
681+
675682
# Create heel ctrl bone
676683
heel = get_bone_name(org_bones[2], 'ctrl', 'heel_ik')
677684
heel = copy_bone(self.obj, org_bones[2], heel)
@@ -776,6 +783,10 @@ def create_paw(self, bones):
776783
'max_y' : 1.05,
777784
'owner_space' : 'LOCAL'
778785
})
786+
make_constraint(self, mch_main_parent, {
787+
'constraint': 'COPY_ROTATION',
788+
'subtarget': org_bones[0]
789+
})
779790

780791
pb = self.obj.pose.bones
781792

@@ -1309,7 +1320,7 @@ def parameters_ui(layout, params):
13091320

13101321
row = col.row(align=True)
13111322

1312-
for i in range(16,24):
1323+
for i in range(16, 24):
13131324
icon = "NONE"
13141325
if bone_layers[i]:
13151326
icon = "LAYER_ACTIVE"
@@ -1318,15 +1329,15 @@ def parameters_ui(layout, params):
13181329
col = r.column(align=True)
13191330
row = col.row(align=True)
13201331

1321-
for i in range(8,16):
1332+
for i in range(8, 16):
13221333
icon = "NONE"
13231334
if bone_layers[i]:
13241335
icon = "LAYER_ACTIVE"
13251336
row.prop(params, layer + "_layers", index=i, toggle=True, text="", icon=icon)
13261337

13271338
row = col.row(align=True)
13281339

1329-
for i in range(24,32):
1340+
for i in range(24, 32):
13301341
icon = "NONE"
13311342
if bone_layers[i]:
13321343
icon = "LAYER_ACTIVE"

ui.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -962,8 +962,6 @@ def FktoIk(rig, window='ALL'):
962962
limb_generated_names.pop(group)
963963
break
964964

965-
# arm = rig.data
966-
967965

968966
def IktoFk(rig, window='ALL'):
969967

0 commit comments

Comments
 (0)