"""\r
__author__=['ousttrue']\r
__url__ = ["http://gunload.web.fc2.com/blender/"]\r
-__version__= '0.6 2010/05/05'\r
+__version__= '2.0'\r
__bpydoc__= '''\\r
\r
MQO Importer\r
0.7 20100606: integrate 2.4 and 2.5.\r
0.8 20100619: fix multibyte object name.\r
0.9 20100626: refactoring.\r
+2.0 20100724: update for Blender2.53.\r
+2.1 20100731: add full python module.\r
'''\r
\r
+bl_addon_info = {\r
+ 'category': 'Import/Export',\r
+ 'name': 'Import: Metasequioa Model Format (.mqo)',\r
+ 'author': 'ousttrue',\r
+ 'version': '2.0',\r
+ 'blender': (2, 5, 3),\r
+ 'location': 'File > Import',\r
+ 'description': 'Import from the Metasequioa Model Format (.mqo)',\r
+ 'warning': '', # used for warning icon and text in addons panel\r
+ 'wiki_url': 'http://sourceforge.jp/projects/meshio/wiki/FrontPage',\r
+ }\r
+\r
import os\r
import sys\r
\r
-# C extension\r
-from meshio import mqo\r
+try:\r
+ # C extension\r
+ from meshio import mqo\r
+except ImportError:\r
+ # full python\r
+ from pymeshio import mqo\r
\r
def isBlender24():\r
return sys.version_info[0]<3\r
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.emit\r
return material\r
\r
else:\r
# for 2.5\r
import bpy\r
- from bpy.props import *\r
\r
# wrapper\r
import bl25 as bl\r
\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
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
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
\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
\r
# List of operator properties, the attributes will be assigned\r
# to the class instance from the operator settings before calling.\r
+ filepath = bpy.props.StringProperty()\r
+ filename = bpy.props.StringProperty()\r
+ directory = bpy.props.StringProperty()\r
\r
- path = StringProperty(\r
- name="File Path", \r
- description="File path used for importing the MQO file", \r
- maxlen= 1024, default= "")\r
- filename = StringProperty(\r
- name="File Name", \r
- description="Name of the file.")\r
- directory = StringProperty(\r
- name="Directory", \r
- description="Directory of the file.")\r
-\r
- scale = FloatProperty(\r
+ scale = bpy.props.FloatProperty(\r
name="Scale", \r
description="Scale the MQO by this value", \r
min=0.0001, max=1000000.0, \r
\r
def execute(self, context):\r
execute_25(\r
- self.properties.path, \r
+ self.properties.filepath, \r
context.scene, \r
self.properties.scale)\r
return 'FINISHED'\r
def menu_func(self, context): \r
self.layout.operator(\r
IMPORT_OT_mqo.bl_idname, \r
- text="Metasequoia (.mqo)")\r
+ text="Metasequoia (.mqo)",\r
+ icon='PLUGIN'\r
+ )\r
\r
def register():\r
bpy.types.register(IMPORT_OT_mqo)\r