Rigify: implement FK controls for basic_spine with an option to disable.

All metarigs are updated to use split spine components, as super_spine
is deprecated and won't generate FK controls for backward compatibility.
This commit is contained in:
Alexander Gavrilov 2019-10-15 16:50:44 +03:00
parent f4c101d692
commit dd72315176
10 changed files with 755 additions and 637 deletions

View File

@ -165,47 +165,19 @@ def create(obj):
bones = {}
bone = arm.edit_bones.new('spine')
bone.head[:] = -0.0000, 0.1371, 0.0894
bone.tail[:] = -0.0000, 0.1039, 0.0907
bone.roll = 0.0000
bone.use_connect = False
bones['spine'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = -0.0000, 0.1039, 0.0907
bone.tail[:] = -0.0000, 0.0757, 0.0880
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('t_feather.L')
bone.head[:] = 0.0112, 0.1017, 0.0907
bone.tail[:] = 0.0167, 0.1345, 0.0894
bone.roll = 0.0032
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['t_feather.L'] = bone.name
bone = arm.edit_bones.new('t_feather.R')
bone.head[:] = -0.0112, 0.1017, 0.0907
bone.tail[:] = -0.0167, 0.1345, 0.0894
bone.roll = -0.0032
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['t_feather.R'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = -0.0000, 0.0757, 0.0880
bone.tail[:] = -0.0000, 0.0451, 0.0845
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = -0.0000, 0.0451, 0.0845
bone.tail[:] = -0.0000, 0.0192, 0.0888
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bone.use_connect = False
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = -0.0000, 0.0451, 0.0845
bone.tail[:] = -0.0000, 0.0757, 0.0880
bone.roll = 0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.004')
bone.head[:] = -0.0000, 0.0192, 0.0888
bone.tail[:] = -0.0000, -0.0106, 0.0979
@ -213,6 +185,13 @@ def create(obj):
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.004'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = -0.0000, 0.0757, 0.0880
bone.tail[:] = -0.0000, 0.1039, 0.0907
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('spine.005')
bone.head[:] = -0.0000, -0.0106, 0.0979
bone.tail[:] = -0.0000, -0.0298, 0.1158
@ -248,6 +227,13 @@ def create(obj):
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.004']]
bones['thigh.R'] = bone.name
bone = arm.edit_bones.new('spine')
bone.head[:] = -0.0000, 0.1039, 0.0907
bone.tail[:] = -0.0000, 0.1371, 0.0894
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine'] = bone.name
bone = arm.edit_bones.new('shoulder.L')
bone.head[:] = 0.0014, -0.0217, 0.0893
bone.tail[:] = 0.0076, -0.0020, 0.1179
@ -283,6 +269,20 @@ def create(obj):
bone.use_connect = True
bone.parent = arm.edit_bones[bones['thigh.R']]
bones['shin.R'] = bone.name
bone = arm.edit_bones.new('t_feather.L')
bone.head[:] = 0.0112, 0.1017, 0.0907
bone.tail[:] = 0.0167, 0.1345, 0.0894
bone.roll = 0.0032
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['t_feather.L'] = bone.name
bone = arm.edit_bones.new('t_feather.R')
bone.head[:] = -0.0112, 0.1017, 0.0907
bone.tail[:] = -0.0167, 0.1345, 0.0894
bone.roll = -0.0032
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['t_feather.R'] = bone.name
bone = arm.edit_bones.new('Wing.L')
bone.head[:] = 0.0089, 0.0141, 0.1157
bone.tail[:] = 0.0485, 0.0107, 0.1163
@ -294,7 +294,7 @@ def create(obj):
bone.head[:] = -0.0000, -0.0417, 0.1348
bone.tail[:] = -0.0000, -0.0458, 0.1429
bone.roll = 0.0001
bone.use_connect = True
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.006']]
bones['neck.001'] = bone.name
bone = arm.edit_bones.new('Wing.R')
@ -691,8 +691,8 @@ def create(obj):
bones['tongue.003.L'] = bone.name
bpy.ops.object.mode_set(mode='OBJECT')
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = 'spines.super_spine'
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = 'spines.basic_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
@ -700,21 +700,25 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.use_tail = True
pbone.rigify_parameters.pivot_pos = 1
except AttributeError:
pass
try:
pbone.rigify_parameters.tail_pos = 3
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.pivot_pos = 4
except AttributeError:
pass
try:
pbone.rigify_parameters.neck_pos = 8
pbone.rigify_parameters.fk_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.002']]
pbone.rigify_type = 'spines.basic_tail'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.copy_rotation_axes = [True, False, True]
except AttributeError:
@ -723,54 +727,10 @@ def create(obj):
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['t_feather.L']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.make_widget = False
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
pbone = obj.pose.bones[bones['t_feather.R']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.make_widget = False
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.002']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -779,6 +739,14 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.001']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.005']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -859,6 +827,14 @@ def create(obj):
pbone.rigify_parameters.fk_layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['shoulder.L']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)
@ -907,6 +883,30 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['t_feather.L']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.make_widget = False
except AttributeError:
pass
pbone = obj.pose.bones[bones['t_feather.R']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.make_widget = False
except AttributeError:
pass
pbone = obj.pose.bones[bones['Wing.L']]
pbone.rigify_type = 'limbs.simple_tentacle'
pbone.lock_location = (False, False, False)
@ -914,20 +914,31 @@ def create(obj):
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.rigify_parameters.copy_rotation_axes = [False, False, False]
pbone.bone.layers = [False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.copy_rotation_axes = [False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['neck.001']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.super_head'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
pbone = obj.pose.bones[bones['Wing.R']]
pbone.rigify_type = 'limbs.simple_tentacle'
pbone.lock_location = (False, False, False)
@ -935,8 +946,11 @@ def create(obj):
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.rigify_parameters.copy_rotation_axes = [False, False, False]
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.copy_rotation_axes = [False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
@ -1492,5 +1506,7 @@ def create(obj):
arm.layers = [(x in [0, 3, 7, 10, 13, 16, 21, 24]) for x in range(32)]
return bones
if __name__ == "__main__":
create(bpy.context.active_object)

View File

@ -165,40 +165,19 @@ def create(obj):
bones = {}
bone = arm.edit_bones.new('tail.004')
bone.head[:] = -0.0000, 0.5531, 0.2488
bone.tail[:] = -0.0000, 0.4543, 0.2321
bone.roll = 0.0000
bone.use_connect = False
bones['tail.004'] = bone.name
bone = arm.edit_bones.new('tail.003')
bone.head[:] = -0.0000, 0.4543, 0.2321
bone.tail[:] = -0.0000, 0.3513, 0.2284
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['tail.004']]
bones['tail.003'] = bone.name
bone = arm.edit_bones.new('tail.002')
bone.head[:] = -0.0000, 0.3513, 0.2284
bone.tail[:] = -0.0000, 0.2460, 0.2324
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['tail.003']]
bones['tail.002'] = bone.name
bone = arm.edit_bones.new('tail.001')
bone.head[:] = -0.0000, 0.2460, 0.2324
bone.tail[:] = 0.0000, 0.1499, 0.2500
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['tail.002']]
bones['tail.001'] = bone.name
bone = arm.edit_bones.new('spine')
bone.head[:] = 0.0000, 0.1499, 0.2500
bone.tail[:] = 0.0000, 0.0769, 0.2272
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['tail.001']]
bone.use_connect = False
bones['spine'] = bone.name
bone = arm.edit_bones.new('tail.001')
bone.head[:] = 0.0000, 0.1499, 0.2500
bone.tail[:] = -0.0000, 0.2460, 0.2324
bone.roll = 0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['tail.001'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = 0.0000, 0.0769, 0.2272
bone.tail[:] = 0.0000, 0.0180, 0.2240
@ -227,6 +206,13 @@ def create(obj):
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['pelvis.C'] = bone.name
bone = arm.edit_bones.new('tail.002')
bone.head[:] = -0.0000, 0.2460, 0.2324
bone.tail[:] = -0.0000, 0.3513, 0.2284
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['tail.001']]
bones['tail.002'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = 0.0000, 0.0180, 0.2240
bone.tail[:] = 0.0000, -0.0513, 0.2271
@ -248,6 +234,13 @@ def create(obj):
bone.use_connect = False
bone.parent = arm.edit_bones[bones['pelvis.R']]
bones['thigh.R'] = bone.name
bone = arm.edit_bones.new('tail.003')
bone.head[:] = -0.0000, 0.3513, 0.2284
bone.tail[:] = -0.0000, 0.4543, 0.2321
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['tail.002']]
bones['tail.003'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = 0.0000, -0.0513, 0.2271
bone.tail[:] = 0.0000, -0.1571, 0.2355
@ -276,11 +269,18 @@ def create(obj):
bone.use_connect = True
bone.parent = arm.edit_bones[bones['thigh.R']]
bones['shin.R'] = bone.name
bone = arm.edit_bones.new('tail.004')
bone.head[:] = -0.0000, 0.4543, 0.2321
bone.tail[:] = -0.0000, 0.5531, 0.2488
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['tail.003']]
bones['tail.004'] = bone.name
bone = arm.edit_bones.new('spine.004')
bone.head[:] = 0.0000, -0.1571, 0.2355
bone.tail[:] = 0.0000, -0.1736, 0.2395
bone.roll = 0.0000
bone.use_connect = True
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.004'] = bone.name
bone = arm.edit_bones.new('Breast.C')
@ -1384,64 +1384,8 @@ def create(obj):
bones['brow.T.R.003'] = bone.name
bpy.ops.object.mode_set(mode='OBJECT')
pbone = obj.pose.bones[bones['tail.004']]
pbone.rigify_type = 'spines.super_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.use_tail = True
except AttributeError:
pass
try:
pbone.rigify_parameters.pivot_pos = 6
except AttributeError:
pass
try:
pbone.rigify_parameters.neck_pos = 9
except AttributeError:
pass
try:
pbone.rigify_parameters.tail_pos = 4
except AttributeError:
pass
try:
pbone.rigify_parameters.copy_rotation_axes = [True, True, True]
except AttributeError:
pass
pbone = obj.pose.bones[bones['tail.003']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['tail.002']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['tail.001']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.basic_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
@ -1449,11 +1393,31 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.neck_pos = 5
pbone.rigify_parameters.tweak_layers = [False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone.rigify_parameters.fk_layers = [False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['tail.001']]
pbone.rigify_type = 'spines.basic_tail'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.copy_rotation_axes = [True, True, True]
except AttributeError:
pass
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
@ -1504,6 +1468,14 @@ def create(obj):
pbone.rigify_parameters.make_control = False
except AttributeError:
pass
pbone = obj.pose.bones[bones['tail.002']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.002']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -1556,6 +1528,14 @@ def create(obj):
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['tail.003']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -1588,14 +1568,26 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.004']]
pbone = obj.pose.bones[bones['tail.004']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = 'spines.super_head'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
pbone = obj.pose.bones[bones['Breast.C']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)
@ -2987,5 +2979,7 @@ def create(obj):
arm.layers = [(x in [0, 3, 5, 7, 10, 13, 16, 19]) for x in range(32)]
return bones
if __name__ == "__main__":
create(bpy.context.active_object)

View File

@ -163,60 +163,38 @@ def create(obj):
arm.rigify_layers[28].selset = False
arm.rigify_layers[28].group = 1
bones = {}
bone = arm.edit_bones.new('spine')
bone.head[:] = -0.0000, 1.7610, 1.1153
bone.tail[:] = -0.0000, 1.5754, 1.1088
bone.roll = -0.0000
bone.use_connect = False
bones['spine'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = -0.0000, 1.5754, 1.1088
bone.tail[:] = -0.0000, 1.3779, 1.1589
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = -0.0000, 1.3779, 1.1589
bone.tail[:] = -0.0000, 1.1423, 1.3128
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = -0.0000, 1.1423, 1.3128
bone.tail[:] = -0.0000, 1.0291, 1.4191
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('spine.004')
bone.head[:] = -0.0000, 1.0291, 1.4191
bone.tail[:] = -0.0000, 0.9228, 1.4526
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.004'] = bone.name
bone = arm.edit_bones.new('spine.005')
bone.head[:] = -0.0000, 0.9228, 1.4526
bone.tail[:] = -0.0000, 0.6989, 1.4910
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.004']]
bone.use_connect = False
bones['spine.005'] = bone.name
bone = arm.edit_bones.new('spine.004')
bone.head[:] = -0.0000, 0.9228, 1.4526
bone.tail[:] = -0.0000, 1.0291, 1.4191
bone.roll = -0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.005']]
bones['spine.004'] = bone.name
bone = arm.edit_bones.new('spine.006')
bone.head[:] = -0.0000, 0.6989, 1.4910
bone.tail[:] = -0.0000, 0.3824, 1.3801
bone.tail[:] = 0.0000, 0.3824, 1.3801
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.005']]
bones['spine.006'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = -0.0000, 1.0291, 1.4191
bone.tail[:] = -0.0000, 1.1423, 1.3128
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.004']]
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('spine.007')
bone.head[:] = -0.0000, 0.3824, 1.3801
bone.tail[:] = -0.0000, 0.1316, 1.3086
bone.head[:] = 0.0000, 0.3824, 1.3801
bone.tail[:] = 0.0000, 0.1316, 1.3086
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.006']]
@ -256,9 +234,16 @@ def create(obj):
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.006']]
bones['pelvis'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = -0.0000, 1.1423, 1.3128
bone.tail[:] = -0.0000, 1.3779, 1.1589
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.008')
bone.head[:] = -0.0000, 0.1316, 1.3086
bone.tail[:] = -0.0000, -0.1712, 1.2964
bone.head[:] = 0.0000, 0.1316, 1.3086
bone.tail[:] = 0.0000, -0.1712, 1.2964
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.007']]
@ -277,9 +262,16 @@ def create(obj):
bone.use_connect = True
bone.parent = arm.edit_bones[bones['thigh.R']]
bones['shin.R'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = -0.0000, 1.3779, 1.1589
bone.tail[:] = -0.0000, 1.5754, 1.1088
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('spine.009')
bone.head[:] = -0.0000, -0.1712, 1.2964
bone.tail[:] = -0.0000, -0.4908, 1.3031
bone.head[:] = 0.0000, -0.1712, 1.2964
bone.tail[:] = 0.0000, -0.4908, 1.3031
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.008']]
@ -305,9 +297,16 @@ def create(obj):
bone.use_connect = True
bone.parent = arm.edit_bones[bones['shin.R']]
bones['foot.R'] = bone.name
bone = arm.edit_bones.new('spine')
bone.head[:] = -0.0000, 1.5754, 1.1088
bone.tail[:] = -0.0000, 1.7610, 1.1153
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine'] = bone.name
bone = arm.edit_bones.new('spine.010')
bone.head[:] = -0.0000, -0.4908, 1.3031
bone.tail[:] = -0.0000, -0.7593, 1.3786
bone.head[:] = 0.0000, -0.4908, 1.3031
bone.tail[:] = 0.0000, -0.7593, 1.3786
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.009']]
@ -362,10 +361,10 @@ def create(obj):
bone.parent = arm.edit_bones[bones['foot.R']]
bones['r_toe.R'] = bone.name
bone = arm.edit_bones.new('spine.011')
bone.head[:] = -0.0000, -0.7593, 1.3786
bone.tail[:] = -0.0000, -0.9004, 1.5475
bone.head[:] = 0.0000, -0.7593, 1.3786
bone.tail[:] = 0.0000, -0.9004, 1.5475
bone.roll = 0.0000
bone.use_connect = True
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.010']]
bones['spine.011'] = bone.name
bone = arm.edit_bones.new('hair_base.05')
@ -629,8 +628,8 @@ def create(obj):
bones['jaw.001'] = bone.name
bpy.ops.object.mode_set(mode='OBJECT')
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = 'spines.super_spine'
pbone = obj.pose.bones[bones['spine.005']]
pbone.rigify_type = 'spines.basic_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
@ -638,7 +637,7 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.neck_pos = 12
pbone.rigify_parameters.pivot_pos = 3
except AttributeError:
pass
try:
@ -646,61 +645,29 @@ def create(obj):
except AttributeError:
pass
try:
pbone.rigify_parameters.use_tail = True
except AttributeError:
pass
try:
pbone.rigify_parameters.pivot_pos = 8
except AttributeError:
pass
try:
pbone.rigify_parameters.tail_pos = 5
pbone.rigify_parameters.fk_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = 'spines.basic_tail'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.copy_rotation_axes = [True, False, True]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.002']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.005']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.006']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -709,6 +676,14 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.007']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -805,6 +780,14 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.002']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.008']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -829,6 +812,14 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.001']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.009']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -861,6 +852,14 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.010']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -934,13 +933,21 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.011']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.super_head'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['hair_base.05']]
pbone.rigify_type = 'limbs.super_finger'
pbone.lock_location = (False, False, False)
@ -1368,5 +1375,7 @@ def create(obj):
arm.layers = [(x in [0, 3, 4, 7, 10, 13, 16, 19, 21]) for x in range(32)]
return bones
if __name__ == "__main__":
create(bpy.context.active_object)

View File

@ -165,40 +165,40 @@ def create(obj):
bones = {}
bone = arm.edit_bones.new('spine')
bone.head[:] = -0.0000, 1.3362, 0.4776
bone.tail[:] = -0.0000, 1.0816, 0.4540
bone.roll = 0.0000
bone = arm.edit_bones.new('spine.003')
bone.head[:] = -0.0000, 0.3182, 0.4031
bone.tail[:] = -0.0000, 0.0152, 0.3904
bone.roll = 0.0001
bone.use_connect = False
bones['spine'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = -0.0000, 1.0816, 0.4540
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = -0.0000, 0.3182, 0.4031
bone.tail[:] = -0.0000, 0.7152, 0.4305
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('back_fin.T.Bk')
bone.head[:] = 0.0000, 1.2501, 0.5345
bone.tail[:] = 0.0000, 1.5211, 0.7594
bone.roll = 0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['back_fin.T.Bk'] = bone.name
bone = arm.edit_bones.new('back_fin.B.Bk')
bone.head[:] = 0.0000, 1.2305, 0.4158
bone.tail[:] = 0.0000, 1.3289, 0.2452
bone.roll = 0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['back_fin.B.Bk'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = -0.0000, 0.7152, 0.4305
bone.tail[:] = -0.0000, 0.3182, 0.4031
bone.tail[:] = -0.0000, 1.0816, 0.4540
bone.roll = -0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('spine.008')
bone.head[:] = -0.0000, 0.0152, 0.3904
bone.tail[:] = 0.0000, -0.3259, 0.3967
bone.roll = 0.0001
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.008'] = bone.name
bone = arm.edit_bones.new('spine')
bone.head[:] = -0.0000, 1.0816, 0.4540
bone.tail[:] = -0.0000, 1.3362, 0.4776
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine.002'] = bone.name
bones['spine'] = bone.name
bone = arm.edit_bones.new('mid_fin.Top')
bone.head[:] = 0.0000, 0.7296, 0.5396
bone.tail[:] = 0.0000, 0.7709, 0.6351
@ -213,41 +213,6 @@ def create(obj):
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.001']]
bones['mid_fin.Bot'] = bone.name
bone = arm.edit_bones.new('back_fin.T.001.Bk')
bone.head[:] = 0.0000, 1.5211, 0.7594
bone.tail[:] = 0.0000, 1.7667, 0.9633
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['back_fin.T.Bk']]
bones['back_fin.T.001.Bk'] = bone.name
bone = arm.edit_bones.new('back_fin.B.001.Bk')
bone.head[:] = 0.0000, 1.3289, 0.2452
bone.tail[:] = 0.0000, 1.3818, 0.1513
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['back_fin.B.Bk']]
bones['back_fin.B.001.Bk'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = -0.0000, 0.3182, 0.4031
bone.tail[:] = -0.0000, 0.0152, 0.3904
bone.roll = 0.0001
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('back_fin.T.002.Bk')
bone.head[:] = 0.0000, 1.7667, 0.9633
bone.tail[:] = 0.0000, 1.9489, 1.1145
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['back_fin.T.001.Bk']]
bones['back_fin.T.002.Bk'] = bone.name
bone = arm.edit_bones.new('spine.008')
bone.head[:] = -0.0000, 0.0152, 0.3904
bone.tail[:] = 0.0000, -0.3259, 0.3967
bone.roll = 0.0001
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.008'] = bone.name
bone = arm.edit_bones.new('spine.004')
bone.head[:] = 0.0000, -0.3259, 0.3967
bone.tail[:] = 0.0000, -0.5947, 0.4044
@ -269,6 +234,20 @@ def create(obj):
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.008']]
bones['chest_fin.Bot.R'] = bone.name
bone = arm.edit_bones.new('back_fin.T.Bk')
bone.head[:] = 0.0000, 1.2501, 0.5345
bone.tail[:] = 0.0000, 1.5211, 0.7594
bone.roll = 0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['back_fin.T.Bk'] = bone.name
bone = arm.edit_bones.new('back_fin.B.Bk')
bone.head[:] = 0.0000, 1.2305, 0.4158
bone.tail[:] = 0.0000, 1.3289, 0.2452
bone.roll = 0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine']]
bones['back_fin.B.Bk'] = bone.name
bone = arm.edit_bones.new('spine.005')
bone.head[:] = 0.0000, -0.5947, 0.4044
bone.tail[:] = 0.0000, -1.2084, 0.4328
@ -283,11 +262,25 @@ def create(obj):
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.004']]
bones['top_fin'] = bone.name
bone = arm.edit_bones.new('back_fin.T.001.Bk')
bone.head[:] = 0.0000, 1.5211, 0.7594
bone.tail[:] = 0.0000, 1.7667, 0.9633
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['back_fin.T.Bk']]
bones['back_fin.T.001.Bk'] = bone.name
bone = arm.edit_bones.new('back_fin.B.001.Bk')
bone.head[:] = 0.0000, 1.3289, 0.2452
bone.tail[:] = 0.0000, 1.3818, 0.1513
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['back_fin.B.Bk']]
bones['back_fin.B.001.Bk'] = bone.name
bone = arm.edit_bones.new('spine.006')
bone.head[:] = 0.0000, -1.2084, 0.4328
bone.tail[:] = 0.0000, -1.5634, 0.4275
bone.roll = -0.0000
bone.use_connect = True
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.005']]
bones['spine.006'] = bone.name
bone = arm.edit_bones.new('shoulder.L')
@ -311,6 +304,13 @@ def create(obj):
bone.use_connect = True
bone.parent = arm.edit_bones[bones['top_fin']]
bones['top_fin.001'] = bone.name
bone = arm.edit_bones.new('back_fin.T.002.Bk')
bone.head[:] = 0.0000, 1.7667, 0.9633
bone.tail[:] = 0.0000, 1.9489, 1.1145
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['back_fin.T.001.Bk']]
bones['back_fin.T.002.Bk'] = bone.name
bone = arm.edit_bones.new('spine.007')
bone.head[:] = 0.0000, -1.5634, 0.4275
bone.tail[:] = 0.0000, -2.0661, 0.4364
@ -411,8 +411,8 @@ def create(obj):
bones['jaw.003.R'] = bone.name
bpy.ops.object.mode_set(mode='OBJECT')
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = 'spines.super_spine'
pbone = obj.pose.bones[bones['spine.002']]
pbone.rigify_type = 'spines.basic_tail'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
@ -420,27 +420,31 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.neck_pos = 8
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
try:
pbone.rigify_parameters.copy_rotation_axes = [True, False, True]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = 'spines.basic_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.tail_pos = 3
except AttributeError:
pass
try:
pbone.rigify_parameters.pivot_pos = 5
except AttributeError:
pass
try:
pbone.rigify_parameters.use_tail = True
except AttributeError:
pass
try:
pbone.rigify_parameters.copy_rotation_axes = [True, False, True]
pbone.rigify_parameters.fk_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
@ -451,39 +455,15 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['back_fin.T.Bk']]
pbone.rigify_type = 'limbs.super_finger'
pbone = obj.pose.bones[bones['spine.008']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.primary_rotation_axis = "Z"
except AttributeError:
pass
pbone = obj.pose.bones[bones['back_fin.B.Bk']]
pbone.rigify_type = 'limbs.super_finger'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.primary_rotation_axis = "Z"
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.002']]
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
@ -507,46 +487,6 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['back_fin.T.001.Bk']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['back_fin.B.001.Bk']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['back_fin.T.002.Bk']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.008']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -579,6 +519,38 @@ def create(obj):
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['back_fin.T.Bk']]
pbone.rigify_type = 'limbs.super_finger'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.primary_rotation_axis = "Z"
except AttributeError:
pass
pbone = obj.pose.bones[bones['back_fin.B.Bk']]
pbone.rigify_type = 'limbs.super_finger'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.primary_rotation_axis = "Z"
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.005']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -599,14 +571,38 @@ def create(obj):
pbone.rigify_parameters.tweak_layers = [False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.006']]
pbone = obj.pose.bones[bones['back_fin.T.001.Bk']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['back_fin.B.001.Bk']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.006']]
pbone.rigify_type = 'spines.super_head'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
pbone = obj.pose.bones[bones['shoulder.L']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)
@ -639,6 +635,14 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['back_fin.T.002.Bk']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.007']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -790,5 +794,7 @@ def create(obj):
arm.layers = [(x in [0, 3, 5, 6, 8, 10]) for x in range(32)]
return bones
if __name__ == "__main__":
create(bpy.context.active_object)

View File

@ -165,40 +165,19 @@ def create(obj):
bones = {}
bone = arm.edit_bones.new('spine')
bone.head[:] = 0.0000, 1.1044, 0.7633
bone.tail[:] = 0.0000, 0.9624, 0.7412
bone.roll = 0.0000
bone.use_connect = False
bones['spine'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = 0.0000, 0.9624, 0.7412
bone.tail[:] = 0.0000, 0.7755, 0.7418
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = 0.0000, 0.7755, 0.7418
bone.tail[:] = 0.0000, 0.5547, 0.7568
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = 0.0000, 0.5547, 0.7568
bone.tail[:] = 0.0000, 0.4418, 0.7954
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('spine.004')
bone.head[:] = 0.0000, 0.4418, 0.7954
bone.tail[:] = 0.0000, 0.3546, 0.8059
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.003']]
bone.use_connect = False
bones['spine.004'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = 0.0000, 0.4418, 0.7954
bone.tail[:] = 0.0000, 0.5547, 0.7568
bone.roll = 0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.004']]
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('spine.005')
bone.head[:] = 0.0000, 0.3546, 0.8059
bone.tail[:] = 0.0000, 0.1803, 0.7782
@ -206,6 +185,13 @@ def create(obj):
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.004']]
bones['spine.005'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = 0.0000, 0.5547, 0.7568
bone.tail[:] = 0.0000, 0.7755, 0.7418
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.006')
bone.head[:] = 0.0000, 0.1803, 0.7782
bone.tail[:] = 0.0000, 0.0319, 0.7731
@ -241,6 +227,13 @@ def create(obj):
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.005']]
bones['thigh.R'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = 0.0000, 0.7755, 0.7418
bone.tail[:] = 0.0000, 0.9624, 0.7412
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('spine.007')
bone.head[:] = 0.0000, 0.0319, 0.7731
bone.tail[:] = 0.0000, -0.0980, 0.7945
@ -262,6 +255,13 @@ def create(obj):
bone.use_connect = True
bone.parent = arm.edit_bones[bones['thigh.R']]
bones['shin.R'] = bone.name
bone = arm.edit_bones.new('spine')
bone.head[:] = 0.0000, 0.9624, 0.7412
bone.tail[:] = 0.0000, 1.1044, 0.7633
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine'] = bone.name
bone = arm.edit_bones.new('spine.008')
bone.head[:] = 0.0000, -0.0980, 0.7945
bone.tail[:] = 0.0000, -0.3618, 0.8375
@ -287,7 +287,7 @@ def create(obj):
bone.head[:] = 0.0000, -0.3618, 0.8375
bone.tail[:] = 0.0000, -0.4253, 0.8585
bone.roll = 0.0000
bone.use_connect = True
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.008']]
bones['spine.009'] = bone.name
bone = arm.edit_bones.new('shoulder.L')
@ -1496,78 +1496,46 @@ def create(obj):
bones['brow.T.R.003'] = bone.name
bpy.ops.object.mode_set(mode='OBJECT')
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = 'spines.super_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.use_tail = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tail_pos = 4
except AttributeError:
pass
try:
pbone.rigify_parameters.pivot_pos = 8
except AttributeError:
pass
try:
pbone.rigify_parameters.neck_pos = 10
except AttributeError:
pass
try:
pbone.rigify_parameters.copy_rotation_axes = [True, False, True]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.002']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_extra_layers = False
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.basic_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.pivot_pos = 4
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.fk_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = 'spines.basic_tail'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.copy_rotation_axes = [True, False, True]
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.005']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -1584,6 +1552,18 @@ def create(obj):
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.002']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.006']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -1656,6 +1636,14 @@ def create(obj):
pbone.rigify_parameters.limb_type = "paw"
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.007']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -1680,6 +1668,14 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.008']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -1705,13 +1701,21 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.009']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.super_head'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['shoulder.L']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)
@ -3223,5 +3227,7 @@ def create(obj):
arm.layers = [(x in [0, 3, 4, 5, 7, 10, 13, 16, 19]) for x in range(32)]
return bones
if __name__ == "__main__":
create(bpy.context.active_object)

View File

@ -252,7 +252,7 @@ def create(obj):
bone.head[:] = 0.0000, 0.0114, 1.6582
bone.tail[:] = 0.0000, -0.0130, 1.7197
bone.roll = 0.0000
bone.use_connect = True
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.004'] = bone.name
bone = arm.edit_bones.new('shoulder.L')
@ -370,7 +370,7 @@ def create(obj):
bpy.ops.object.mode_set(mode='OBJECT')
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = 'spines.super_spine'
pbone.rigify_type = 'spines.basic_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
@ -378,11 +378,11 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.neck_pos = 5
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone.rigify_parameters.fk_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
@ -506,13 +506,21 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.super_head'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['shoulder.L']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)

View File

@ -165,40 +165,40 @@ def create(obj):
bones = {}
bone = arm.edit_bones.new('spine')
bone.head[:] = 0.0000, 1.1044, 0.7633
bone.tail[:] = 0.0000, 0.9624, 0.7412
bone.roll = 0.0000
bone.use_connect = False
bones['spine'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = 0.0000, 0.9624, 0.7412
bone.tail[:] = 0.0000, 0.7755, 0.7418
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = 0.0000, 0.7755, 0.7418
bone.tail[:] = 0.0000, 0.5547, 0.7568
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = 0.0000, 0.5547, 0.7568
bone.tail[:] = 0.0000, 0.4418, 0.7954
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('spine.004')
bone.head[:] = 0.0000, 0.4418, 0.7954
bone.tail[:] = 0.0000, 0.3546, 0.8059
bone.roll = 0.0000
bone.use_connect = False
bones['spine.004'] = bone.name
bone = arm.edit_bones.new('spine.003')
bone.head[:] = 0.0000, 0.4418, 0.7954
bone.tail[:] = 0.0000, 0.5547, 0.7568
bone.roll = 0.0000
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.004']]
bones['spine.003'] = bone.name
bone = arm.edit_bones.new('spine.002')
bone.head[:] = 0.0000, 0.5547, 0.7568
bone.tail[:] = 0.0000, 0.7755, 0.7418
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.004'] = bone.name
bones['spine.002'] = bone.name
bone = arm.edit_bones.new('spine.001')
bone.head[:] = 0.0000, 0.7755, 0.7418
bone.tail[:] = 0.0000, 0.9624, 0.7412
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.002']]
bones['spine.001'] = bone.name
bone = arm.edit_bones.new('spine')
bone.head[:] = 0.0000, 0.9624, 0.7412
bone.tail[:] = 0.0000, 1.1044, 0.7633
bone.roll = 0.0000
bone.use_connect = True
bone.parent = arm.edit_bones[bones['spine.001']]
bones['spine'] = bone.name
bone = arm.edit_bones.new('spine.005')
bone.head[:] = 0.0000, 0.3546, 0.8059
bone.tail[:] = 0.0000, 0.1803, 0.7782
@ -287,7 +287,7 @@ def create(obj):
bone.head[:] = 0.0000, -0.3618, 0.8375
bone.tail[:] = 0.0000, -0.4253, 0.8585
bone.roll = 0.0000
bone.use_connect = True
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.008']]
bones['spine.009'] = bone.name
bone = arm.edit_bones.new('shoulder.L')
@ -405,37 +405,13 @@ def create(obj):
bpy.ops.object.mode_set(mode='OBJECT')
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = 'spines.super_spine'
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.use_tail = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tail_pos = 4
except AttributeError:
pass
try:
pbone.rigify_parameters.pivot_pos = 8
except AttributeError:
pass
try:
pbone.rigify_parameters.neck_pos = 10
except AttributeError:
pass
try:
pbone.rigify_parameters.copy_rotation_axes = [True, False, True]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -452,30 +428,42 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.tweak_extra_layers = False
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.003']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.basic_tail'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.basic_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.pivot_pos = 4
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.fk_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.005']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -484,14 +472,6 @@ def create(obj):
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.neck_pos = 5
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.006']]
pbone.rigify_type = ''
pbone.lock_location = (False, False, False)
@ -613,13 +593,21 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.009']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.super_head'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['shoulder.L']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)

View File

@ -252,7 +252,7 @@ def create(obj):
bone.head[:] = 0.0000, 0.0114, 1.6582
bone.tail[:] = 0.0000, -0.0130, 1.7197
bone.roll = 0.0000
bone.use_connect = True
bone.use_connect = False
bone.parent = arm.edit_bones[bones['spine.003']]
bones['spine.004'] = bone.name
bone = arm.edit_bones.new('shoulder.L')
@ -1280,7 +1280,7 @@ def create(obj):
bpy.ops.object.mode_set(mode='OBJECT')
pbone = obj.pose.bones[bones['spine']]
pbone.rigify_type = 'spines.super_spine'
pbone.rigify_type = 'spines.basic_spine'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
@ -1288,11 +1288,11 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.neck_pos = 5
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone.rigify_parameters.fk_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['spine.001']]
@ -1416,13 +1416,21 @@ def create(obj):
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
pbone = obj.pose.bones[bones['spine.004']]
pbone.rigify_type = ''
pbone.rigify_type = 'spines.super_head'
pbone.lock_location = (False, False, False)
pbone.lock_rotation = (False, False, False)
pbone.lock_rotation_w = False
pbone.lock_scale = (False, False, False)
pbone.rotation_mode = 'QUATERNION'
pbone.bone.layers = [False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
try:
pbone.rigify_parameters.connect_chain = True
except AttributeError:
pass
try:
pbone.rigify_parameters.tweak_layers = [False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
except AttributeError:
pass
pbone = obj.pose.bones[bones['shoulder.L']]
pbone.rigify_type = 'basic.super_copy'
pbone.lock_location = (False, False, False)

View File

@ -19,13 +19,16 @@
# <pep8 compliant>
import bpy
import math
from itertools import count, repeat
from mathutils import Matrix
from ...utils.errors import MetarigError
from ...utils.layers import ControlLayersOption
from ...utils.naming import strip_org, make_deformer_name, make_mechanism_name
from ...utils.bones import BoneDict, put_bone, align_bone_to_axis
from ...utils.naming import strip_org, make_deformer_name, make_mechanism_name, make_derived_name
from ...utils.bones import BoneDict, put_bone, align_bone_to_axis, align_bone_orientation
from ...utils.widgets import adjust_widget_transform_mesh
from ...utils.widgets_basic import create_circle_widget
from ...utils.misc import map_list
@ -43,6 +46,7 @@ class Rig(BaseSpineRig):
# Check if user provided the pivot position
self.pivot_pos = self.params.pivot_pos
self.use_fk = self.params.make_fk_controls
if not (0 < self.pivot_pos < len(self.bones.org)):
self.raise_error("Please specify a valid pivot bone position.")
@ -55,6 +59,9 @@ class Rig(BaseSpineRig):
# ctrl:
# master, hips, chest:
# Main controls.
# fk:
# chest[], hips[]:
# FK controls.
# tweak[]:
# Tweak control chain.
# mch:
@ -85,7 +92,7 @@ class Rig(BaseSpineRig):
# Main control bones
@stage.generate_bones
def make_control_chain(self):
def make_end_control_bones(self):
orgs = self.bones.org
pivot = self.pivot_pos
@ -103,33 +110,89 @@ class Rig(BaseSpineRig):
return name
@stage.parent_bones
def parent_control_chain(self):
def parent_end_control_bones(self):
ctrl = self.bones.ctrl
self.set_bone_parent(ctrl.hips, ctrl.master)
self.set_bone_parent(ctrl.chest, ctrl.master)
@stage.configure_bones
def configure_control_chain(self):
pass
@stage.generate_widgets
def make_control_widgets(self):
def make_end_control_widgets(self):
ctrl = self.bones.ctrl
mch = self.bones.mch
self.make_control_widget(ctrl.hips, mch.wgt_hips)
self.make_control_widget(ctrl.chest, mch.wgt_chest)
self.make_end_control_widget(ctrl.hips, mch.wgt_hips)
self.make_end_control_widget(ctrl.chest, mch.wgt_chest)
def make_control_widget(self, ctrl, wgt_mch):
self.get_bone(ctrl).custom_shape_transform = self.get_bone(wgt_mch)
def make_end_control_widget(self, ctrl, wgt_mch):
shape_bone = self.get_bone(wgt_mch)
is_horizontal = abs(shape_bone.z_axis.normalized().y) < 0.7
create_circle_widget(
self.get_bone(ctrl).custom_shape_transform = shape_bone
obj = create_circle_widget(
self.obj, ctrl,
radius=1.0,
radius=1.2 if is_horizontal else 1.1,
head_tail=0.0,
head_tail_x=1.0,
with_line=False,
)
if is_horizontal:
# Tilt the widget toward the ground for horizontal (animal) spines
angle = math.copysign(28, shape_bone.x_axis.x)
rotmat = Matrix.Rotation(math.radians(angle), 4, 'X')
adjust_widget_transform_mesh(obj, rotmat, local=True)
####################################################
# FK control bones
@stage.generate_bones
def make_control_chain(self):
if self.use_fk:
orgs = self.bones.org
self.bones.ctrl.fk = self.fk_result = BoneDict(
hips = map_list(self.make_control_bone, count(0), orgs[0:self.pivot_pos], repeat(True)),
chest = map_list(self.make_control_bone, count(self.pivot_pos), orgs[self.pivot_pos:], repeat(False)),
)
def make_control_bone(self, i, org, is_hip):
name = self.copy_bone(org, make_derived_name(org, 'ctrl', '_fk'), parent=False)
if is_hip:
put_bone(self.obj, name, self.get_bone(name).tail)
return name
@stage.parent_bones
def parent_control_chain(self):
if self.use_fk:
chain = self.bones.mch.chain
fk = self.bones.ctrl.fk
for child, parent in zip(fk.hips, chain.hips):
self.set_bone_parent(child, parent)
for child, parent in zip(fk.chest, chain.chest):
self.set_bone_parent(child, parent)
@stage.configure_bones
def configure_control_chain(self):
if self.use_fk:
fk = self.bones.ctrl.fk
for args in zip(count(0), fk.hips + fk.chest, self.bones.org):
self.configure_control_bone(*args)
ControlLayersOption.FK.assign_rig(self, fk.hips + fk.chest)
@stage.generate_widgets
def make_control_widgets(self):
if self.use_fk:
fk = self.bones.ctrl.fk
for ctrl in fk.hips:
self.make_control_widget(ctrl, True)
for ctrl in fk.chest:
self.make_control_widget(ctrl, False)
def make_control_widget(self, ctrl, is_hip):
obj = create_circle_widget(self.obj, ctrl, radius=1.0, head_tail=0.5)
if is_hip:
adjust_widget_transform_mesh(obj, Matrix.Diagonal((1, -1, 1, 1)), local=True)
####################################################
# MCH bones associated with main controls
@ -153,16 +216,16 @@ class Rig(BaseSpineRig):
@stage.parent_bones
def parent_mch_control_bones(self):
mch = self.bones.mch
self.set_bone_parent(mch.pivot, mch.chain.chest[0])
self.set_bone_parent(mch.wgt_hips, mch.chain.hips[0])
self.set_bone_parent(mch.wgt_chest, mch.chain.chest[-1])
fk = self.fk_result
self.set_bone_parent(mch.pivot, fk.chest[0])
self.set_bone_parent(mch.wgt_hips, fk.hips[0])
self.set_bone_parent(mch.wgt_chest, fk.chest[-1])
align_bone_orientation(self.obj, mch.pivot, fk.hips[-1])
@stage.rig_bones
def rig_mch_control_bones(self):
mch = self.bones.mch
# Is it actually intending to compute average of these, or is this really intentional?
# This effectively adds rotations of the hip and chest controls.
self.make_constraint(mch.pivot, 'COPY_TRANSFORMS', mch.chain.hips[-1], space='LOCAL')
self.make_constraint(mch.pivot, 'COPY_TRANSFORMS', self.fk_result.hips[-1], influence=0.5)
####################################################
# MCH chain for distributing hip & chest transform
@ -174,6 +237,8 @@ class Rig(BaseSpineRig):
hips = map_list(self.make_mch_bone, orgs[0:self.pivot_pos], repeat(True)),
chest = map_list(self.make_mch_bone, orgs[self.pivot_pos:], repeat(False)),
)
if not self.use_fk:
self.fk_result = self.bones.mch.chain
def make_mch_bone(self, org, is_hip):
name = self.copy_bone(org, make_mechanism_name(strip_org(org)), parent=False)
@ -184,8 +249,11 @@ class Rig(BaseSpineRig):
def parent_mch_chain(self):
master = self.bones.ctrl.master
chain = self.bones.mch.chain
self.parent_bone_chain([master, *reversed(chain.hips)])
self.parent_bone_chain([master, *chain.chest])
fk = self.fk_result
for child, parent in zip(reversed(chain.hips), [master, *reversed(fk.hips)]):
self.set_bone_parent(child, parent)
for child, parent in zip(chain.chest, [master, *fk.chest]):
self.set_bone_parent(child, parent)
@stage.rig_bones
def rig_mch_chain(self):
@ -205,7 +273,7 @@ class Rig(BaseSpineRig):
@stage.parent_bones
def parent_tweak_chain(self):
mch = self.bones.mch
chain = mch.chain
chain = self.fk_result
parents = [chain.hips[0], *chain.hips[0:-1], mch.pivot, *chain.chest[1:], chain.chest[-1]]
for args in zip(self.bones.ctrl.tweak, parents):
self.set_bone_parent(*args)
@ -224,6 +292,13 @@ class Rig(BaseSpineRig):
super().add_parameters(params)
params.make_fk_controls = bpy.props.BoolProperty(
name="FK Controls", default=True,
description="Generate an FK control chain"
)
ControlLayersOption.FK.add_parameters(params)
@classmethod
def parameters_ui(self, layout, params):
r = layout.row()
@ -231,6 +306,12 @@ class Rig(BaseSpineRig):
super().parameters_ui(layout, params)
layout.prop(params, 'make_fk_controls')
col = layout.column()
col.active = params.make_fk_controls
ControlLayersOption.FK.parameters_ui(col, params)
def create_sample(obj):
# generated by rigify.utils.write_metarig

View File

@ -81,7 +81,7 @@ class Rig(SubstitutionRig, BoneUtilityMixin):
bpy.ops.object.mode_set(mode='OBJECT')
# Create the parts
self.assign_params(spine_orgs[0], params_copy, pivot_pos=pivot_pos)
self.assign_params(spine_orgs[0], params_copy, pivot_pos=pivot_pos, make_fk_controls=False)
result = [ self.instantiate_rig(basic_spine.Rig, spine_orgs[0]) ]
@ -133,6 +133,8 @@ def add_parameters(params):
def parameters_ui(layout, params):
""" Create the ui for the rig parameters."""
layout.label(text="Note: this combined rig is deprecated.", icon='INFO')
r = layout.row(align=True)
r.prop(params, "use_head", toggle=True, text="Head")
r.prop(params, "use_tail", toggle=True, text="Tail")