2015-11-05 56 views
0

现在,我有一个python脚本将collada(.dae)文件转换为blender文件(.blend)。Blender脚本 - 导入Collada文件并保存为.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

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

temp directory可能会有所不同的位置,尽量

import tempfile 
print(tempfile.gettempdir()) 

您使用argv = argv[argv.index("--") + 1:]后的第一个拿到ARGS“ - ”,其中包括多余的“ - ”你期望的两个路径之间要使用的。其中第二个是要分配给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指定图像的保存位置。

+0

它的工作原理!我的新问题是...我是否需要bpy.ops.wm.save_mainfile(filepath = blend_out)才能保存文件?或者在执行bpy.ops.wm.collada_import(filepath = dae_in)后保存该文件。 – Camilo

+0

是的,如果您想保留混合文件,则需要专门保存该文件。 – sambler