Окно просмотра плеера немедленно увеличится
. Окно просмотра плеера немедленно увеличится и на экране появится белый прямоугольник для ввода текста субтитров:
Независимо от параметров текста, заданных в Settings/Default Settings/Subtitle Text при вводе текст всегда будет выглядеть черным на белом фоне. По завершении ввода текста, НЕ нажимая Enter, кнопками
При необходимости редактирования введенных субтитров
При необходимости редактирования введенных субтитров следует нажать кнопку
В принципе возможны изменения шрифта
и внести необходимые изменения. В принципе возможны изменения шрифта и его размера при вводе и редактировании субтитров, но мы не рекомендуем это делать, поскольку "разномастные" субтитры только затрудняют их чтение - на протяжении всего фильма шрифт и его размер менять не следует. Обведенными на рисунке кнопками можно перемещаться между субтитрами. По завершении ввода каждого субтитра Scenarist создает в каталоге <имя каталога проекта>\ <имя проекта Cache>\Encoded Files графические .bmp файлы с введенными вами субтитрами. Имена файлов имеют вид Subtitle Text_<порядковый номер субтитра>.bmp. Эти файлы полезно сохранить, чтобы в случае кардинальной переделки фильма не набирать их заново. 4.3.1.
Как вы наверняка заметили из
Как вы наверняка заметили из рисунка, для записи DVD диска из Scenarist в обязательном порядке требуется создание образа диска (Create Disc Image). Несмотря на то, что создание образа диска занимает у программы немного времени (около 5-8 минут), это время следует учесть и также иметь ввиду, что не разрешив Delete When Done (удалить по окончании) в Step 2, вы должны для нормального завершения проекта иметь на диске свободное место, не меньше объема 3-х DVD дисков, т.е. 4.4 GBytes x 3 = 13.2 GBytes.
Если вы желаете сохранить данные об авторе диска, авторских правах, датах и т.п., то следует нажать кнопку PVD Editor и на экране появится редактор авторских данных диска:
в полях, понятно из названий,
Что следует писать в полях, понятно из названий, для описания Copyright, Abstract и Bibliograph следует подготовить текстовые файлы с обычными именами файлов и расширениями в формате 8.3 и при написании текстов использовать только большие латинские буквы, цифры, точку и подчеркивание. В поля Creation, Modification и т.д. вводятся даты. В поле Creation программа автоматически подставляет текущую дату в момент записи диска.
После выбора кнопки Start программа попросит установить болванку в привод (даже если она у вас давно там есть),
и Scenarist начнет свою работу.
следует ответить ОК и Scenarist начнет свою работу. Вне зависимости от имени вашего проекта Scenarist создаст в Target Directories (определяется в Choose Target Directories) файл с именем DiscImage.dvd, причем Scenarist сам этот файл удалить не может. Если пробная запись прошла успешно и нужно сделать несколько копий диска, то файл образа вполне подойдет для использования в этих целях без применения Scenarist. В программе VOB Instant, например, для прожига DVD диска из образа, созданного Scenarist, следует проделать такие операции:
· Выбрать после запуска Instant Disc
· В появившемся списке шаблонов проектов выбрать UDF Video DVD Image
· После запроса о типе и емкости носителя VOB попросит ввести имя файла образа. Нажав кнопку Browse, следует обязательно указать All Files (*.*) в поле Files of Type.
· Найдя нужный каталог, выбрать файл DiscImage.dvd, как показано на рисунке:
На этом процесс закончен. VOB
На этом процесс закончен. VOB Instant успешно запишет образ DVD-Video диска от Scenarist.
Мы проверяли работу Scenarist ver. 2.7 на запись с приводами Pioneer A04/104 и Pioneer A05/105 - никаких проблем выявлено не было.
В поле Total Size вы
В поле Total Size вы можете видеть общий размер всех файлов проекта в кодированном для DVD виде, в поле Remaining - оставшееся свободное место на диске. Обращаем ваше внимание на то, что размеры указаны в миллионах байт.
Создавая один из собственных проектов на основе ваших примеров, столкнулся с непонятным эффектом: нажав на пульте ДУ кнопку меню, попадаю в правильное место Root menu, но нажав кнопку меню повторно, возвращаюсь назад точно в то же место фильма, из которого уходил в меню первый раз. Меня смущает также то, что на разных плеерах по разному - на некоторых все происходит как и должно было бы, на мой взгляд, происходить. В чем тут может быть дело?
Дело в том, что в DVD спецификации заложено следующее - нажатие кнопки меню во время нахождения зрителя в домене Language приводит к возврату в последний перед входом в меню просматриваемый фрагмент фильма. Иными словами, выполняется команда Jump by Resume, описанная в разделах 4.6.4.1. и 4.6.3.1. настоящего руководства. Только в том случае, если вы сразу после установки диска в плеер попадаете в меню, вы в нем и останетесь при нажатии кнопки меню на пульте, поскольку по resume просто некуда переходить. Если вам критичен переход именно в начало своего меню всегда, то реальное меню надо делать не в домене Language, а как отдельный title, выполняя на Pre Root меню безусловный переход в это меню. Разные же плееры действуют по разному только в силу квалификации тех, кто их разрабатывал - правильнее все-таки выполнять resume по повторному нажатию кнопки меню. Не так действуют некоторые программные плееры, и бытовые DVD плееры класса BBK. И те и другие весьма вольно трактуют DVD спецификацию.
в subpicture сделать две кнопки
2. Аналогичную картинку сделать с надписью Root меню и в subpicture сделать две кнопки "Просмотр фильма" и "Выбор эпизодов".
Создать три картинки для меню
3. Создать три картинки для меню эпизодов, вид которых ясен из рисунка (все надписи, кроме "Первое PTT меню", есть кнопки в subpicture):
что остальные две картинки PTT
Понятно, что остальные две картинки PTT меню такие же, но номера частей другие. 4. Для подготовки фильмов в наш тестовый проект в видеоредакторе надо:
1. Написать в титровальной программе редактора для вступительного клипа слова FirstPlay и с минимальным bitrate закодировать в MPEG-2 на 30 секунд клип. Никакие файлы импортировать в проект не требуется.
2. Создать проект, в котором написать титры "Часть 1", задав длительность 1 минута, затем "Часть 2" с такой же длительностью и т.д. до части 12-ой включительно. Кодировать полученный фильм с минимальным bitrate. Никакие файлы импортировать в проект не требуется.
Файлы .bmp с меню и subpicture к ним и файлы проектов для FirstPlay и основного фильма для Ulead MediaStudio Pro 7.0 вы можете переписать здесь (~70 кБ). Необходимые пояснения по файлам находятся в readme.txt внутри архива. Далее создадим тестовый проект в Scenarist. Файл сценария тестового DVD для Scenarist также лежит в архиве с остальными файлами проекта, ссылка на который дана выше.
Наш проект имеет такой вид:
В качестве пояснения, если по
В качестве пояснения, если по каким-либо причинам вы не сможете запустить наш готовый сценарий:
· Основной фильм разбит на двенадцать глав (сцен) по минуте каждый в соответствии с сделанными титрами.
· В Title меню связь с единственной кнопки идет на Root меню
· Из Root меню с кнопки "Просмотр фильма" идет связь к фильму, с кнопки "Выбор эпизодов" - к PTT меню
· В PTT меню от кнопок "Часть 1", "Часть 2" и т.д. идут связи к соответствующим частям (сценам) фильмам, от кнопки "Главное меню" к Root меню, от кнопки "Назад" к предыдущему меню эпизодов (к Root для первого меню эпизодов), от кнопки "Вперед" к следующему меню эпизодов (к Root для последнего меню эпизодов).
· Post FirstPlay соединен с основным фильмом, а Post основного фильма соединен с Root меню.
Остальные связи вполне понятны из рисунка.
Смысл этого проекта в том, что глядя на экран в Simulation window Scenarist или экран телевизора при просмотре результатов работы, вы всегда будете совершенно точно знать, где вы находитесь. По "живому" фильму это значительно труднее сделать. Кроме этого, весь проект займет на DVD диске менее 200 мегабайт (если вы использовали bitrate при кодировании не более 2000 кбит/сек) и его запись на диск отнимет всего несколько минут. Как мы увидим позже, не все действия Scenarist по выполнению им некоторых команд можно проверить в самом Scenarist - в некоторых случаях потребуется запись на диск. Мы рекомендуем использовать этот проект всем, кто начинает осваивать Scenarist.
4.6.4.1.
Как видно из рисунка, никаких
Как видно из рисунка, никаких команд на Pre нет. Для ввода команды сначала следует снять флажок у No Command (Нет команды). На экране появится диалог ввода команды:
Как видно из рисунка, никаких команд на Pre нет. Для ввода команды сначала следует снять флажок у No Command (Нет команды). На экране появится диалог ввода команды:
Поскольку нам надо просто записать
Поскольку нам надо просто записать в GPRM число, то мы выберем в ниспадающем меню Command (Команда) команду Set to GPRM (Установить GPRM):
Поскольку нам надо просто записать в GPRM число, то мы выберем в ниспадающем меню Command (Команда) команду Set to GPRM (Установить GPRM):
По умолчанию команда Set to
По умолчанию команда Set to GPRM настроена на присвоение значения (Assign) одного регистра GPRM другому. Если мы хотели бы присвоить значение SPRM регистра регистру GPRM, то в поле Set следовало бы выбрать SPRM. Нам же требуется занести число и для этого в поле Set нам надо выбрать Immediate (Немедленно):
По умолчанию команда Set to GPRM настроена на присвоение значения (Assign) одного регистра GPRM другому. Если мы хотели бы присвоить значение SPRM регистра регистру GPRM, то в поле Set следовало бы выбрать SPRM. Нам же требуется занести число и для этого в поле Set нам надо выбрать Immediate (Немедленно):
в регистр GPRM0 число 100.
Занесем в регистр GPRM0 число 100. Для нашего примера совершенно все равно, какое именно число будет занесено, лишь бы оно отличалось от нуля. Тем самым, поскольку мы "повесили" команду на Pre, при любом входе в фильм мы присваиваем GPRM0 значение 100.
Теперь нам надо обнулить это число по окончании фильма. Для этого щелкнем мышью на ярлыке Post фильма (помните, что в нашем сценарии Post был соединен с Root меню):
Как видно из рисунка, после
Как видно из рисунка, после окончания фильма программа дает возможность при использовании функции Resume вернуться к любой главе (сцене) фильма, причем по умолчанию переход происходит к началу фильма, т.е. первой главе (сцене). Для нашей задачи такой автоматический способ возвращения по завершении просмотра подходит, но мы будем считать, что его нет для чистоты эксперимента. Поскольку очередность команд менять нельзя, мы просто заменим команду перехода в Root меню на команду присвоения нулевого значения регистру GPRM0:
Теперь нажмем кнопку Add
Теперь нажмем кнопку Add (Добавить) и введем команду перехода к Root меню:
C фильмом все необходимые действия
C фильмом все необходимые действия проделаны, теперь настало время для работы с Root меню. Выберем ячейку Buttons (Кнопки) в Root меню и в Simulation window мы увидим:
Нас интересует как раз первая
Нас интересует как раз первая команда, поскольку она относится к кнопке "Просмотр фильма". Как мы писали ранее, на кнопку можно "повесить" только одну команду, а поскольку реализовать полностью все нужные нам действия никакой единственной командой, даже Type 3, не удастся, надо придумать способ, как обойти это ограничение. Наиболее простое решение в этом случае - просто перейти к Post в Root меню, поскольку на Post можно "повесить" до 128 команд. Так мы и сделаем:
Как видно из рисунка, мы
Как видно из рисунка, мы "повесили" на кнопку команду безусловного перехода к Post. Теперь щелкнем мышью на ярлыке Post Root меню:
и выберем команду Jump by
Снимем флажок с параметра No Command (Нет команды) и выберем команду Jump by Sub-Instructions с подкомандой Resume, как показано на рисунке:
с подкомандой Resume как раз
Команда Jump by Sub-Instructions с подкомандой Resume как раз и возвращает зрителя в то место Title, откуда зритель попал в меню. Если оставить все как есть, то переход по Resume будет выполняться всегда, что нам не подходит, поскольку зритель может попасть в Root меню из вступительного клипа (First Play), например и тогда нажатие кнопки "Просмотр фильма" в Root меню приведет к тому, что зритель снова вернется в вступительный клип, а не перейдет к просмотру фильма. Поэтому установим флажок Compare (Сравнить):
в которой вы разрешили сравнение,
Выбор Compare (Сравнение) означает, что действие по команде, в которой вы разрешили сравнение, будет выполнено в том и только в том случае, если результат сравнения - истина (true). Если результат ложь (false), то команда будет просто пропущена и DVD плеер перейдет к обработке следующей по списку команде. Установите в поле Compare Immediate и введите число 100 в соответствующем поле, как показано на рисунке выше. Если в GPRM будет число 100, то переход к точке выхода из фильма (Resume) произойдет, в противном случае нет. Но что означает значение регистра GPRM0, не равное 100? Это означает, что зритель еще не смотрел фильм и нам надо просто перейти к соответствующему Title, что мы и сделаем, добавив по кнопке Add команду Jump to Title (Переход к тайтлу) и выбрав в поле ниже Title_2, как показано на рисунке:
На этом собственно программирование закончено.
На этом собственно программирование закончено. Следует иметь ввиду, что вы не сможете проверить в Simulation window переход по Resume. Несмотря на то, что программа явно отрабатывает этот переход, в окне Simulation window картинка не меняется. Но, сделав образ DVD-Video на жестком диске, вы можете убедиться в правильности работы заданных вами команд, используя программный DVD плеер, такой как PowerDVD, например. Не забудьте замыкать ячейку Cell Root меню саму на себя, поскольку если вы для Root меню будете использовать видеоклип, то при незамкнутом цикле воспроизведения плеер попадет в Post и перейдет к просмотру фильма.
На этом мы завершили описание первого примера, сценарий которого вы можете переписать отсюда.
Создание своего DVD-Video диска программой Sonic Scenarist NT- практическое руководство - Часть 8 |
4.6.4.2. |
в регистр GPRM3 число 100.
Занесем в регистр GPRM3 число 100. Для нашего примера совершенно все равно, какое именно число будет занесено, лишь бы оно отличалось от нуля. Тем самым, поскольку мы "повесили" команду на Pre, при любом входе в фильм мы присваиваем GPRM3 значение 100.
C фильмом все необходимые действия проделаны (помните, что по умолчанию флаг Post фильма должен быть соединен с флагом Pre Root Menu), теперь настало время для работы с Root меню. Выберем флаг Pre в Root меню и в Simulation window мы увидим:
Как видно из рисунка, никаких
Как видно из рисунка, никаких команд на Pre нет. Подумаем, что нужно сделать для перехода к нужной ячейке меню эпизодов:
1. Записать в GPRM регистр номер текущей главы, который, как нам известно, находится в регистре SPRM7.
2. Определить, из фильма мы попали в меню или из какого-либо другого места - например, из того же меню эпизодов. Если не из фильма, то никаких действий не предпринимать.
3. Если из фильма, то сразу перейти к меню эпизодов.
Введем команды для выполнения описанной последовательности:
Как видно из рисунка, мы
Как видно из рисунка, мы переписали в регистр GPRM7 содержимое регистра SPRM7 и, тем самым, в регистре GPRM7 теперь хранится номер главы (сцены), которую смотрел зритель перед тем, как нажать кнопку меню. Регистр GPRM7 выбран произвольно, можно выбрать любой другой, за исключением GPRM3, который мы уже используем для запоминания входа в фильм. Далее проверяем, откуда мы пришли в меню и делаем переход к меню эпизодов, если пришли из фильма:
что если содержимое GPRM3 не
Понятно, что если содержимое GPRM3 не равно 100, т.е. мы не смотрели фильм, то мы просто попадаем в Root Menu. В этом случае все дальнейшие действия зрителя идут обычным путем и нас интересовать не будут. Если же мы переходим сразу к меню эпизодов, т.е. мы пришли из фильма, то нам надо сделать такие операции:
1. Снова проверить, откуда мы пришли, поскольку зритель может попасть в меню эпизодов и обычным путем через Root Menu. Если не из фильма, то просто перейти к первому меню эпизодов.
2. Стереть информацию о том, что мы пришли из фильма, поскольку попав потом в меню эпизодов, действия зрителя могут быть любыми и он, в частности, может захотеть попасть в Root Menu. В этом случае, если содержимое GPRM3 останется равным 100, бедный зритель опять попадет в меню эпизодов.
3. Выполнить операции сравнения содержимого регистра GPRM7 с числовыми константами и в зависимости от результатов сравнения перейти к соответствующей ячейке меню эпизодов.
Проверяем, откуда пришли в меню эпизодов и переходим к первому меню эпизодов и к первой кнопке в этом меню, если пришли не из фильма:
Если условие не было выполнено,
Если условие не было выполнено, то следующим пунктом - обнуление GPRM3:
Теперь выполняем сравнения
Теперь выполняем сравнения и переход:
в выделенных красным полях указаны
На рисунке в выделенных красным полях указаны значения для последней команды, конечно. В этом примере в качестве кнопки по умолчанию выбрана 5-ая, т.е. кнопка перехода к Root Menu, которая есть в каждом меню эпизодов. Понятно, что может быть выбрана любая другая кнопка. Если же вы хотите, чтобы зритель попал именно на ту кнопку, которая относится к просматриваемой зрителем главе, то это просто потребует большего количества команд. Пример:
В заключении следует сделать еще
В заключении следует сделать еще одну операцию, так как мы можем попасть в меню еще по одной причине - окончании просмотра фильма. В этом случае, разумеется, автоматический переход к меню эпизодов не требуется, поэтому на Post самого фильма следует "повесить" обнуление регистра GPRM3, как показано на рисунке:
Делая свой проект, подобный рассмотренному
Делая свой проект, подобный рассмотренному в нашем примере, вы должны учесть:
1. Для того, чтобы выбирались заданные вами кнопки, следует установить параметр Nonexistent, как описано в 4.1.1.1.4. Раздел Highlight.
2. Если Title Menu реально используется, то на его Pre надо "повесить" обнуление того регистра, который применялся для запоминания факта просмотра фильма (в нашем примере это GPRM3), поскольку при сознательном выборе Title Menu очевидно, что зрителю меню эпизодов не нужно.
На этом мы завершили описание второго примера, сценарий которого вы можете переписать отсюда.
Создание своего DVD-Video диска программой Sonic Scenarist NT- практическое руководство - Часть 9 |
4.7. |
у этого способа есть весьма
Но у этого способа есть весьма существенный недостаток - как только на cell "вешается" команда, то при нормальном воспроизведении (когда требуется просмотреть все подряд, без "перепрыгиваний"), всегда возникает заметная даже обычному зрителю пауза при отвлечении плеера на анализ команды в cell. Воспроизведение с паузами, конечно, удовольствия никому не доставит и такой способ применять крайне нежелательно.
Мы расскажем о способе решения этой задачи, лишенном всех недостатков описанного выше метода. Итак, исходные данные (в качестве примера выбран концерт):
· Запись концерта
· На концерте исполняется несколько песен
· Зритель должен иметь возможность:
o Посмотреть весь концерт целиком
o Посмотреть только песни, без пауз между ними
· Выбор нужного варианта выполнять из меню
Описание проекта.
Первый этап:
1. Вводим фильм в проект Scenarist как обычно.
2. Разбиваем фильм на главы (chapters), ОБЯЗАТЕЛЬНО выделяя в главы все фрагменты фильма, включая и те фрагменты, какие могут быть пропущены в каком-то из вариантов просмотра.
3. В Root menu определяем кнопку для полного просмотра и кнопку для избранного.
В результате мы должны получить фильм с множеством глав. Дальше мы можем вводить наш фильм в Scenario Editor и вот тут начинается самое интересное. На икону Title надо "бросать" не весь фильм, как обычно, перемещая из папки Tracks ссылку на фильм,
в Scenario Editor каждую главу
а "выкладывать" в Scenario Editor каждую главу индивидуально. Причем делать это надо так:
· Первая cell "бросается" на икону Title
· Те cell, с каких будут начинаться главы, ссылки на которые будут в меню эпизодов и которые также предназначены для избранного просмотра, "бросаются" на икону PGC фильма.
· Те cell, которые могут не показываться по варианту избранного просмотра, и, естественно, не будут доступны через меню эпизодов, "бросаются" на икону Program соответствующей chapter.
На рисунке результат выполнения таких действий показан наглядно:
в Scenario Editor следует последовательно,
Конечно, "нанизывать" cell в Scenario Editor следует последовательно, в порядке их правильного воспроизведения, поскольку в этом случае непрерывное воспроизведение будет гарантировано, что видно из флагов SM на cell. Итак, мы создали первый Title, который предназначен для просмотра всего концерта (фильма). Завершаем первый этап соединением нашего первого Title с кнопкой меню, отправляющей зрителя на просмотр полного фильма.
Смысл первого этапа в том, что в результате нумерация глав при любом варианте просмотра будет одинаковой и переходы по фильму соответственно тоже одинаковы. Можно просто включить в первый Title весь фильм обычным образом, не обращая внимания на то, что нумерация и количество глав будут отличаться при разных вариантах просмотра, но это уже выбор автора. Мы рассказали о таком варианте, поскольку он не совсем очевиден.
Второй этап
· В текущем VTS создаем еще один Title
· Из той же папки Tracks "бросаем" на него только те cell, которые предназначены для избранного просмотра (в нашем конкретном примере это только клипы с песнями)
В результате получаем довольно обычную картину:
Только если внимательно посмотреть на
Только если внимательно посмотреть на номера cell, станет видна разница с обычным фильмом - cell идут не подряд да и флаги прерывистого проигрывания (NSM) есть у каждой cell. В данном случае перерывов не избежать никак да и зритель в курсе - он предупрежден о просмотре избранных фрагментов. Завершаем второй этап соединением второго Title с кнопкой меню, отправляющей зрителя на просмотр только избранных вами фрагментов во втором Title.
Собственно говоря, это все. После выбора в меню просмотра всего фильма плеер перейдет к первому Title и зритель посмотрит весь фильм без малейших пауз. Если же выбран просмотр только избранных фрагментов, то плеер перейдет ко второму Title и зритель увидит только отдельные фрагменты (в нашем примере - только песни).
Очевидно, что для создания еще каких-либо вариантов просмотра следует просто добавить еще Title в VTS с нужной последовательностью и т.д. и т.п. Понятно, что этот способ удобен тем, что все время используются части одного и того же фильма и места на диске требуется только для собственно фильма. Добавление различных вариантов просмотра практически не увеличивает занимаемое проектом место на диске. Нумерация глав может и не совпадать для разных вариантов, хотя дроблением фильма на мелкие chapters можно добиться и совпадения.
Создание своего DVD-Video диска программой Sonic Scenarist NT- практическое руководство - Часть 10 |
4.7.2. |
в Scenarist наш учебный пример,
Теперь можно приступить к собственно примеру. Загружаем в Scenarist наш учебный пример, вводим новую subpicture как subpicture with Forced Start в Data и кладем ее затем на дорожку с основным фильмом (как вы помните, наш учебный фильм уже разбит на главы):
и никак иначе. Затем ее
Subpicture "ляжет" первоначально только в первую главу, и никак иначе. Затем ее следует перенести мышью в нужную вам главу. В нашем примере мы выбрали часть 3 для наложения subpicture и появления именно в этой части меню.
Выставьте мышью желаемую длительность появления
Выставьте мышью желаемую длительность появления меню на экране. В своем реальном проекте рекомендуется (хотя это не является обязательным условием) выбирать длительность главы не менее желаемой продолжительности появления меню на экране. Далее создаем кнопки как обычно в Simulation Window:
Также как обычно прокладываем траектории
Также как обычно прокладываем траектории движения с помощью соответствующих кнопок. Понятно, что для данного примера нам понадобятся только движения слева направо и справа налево. Далее выбираем в Simulation Window меню Advanced Effects (это меню подробно описано в разделе 4.1.1.1.6. настоящего руководства). В этом меню в произвольном месте создаем эффект Stop, нажав на красную кнопку и выделив место под эффект на timeline в меню:
Перемещая ползунок по timeline меню
Перемещая ползунок по timeline меню и перетаскивая местонахождение самого эффекта Stop, подведите начало эффекта Stop к тому месту, где необходимо прекратить видимость вашего меню.
Рисунок выше иллюстрирует тот случай,
Рисунок выше иллюстрирует тот случай, когда эффект Stop применен до окончания highlight. Эффект Stop имеет еще одну особенность - с его помощью вы можете "растягивать" subpicture на две и более глав, передвигая эффект по timeline в меню Advanced Effects вправо. В Track Editor вы будете видеть, как длительность subpicture будет меняться в зависимости от положения эффекта Stop. Определив нужное положение эффекта Stop, крайне важно не забыть выровнять зону действия кнопок (highlight) с длиной subpicture. Для этого выберите highlight мышью и далее по нажатию правой кнопки мыши выберите Align Highlight, как показано на рисунке:
В противном случае Scenarist будет
В противном случае Scenarist будет выдавать вам сообщения об ошибках и откажется затем создать DVD диск на заключительной стадии работы над проектом. Сообщения об ошибках в случае несовпадающей длительности subpicture и highlight будут такими:
в Track Editor
После выравнивания в Track Editor будет:
с меню завершена. Теперь вам
На этом работа с меню завершена. Теперь вам останется в Scenario Editor просто назначить кнопкам нужные функции обычным путем и все:
Описанный нами способ вы также
Описанный нами способ вы также можете использовать и при создании обычных меню для того, чтобы задерживать появление кнопок на экране и/или прекращать их видимость на экране в нужный момент времени.
Скачать сам проект можно здесь.
Мы благодарим Бориса Прохорова за помощь в подготовке этого примера.
Создание своего DVD-Video диска программой Sonic Scenarist NT- практическое руководство - Часть 11 |
4.7.3. |
Размеры невидимых кнопок, их форма
Размеры невидимых кнопок, их форма и т.п. совершенно не важны. Цвет тоже роли не играет, но с одним условием - в меню не должно быть видимых кнопок того же цвета. В нашем примере мы выбрали красный цвет. Изготовим такие же subpicture для двух других частей меню эпизодов.
Введем заново в Track Editor собственно сами меню эпизодов (удалив их предварительно сначала из Scenario Editor, затем из Track Editor), так как наличие звуковой дорожки требует, чтобы меню были введены как slide show, к still menu звук добавить нельзя. Введем и новые subpicture в проект. Также добавим по 4 звуковых дорожки к каждому меню в Track Editor. Разумеется, звуковые треки тоже надо предварительно ввести в проект. Не забудьте "растянуть" меню в Track Editor до окончания нужной вам звуковой дорожки, "растянув" также subpicture.
Примечание: в реальных проектах мы рекомендуем всегда использовать motion menu, если у меню будет звуковое сопровождение.
Теперь нужно правильно проложить связи между кнопками, как показано на рисунке (мы подробно расскажем только о первом меню эпизодов, остальные делаются точно также):
В параметре Display пока установлена
Примечание: В параметре Display пока установлена 100% видимость для исходного красного цвета. После выделения кнопок этот параметр надо убрать в 0.
Идея расстановки связей здесь проста - нам надо "перехватывать" невидимой кнопкой любое обращение к кнопке видимой. В этом примере кнопка 8 "перехватывает обращение к реальной кнопке "Часть 3", кнопка 9 "перехватывает обращение к реальной кнопке "Часть 1", кнопка 10 "перехватывает обращение к реальной кнопке "Часть 4", кнопка 11 "перехватывает обращение к реальной кнопке "Часть 2". Надо учесть, что при прокладке связи учитывается только действия инструмента прокладки, т.е. если вы прокладываете все связи слева направо, то это означает, что вы перейдете по ней при нажатии кнопки стрелка влево на пульте ДУ плеера. Как эта связь будет зрительно нарисована в Scenarist, никакого значения не имеет.
Не забудьте установить параметр Forced Selected Button в значение Nonexistent, как показано на рисунке, иначе вне зависимости от наших команд, всегда будет выбираться определенная кнопка.
Присваиваем каждой из невидимых кнопок
Присваиваем каждой из невидимых кнопок атрибут Auto Action:
Проделаем аналогичные операции для двух
Проделаем аналогичные операции для двух других меню эпизодов нашего учебного проекта (или просто скопируйте Highlight первого меню на остальные). Теперь надо создать отдельный Title для нашего меню, так как в домене Language нельзя иметь PGC с несколькими звуковыми дорожками, как показано на рисунке:
После этого вы обнаружите
После этого вы обнаружите в Scenario Editor новый Title:
все наши меню эпизодов как
Далее "навешиваем" все наши меню эпизодов как отдельные PGC на новый Title.
Теперь соединяем каждую из невидимых
Теперь соединяем каждую из невидимых кнопок со своей же собственной PGC. Таким образом, при попадании на любую из невидимых кнопок, плеер автоматически перейдет к Pre PGC текущего меню. Теперь напишем последовательность команд, которая будет выполнять нужные нам действия, на Pre PGC первого меню эпизодов.
1:Mov GPRM0, 9216
2:if ( GPRM0 == SPRM8 ) SetSTN audio=1
3:if ( GPRM0 == SPRM8 ) LinkPGN PTTMenu1-t-scn-pg, button=1
4:Mov GPRM0, 11264
5:if ( GPRM0 == SPRM8 ) SetSTN audio=2
6:if ( GPRM0 == SPRM8 ) LinkPGN PTTMenu1-t-scn-pg, button=2
7:Mov GPRM0, 8192
8:if ( GPRM0 == SPRM8 ) SetSTN audio=3
9:if ( GPRM0 == SPRM8 ) LinkPGN PTTMenu1-t-scn-pg, button=3
10:Mov GPRM0, 10240
11:if ( GPRM0 == SPRM8 ) SetSTN audio=4
12:if ( GPRM0 == SPRM8 ) LinkPGN PTTMenu1-t-scn-pg, button=4
13:SetSTN audio=1
14:SetHL_BTNN HL_BTNN=1
Рассмотрим подробно набор команд только для одной кнопки (9 невидимой и первой видимой), поскольку наборы команд для каждой кнопки по сути одинаковы.
Mov GPRM0, 9216 - по этой команде (Set GPRM) мы записываем в регистр GPRM0 номер кнопки. Почему 9216? Потому, что DVD плеер в регистр SPRM8, в котором хранится номер последней выбранной кнопки, записывает номер кнопки, умноженный на 1024, т.е. 8-ая кнопка будет запомнена с кодом 9216, а 11 кнопка, например, с кодом 11264.
if ( GPRM0 == SPRM8 ) SetSTN audio=1 - по этой команде (Set Angle/Audio/Sub-picture)мы устанавливаем для воспроизведения первую звуковую дорожку в том и только в том случае, если зритель выбрал переход к кнопке "Часть 1" (первой) и тем самым сработала 8-ая невидимая кнопка.
if ( GPRM0 == SPRM8 ) LinkPGN PTTMenu1-t-scn-pg, button=1 - по этой команде (Jump to Program), опять же в том и только в том случае, если зритель выбрал переход к кнопке "Часть 1" (первой) и тем самым сработала 8-ая невидимая кнопка, мы переходим к нашему же меню эпизодов.
Последние команды (13 и 14) предназначены для тех случаев, когда мы попадаем в данное меню эпизодов извне, из другого меню эпизодов по кнопкам "Вперед" или "Назад" или же из главного (root) меню. Если же меню будет просто крутиться в цикле, то будет одна и та же кнопка и музыка к ней соответственно, но для этого не забудьте "замкнуть" воспроизведение меню через команду cell. Что еще необходимо - на Pre основного фильма следует обязательно "повесить" команду установки первой звуковой дорожки. Дело в том, что если хотя бы в одном Title есть несколько дорожек, то DVD плеер будет считать, что у каждого Title в этом VTS тоже по 4 дорожки. Поэтому, если вы ушли в фильм из меню при включенной 4-ой звуковой дорожке, то звука фильма вы не услышите - так четвертая и несуществующая (для фильма) дорожка и останется включенной.
При смене кнопки и звуковой дорожки кнопки нашего тестового проекта на мгновение исчезнут, но надо понимать, что это происходит только из-за того, что в нашем проекте кнопки являются единственными картинками в меню, т.е. меню состоит фактически из subpicture. В реальных меню такого эффекта не будет.
Готовый проект вы можете переписать отсюда.
Пример, рассмотренный выше легок в том смысле, что вы создаете физически один клип или одно still show меню и только меняете звуковые дорожки. Минусы у такого способа таковы:
1. Для зрителя на индикаторе DVD плеера будет та же картина, что и при просмотре обычного видео, поскольку меню эпизодов размещается не в домене Language. Строго говоря, следует через UOP запретить возможность перемотки клипов такого меню, остановки, переключения звуковой дорожки и т.п.
2. PGC в Title с меню надо перемещать к началу DVD диска, ближе к Root menu, как показано на рисунке:
в противном случае переход от
в противном случае переход от Root menu к меню эпизодов будет с паузой, которая тем больше, чем дальше меню эпизодов от Root menu и Title menu.Есть другой способ, который в основном применяется на коммерческих DVD-Video дисках. Смысл его в том, что под каждую кнопку создается свой видеоклип со своей звуковой дорожкой. Конечно, клипы эти, как правило, короткие, 30-50 секунд, но на 3 меню эпизодов в каждом из которых по 4 выбора сцен, как нетрудно догадаться, потребуется 16 клипов. Зато все эти клипы можно разместить в домене Language и меню получится во-первых, в строгом соответствии с канонами, во-вторых, можно и видеокартинку меню менять вместе со звуком. Мы не будем подробно останавливаться на таком проекте, поскольку он более трудоемок в изготовлении, но требует меньших затрат на программирование. Желающие могут переписать наш готовый проект с одним меню эпизодов, сделанным таким образом и посмотреть как он работает.