minor fixes

This commit is contained in:
2009-12-08 14:02:06 +00:00
parent f2452c1fd6
commit fb7fed6706
3 changed files with 27 additions and 8 deletions

View File

@@ -276,7 +276,8 @@ def blend_bone_list(obj, apply_bones, from_bones, to_bones, target_bone=None, ta
if not (new_pbone.bone.connected or (False not in new_pbone.lock_location)): if not (new_pbone.bone.connected or (False not in new_pbone.lock_location)):
blend_location(new_pbone, from_bone_name, to_bone_name) blend_location(new_pbone, from_bone_name, to_bone_name)
blend_rotation(new_pbone, from_bone_name, to_bone_name) if not (False not in new_pbone.lock_rotation): # TODO. 4D chech?
blend_rotation(new_pbone, from_bone_name, to_bone_name)
def add_stretch_to(obj, from_name, to_name, name): def add_stretch_to(obj, from_name, to_name, name):
@@ -364,7 +365,7 @@ def add_pole_target_bone(obj, base_name, name, mode='CROSS'):
return poll_name return poll_name
def generate_rig(context, obj_orig, prefix="ORG-"): def generate_rig(context, obj_orig, prefix="ORG-", META_DEF=True):
from collections import OrderedDict from collections import OrderedDict
global_undo = context.user_preferences.edit.global_undo global_undo = context.user_preferences.edit.global_undo
@@ -372,15 +373,20 @@ def generate_rig(context, obj_orig, prefix="ORG-"):
bpy.ops.object.mode_set(mode='OBJECT') bpy.ops.object.mode_set(mode='OBJECT')
scene = context.scene
# copy object and data # copy object and data
obj_orig.selected = False obj_orig.selected = False
obj = obj_orig.copy() obj = obj_orig.copy()
obj.data = obj_orig.data.copy() obj.data = obj_orig.data.copy()
scene = context.scene
scene.objects.link(obj) scene.objects.link(obj)
scene.objects.active = obj scene.objects.active = obj
obj.selected = True obj.selected = True
if META_DEF:
obj_def = obj_orig.copy()
obj_def.data = obj_orig.data.copy()
scene.objects.link(obj_def)
arm = obj.data arm = obj.data
@@ -481,8 +487,21 @@ def generate_rig(context, obj_orig, prefix="ORG-"):
if len(result_submod) == 2: if len(result_submod) == 2:
blend_bone_list(obj, definition, result_submod[0], result_submod[1]) blend_bone_list(obj, definition, result_submod[0], result_submod[1])
# needed to update driver deps
# context.scene.update() if META_DEF:
# for pbone in obj_def.pose.bones:
for bone_name, bone_name_new in base_names.items():
#pbone_from = bone_name
pbone = obj_def.pose.bones[bone_name_new]
con = pbone.constraints.new('COPY_ROTATION')
con.target = obj
con.subtarget = bone_name
if not pbone.bone.connected:
con = pbone.constraints.new('COPY_LOCATION')
con.target = obj
con.subtarget = bone_name
# Only for demo'ing # Only for demo'ing

View File

@@ -225,7 +225,7 @@ def ik(obj, bone_definition, base_names):
con.weight = 1.0 con.weight = 1.0
con.target = obj con.target = obj
con.subtarget = ik.foot con.subtarget = ik_chain.foot
con.pole_target = obj con.pole_target = obj
con.pole_subtarget = ik.knee_target con.pole_subtarget = ik.knee_target
@@ -279,7 +279,7 @@ def fk(obj, bone_definition, base_names):
ex.thigh_socket = ex.thigh_socket_e.name ex.thigh_socket = ex.thigh_socket_e.name
ex.thigh_socket_e.tail = ex.thigh_socket_e.head + Vector(0.0, 0.0, ex.thigh_socket_e.length / 4.0) ex.thigh_socket_e.tail = ex.thigh_socket_e.head + Vector(0.0, 0.0, ex.thigh_socket_e.length / 4.0)
ex.thigh_hinge_e = copy_bone_simple(arm, mt_chain.thigh, "MCH-%s_hinge" % base_names[mt_chain.thigh], parent=True) ex.thigh_hinge_e = copy_bone_simple(arm, mt_chain.thigh, "MCH-%s_hinge" % base_names[mt_chain.thigh])
ex.thigh_hinge = ex.thigh_hinge_e.name ex.thigh_hinge = ex.thigh_hinge_e.name
ex.thigh_hinge_e.tail = ex.thigh_hinge_e.head + Vector(0.0, 0.0, mt_chain.thigh_e.head.length) ex.thigh_hinge_e.tail = ex.thigh_hinge_e.head + Vector(0.0, 0.0, mt_chain.thigh_e.head.length)
ex.thigh_hinge_e.translate(Vector( - (mt.hips_e.head.x - mt_chain.thigh_e.head.x), 0.0, 0.0)) ex.thigh_hinge_e.translate(Vector( - (mt.hips_e.head.x - mt_chain.thigh_e.head.x), 0.0, 0.0))

View File

@@ -360,7 +360,7 @@ def main(obj, bone_definition, base_names):
prop["soft_max"] = 1.0 prop["soft_max"] = 1.0
prop = rna_idprop_ui_prop_get(mt.ribcage_p, "pivot_slide", create=True) prop = rna_idprop_ui_prop_get(mt.ribcage_p, "pivot_slide", create=True)
mt.ribcage_p["pivot_slide"] = 0.5 mt.ribcage_p["pivot_slide"] = 1.0 / spine_chain_len
prop["soft_min"] = 1.0 / spine_chain_len prop["soft_min"] = 1.0 / spine_chain_len
prop["soft_max"] = 1.0 prop["soft_max"] = 1.0