我正在使用Blender 2.76b,threejs exporter v1.5.0;我的目标是在Blender场景中导出每个网格。我注意到如果选择单个网格,io_three会导出该网格,所以我在控制台中编写了一个简单的python脚本可执行文件:
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文件都包含场景第一个网格的导出内容。
我怎样才能获得正确的行为? 提前谢谢。
答案 0 :(得分: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)