2017-08-16 5 views
-1

J'ai besoin d'imprimer chaque forme de rasage et le nom de shader qui lui a été assigné si elle est assignée. S'il vous plaît aider dans ceci.Comment trouver la liste des formes de rasage Shave n dans Maya et sa connexion à la liste des shaders en utilisant python

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 
+3

Quelle est votre question? – Miket25

+0

Votre question n'est pas claire, Voulez-vous trouver le shader/fichier ou tous les réseaux? S'il vous plaît envoyez l'exemple de votre résultat –

+0

Désolé pour la confusion .. Je dois imprimer chaque forme de rasage et son nom de shader assigné le cas échéant – Murali

Répondre

0

Si vous voulez que le nom de shaders pour une forme:

def shader_from_shape(shape): 
    sg = cmds.listConnections(shape, type='shadingEngine') 
    if sg: 
     return cmds.listConnections(sg[0] + ".surfaceShader") 

et pour obtenir les shaders pour toutes les formes de cheveux:

for shape in cmds.ls(type='shaveHair'): 
    print shape, shader_from_shape(shape) 

si la forme n'a pas Shader attaché, il devrait imprimer None pour le shader. Cela ne donnera pas de résultats corrects si la forme a plus d'un shader - je ne sais pas si c'est possible ou non.