В ходе работы над очередным проектом возникла потребность в автоматизации рендеринга.
Суть:
1. Нужно отрендерить, к примеру, 4000 кадров анимации. В процессе рендеринга batch render иногда вылетает, то есть пишет например, что на 500-ом кадре rendering completed, хоть в настройках стоит рендерить до кадра №4000.
2. В связи с этим возникла мысль написать скрипт. Он должен будет:
1) Проверить, идет ли процесс рендеринга (это можно делать, например, после каждого отрендеренного кадра).
2) Если не идет, то взять список файлов, уже отрендереных, найти в нем последний.
3) Узнать его номер и сравнить со значением end frame в render globals.
4) Если они равны, то все ок, если нет, то поставить в start frame это значение, а end frame оставить без изменений.
5) Запустить рендер снова.
Итак:
1. Какой командой можно проверить, идет ли а данный момент рендеринг?
2. Список файлов из папки легко берется командой getFileList. Он засовывает список имен в массив.
3. Далее в массиве легко находим последний элемент и с помощью команды endString выясняем номер последнего посчитанного кадра.
4. Сравниваем, как я уже говорил в 4).
5. Запускаем, если все условия выполняются.
Итог: нужен ответ на вопрос №1.
Суть:
1. Нужно отрендерить, к примеру, 4000 кадров анимации. В процессе рендеринга batch render иногда вылетает, то есть пишет например, что на 500-ом кадре rendering completed, хоть в настройках стоит рендерить до кадра №4000.
2. В связи с этим возникла мысль написать скрипт. Он должен будет:
1) Проверить, идет ли процесс рендеринга (это можно делать, например, после каждого отрендеренного кадра).
2) Если не идет, то взять список файлов, уже отрендереных, найти в нем последний.
3) Узнать его номер и сравнить со значением end frame в render globals.
4) Если они равны, то все ок, если нет, то поставить в start frame это значение, а end frame оставить без изменений.
5) Запустить рендер снова.
Итак:
1. Какой командой можно проверить, идет ли а данный момент рендеринг?
2. Список файлов из папки легко берется командой getFileList. Он засовывает список имен в массив.
3. Далее в массиве легко находим последний элемент и с помощью команды endString выясняем номер последнего посчитанного кадра.
4. Сравниваем, как я уже говорил в 4).
5. Запускаем, если все условия выполняются.
Итог: нужен ответ на вопрос №1.