Переделка меню на DVD - пособие в картинках, Убавить, добавить? А подсветку сделать?
Привет, Гость ( Вход | Регистрация )
![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
Переделка меню на DVD - пособие в картинках, Убавить, добавить? А подсветку сделать?
altar |
![]() ![]()
Сообщение
#1
|
![]() DVD гуру ![]() ![]() ![]() ![]() Группа: Team RDA Сообщений: 549 Регистрация: 02 Мар '06 Откуда: Страна Америчка 2 Юзер Цитировать ![]() |
Руководство в процессе написания. Пока выкладываются скрины и идут наброски. Закончена только 1-я часть.
Большинство "передельщиков", которых знаю, тусуются здесь. Здесь и выкладываю в первую очередь - в расчете на критику. Написано с использованием материалов многих форумов, особенно doom9. Ну, и мои практические наработки. Часть 1, простая. Убираем кнопки в статичном меню. Обычная история, скачали DVD-9, в котором полно рекламы или неинтересных допов. После их удаления (разумеется, с помощью DVD Remake Pro), остается DVD-5. Все хорошо, но в меню остается кнопка, ведущая к удаленному материалу. Кнопку деактивировать легко. Но хочется, чтобы ее в меню вообще не было. Используемый инструментарий: DVD Remake Pro (3.5.3 и выше), MuxMan (0.18.10 и выше), Photoshop (или подобный редактор)
Отредактировано: altar в Понедельник, 22 Октября 2007, 6:07 -------------------- Бог создал дураков и гусей, чтобы было кого дразнить (Л.Д. Ландау)
|
![]() ![]() ![]() |
altar |
![]() ![]()
Сообщение
#2
|
![]() DVD гуру ![]() ![]() ![]() ![]() Группа: Team RDA Сообщений: 549 Регистрация: 02 Мар '06 Откуда: Страна Америчка 2 Юзер Цитировать ![]() |
Часть 2, похитрее. Кнопки добавляются, подсветка появляется, команды идут.
Работаем с меню 16х9! Используемый инструментарий: DVD Remake Pro, SubRip, MuxMan, Photoshop Нашли менюшку, делаем для нее новый проект ![]() Копируем в старом ![]() Добавляем в новый ![]() Экспортируем ![]() Берем на заметку потоки с подсветкой ![]() Меню - на экспорт ![]() Кнопки - на экспорт ![]() Color Scheme - на экспорт ![]() CLUT - на экспорт ![]() Открываем в SubRip ![]() Открываем... ![]() Открываем... ![]() Выбираем поток с нужной подсветкой, Wide ![]() Сохраняем ![]() Нужно имя ![]() Установки - цвет ![]() Установки - обрезки нет ![]() Вот она она! ![]() Сохранили - приросла цифирька ![]() Повторяем для Pan & Scan ![]() Фотошоп - Color Table ![]() Сохраняем Color Table ![]() В RGB ![]() Собираем слои, ![]() Ага, WS highlight слой - в проект с меню ![]() Задний план - тоже в слой ![]() Прозрачность - вот оно каково! ![]() Анаморф: растягиваем (720x480 -> 854x480 NTSC), (720x576 -> 1024x576 PAL) 4:3 - растягиваем (720x480 -> 720x540 NTSC), (720x576 -> 768x576 PAL) До и после удаления текста ![]() Меню до и после ![]() Новое меню ![]() Новое меню с подсветкой ![]() Новое меню с подсветкой - крупно ![]() Сжимаем меню обратно до (720x480 NTSC), (720x576 PAL) WS highlight - одну копию сжимаем как меню, из другой (других) делаем PS (Pan & Scan): 1. Меняем размер картинки на (960x480 NTSC), (960x576 PAL) 2. Меняем размер канваса на (720x576 PAL) (720x480 NTSC). Не трогаем контроли расположения картинки - она должна оставаться в центре. Картинка обрежется по бокам. LB (Letterbox): 1. Меняем размер картинки на (720x432 PAL) (720x360 NTSC) 2. Меняем размер канваса на (720x576 PAL) (720x480 NTSC). Не трогаем контроли расположения картинки - она должна оставаться в центре. 3. Заполняем пустой канвас сверху и снизу красным цветом. Меняем на индекс - палитра, загружаем сохраненную Color Table ![]() Не размазывать! ![]() Сохраняем подсветку для моды Wide, как 4-бит OS/2 bmp - WS_ED.bmp То же делаем для остальных необходимых мод. Сохраняем следующий текст как WS.sst: CODE st_format 2 Display_Start forced TV_Type NTSC Tape_Type NON_DROP # 2 pixels out of 480 are unavailable for subtitles Pixel_Area (2 479) Display_Area (0 2 719 479) # Draw your highlight with red (background, BG), # black (pattern, PT), # blue (emphasis 1, E1), # and white (emphasis 2, E2) E2 (255 255 255 = = =) E1 (0 0 255 = = =) PA (0 0 0 = = =) BG (255 0 0 = = =) # Mapping to CLUT # (E2 E1 PA BG) Color (1 1 1 1) # Transparency (0-15): 0 - fully transparent, 15 - fully opaque # (E2 E1 PA BG) Contrast (0 0 0 0) # Next line means the highlight bmp is in same directory as this sst file Directory . # Zero start and finish mean default time for muxing app # PS.bmp - name of highlight file 1 00:00:00:00 00:00:00:00 PS.bmp # Comment added to ensure carriage return in the previous line - # when copied from a web page SST (формат Сценариста) указывает на созданный ранее bmp. Файл с подсветкой, WS_ED.bmp, должен быть в той же папке, что и WS.sst Делаем такой же файл PS.sst - для подсветки PS (только меняем имя bmp, на который он указывает). SST файл для PAL CODE st_format 2 Display_Start forced TV_Type PAL Tape_Type NON_DROP # 3 pixels out of 576 are unavailable for subtitles Pixel_Area (2 574) Display_Area (0 2 719 574) # Draw your highlight with red (background, BG), # black (pattern, PT), # blue (emphasis 1, E1), # and white (emphasis 2, E2) E2 (255 255 255 = = =) E1 (0 0 255 = = =) PA (0 0 0 = = =) BG (255 0 0 = = =) # Mapping to CLUT # (E2 E1 PA BG) Color (1 1 1 1) # Transparency (0-15): 0 - fully transparent, 15 - fully opaque # (E2 E1 PA BG) Contrast (0 0 0 0) # Next line means the highlight bmp is in same directory as this sst file Directory . # Zero start and finish mean default time for muxing app # PS.bmp - name of highlight file 1 00:00:00:00 00:00:00:00 PS.bmp # Comment added to ensure carriage return in the previous line - # when copied from a web page MuxMan - выбираем видео (меню) ![]() Аттрибуты меню ![]() Подсветка для моды Wide. Добавляем файл WS.sst (не bmp!!!), как первый поток субтитров. Открывается окно менеджера ![]() PS.sst добавляется как второй поток первого трека субтитров Муксим! ![]() Добавляем CLUT, Color Scheme, старые кнопки. Добавляем новые кнопки ![]() Кнопки добавлены ![]() Чиним навигацию ![]() Навигация починена ![]() Скопировали ![]() Приклеили поверх старого ![]() Крупный план до ![]() Крупный план после ![]() Изменение команд - в каждом конкретном случае разное. Просто как пример изменения довольно продвинутой навигации: Команды на кнопках до ![]() Сразу видно, что при выборе аудио мы уходим в PGC 8, а субтитров - PGC 9; R[2] служит для передачи номера нажатой кнопки. Делаем по тому же образцу: Команды на кнопках после ![]() Проходим в дебаггере, обнаруживаем в "Root" и "Angle" меню в VTS с фильмом схожие команды, задающие аудио и субтитры: CODE audio = R[12]; sub-picture = R[13] Видно, что R[12] служит для хранения номера аудио трека, R[13] - субтитров Если мы в меню с установками (то, над которым мы так потрудились) не заглянем, то R[12] и R[13] присваиваются нулевые значения в PGC 4 Видео Менеджера: CODE 1 R[15] = 99 2 R[12] = 0 3 R[13] = 0 4 R[1] = preferred_sub-picture_language 5 R[0] = preferred_audio_language 6 NOP 7 NOP 8 Jump VTS 2 "angle" menu (title 1) Нули означают 1-й трек аудио и 1-й (в оригинале - единственный) трек субтитров, причем отключенный (объяснить здесь). Что характерно, предпочтительные языки аудио и субтитров (то, что Вы можете установить в хорошем плеере) присваиваются в регистры R[0] и R[1], но потом нигде не используются. При авторинге используются программы "высокого уровня", типа Сценариста, которые используют шаблоны и abstraction layer. Никто настоящие команды не видит (отсюда и огромное число совершенно ненужных, бессмысленных команд). При авторинге явно использовался шаблон, рассчитанный на разные языки. Тем лучше для нас! Меняем на CODE 1 R[15] = 99 2 R[12] = 0 3 R[13]=0 4 R[1] = preferred_sub-picture_language 5 R[0] = preferred_audio_language 6 if (R[0] == 29301 ("ru")) R[12] = 2 7 if (R[1] == 29301 ("ru")) R[13] = 1 8 Jump VTS 2 "angle" menu (title 1) Если предпочтительный язык - русский, будет выбран русский аудио трек и русские субтитры (как будет ясно позже - в отключенном состоянии). При любом другом языке предпочтения - будут выбраны английские треки. Далее изучаем работу меню с установками. Перед тем, как мы в него попадаем, исполнялись команды (pre commands): CODE 1 R[0] = 99 2 if (R[0]==R[5]) goto line 12 3 R[0] = 100 4 if(R[0]==R[5]) goto line 23 5 R[0] = 0 6 if (R[0] == audio) highlighted_button = 1024 (button 1) 7 R[0] = 1 8 if (R[0] == audio) highlighted_button = 2048 (button 2) 9 NOP 10 NOP 11 goto line 24 12 R[0] = sub-picture 13 R[0] &= 63 14 R[1] = 0 15 if (R[1] == R[0]) highlighted_button = 3072 (button 3) 16 R[1] = 1 17 if (R[1] == R[0]) highlighted_button = 5120 (button 5) 18 R[0] = sub-picture 19 R[0] &= 64 20 R[1] = 0 21 if (R[1] == R[0]) highlighted_button = 4096 (button 4) 22 goto line 24 23 highlighted_button = 5120 (button 5) 24 NOP Меняем на CODE 1 R[0] = 99 2 if (R[0] == R[5]) goto line 14 3 R[0] = 100 4 if (R[0] == R[5]) goto line 27 5 R[0] = 0 6 if (R[0] == audio) highlighted_button = 1024 (button 1) 7 R[0] = 1 8 if (R[0] == audio) highlighted_button = 2048 (button 2) 9 R[0] = 2 10 if (R[0] == audio) highlighted_button = 3072 (button 3) 11 NOP 12 NOP 13 goto line 28 14 R[0] = sub-picture 15 R[0] &=64 16 R[1] = 0 17 if (R[1] != R[0]) goto line 20 18 highlighted_button = 6144 (button 6) 19 goto line 28 20 R[0] = sub-picture 21 R[0] &= 63 22 R[1] = 0 23 if (R[1] == R[0]) highlighted_button = 4096 (button 4) 24 R[1] = 1 25 if (R[1] == R[0]) highlighted_button = 5120 (button 5) 26 goto line 28 27 highlighted_button = 7168 (button 7) 28 NOP (как сделать жирный шрифт внутри CODE?) Объяснить про 63, 64 и логику При выборе аудио, нас выбрасывало в PGC 8: CODE 1 R[5] = 99 2 R[1] = sub-picture 3 R[1] &= 63 4 R[0] = 1 5 if (R[1] == R[0]) sub-picture = 0 (track 0:OFF) 6 NOP 7 NOP 8 R[0] = 1 9 if (R[2] == R[0]) audio = 0 (track 0) 10 R[0] = 2 11 if (R[2] == R[0]) audio = 1 (track 1) 12 NOP 13 NOP 14 R[2] = 0 15 R[12] = audio 16 R[13] = sub-picture 17 Link PGC 7 после чего мы возвращались в меню установок, с одной из кнопок субтитров, услужливо выбранных для нас (в зависмости от текущего выбора). Меняем на CODE 1 R[5] = 99 2 NOP 3 NOP 4 NOP 5 NOP 6 NOP 7 NOP 8 R[0] = 1 9 if (R[2] == R[0]) audio = 0 (track 0) 10 R[0] = 2 11 if (R[2] == R[0]) audio = 1 (track 1) 12 R[0] = 3 13 if (R[2] == R[0]) audio = 2 (track 2) 14 NOP 15 NOP 16 R[2] = 0 17 R[12] = audio 18 R[13] = sub-picture 19 Link PGC 7 При выборе субтитров, нас выбрасывало в PGC 9: CODE 1 R[5] = 100 2 R[0] = 5 3 if (R[2] != R[0]) goto line 13 4 goto line 9 5 NOP 6 NOP 7 NOP 8 NOP 9 R[0] = sub-picture 10 R[0] &= 63 11 if (R[0] == 1) R[0] = 0 12 sub-picture = R[0] 13 R[0] = 1 14 if (R[2] == R[0]) sub-picture = 64 (track 0:ON) 15 R[2] = 0 16 R[12] = audio 17 R[13] = sub-picture 18 R[11] = 0 19 Link PGC 1 Меняем на CODE 1 R[5] = 100 2 R[0] = 5 3 if (R[2] != R[0]) goto line 13 4 goto line 9 5 NOP 6 NOP 7 NOP 8 NOP 9 R[0] = sub-picture 10 R[0] &= 63 11 if (R[0] == 1) R[0] = 0 12 sub-picture = R[0] 13 R[0] = 1 14 if (R[2] == R[0]) sub-picture = 64 (track 0:ON) 15 R[0] = 2 16 if (R[2] == R[0]) sub-picture = 65 (track 1:ON) 17 R[2] = 0 18 R[12]= audio 19 R[13]= sub-picture 20 R[11] = 0 21 Link PGC 1 Отредактировано: altar в Понедельник, 22 Октября 2007, 23:11 -------------------- Бог создал дураков и гусей, чтобы было кого дразнить (Л.Д. Ландау)
|
![]() ![]() ![]() |
Lo-Fi Версия | CMSBlog | Сейчас: Воскресенье, 04 Мая 2025, 4:05 |