1.4 20100623: fix constraint name.
1.5 20100626: refactoring.
1.6 20100629: sphere map.
+1.7 20100703: implement bone group.
"""
MMD_SHAPE_GROUP_NAME='_MMD_SHAPE'
else:
print('diffurence with parent.tail and head', name)
- bl.bone.setConnected(bone)
+ if b.type!=9:
+ bl.bone.setConnected(bone)
# armature layer 2
bl.bone.setLayerMask(bone, [0, 1])
else:
def __importArmature(scene, l):
- # build bone
armature, armature_object=bl.armature.create()
+
+ # build bone
bl.armature.makeEditable(armature_object)
for b in l.bones:
if not b.parent:
__build(armature, b, None, None)
bl.armature.update(armature)
- bl.exitEditMode()
+ bl.enterObjectMode()
# IK constraint
pose = bl.object.getPose(armature_object)
bl.armature.makeEditable(armature_object)
bl.armature.update(armature)
- bl.exitEditMode()
+ bl.enterObjectMode()
+
+ if isBlender24():
+ pass
+ else:
+ # create bone group
+ for i, g in enumerate(l.bone_group_list):
+ name=englishmap.getEnglishBoneGroupName(g.getName().strip())
+ if not name:
+ name=g.getName()
+ bl.object.createBoneGroup(armature_object, name, "THEME%02d" % (i+1))
+
+ # assign bone to group
+ for b_index, g_index in l.bone_display_list:
+ # bone
+ b=l.bones[b_index]
+ bone_name=englishmap.getEnglishBoneName(b.getName())
+ if not bone_name:
+ bone_name=b.getName()
+ # group
+ g=l.bone_group_list[g_index-1]
+ group_name=englishmap.getEnglishBoneGroupName(g.getName().strip())
+ if not group_name:
+ group_name=g.getName()
+
+ # assign
+ pose.bones[bone_name].bone_group=pose.bone_groups[group_name]
+
+ bl.enterObjectMode()
return armature_object