Maya Python - 如何创建着色器覆盖?
Maya Python - How to create shaderOverride?
在 Maya 2017 中使用 python,我能够重现 render_setup 的结构(层、集合和覆盖),除了 shaderOverride。
对于经典覆盖,我使用实例函数:maya.app.renderSetup.model.collection.Collection.createOverride()
是否有类似的命令来创建着色器覆盖或添加一些特定的属性?
谢谢
您需要要创建的覆盖的 MTypeId。在您的 Maya 安装文件夹 (.../lib/python2.7/site-packages/maya/app/renderSetup/model/typeIDs.py
)
中找到 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。
在 Maya 2017 中使用 python,我能够重现 render_setup 的结构(层、集合和覆盖),除了 shaderOverride。
对于经典覆盖,我使用实例函数:maya.app.renderSetup.model.collection.Collection.createOverride()
是否有类似的命令来创建着色器覆盖或添加一些特定的属性?
谢谢
您需要要创建的覆盖的 MTypeId。在您的 Maya 安装文件夹 (.../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。