Blender Scripting - 导入Collada文件并将其另存为.blend

时间:2015-11-05 00:22:45

标签: python blender

现在,我在python中有一个脚本,它将collada(.dae)文件转换为一个blender文件(.blend)。

在命令行中:

C:\Program Files\Blender Foundation\Blender>blender.exe --background --python c:\Users\c.diaz\Desktop\convert_collada_to_blend.py -- c:\Users\c.diaz\Desktop
\Maya.dae -- c:\Users\c.diaz\Desktop\Result.blend

我的剧本:

import bpy
import sys

argv = sys.argv
argv = argv[argv.index("--") + 1:] # get all args after "--"

dae_in = argv[0]
blend_out = argv[1]

bpy.ops.wm.collada_import(filepath=dae_in)
bpy.ops.render.render()
bpy.ops.wm.save_mainfile(filepath=blend_out)

执行命令后,我得到很多输出,表明它实际上正在做某事。但是,在流程结束时,我不知道结果文件的保存位置。

任何帮助你们,我会很感激。

1 个答案:

答案 0 :(得分:1)

在输入命令时,在temp目录中查找当前目录中名为--的文件,或者可能与blender.exe相同的目录。

temp directory的位置可能会有所不同,请尝试

import tempfile
print(tempfile.gettempdir())

您使用argv = argv[argv.index("--") + 1:]来获取第一个' - '之后的参数。其中包括额外的' - '在您期望使用的两条路径之间。第二个是您分配给blend_out

的内容

我希望您要使用的命令是

C:\Program Files\Blender Foundation\Blender\blender.exe --background
--python c:\Users\c.diaz\Desktop\convert_collada_to_blend.py
-- c:\Users\c.diaz\Desktop\Maya.dae c:\Users\c.diaz\Desktop\Result.blend

另外值得注意的是您使用bpy.ops.render.render(),这并不保存渲染图像(假设您有摄像头设置)。使用bpy.ops.render.render(write_still=True)将渲染的图像保存到磁盘。您可能还需要设置bpy.context.scene.render.filepath以指定图像的保存位置。

相关问题