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

Blender Scripting - Import Collada file and save it as .blend

现在,我在 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)

执行命令后,我得到很多输出表明它确实在做某事。但是,在过程结束时,我不知道结果文件保存在哪里。

如有任何帮助,我将不胜感激。

在输入命令时在当前目录、临时目录或可能与 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 以指定图像的保存位置。