如何使用 python 在 Maya 及其着色器列表连接中查找剃须 n 个发型形状的列表



>我需要打印每个剃须形状及其分配的着色器名称(如果已分配(。请帮忙。

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。如果形状有多个着色器,这不会给出正确的结果 - 我不确定这是否可能。

最新更新