0

在 Maya 2017 中使用 python,我能够重现我的 render_setup 的结构(层、集合和覆盖),除了 shaderOverride。

对于经典覆盖,我使用实例函数:maya.app.renderSetup.model.collection.Collection.createOverride()

是否有类似的命令来创建着色器覆盖,或者您是否添加了一些特定属性?

谢谢

4

1 回答 1

2

您需要要创建的覆盖的 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。

于 2018-01-18T16:25:46.067 回答