gpt4 book ai didi

python - 更改在 Maya 中创建的图层的渲染元素状态时出错

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:31 25 4
gpt4 key购买 nike

我编写了一个 python 脚本,用于在 Maya 中为打火机创建渲染层。该脚本创建 4 个基本层,如下图所示。该脚本还会更改每个图层上的渲染设置。 enter image description here
我在尝试更改 chrShadow 和 occ 层的渲染元素的状态时收到以下错误。

# RuntimeError: # Error occurred during execution of MEL script
file: C:/Program Files/Autodesk/Maya2013/vray/scripts/vrayCreateRenderElementsTab.mel line 453: Object 'listAdded' not found.

创建每个图层后,脚本会相应地更改渲染设置。 FOllwoing 是尝试更改渲染元素的代码。

    mel.eval("unifiedRenderGlobalsWindow")

render_elements = cmds.ls(type="VRayRenderElement")

if "Beauty" in current_layer:
for passes in render_elements:
mel.eval("listAddedPressed " + str(passes) + " 1")

elif "Shadow" in current_layer:
for passes in render_elements:
if "Shadow" in passes:
mel.eval("listAddedPressed " + str(passes) + " 1")
else:
mel.eval("listAddedPressed " + str(passes) + " 0")

elif "occ" in current_layer:
for passes in render_elements:
if "vrayRE_Extra_Tex" in passes:
mel.eval("listAddedPressed " + str(passes) + " 1")
elif "vrayRE_Velocity" in passes:
mel.eval("listAddedPressed " + str(passes) + " 1")
else:
mel.eval("listAddedPressed " + str(passes) + " 0")

对于 chrShadow 图层,需要以下设置:enter image description here对于 OCC 层,需要进行以下设置:enter image description here 。如果我稍后单独运行此代码,它有时会起作用,但大多数情况下我都会收到此错误。有没有办法消除这个错误?

最佳答案

您必须使用“evalDeferred()”命令。Maya 不会刷新,也无法更改您刚刚创建的 channel 中的参数。

示例:

> cmds.createNode( 'renderPass', name='ZDepth' )
> cmds.evalDeferred("""cmds.setRenderPassType( 'ZDepth', type='CAMZ'
> )""")

关于python - 更改在 Maya 中创建的图层的渲染元素状态时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23654134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com