Модернизируем Batch Render в Sony Vegas`е

/ Просмотров: 724
Метки: ,
Модернизируем Batch Render в Sony Vegas`е

Хочу добавить в базовый скрипт следующие "фишки":

1. Возможность указать с какого номера начнется нумерация файлов. Бывает Batch Render зависает на каком-то регионе, приходится запускать скрипт заново. Так вот было бы удобно удалить из проекта уже отрендереные регионы, а нумерацию создаваемых файлов продолжить.

2. Сделать фильтр шаблонов по ключевому слову в поле "Notes".

Скрипт находится здесь

C:/Program Files/VEGAS/{VEGAS VER}/Script/Menu/atch Render.cs

1. Нумерация файлов.

Находим строку:

FileNameBox = AddTextControl(dlog, "File", titleBarHeight + 6, fileNameWidth, 10, defaultBasePath);

меняем ее на следующее:

# поле с именем файла сдвигаем немного вправо
FileNameBox = AddTextControl(dlog, "File", titleBarHeight + 36, fileNameWidth - 30, 10, defaultBasePath);
# всталяем поле для ввода числа с которого начнется нумерация (по дефолту - 0)
FirstNum = AddTextControl(dlog, "First", 2, 64, 10, "0");

Находим строку:

int regionIndex = 0;

меняем ее на:

int regionIndex = Convert.ToInt32(FirstNum.Text);

2. Фильтр шаблонов.

Находим следующий код в функции FillTemplateTree()

if (!template.IsValid()) {
continue;
}

перед ним добавляем:

if (!template.Notes.Contains("xbe")) {
continue;
}

где "xbe" наше ключевое слово, по которому будет осуществлен выбор шаблонов. Это слово должно содержаться в настройках шаблона в поле "Notes". После внесения изменений в настройки хаблона, Vegas нужно перезагрузить.

На тот случай если шаблон с ключевым словом всего один необходимо найти и закомментировать следующий код в той-же функции FillTemplateTree()

было:

if (0 == rendererNode.Nodes.Count) {
                    continue;
                } else if (1 == rendererNode.Nodes.Count) {
                    // skip it if the only template is the project
                    // settings template.
                    if (0 == ((RenderItem) rendererNode.Nodes[0].Tag).Template.Index) {
                        continue;
                } else {
                    TemplateTree.Nodes.Add(rendererNode);
                }

стало

if (0 == rendererNode.Nodes.Count) {
                    continue;
/*                } else if (1 == rendererNode.Nodes.Count) {
                    // skip it if the only template is the project
                    // settings template.
                    if (0 == ((RenderItem) rendererNode.Nodes[0].Tag).Template.Index) {
                        continue;
                    }*/
                } else {
                    TemplateTree.Nodes.Add(rendererNode);
                }

Попутно сделаей рендеринг ренионов по умолчанию

Заменяем

RenderProjectButton.Checked = true;

на

RenderRegionsButton.Checked = true;

VEGAS Script API

VEGAS Script FAQ