Maya插件属性验证

时间:2017-05-24 16:49:17

标签: plugins attributes maya

我正在尝试验证我的自定义MPxEmitterNode属性。

我有may_min和force_max属性,这些属性在maya用语中是double3类型,基本上是两个包含double [3]数据的对象。

我想确保force_min小于3个组件中每个组件的force_max。如果有人在属性编辑器中输入属性的值,或者为那些属性调用mels setAttr,那么我只想更换最小值和最大值,然后将失败" min< MAX"检查。

我尝试在force_min,force_max和它们各自的组件x,y,z对象之间设置ATTRIBUTE_AFFECTS关系。这似乎导致了一个导致Maya崩溃的循环问题。我还尝试为派生的MPxEmitterNode编辑自定义计算函数,因此它将force_min和force_max值设置为swap。在这种情况下,force_ *属性似乎从未计算过。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

一般来说,' Maya'这样做的方法是,如果min和max设置不正确,输出会出错。你不知道谁将设置这些属性 - 它可以是连接或脚本,甚至可以在动画的帧之间重置 - 所以最好让它们即使结果是无意义的,dag评估也会流过。这就像在球体节点上设置零半径一样 - 正确'正确'甚至认为这是错误的。

但是,您可以交换g++ -g -shared -fpic -L$(BOOST)/lib \ -lboost_system -I$(JAVA_HOME)/include \ -I$(JAVA_HOME)/include/linux \ your_code.c -o libyourcode.so 方法中的值,以获得与交换值相同的效果,而无需重置插件值本身。从内部计算设置输入插件是一个坏主意,因为它引入了dag评估流程的循环。 Dag节点必须是非周期性的(" a"在dag中:有向无环图