Como atribuir programaticamente cores aleatórias aos objetos no 3DS Max?
Pergunta
Como atribuir programaticamente cores aleatórias aos objetos no 3DS Max?
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