Maya / Python,如何改变显示层的颜色?

Maya / Python, how to change display layer's colour?

新建显示层后,如何设置该层的颜色属性?

sel = cmds.ls(selection=True,fl=True)    
coneGroup = cmds.group(empty=True,name="cones_#")
dGroup = cmds.createDisplayLayer(coneGroup, n = "cones_cam")
cmds.color(dGroup, (0,0,0))

使用需要使用setAttr:

sel = cmds.ls(selection=True,fl=True)    
coneGroup = cmds.group(empty=True,name="cones_#")
dGroup = cmds.createDisplayLayer(coneGroup, n = "cones_cam")

# Enable the layer's color.
cmds.setAttr("{}.color".format(dGroup), True)

# Enable the layer's color to use rgb.
cmds.setAttr("{}.overrideRGBColors".format(dGroup), True)

# Set the layer's color with values between 0-1.
cmds.setAttr("{}.overrideColorRGB".format(dGroup), 1, 0, 0)

代码摘录:

for shadingEngine in cmds.ls(type="shadingEngine"):
    new_shader = cmds.listConnections(shadingEngine, type = 'lambert')[0]
    print new_shader
    new_sg = mC.sets(renderable=True, noSurfaceShader=True, empty=True)
    print new_sg
    f=mC.setAttr (new_shader+'.color',values[0],values[1],values[2])

    mC.hyperShade(assign=new_shader)

以上代码适用于通过表面节点的颜色阴影,您可以参考并暗示它,H.

#代码

用于 cmds.ls 中的着色引擎(类型="shadingEngine"):

    new_shader = cmds.listConnections(shadingEngine, type = 'lambert')[0]
    print new_shader
    new_sg = mC.sets(renderable=True, noSurfaceShader=True, empty=True)
    print new_sg
    f=mC.setAttr (new_shader+'.color',values[0],values[1],values[2])
    mC.hyperShade(assign=new_shader)

以上代码通过表面节点处理颜色阴影,您可以参考并暗示它,祝您搜索愉快