0
我有基於特定頂點位置創建的多維數據集,但我需要知道如何通過python腳本將這些多維數據集變成紅色,而無需選擇多維數據集Maya並手動將它們變成紅色。如何使用python代碼爲Maya製作多維數據集的特定顏色
我有基於特定頂點位置創建的多維數據集,但我需要知道如何通過python腳本將這些多維數據集變成紅色,而無需選擇多維數據集Maya並手動將它們變成紅色。如何使用python代碼爲Maya製作多維數據集的特定顏色
要在Maya中分配材質,您需要獲取關聯材質的着色組,這在Maya中是一個shadingEngine
節點。他們使用sets命令作爲參數。
import maya.cmds as cmds
# assign shader to objects. objects can be a single object or a list of objects
def assign_shader(shader, objects):
# get the shadingGroup with listConnections
shading_group = cmds.listConnections(shader, type='shadingEngine')[-1]
# use `sets` to force the objects into the shading group
cmds.sets(objects, fe=shading_group)
# examples
# assign_shader('lambert1', 'pCube1')
# assign_shader('lambert1', ['pCube1', 'pCube2'])
您可以手動紅色材料,並調用它任何你想要的,然後分配給它這種方式。如果你想通過程序生成着色器,它是:
new_shader = cmds.shadingNode('lambert', asShader=True, name='yournamehere')
new_sg = cmds.sets(renderable=True, noSurfaceShader=True, empty=True)
cmds.connectAttr(new_shader + '.outColor', new_sg + ".surfaceShader", force=True)
你會再喂new_shader
到assign_shader
如果所有你關心的是一個簡單的顏色,你應該使用lambert
着色如上。要設置朗伯的顏色,它只是
cmds.setAttr('your_lambert_here' + ".color", 1,0,0)
通常的做法是,包括至少在工作的一些代碼刺:https://stackoverflow.com/help/mcve – theodox
哦,雖然你在它如果你清楚你想如何讓它們着色,你會得到更好的答案......你想要一個紅色的_material_?紅色_vert color_?大綱中的紅色?線框顏色? – theodox
DEF位置(點): inside_of_mesh = [] outside_of_mesh = [] 對於i在範圍(0,LEN(分)): cmds.spaceLocator(p值=點[1]) 打印test_if_inside_mesh(點=點[1]) 如果test_if_inside_mesh(點=點[1]): inside_of_mesh.append(點[1]) cmds.polyCube(SX = 1,SY = 1,SZ = 1) CMDS。 xform(t = points [i]) cmds.polyColorPerVertex(rgb =(0.8,0.0,0.0)) – Lynn