Tooltip: 'Export PMD file for MikuMikuDance.'
"""
__author__= ["ousttrue"]
-__version__= "2.4"
+__version__= "2.5"
__url__=()
__bpydoc__="""
pmd Importer
2.2 20101005: update for Blender2.54.
2.3 20101228: update for Blender2.55.
2.4 20110429: update for Blender2.57b.
+2.5 20110522: implement RigidBody and Constraint.
"""
bl_addon_info = {
copyMesh, copyObj=bl.object.duplicate(obj)
if len(copyMesh.vertices)>0:
# apply transform
- copyObj.scale=obj.scale
- bpy.ops.object.transform_apply(scale=True)
- copyObj.rotation_euler=obj.rotation_euler
- bpy.ops.object.transform_apply(rotation=True)
- copyObj.location=obj.location
- bpy.ops.object.transform_apply(location=True)
+ try:
+ # svn 36722
+ copyObj.scale=obj.scale
+ bpy.ops.object.transform_apply(scale=True)
+ copyObj.rotation_euler=obj.rotation_euler
+ bpy.ops.object.transform_apply(rotation=True)
+ copyObj.location=obj.location
+ bpy.ops.object.transform_apply(location=True)
+ except AttributeError as e:
+ # 2.57b
+ copyObj.scale=obj.scale
+ bpy.ops.object.scale_apply()
+ copyObj.rotation_euler=obj.rotation_euler
+ bpy.ops.object.rotation_apply()
+ copyObj.location=obj.location
+ bpy.ops.object.location_apply()
+
# apply modifier
for m in [m for m in copyObj.modifiers]:
if m.type=='SOLIDFY':
break
assert(basis)
- print(basis.name, len(baseMorph.offsets))
+ #print(basis.name, len(baseMorph.offsets))
if len(baseMorph.offsets)==0:
return
if b.name==BASE_SHAPE_NAME:
continue
- print(b.name)
+ #print(b.name)
morph=self.__getOrCreateMorph(b.name, 4)
used=set()
for index, src, dst in zip(
for i in range(10):
t=bl.material.getTexture(toonMaterial, i)
if t:
- io.toon_textures[i]=pmd.encode_string(t.name)
+ io.toon_textures[i]="%s" % t.name
else:
- io.toon_textures[i]=pmd.encode_string("toon%02d.bmp\n" % i)
+ io.toon_textures[i]="toon%02d.bmp" % (i+1)
else:
for i in range(10):
- io.toon_textures[i]=pmd.encode_string("toon%02d.bmp\n" % i)
+ io.toon_textures[i]="toon%02d.bmp" % (i+1)
# rigid body
rigidNameMap={}