python - Maya Python,连接到 2 个列表

标签 python rendering maya

伙计们,这是关于 Maya、Python 的问题。

我可以创建一个循环并将着色器 A 颜色设置为 R 着色器 B 颜色设置为 G 并将着色器 C 设置为 B

for i in range(5):
    shader = cmds.shadingNode ('surfaceShader', name=('mm'+str(i)), asShader=True)
    cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=('mmSG'+str(i)))
    cmds.setAttr(shader +'.outColor', 1,0,0)

这就是我到目前为止所拥有的,我坚持每3步......

最佳答案

您已经差不多完成了 - 您只需将着色器的 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")

关于python - Maya Python,连接到 2 个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450808/

相关文章:

python - Autodesk Maya api - 导入几何体

python - 如何反序列化分割后的json数据

python - 如何在 Python 中并行检查多个列表中是否存在某个项目?

python - 仅将一些元组元素扩展到变量列表

python - 基于 Python 中的几个正则表达式规则进行替换

pdf - Grails 渲染插件在 Grails3.2.4 下不起作用?

javascript - React Native中的条件渲染错误

java - 如何绘制大型 BufferedImage 的一部分?

python - 可以运行延迟执行的代码吗?

swift - Collada 变形动画混合形状 Maya