2015-11-05 61 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