Python 如何使用MEL命令保存多幅图像
我不熟悉MEL脚本,正在使用MAYA处理海量文件(超过10000个)的批渲染,基本原型如下:Python 如何使用MEL命令保存多幅图像,python,maya,mel,Python,Maya,Mel,我不熟悉MEL脚本,正在使用MAYA处理海量文件(超过10000个)的批渲染,基本原型如下: 将maya.mel导入为mel 将maya.cmds作为mc导入 mc.file(“D:/render/abc.mb”,i=True) mel.eval('RenderIntoNewWindow;') mc.renderwinoweditor('renderView',e=True,wi='D:/render/abc')您可能不想使用RenderIntoNewWindow,因为这是一个批处理脚本。只需
将maya.mel导入为mel
将maya.cmds作为mc导入
mc.file(“D:/render/abc.mb”,i=True)
mel.eval('RenderIntoNewWindow;')
mc.renderwinoweditor('renderView',e=True,wi='D:/render/abc')
您可能不想使用RenderIntoNewWindow,因为这是一个批处理脚本。只需使用cmds.render()并传入要渲染的摄影机。下面是一个非常简单的示例:
cmds.setAttr("defaultRenderGlobals.imageFormat", 32)
result = cmds.render('persp', x=512, y=512)
第一行将渲染格式设置为PNG,第二行渲染图像并将文件名放入变量“result”
Maya使控制文件的结尾位置、格式等操作变得非常笨拙。最简单的方法是在“渲染全局”(render globals)窗口中设置适用于您的选项,并检查脚本侦听器的设置更改,或参考“渲染全局”(renderGlobals)的设置,例如,要指定文件名而不是在渲染时重复maya文件名,可以执行以下操作:
cmds.setAttr("defaultRenderGlobals.ifp", "your_filename_here",type='string')
执行批处理部分很容易,只需循环一系列文件,并对每个文件执行相同的操作
filenames = ['c:/batch/a.mb', 'c:/batch/b.mb']
results = []
for eachfile in filenames:
cmds.file(eachfile, open =True, force=True)
cmds.setAttr("defaultRenderGlobals.imageFormat", 32)
# other render settings would go here
result.append( cmds.render('persp', x=512, y=512))
print results # prints out the names of all the rendered files
需要注意的是,渲染设置(因为它支持许多不同的渲染器,它们有自己的设置,从Maya到OpenGL到MentalRay再到Turtle)非常复杂。如果您希望必须对文件进行复杂的配置,那么最好投资一个商业批处理渲染管理器,该管理器具有一个良好的UI,可用于所有需要使用的选项。对于简单的情况(尤其是文件已经正确设置,您只需渲染它们),上述操作应该可以。非常感谢您的回答。另一个问题。cmds.render只能使用MAYA默认渲染。但是如果我需要使用arnold,我应该怎么做?尝试在defaultRenderGlobals对象上设置currentRenderer属性。(手动设置一次,然后通过检查属性查看正确的字符串)。