python - 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)
解决方案
推荐阅读
- python - 设计代码数据库应用程序的更新机制
- sql-server - xmlns 的 XML 提取问题
- git - 如何在 Visual Studio 2017 中拉/合并请求?
- jquery - 免费 - jqgrid:结合冻结列、分组标题和工具栏搜索
- react-native - 如何在本机反应中从屏幕上删除顶部选项卡?
- php - 缺少 mysqli 扩展。请检查您在 php7.2.10 中的 PHP 配置错误
- android - 更改 WebView 中的字体系列
- java - Android-Firebase 将数据检索到列表视图中,但它不可见
- ruby-on-rails - rails中的`new`和`build`有什么区别?
- java - 插入地图时按值保留顺序