如何使用 python 获取着色器分配给的网格的名称?

例如,lambert02 --> AreaA_01_geo、lambert03 --> AreaA_03_geo、lambert04 --> AreaA_04_geo

我尝试使用

Shader = cmds.ls(type = 'surfaceShader')
for i in Shader:
    con = mc.listConnections('%s.outColor' % i)
    name = cmds.listConnections(Shader, type="mesh")

但是我无法从 name 变量中获取任何信息

最佳答案

着色器连接到一个或多个包含分配的着色集。所以这不是一个 1:1 的分配,而是一对多,然后又是一对多(当然你不经常看到它)。请注意,当您只需要一个命名空间时,您会使用 2 个命名空间。

import maya.cmds as mc

Shader = mc.ls(type = 'surfaceShader')
for i in Shader:
    con = mc.listConnections('%s.outColor' % i)
    names = mc.listConnections(con, type="mesh")
    print i, "->", ", ".join(names)

关于python - 获取着色器分配给的网格的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24301989/

10-12 16:03