Ich habe Tutorials über Digital Tutors für Skripting verfolgt, und in einigen Videos macht der Tutor ein Werkzeug, das gamma korrekte Knoten zu jedem ausgewählten Shader mit MEL, für mein Lernen ich dachte, ich würde versuchen, umzuschreiben der Code in Python, aber ich habe Mühe, ein Stück MEL-Code in Python zu konvertieren.Mel to Python Schwierigkeit
Der Code, den ich bisher habe, ist dies:
import maya.cmds as cmds
selMat = cmds.ls(sl=True, mat=True)
if len(selMat) < 1:
cmds.warning('Select at least one Maya or Mental Ray Shader to apply gamma correct node to.')
for mat in selMat:
gammaCorrect_util = cmds.shadingNode('gammaCorrect', asUtility=True)
rename_gamma = cmds.rename(gammaCorrect_util, ('gamma_' + mat))
cmds.setAttr((rename_gamma + '.gammaX'), 0.45)
cmds.setAttr((rename_gamma + '.gammaY'), 0.45)
cmds.setAttr((rename_gamma + '.gammaZ'), 0.45)
if cmds.attributeQuery('color', mat): # << error here
connection_to_mat = cmds.listConnections(mat + '.color')
if len(connection_to_mat) == 1:
cmds.connectAttr ((connection_to_mat + '.outColor'), (rename_gamma + '.value'), f=True)
cmds.connectAttr ((rename_gamma + '.outValue'), (mat + '.color'), f=True)
wenn ich dies laufe ich die folgende Fehlermeldung erhalten:
Error: Too many objects or values.Traceback (most recent call last): File "", line 17, in TypeError: Too many objects or values.
Der MEL-Code, wo ich das Thema denken ist:
Ich bin mir nicht sicher, wie Sie den "attributeQuery" -Befehl in Python anstelle von "attributeExists" in MEL, T konvertieren und verwenden Der Tutor definiert auch die voreingestellten Variablen "$ connection_to_mat []", aber dies funktioniert nicht in Python.
Sie haben den ursprünglichen Code, was ist in Zeile 17? Es sieht für mich wie eine leere Zeile aus. Entweder ist der Code nicht genau das, was du ausgeführt hast, oder ich habe es falsch gezählt - aber ich bin nicht wirklich daran interessiert, 17 Zeilen wieder zu zählen, wenn du bereits weißt, welche es ist und könnte habe es in erster Linie in deine Frage gebracht. – Useless
Hallo, tut mir leid, Kumpel, ich bin neu, es hat nicht korrekt im Forum gepostet. Der Code in Zeile 17 in meinem Skript - Editor in maya lautet "if cmds.attributeQuery ('color', mat):" –
Nein Problem, ich habe es gerade in die Frage für Sie bearbeitet – Useless