如何使用 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/