我有一个自定义节点,它在其计算函数中使用cmds.setAttr()来更新连接到它的两个节点的属性(节点的目的是同步两个属性而不锁定它们)。节点按预期工作,在单个渐变节点颜色输入位置和pCube的平移之间同步值(斜坡位置是单个双精度,转换为三个双精度用于平移,反之亦然)。
渐变节点映射到视口中的平面。当我在属性编辑器中更改渐变颜色条目的位置时,视口着色按预期更新,并且pCube移动到适当的位置。但是,当我移动立方体时,渐变位置和缩略图预览会在AE中正确更新,但平面上的视口阴影不会更新。
我知道这是因为当使用命令设置颜色条目的位置时斜坡的outColor不会改变,所以我认为我应该能够将outColor插头设置为脏或设置斜坡入口位置插头脏,因为outColor应该依赖它。问题是,当我尝试使用maya.dgdirty()命令在compute函数中执行此操作时,视口仍然不会更新(并且我可以判断,该属性未被重新评估)。
奇怪的是,当我从脚本编辑器使用相同的maya.dgdirty()命令时,它会导致视口按预期更新。 基本上,我的问题是:在我的同步节点的计算功能中设置了斜坡输入位置后,如何让斜坡节点的outColor正确更新(从而导致视口阴影更新)?