0

我有一个自定义节点,它在其计算函数中使用 cmds.setAttr() 来更新连接到它的两个节点的属性(节点的目的是同步两个属性而不锁定它们)。该节点按预期工作,同步单个渐变节点颜色输入位置和 pCube 的平移之间的值(渐变位置是单个双精度,转换为三个双精度以进行平移,反之亦然)。

渐变节点映射到视口中的平面。当我在属性编辑器中更改渐变颜色条目的位置时,视口着色按预期更新,并且 pCube 移动到适当的位置。但是,当我移动立方体时,渐变位置和缩略图预览会在 AE 中正确更新,但平面上的视口着色不会更新。

我知道发生这种情况是因为当使用命令设置颜色条目的位置时,渐变的 outColor 不会改变,所以我假设我应该能够将 outColor 插头设置为脏或设置渐变入口位置插头脏,因为 outColor 应该依赖于它。问题是,当我尝试使用 maya.dgdirty() 命令从计算函数中执行此操作时,视口仍然没有更新(而且据我所知,该属性没有重新评估)。

奇怪的是,当我在脚本编辑器中使用相同的 maya.dgdirty() 命令时,它会导致视口按预期更新。本质上,我的问题是:在我的同步节点的计算功能中设置斜坡入口位置后,如何让斜坡节点的 outColor 正确更新(从而导致视口着色更新)?

4

0 回答 0