[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25244] trunk/blender/release/scripts/ modules/rigify/__init__.py: if bone type root is defined, all new parentless bones become children of it
Campbell Barton
ideasman42 at gmail.com
Wed Dec 9 16:13:03 CET 2009
Revision: 25244
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25244
Author: campbellbarton
Date: 2009-12-09 16:13:03 +0100 (Wed, 09 Dec 2009)
Log Message:
-----------
if bone type root is defined, all new parentless bones become children of it
Modified Paths:
--------------
trunk/blender/release/scripts/modules/rigify/__init__.py
Modified: trunk/blender/release/scripts/modules/rigify/__init__.py
===================================================================
--- trunk/blender/release/scripts/modules/rigify/__init__.py 2009-12-09 14:37:26 UTC (rev 25243)
+++ trunk/blender/release/scripts/modules/rigify/__init__.py 2009-12-09 15:13:03 UTC (rev 25244)
@@ -414,6 +414,9 @@
# original name mapping
base_names = {}
+
+ # add all new parentless children to this bone
+ root_bone = None
bpy.ops.object.mode_set(mode='EDIT')
for bone in arm.edit_bones:
@@ -444,6 +447,12 @@
del pbone["type"]
else:
bone_type_list = []
+
+ if bone_type_list == ["root"]: # special case!
+ if root_bone:
+ raise Exception("cant have more then 1 root bone, found '%s' and '%s' to have type==root" % (root_bone, bone_name))
+ root_bone = bone_name
+ bone_type_list[:] = []
for bone_type in bone_type_list:
@@ -516,6 +525,17 @@
if len(result_submod) == 2:
blend_bone_list(obj, definition, result_submod[0], result_submod[1], target_bone=bone_name)
+ if root_bone:
+ # assign all new parentless bones to this
+
+ bpy.ops.object.mode_set(mode='EDIT')
+ root_ebone = arm.edit_bones[root_bone]
+ for ebone in arm.edit_bones:
+ if ebone.parent is None and ebone.name not in base_names:
+ ebone.connected = False
+ ebone.parent = root_ebone
+ bpy.ops.object.mode_set(mode='OBJECT')
+
if META_DEF:
# for pbone in obj_def.pose.bones:
More information about the Bf-blender-cvs
mailing list