如何使用python在Maya及其着色器列表连接中查找Shave n haircut形状列表

时间:2017-08-16 13:47:15

标签: python maya mel pymel

如果已分配,我需要打印每个剃须形状及其指定的着色器名称。请帮助。

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

1 个答案:

答案 0 :(得分:0)

如果您想要形状的着色器名称:

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