现在,我在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)
执行命令后,我得到很多输出,表明它实际上正在做某事。但是,在流程结束时,我不知道结果文件的保存位置。
任何帮助你们,我会很感激。
答案 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
以指定图像的保存位置。