Необходимо присвоить множеству объектов множество материалов (не больше 10) в хаотичном порядке. У материалов отличается только диффузный цвет, причём только hue в системе HSV, причём в заданном диапазоне (например 30 единиц).
Насколько я понимаю это можно реализовать при помощи maxscript'а? Ничего в нём не понимаю, поэтому прошу помощи у знатоков )
marr = #()
maincolor = color 99. 72. 26.
for i = 1 to 10 do (
difhue = (random 0 30) - 15
dcolor = copy maincolor
dcolor.h = abs (mod (dcolor.h + difhue) 256)
print dcolor
m = Standard diffuse:dcolor name:("Std " + (dcolor.h as string)) -- generate new material
append marr m
)
for o in selection do (
o.material = marr[random 1 10]
)
В первом цикле генерируется 10 материалов типа Standard с разбросом в 30 единиц по HUE относительно maincolor (задан в RGB!). Материалы собираются в массив.
Далее для каждого из выделенных объектов назначается случайный материал из массива сгенерированных материалов.
Поскольку в массиве материалы уже со случайным цветом и порядок выборки конкретного объекта из выделенных тоже достаточно случаен, то второй цикл можно сделать по другому, что бы все сгенерированные материалы назначались равномерно:
counter = 0
for o in selection do (
o.material = marr[counter+1]
counter += 1
counter = mod counter 10
)
Создал несколько объектов, запустил скрипт, вроде всё сработало. Понял парочку своих ошибок в постановке задачи.
Я самостоятельно создам один мультиматериал с 10 вирей-подматериалами. Останется только к выделенной группе объектов хаотично назначить айдишники от 1 до 10.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Yoric
Необходимо присвоить множеству объектов множество материалов (не больше 10) в хаотичном порядке. У материалов отличается только диффузный цвет, причём только hue в системе HSV, причём в заданном диапазоне (например 30 единиц).
Насколько я понимаю это можно реализовать при помощи maxscript'а? Ничего в нём не понимаю, поэтому прошу помощи у знатоков )
Sphinx Black (Black Sphinx)
marr = #() maincolor = color 99. 72. 26. for i = 1 to 10 do ( difhue = (random 0 30) - 15 dcolor = copy maincolor dcolor.h = abs (mod (dcolor.h + difhue) 256) print dcolor m = Standard diffuse:dcolor name:("Std " + (dcolor.h as string)) -- generate new material append marr m ) for o in selection do ( o.material = marr[random 1 10] )В первом цикле генерируется 10 материалов типа Standard с разбросом в 30 единиц по HUE относительно maincolor (задан в RGB!). Материалы собираются в массив.Далее для каждого из выделенных объектов назначается случайный материал из массива сгенерированных материалов.
Поскольку в массиве материалы уже со случайным цветом и порядок выборки конкретного объекта из выделенных тоже достаточно случаен, то второй цикл можно сделать по другому, что бы все сгенерированные материалы назначались равномерно:
Yoric
Yoric
Я самостоятельно создам один мультиматериал с 10 вирей-подматериалами. Останется только к выделенной группе объектов хаотично назначить айдишники от 1 до 10.
Yoric
ASK'R
Yoric