>我需要打印每个剃须形状及其分配的着色器名称(如果已分配(。请帮忙。
import os
import maya.cmds as cmds
shave_list = cmds.ls(type='shaveHair')
cmds.select(cl=True)
a = 0
list_texture = []
while a < len(shave_list):
file_list = cmds.listconnections(shave_list[a],type="file")
a+=1
如果需要形状的着色器名称:
def shader_from_shape(shape):
sg = cmds.listConnections(shape, type='shadingEngine')
if sg:
return cmds.listConnections(sg[0] + ".surfaceShader")
并获取所有头发形状的着色器:
for shape in cmds.ls(type='shaveHair'):
print shape, shader_from_shape(shape)
如果形状未附加着色器,则应打印着色器的None
。如果形状有多个着色器,这不会给出正确的结果 - 我不确定这是否可能。