Pergunta

Como atribuir programaticamente cores aleatórias aos objetos no 3DS Max?

Foi útil?

Solução

Isso funciona bem se você deseja apenas atribuir uma cor de arame aleatório. Aqui está algum código para criar um material padrão com uma cor difusa aleatória.

for o in $* do 
( 
  m = standard
  m.diffuse = random white black 
  o.material = m
) 

Outras dicas

Isso é o que eu encontrei online como uma solução:

for o in $* do
(
o.wirecolor = random white black
)

Várias maneiras:

Para mudanças no WireColor (ou seja, objetos sem material de cena), você pode fazer,

(apenas para objetos de malha)

for o in geometry do
(
     o.wirecolor = random black white
)

Para todos os objetos da cena que você pode fazer

for o in objects do
(
     o.wirecolor = random black white
)

Para todos os objetos selecionados, você pode fazer

for o in selection do
(
     o.wirecolor = random black
)

Para apenas um único objeto, você pode fazer

selection[1].wirecolor = random black white

Para objetos que correspondem a um critério, use a cláusula onde

for o in objects where <someproperty> == <somevalue> do o.wirecolor = random black white

Então, como ..

for o in objects where classof o == Sphere and o.radius > 10.0 do o.wirecolor = random black white

ou filtre pelo nome dos objetos e crie e aplique um material padrão:

for o in objects where matchpattern o.name pattern:"Sphere*" do o.material = (standard diffuse:(random white black))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top