Модернизируем 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;