OSDN Git Service

fix export vertex map.
[meshio/meshio.git] / swig / blender / pmd_import.py
index 9590d7e..f2d32e0 100755 (executable)
@@ -55,6 +55,7 @@ CONSTRAINT_ROT_MIN='const_rot_min'
 CONSTRAINT_ROT_MAX='const_rot_max'
 CONSTRAINT_SPRING_POS='const_spring_pos'
 CONSTRAINT_SPRING_ROT='const_spring_rot'
+TOON_TEXTURE_OBJECT='ToonTextures'
 
 
 ###############################################################################
@@ -81,13 +82,7 @@ if isBlender24():
 
     def createPmdMaterial(m, index):
         material=Blender.Material.New()
-        #material.setRef(1)
-        #material.diffuseSize = 3.14/2
-        #material.setDiffuseSmooth(0)
-        #material.setSpecSize(0)
-        #material.setSpec(0)
-        # shader
-        # diffuse
+        # fresnelが無いw
         material.setDiffuseShader(Blender.Material.Shaders.DIFFUSE_TOON)
         material.setRGBCol([m.diffuse.r, m.diffuse.g, m.diffuse.b])
         material.setAlpha(m.diffuse.a)
@@ -115,8 +110,14 @@ if isBlender24():
         elif n.startswith("ankle_"):
             b.lockYRot=True
 
-    def setSphereMap(material, index, blende_type=None):
-        pass
+    def setSphereMap(material, index, blend_type='MULTIPLY'):
+        slot=material.textures[index]
+        slot.mapto=Blender.Texture.MapTo.NOR
+        slot.mapping=Blender.Texture.Mappings.SPHERE
+        if blend_type=='MULTIPLY':
+            slot.blendmode=Blender.Texture.BlendModes.MULTIPLY
+        elif blend_type=='ADD':
+            slot.blendmode=Blender.Texture.BlendModes.ADD
 
 else:
     # for 2.5
@@ -207,8 +208,8 @@ def get_group_name(g):
 
 
 def __importToonTextures(io, tex_dir):
-    mesh, meshObject=bl.mesh.create('ToonTextures')
-    material=bl.material.create('ToonTextures')
+    mesh, meshObject=bl.mesh.create(TOON_TEXTURE_OBJECT)
+    material=bl.material.create(TOON_TEXTURE_OBJECT)
     bl.mesh.addMaterial(mesh, material)
     for i in range(10):
         t=io.getToonTexture(i)
@@ -450,7 +451,7 @@ def __import16MaerialAndMesh(meshObject, l,
                 bl.material.getTexture(
                     toon_material, 
                     0 if m.toon_index==0xFF else m.toon_index
-                    ).texture,
+                    ),
                 False)
 
         texture_name=m.getTexture()