首先,对Python来说很新,所以我为这里的任何缺点道歉。我正在尝试在Maya中构建一个lookDev脚本,基本上是一个新招聘的窗口,可以访问着色器,纹理,所有有用的东西。我的问题出现在这里:
def CreateRemapValue():
selNodes = mc.ls(sl = True, type = "file")
if selNodes:
for selNode in selNodes:
newRemapV = mc.shadingNode('remapValue', name = selNode + "_RemapValue", asUtility = True)
mc.setAttr = (selNode + ".alphaIsLuminance", 1)
mc.connectAttr(selNode + '.outAlpha', newRemapV + '.inputValue')
else:
newRemapV = mc.shadingNode('remapValue', asUtility = True, name = "RemapValue")
非常直截了当,但发生的事情是我和我经验丰富的Python朋友都能想到的。
如果我选择了一个文件节点并运行它,它会创建一个RemapValue没问题。 如果我在没有选择任何文件节点的情况下运行它,它会创建一个RemapValue没问题。 然后,整个脚本中的任何内容都不起作用。没有着色器,没有纹理,没有灯光。没有。这一切都给了我'元组'对象不可调用的错误。使脚本完全无法使用。
它给我错误的行都类似于以下内容。我做了两个步骤,当我尝试创建一个基本的木质着色器时出现错误:
mc.setAttr(RoughWoodA_TileableTX + ".fileTextureName", "T:/06_Image_Lib/Texture_Library/TILEABLE/RoughWood_Tileable_01.tif", type = "string")
给我的错误是:
# Error: TypeError: file <maya console> line 329: 'tuple' object is not callable
任何帮助或指导都将非常感激。谢谢:))
答案 0 :(得分:1)
您的问题是mc.setAttr = (selNode + ".alphaIsLuminance", 1)
行。您正在尝试将一个元组分配给一个函数,然后在代码中尝试调用该函数。
修复应该是调用mc.setAttr
而不是分配给它,如下所示:
mc.setAttr(selNode + ".alphaIsLuminance", 1)