在 Maya 2017 中使用 python,我能够重现我的 render_setup 的结构(层、集合和覆盖),除了 shaderOverride。
对于经典覆盖,我使用实例函数:maya.app.renderSetup.model.collection.Collection.createOverride()
是否有类似的命令来创建着色器覆盖,或者您是否添加了一些特定属性?
谢谢
您需要要创建的覆盖的 MTypeId。在 Maya 安装文件夹中找到 typeIDs.py ( .../lib/python2.7/site-packages/maya/app/renderSetup/model/typeIDs.py
)
如您所见,着色器覆盖的 MTypeId 是0x58000386
.
然后,只需创建一个图层和一个集合,并调用您的 createOverride 方法:
from maya.app import renderSetup
import maya.api.OpenMaya as OpenMaya
renderSetup.model.renderSetup.initialize()
rs = renderSetup.model.renderSetup.instance()
# Create layer
rsLayer = rs.createRenderLayer('MyFirstLayer')
# Create collection
rsColl = rsLayer.createCollection('MyFirstCollection')
# Create shading override
over_obj = rsColl.createOverride('MyFirstOverride', OpenMaya.MTypeId(0x58000386))
如果要创建另一个覆盖,只需找到相应的 MTypeId。