Render.ru

Поставить материал и рендерить

ЕвгенийПетрович

Пользователь сайта
#1
Добрый день, люди добрые!
Нужна помощь в простом скрипте.
В сцене есть один объект (это Group в котором несколько Mesh-ей и сплайнов). Есть одна камера (V-Ray). И есть порядка 75 материалов (это multi sub-object материалы с присоединёнными к ним vraymtl материалами)
Цель:
Выбираем объект и запускаем скрипт, который делает это:
1. Присваивает объекту multi sub-object материал №1.
2. Рендерит с камеры и сохраняет файл в нужную папку под именем №1
3. Присваивает объекту multi sub-objectматериал №2.
4. Рендерит с камеры и сохраняет файл в нужную папку под именем №2
...и так со всеми необходимыми материалами.

Необходим такой скрипт чтобы в дальнейшем можно было принести в сцену другой объект и также отрендерить его со всеми необходимыми материалами.

Обращаюсь к вам, мастера Script, за помощью, т.к. моя попытка остановилась по неизвестной мне причине на этом этапе:
2017-02-09_14-28-54.jpg
Этот скрипт в первый раз срабатывает до 5-й строчки, затем выдаёт
undefined
и третий материал не назначается объекту.
После чего undefined появляется и при выполнении других строк.
Уверен, ошибка глупая, нужна помощь.
http://i12.pixs.ru/storage/0/3/8/2017021309_7897733_25147038.jpg
 
Последнее редактирование:
#2
Думаю, что промлема в том, что в скрипте для выбора материала используется sceneMaterials. У вас в сцене в скрытом слое есть порядка 75 боксов с присвоенными материалами? Видимо нет. Поэтому sceneMaterials["tentwhite_silver_dpkbrown"] даёт undefined: такого материала в сцене нет. Вопрос в том, где находятся ваши 75 материалов, ибо в слоты редактора материалов такое количество тоже не умещается (в режиме slate наверное можно впихнуть, но это извращение).

Логично, если эти материалы хранятся в библиотеке материалов.

Поэтому вырисовывается примерно следующая схема:
  1. Загрузить в Макс библиотеку материалов (имя библиотеки может быть запрошено у пользователя или прописано в скрипте).
  2. Дать возможность пользователю указать объекты для применения материалов из библиотеки.
  3. Собрать коллекцию камер в сцене. Запросить у пользователя с каких камер делать просчёт.
  4. Запросить у пользователя путь для сохранения картинок, тип картинок (напр. JPEG) и базовое имя.
  5. Из библиотеки взять очередной материал и присвоить его объектам, указанным в п.2.
  6. Выбрать очередную камеру из списка камер.
  7. Сформировать полное имя для файла картинки из пути, базового имени, названия материала, имени камеры и расширения.
  8. Посчитать и сохранить картинку. Закрыть окно фреймбуфера.
  9. Если есть ещё камеры, перейти на п.6.
  10. Если в библиотеке материалов есть ещё материалы, перейти на п.5.
Будет грамотно прикрутить к этому диалоговое окно для интерактивной настройки параметров и обработку ошибок.
 
Сверху