あなたはほとんどそこにいる - あなただけのシェーダのoutColor
シェーディンググループのsurfaceShader
属性に接続する必要があります。
import maya.cmds as cmds
for i in range(5):
shader = cmds.shadingNode ('surfaceShader', name=('mm'+str(i)), asShader=True)
sg = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=('mmSG'+str(i)))
cmds.setAttr(shader +'.outColor', 1,0,0)
cmds.connectAttr(shader + ".outColor", sg + ".surfaceShader")
編集
OPの意図を誤解しました。アイデアは、指定された色とシェーダーのセットを作ることであるならば、あなたはこのような何かをしたいと思います:
colors = {'red': (1,0,0), 'blue': (0,1,0), 'green':(0,0,1)}
for name, color in colors.items():
shader = cmds.shadingNode ('surfaceShader', name=(name), asShader=True)
sg = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=(name + "SG")
cmds.setAttr(shader +'.outColor', color[0], color[1], color[2])
cmds.connectAttr(shader + ".outColor", sg + ".surfaceShader")
を使用して終了):)返信いただきありがとうございます)はい、うーん、私の質問はどのようにシェーダ[0]が赤、シェーダ[1]が緑、シェーダ[2]が青、ループを.... 3ステップごとに設定するのですか... – Eddie
それのための辞書とどのようにあなたは3回毎にirをループさせますか?私はシェイダーを持っていればどういう意味なのですか?4 5 6 7 8 9 10a – Eddie
この場合、赤、緑、青という3つのシェーダーしか作成していません。辞書のキーを0,1,2に変更して、%演算子を含むforループを使用して、0,1,2,0,1,2 ...を得ることができます。 – theodox