OSDN Git Service

implement pmd_import bone group.
[meshio/meshio.git] / swig / blender / mqo_import.py
index 1124a41..630501e 100644 (file)
@@ -46,12 +46,15 @@ if isBlender24():
     def createMqoMaterial(m):\r
         material = Blender.Material.New(\r
                 m.getName().encode(bl.INTERNAL_ENCODING))\r
-        material.mode |= Blender.Material.Modes.SHADELESS\r
+        #material.mode |= Blender.Material.Modes.SHADELESS\r
+        # diffuse\r
         material.rgbCol = [m.color.r, m.color.g, m.color.b]\r
         material.alpha = m.color.a\r
-        material.amb = m.ambient\r
-        material.spec = m.specular\r
-        material.hard = int(255 * m.power)\r
+        # other\r
+        material.amb=m.ambient\r
+        material.spec=m.specular\r
+        material.hard=int(255 * m.power)\r
+        material.emit=m.emmit\r
         return material\r
 \r
 else:\r
@@ -64,9 +67,19 @@ else:
 \r
     def createMqoMaterial(m):\r
         material = bpy.data.materials.new(m.getName())\r
+        # shader\r
+        if m.shader==1:\r
+            material.diffuse_shader='FRESNEL'\r
+        else:\r
+            material.diffuse_shader='LAMBERT'\r
+        # diffuse\r
         material.diffuse_color=[m.color.r, m.color.g, m.color.b]\r
-        material.alpha=m.color.a\r
         material.diffuse_intensity=m.diffuse\r
+        material.alpha=m.color.a\r
+        # other\r
+        material.ambient = m.ambient\r
+        #material.specular = m.specular\r
+        material.emit=m.emit\r
         return material\r
 \r
 \r
@@ -144,9 +157,9 @@ def __createObjects(mqo, root, materials, imageMap, scale):
         if o.getName().startswith('sdef'):\r
             objects.append(mesh_object)\r
         elif o.getName().startswith('anchor'):\r
-            bl.object.layerMask(mesh_object, [0, 1])\r
+            bl.object.setLayerMask(mesh_object, [0, 1])\r
         elif o.getName().startswith('bone'):\r
-            bl.object.layerMask(mesh_object, [0, 1])\r
+            bl.object.setLayerMask(mesh_object, [0, 1])\r
 \r
         # geometry\r
         vertices=[(v.x * scale, -v.z * scale, v.y * scale) for v in o.vertices]\r
@@ -175,6 +188,7 @@ def __createObjects(mqo, root, materials, imageMap, scale):
         bl.mesh.addUV(mesh)\r
         for i, (f, face) in enumerate(zip(o.faces, mesh.faces)):\r
             uv_array=[]\r
+            # ToDo FIX\r
             # flip face\r
             for j in reversed(range(f.index_count)):\r
                 uv_array.append((f.getUV(j).x, 1.0-f.getUV(j).y))\r
@@ -186,7 +200,7 @@ def __createObjects(mqo, root, materials, imageMap, scale):
 \r
         # mirror modifier\r
         if o.mirror:\r
-            bl.object.addMirrorModifier(mesh_object)\r
+            bl.modifier.addMirror(mesh_object)\r
 \r
         # set smoothing\r
         bl.mesh.setSmooth(mesh, o.smoothing)\r