0
이 코드가 있습니다 ... 왜 for 루프를 수행 할 때마다 큐브의 색상이 변경되지 않습니다 ... 나는 당신은 반복과 마지막으로 모두 같은 shadernode를 사용하는 나는 ... 기능 "BookGen"5 번 전화 그리고이 경우 매번 난 3 개 개의 숫자를 무작위하지만, 색상은 변경되지 않습니다 ....Shader Color 설정을 변경하는 방법 Python-Maya
import maya.cmds as cmds
def BookGen(myBlinn,myBlinn2,myBlinn3):
myBook=cmds.polyCube(name='Book',h=8,w=4,d=2) #Create a testCube with that Name
#Modeling that I didn't include
#//Cover Color
Colors=[]
for i in range(3):
tmp=random.uniform(0.0,1.0) #Uniform function allow me to find a random FLOAT number between a range(not like randint!)
Colors.append(tmp)
cmds.setAttr ((myBlinn + '.color'), Colors[0],Colors[1],Colors[2], type = 'double3')
cmds.select(myBook[0]+'.f[0:4]')
cmds.hyperShade(assign=myBlinn)
def ShaderGen():
#Add Color
#//Pages Color
myBlinn = cmds.shadingNode('blinn', asShader=True)
#cmds.setAttr ((myBlinn + '.color'), 1.0,0.8,0.44, type = 'double3')
#//Cover Color
myBlinn2 = cmds.shadingNode('blinn', asShader=True)
#cmds.setAttr ((myBlinn2 + '.color'), 1.0,1.0,1.0, type = 'double3')
#//Cover Details Color
myBlinn3 = cmds.shadingNode('blinn', asShader=True)
#cmds.setAttr ((myBlinn3 + '.color'), 1.0,1.0,1.0, type = 'double3')
return myBlinn,myBlinn2,myBlinn3
def BookShelf():
NumberOfBooks=5 #Inserted from user
myBlinn=''
myBlinn2=''
myBlinn3=''
myBlinn,myBlinn2,myBlinn3=ShaderGen()
myRowShelfGroup=cmds.group(em=True,n='RowShelfGroup')
for i in range(NumberOfBooks):
BookGen(myBlinn,myBlinn2,myBlinn3)
BookShelf()
입니다 이 프로그램에서는 괜찮은지 알겠지만 ... 내 경우에는 매번 다른 셰이더를 계속 생성합니다. 프로그램의 일부분이기 때문에 실제적으로 느리게 진행됩니다. –
셰이더를 만들고 개체를 할당하면 모든 개체가 같은 색을 갖습니다 .. 마지막 물체 색상이 다른 모든 4 가지 색상과 동일 할 것입니다. 그래서 당신이 무엇을 요구하는지 확신 할 수 없습니다. – Achayan
하나의 쉐이더를 만들고 싶습니다. 나는 polycube를 만들 때마다 3 개의 임의의 RGB 값을 만들고 싶습니다. 이 값을 원래 쉐이더에 적용하십시오 (이미 생성 된 경우 값을 수정하십시오). 폴리 큐브에 쉐이더를 붙이십시오. –