Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-12-08 17:02:06 +0300
committerCampbell Barton <ideasman42@gmail.com>2009-12-08 17:02:06 +0300
commitfb7fed670646050a78fa13d604b28b18f3ab17fe (patch)
tree305311bf55f7314d5fe4202d675407b6b282a1ae
parentf2452c1fd6fe2009e2ecd794b13b1de1fade277b (diff)
minor fixes
-rw-r--r--release/scripts/modules/rigify/__init__.py29
-rw-r--r--release/scripts/modules/rigify/leg.py4
-rw-r--r--release/scripts/modules/rigify/spine.py2
3 files changed, 27 insertions, 8 deletions
diff --git a/release/scripts/modules/rigify/__init__.py b/release/scripts/modules/rigify/__init__.py
index f33ba9edc56..a7863d0caf5 100644
--- a/release/scripts/modules/rigify/__init__.py
+++ b/release/scripts/modules/rigify/__init__.py
@@ -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)):
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):
@@ -364,7 +365,7 @@ def add_pole_target_bone(obj, base_name, name, mode='CROSS'):
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
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')
+ scene = context.scene
# copy object and data
obj_orig.selected = False
obj = obj_orig.copy()
obj.data = obj_orig.data.copy()
- scene = context.scene
scene.objects.link(obj)
scene.objects.active = obj
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
@@ -481,8 +487,21 @@ def generate_rig(context, obj_orig, prefix="ORG-"):
if len(result_submod) == 2:
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
diff --git a/release/scripts/modules/rigify/leg.py b/release/scripts/modules/rigify/leg.py
index bdeef5db29a..499c0b4b6fa 100644
--- a/release/scripts/modules/rigify/leg.py
+++ b/release/scripts/modules/rigify/leg.py
@@ -225,7 +225,7 @@ def ik(obj, bone_definition, base_names):
con.weight = 1.0
con.target = obj
- con.subtarget = ik.foot
+ con.subtarget = ik_chain.foot
con.pole_target = obj
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_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_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))
diff --git a/release/scripts/modules/rigify/spine.py b/release/scripts/modules/rigify/spine.py
index d714214adfb..e905a691a7d 100644
--- a/release/scripts/modules/rigify/spine.py
+++ b/release/scripts/modules/rigify/spine.py
@@ -360,7 +360,7 @@ def main(obj, bone_definition, base_names):
prop["soft_max"] = 1.0
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_max"] = 1.0