Ich möchte Materialeinstellungen in einem Skript in Maya verarbeiten.
Applying a Texture in Python https://forums.cgsociety.org/t/applying-a-texture-in-python/1573565/7
Assigning a Material using Pymel https://discourse.techart.online/t/assigning-a-material-using-pymel/1240
Vorausgesetzt, maya.cmds zu verwenden
import maya.cmds as mc
Erstellen Sie einen Datei-Shader und legen Sie den Pfad der Texturdatei fest.
Erstellen Sie einen Shader-Knoten und verbinden Sie das Attribut (z. B. "Farbe") des Shaders, dem Sie die Textur "file.outColor" zuweisen möchten.
Es scheint, dass Shader Objekten (Mesh) nicht direkt zugewiesen werden können, also über einen ShadingGroup-Knoten (einen Knoten, der Surface Shader, Volume Shader usw. sammelt).
Verbinden Sie den .surfaceShader
des ShadingGroup-Knotens mit dem .outColor
des Datei-Shaders.
Weisen Sie einem Objekt eine ShadingGroup zu. Es scheint viele Möglichkeiten zu geben, aber maya.cmds erleichtert Sets?
mc.sets("geo", edit=True, forceElement="sg1")
Die Struktur ist wie folgt (ich frage mich, ob es einfacher zu verstehen ist, wenn Sie sie mit dem Maya Node-Editor überprüfen).
object(mesh) <- shadingGroup node (.surfaceShader) <- (.outColor) File shader (.fileTextureName) <- Texture filename
Wenn Sie es als Volume-Shader oder Displacement-Shader zuweisen möchten, können Sie das mit ShadingGroup verbundene Attribut ändern.
Recommended Posts