Sergey Pogosyan

cg artist + cg developer

Batch Camera Render 1.9.8 in English
license.txt GPL License 2011-07-22
14.00 KB
BatchCam1.9.8.1.ms Script File. Version 1.9.8.1 2012-01-19
202.00 KB

Текущая версия: 1.9.8

Дата выхода: 23 ноября 2011

Обсуждение и предложения - в блоге.

Вы также можете попробовать новую версию скрипта - BatchCam2!

Идея

Впервые идея создания этого скрипта пришла мне когда я стал изучать Houdini. В этой программе вся работа построенна на нодах и для рендеринга тоже используется определенные ноды, Output Node. Кроме того, что в ноде содержатся обычные параметры такие как разрешение кадра, тут же можно указать какие источники света и объекты будут просчитаны (или включены во время просчета). Мне показалось это очень удобным. Похожую функциональность можно реализовать в максе с помощь Batch Render-а, указав для каждой задачи свои Scene State-ы и Render Preset-ы.

Но у Batch Render есть недостатки - в нем невозможно изменить свойства для нескольких заданий и невозможно указать непоследовательные кадры для просчета. Тут я и решил написать свой скрипт, заменитель Batch Render.

Принцип работы

При запуске скрипт юююю список все камеры сцены. Каждой камере можно назначить разрешение кадра, номера и последовательности кадров, путь файла для просчета и некоторые другие свойства. Все свойства можно менять для нескольких камер одновременно. Информация записывается в с помощью метода AppData в объект камеры.

Основные возможности

Список параметров которые назначаются камерам.

Разрешение кадра. Разрешение можно выбрать из списка или задать другое с помощье полей Width и Height. Тут же расположены кнопки для быстрого удвоения/уполовинивания разрешения и кнопка для получения/установки разрешения из/в максовское окно Render Setup.

Путь и имя файла. Этот параметр задается двумя полями - путем к файлу и имени файла. Таким образом можно для нескольких камер одновременно поменять только имя файла или путь. В этом же разделе задается путь к Render Element-ам. Путь к элементам может быть абсолютный или относительный. Все параметры для указания путей поддерживают ключевые слова, о которых будет сказано ниже.

Номера кадров. Кроме обычных режимов задания номеров кадров в этом разделе можно указать режим Anim.Range. В этом режиме будет использован весь диапазон анимации камеры.

Параметры Vray. В этом разделе собраны параметры для Vray. Глобальные параметры устанавляваются для всех камер, параметры Ir Map и Lightcache устанавляваются для каждой камеры. Все параметры аналогичны параметрам в стандартном окне Render Setup.

Light Assigmenent. С помощью это раздела можно назначать камере включеные/выключеные источники света. Раздел содержит три списка: светильники из раздела 'Solo Light' будут единственными включеными источниками света, светильники из раздела 'Forced On' будут включены в любом случае, а из 'Forced Off' соответственно выключены.

Scripts (beta). В этом разделе указываются файлы скриптов, которые будут запущены перед началом просчета. Имеется два подраздела - Submit Script и Render Scripts. Скрипты из первого подраздела запускаются перед постановкой камер на просчет и выполняются на локальной машине, скрипты из второго подраздела выполняются на рендер-серверах. В данный момент весь раздел находится в стадии беты, особенно часть Render Scripts, так что используйте с осторожностью.

Все разделы содержат кнопку Clear, с помощью которой можно удалять назначеные свойства.

Дополнительные возможности и юзабельность

Поддержка ключевых слов это самая сильная сторона скрипта. Ключевые слова позволяют вставлять в поля для ввода путей и имен файлов различную информацию о текущей камере. В текущей версии поддерживаются следующие ключевые слова:

Пример использования:
из строки D:\Work\%projectname%\%date%\%cameraname%.jpg 
получится D:\Work\SomeProject\2010-03-10\interior.jpg

Также есть возможность задавать собственные ключевые слова - для этого предназначенны три поля User Key/Value  в разделе Options. Для этого надо указать слово в поле User Key, а вычисляемое значение в поле User Value, причем в поле User Value можно вписывать любое выражение на Maxscript-е, оно вычисляется с помощью команды execute. Например, если нужно использовать имя пользователя в пути рендеринга - указываем ключ, скажем username и значение - sysInfo.username. Теперь вместо ключевого слова %username% во всех редактируемых полях будет вставляться имя пользователя, посылающего сцену на просчет. При ошибке в выражении вместо значения будет вставляться строка "ErrUserVal". Перед тем как использовать выражение в скрипте проверьте, работает ли оно в maxscript listener-е.

В скрипте можно задавать значение по умолчанию для всех параметров. Существует два типа значений по умолчанию - глобальные и локальные. Локальные, в случае их наличия, перекрывают глобальные. Глобальные значения хранятся в INI файле расположенном в папке %LOCALAPPDATA%/3dsmax/.../plugcfg, а локальные хранятся в INI файле, путь к которому указывается в поле Local INI Path, в разделе Options. Этот путь можно задавать с помощью ключевых слов и таким образом указывать локальный INI файл общий для нескольких сцена или всего проекта.

Для сохранения глобальных значений по умолчанию нажмите кнопку Save All Settings as Global Defaults. Для сохранения локальных значений используйте кнопку To Local Defaults, расположенной в каждом разделе (кроме этого еще надо указать путь к локальному INI файлу). Редактировать INI файлы можно и вручную - для этого нажмите кнопку Open Global/Local INI File.

Все несуществующие пути создаются автоматически - для этого включите флажке "Create new paths silently" в разделе Options.

Назначение на сетевой рендеринг тоже автоматизированно - можно выделить несколько камер и поставить их на сетевой просчет одним нажатием, без указания имени задания в окне "Submit Network Job Assignement".

Кнопки, расположенные под списком, предназначены для упрощения работы с большим количеством камер.

Ограничения и предостережения

Не все параметры скрипта проходят строгую проверку. Например если в Vray задать файл для сохранения Ir карты, но при этом GI в Vray не включен, карта, естественно, не сохранится. Но возможность установить ее всегда есть. Так же не проверяется доступность карт для загрузки. В общем, будьте внимательны к параметрам.

Я и еще несколько человек в нашей компании использует этот скрипт каждый день. Я все время стараюсь сделать его более стабильным, надежным, но баги все равно время от времени появляются, так что, будьте внимательны при использовании скрипта в производстве и используйте его на свой риск.

Благодарность

Хочу выразить благодарность всем пользователям этого скрипта, всем кто помогает советами и выловлеными багами. Спасибо!