2016-06-21 64 views
0

我使用Blender 2.76b,threejs导出程序v1.5.0;我的目标是导出Blender场景中的每个网格。我注意到,如果一个网格被选中,那网io_three出口,所以我在控制台写了一个简单的Python脚本可执行:搅拌机控制台:使用threejs导出程序导出单个网格

import bpy 

for ob in bpy.context.scene.objects: 
    bpy.ops.object.select_all(action='DESELECT') 
    bpy.ops.object.select_pattern(pattern = ob.name) 
    bpy.ops.export.three(
     filepath = 'path to folder' + ob.name + ".json", 
     option_vertices=True, 
     option_faces=True, 
     option_normals=True, 
     option_uv_coords=True, 
     option_face_materials=True, 
     option_colors=True) 

它以正确的名称创建文件,但错误的内容:所有以.json文件包含场景第一个网格的导出内容。

我怎么能得到正确的行为? 在此先感谢。

回答

2

three.js导出器导出整个场景或活动对象。在更改选择时,脚本中的任何内容都不会更改活动对象。我用abspath()允许您通过'//'

import bpy 

for ob in bpy.context.scene.objects: 
    bpy.ops.object.select_all(action='DESELECT') 
    if ob.type == 'MESH': 
     ob.select = True 
     bpy.context.scene.objects.active = ob 
     bpy.ops.export.three(
      filepath = bpy.path.abspath('//' + ob.name + ".json"), 
      option_vertices=True, 
      option_faces=True, 
      option_normals=True, 
      option_uv_coords=True, 
      option_face_materials=True, 
      option_colors=True) 
+0

启动路径谢谢,其真正的工作得到相对于混合文件的路径 – vec3h