如何使用 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 的分配,而是一对多,然后又是一对多(当然你不会经常看到它)。请注意,当您只需要一个 namespace 时,您使用了 2 个 namespace 。
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/