В этом коротком уроке мы посмотрим, как запускать рендеринг из командной строки и, что ещё важнее, как ставить в очередь несколько рендеров из разных файлов для последовательного выполнения.
Видеоверсия этого руководства в настоящее время недоступна на этом языке. Ниже вы можете посмотреть английскую версию с субтитрами; под видео вы найдете перевод расшифровки на русский язык.
Текстовая расшифровка видео
Всем привет! В этом коротком уроке мы посмотрим, как запускать рендеринг из командной строки и, что ещё важнее, как ставить в очередь несколько рендеров из разных файлов для последовательного выполнения.
Эти операции очень полезны, потому что если вам нужно последовательно выполнить несколько рендеров из разных файлов, вы можете запланировать их запуск в одном batch-файле. Так вам не придётся вручную проверять, когда завершится один рендер, чтобы запустить следующий. Можно просто запустить batch-файл и пойти выпить кофе или даже лечь спать, в зависимости от количества рендеров, которые нужно выполнить.
Этот урок записан с использованием Blender версии 4.2, но строка кода, позволяющая запускать рендеринг из командной строки, сохраняет одинаковую структуру уже в нескольких версиях программы и, скорее всего, останется такой же и в будущих версиях.
Если у вас есть blend-файл с активной виртуальной камерой, вы можете рендерить сцену напрямую из командной строки без запуска Blender с интерфейсом, используя следующую строку кода:
blender.exe -b scenepath.blend -o outputpath -s startframe -e endframe -a

Рендеринг будет выполнен с разрешением, форматом выходного файла, сжатием и всеми остальными настройками, указанными непосредственно в blend-файле. Конечно, некоторые параметры потребуется заменить.
В частности, вам нужно заменить Scene Path на полный путь к blend-файлу, который требуется отрендерить, включая расширение blend в конце.
Аналогично, необходимо заменить Output Path на полный путь, куда будут сохранены отрендеренные файлы, при желании указав префикс для файлов. В этом случае расширение выходных файлов указывать не нужно.
Для Start Frame и End Frame необходимо указать первый и последний кадры последовательности, которые должны быть отрендерены.
Опция -a в конце указывает Blender использовать настройки, содержащиеся в рендерируемом файле.
Сейчас на экране я показываю пример запуска рендеринга анимации из командной строки.
Теперь перейдём ко второй теме этого урока: как ставить несколько рендеров в очередь с помощью batch-файла.
В одном из ранее опубликованных уроков на этом канале я показывал другое batch-приложение командной строки, которое позволяло экспортировать модели из blend-файлов, расположенных в папке, в формат FBX, а также задавать параметры Copy Attributes и Embedded для PBR Material Textures. Если вас интересуют этот или другие уроки по Blender, поставьте Like или оставьте комментарий к видео и, что самое важное, подпишитесь на канал, чтобы не пропустить новые материалы.
Чтобы последовательно рендерить несколько Blender-файлов, просто создайте текстовый файл и добавьте в него команды для рендеринга blend-файлов, по одной команде на строку.
Такой текстовый файл можно создать с помощью Notepad или другого текстового редактора, но очень важно указать правильное расширение. В Windows, как в этом примере, используется расширение bat, сокращение от batch. В Linux и Mac файлы будут shell-скриптами, обычно с расширением sh.
Сейчас на экране я показываю, как несколько blend-файлов рендерятся последовательно, каждый со своими настройками, начинаясь одним кликом по batch-файлу.

Если говорить более широко, чтобы изучить доступные аргументы запуска Blender из командной строки, введите blender -h или blender --h и нажмите Enter.
Перед завершением урока давайте посмотрим, как запускать несколько batch-файлов последовательно из одного batch-файла.
Я часто использую это при создании своих ассетов, когда мне нужно сделать рендеры каждого объекта из файлов scene, wireframe и turntable. Для каждого ассета я создаю отдельный batch-файл, который управляет индивидуальными рендерами проекта. Когда я работаю над несколькими ассетами, у меня получается несколько папок, каждая со своим batch-файлом.
В таких случаях я сосредотачиваюсь на создании ассетов, пока нахожусь за компьютером, а затем запускаю все batch-файлы последовательно в то время, когда меня нет за компьютером, например ночью или в выходные. Это отличный способ оптимизировать рабочий процесс.
Здесь также нужно создать batch-файл из нового текстового файла. Однако, в отличие от запуска отдельных рендеров через вызов Blender внутри batch-файла, здесь потребуется использовать специальную команду Call.
Эта команда необходима для последовательного запуска нескольких batch-файлов, потому что без неё выполнение скрипта остановится сразу после завершения первого batch-файла, указанного в сценарии.
Подводя итог: если вы хотите запускать несколько рендеров из одного batch-файла, никаких проблем нет. Но если вы хотите запускать несколько batch-файлов из другого batch-файла, необходимо использовать команду Call.

Я не могу утверждать это с абсолютной уверенностью, поскольку не использую эти среды, но полагаю, что в shell-скриптах для Linux и Mac OS специальные команды для последовательного запуска нескольких внешних shell-скриптов не требуются.
Для полноты картины добавлю, что если заменить команду Call на команду Start в batch-файле Windows, можно запускать процессы параллельно, а не последовательно. Однако в случае рендеринга я не рекомендую этот вариант.
Ну что ж, на этом всё для этого короткого урока! Надеюсь, он был полезен. До скорой встречи!