2017-08-16 1 views
-1

Ich muss jedes Shave Shape und seinen zugewiesenen Shadernamen drucken, wenn zugewiesen. Bitte helfen Sie dabei.So finden Sie eine Liste von Shave n Haarschnitt Shapes in Maya und seine Shaderliste Verbindung mit 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

Was ist Ihre Frage? – Miket25

+0

Ihre Frage ist nicht klar, wollten Sie den Shader/Datei oder alle Netzwerke finden? Bitte senden Sie das Beispiel Ihres Ergebnisses –

+0

Sorry für die Verwirrung. Ich muss jedes Shave-Shape und seinen zugewiesenen Shadernamen, wenn vorhanden, drucken – Murali

Antwort

0

Wenn Sie den Shader-Namen für eine Form:

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

und die Shadern für alle Haar Formen zu erhalten:

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

, wenn die Form nicht Shader angebracht hat, es sollte None für den Shader drucken. Wenn die Form mehr als einen Shader hat, gibt das keine korrekten Ergebnisse - ich bin mir nicht sicher, ob das möglich ist oder nicht.

Verwandte Themen