首页 > 解决方案 > Maya python api乘法节点

问题描述

所以我正在创建一个可以有多个输入的基本乘法节点。

我想将 2 个属性相乘并在第三个属性中获得输出。它工作正常,但不是实时的。

所以基本上我已经创建了 3 个属性 2 输入 1 输出并创建了复合属性并在其中添加了所有 3 个。

当我在节点编辑器中取消选择并重新选择节点时,我只能看到输出得到更新。但它没有积极工作。

谢谢




    input1VecAttr = om.MObject()
    input2VecAttr = om.MObject()
    outputVecAttr = om.MObject()
    uniqueArrayComp = om.MObject()


    def __init__(self):
        OpenMayaMPx.MPxNode.__init__(self)
    

    def compute(self, plug, dataBlock):
        
        
        if plug == arrayTest2.uniqueArrayComp:


            #input value
            #arrayDataHandle = om.MArrayDataHandle(dataBlock.inputArrayValue(arrayTest2.uniqueArrayComp))
            arrayDataHandle = dataBlock.inputArrayValue(arrayTest2.uniqueArrayComp)
            elementCount = arrayDataHandle.elementCount()



            #output array

            for i in range(elementCount):


    

                bindData = arrayDataHandle.inputValue()

                myElementHandleChildInput1 = bindData.child(arrayTest2.input1VecAttr)
                inVal1 = myElementHandleChildInput1.asFloat()
                myElementHandleChildInput2 = bindData.child(arrayTest2.input2VecAttr)
                inVal2 = myElementHandleChildInput2.asFloat()

                output = inVal1 * inVal2


                myElementHandleChildOutput = bindData.child(arrayTest2.outputVecAttr)
                myElementHandleChildOutput.setFloat(output)
                
                print i
                try:
                    arrayDataHandle.next()
                except:
                    pass


  
            dataBlock.setClean(plug)
 

标签: pythonmayamaya-api

解决方案


推荐阅读