渲染设置 Python API 作为 Maya 安装的一部分提供,您可在以下文件夹中找到相关文件:..\Python\Lib\site-packages\maya\app\renderSetup。
若要使用渲染设置 API,您应先按如下所示导入渲染设置模块:
import maya.app.renderSetup.model.override as override import maya.app.renderSetup.model.selector as selector import maya.app.renderSetup.model.collection as collection import maya.app.renderSetup.model.renderLayer as renderLayer import maya.app.renderSetup.model.renderSetup as renderSetup
还应导入 maya.cmds (import maya.cmds),以便能够使用本地 Maya 命令。
以下示例脚本创建了一个层和两个集合。稍后,它使用表达式 mySphere* 将球体添加到第一个集合,然后使用表达式 myCube* 将立方体添加到第二个集合。
import maya.app.renderSetup.model.override as override
import maya.app.renderSetup.model.selector as selector
import maya.app.renderSetup.model.collection as collection
import maya.app.renderSetup.model.renderLayer as renderLayer
import maya.app.renderSetup.model.renderSetup as renderSetup
import maya.cmds as cmds
rs = renderSetup.instance()
# Create and append the render layer
rl = rs.createRenderLayer("MyRenderSetupLayer")
# Create and append 2 collections
c1 = rl.createCollection("sphereCollection")
c2 = rl.createCollection("cubeCollection")
# Create a trivial scene with a cube, a sphere and a cylinder
cmds.polySphere(name='mySphere')
cmds.move(2, 'mySphere', y=True)
cmds.polyCube(name='myCube')
cmds.move(5, 'myCube', y=True)
cmds.polyCylinder(name='myCylinder')
cmds.move(10, 'myCylinder', y=True)
# Set up collection 1 to select all spheres using the pattern mySphere*,
# and collection 2 to select all cubes using the pattern myCube*.
c1.getSelector().setPattern('mySphere*')
c2.getSelector().setPattern('myCube*')
# Set the render layer as visible.
# Only the sphere and the cube are displayed as they are collection members.
rs.switchToLayer(rl)
您可以使用渲染设置命令查询渲染设置成员身份。
若要了解有关以下命令的详细信息:
renderLayerMembers
renderSetupFindCollections
renderSetup
renderSetupLegacyLayer
请使用 help() 查询文档字符串。
例如,以下 Python 命令可用于查询 renderLayerMembers 命令:
import maya.app.renderSetup.model.modelCmds as modelCmds help(modelCmds.RenderLayerMembersCmd)
您可以通过类似方式查询其他命令的文档字符串。
若要了解有关 renderSetupSelect 命令的详细信息,请在“脚本编辑器”(Script Editor)的“Python”选项卡中输入以下命令:
import maya.app.renderSetup.views.viewCmds as viewCmds help(viewCmds.RenderSetupSelectCmd)
您可以按如下所示定义函数,用于在场景中导入和导出渲染设置 .json 文件。
import maya.app.renderSetup.model.renderSetup as renderSetup
import json
# Cannot name function "import", as this is a reserved Python keyword.
def importFile(filename):
with open(filename, "r") as file:
renderSetup.instance().decode(json.load(file), renderSetup.DECODE_AND_OVERWRITE, None)
def exportFile(filename):
with open(filename, "w+") as file:
json.dump(renderSetup.instance().encode(None), fp=file, indent=2, sort_keys=True)