-
psicho, именно в 1758, не 1757?
А если 1758 удалить? Там наверняка пустышка на 1 сек.?
-
1758 - правый ракурс самого фильма.
-
Цитата:
правый ракурс самого фильма
ааааа, пардон, не обратил внимание что это 3D
- - - Добавлено - - -
psicho, так это, по 3D, там же вроде надо подрезать аудио по продолжительности видео,
в вашем случае надо делать 1:46:26:01 (у вас 1:46:26:02)
-
bbcby
Подрезал звук во всех 3D файлах, ничего не изменилось:
http://i60.fastpic.ru/thumb/2013/122...58e5d87b5.jpeg
-
Сегодня, наверное, у всех спецов по 3D выходной.:D
Я с 3D всего пару дисков сделал. А это не может быть связано с Layer Break, может его попробовать сместить?
Эти файлы 1757, 1758 только в этом плейлисте? Может где-нибудь еще.
-
Layer Break смещать пробовал, то же самое.
Файлы 1757, 1758 в двух плейлистах.
-
Денис Пирожков
Вспомнил! (И эксперементально проверил) Дело было в другом. В BDMV работает только в случае использования ресуминга.
Но должен быть выполнен ряд условий.
1 В поп-ап не должно быть кнопки "Главное Меню" с командой JumpTitle [ID:0] Top Menu - возврат в меню только с помощью клавиши на пульте (или в меню плеера).
2 Если без кнопки "Главное Меню" в поп-ап не обойтись, то ей следует назначить команду Resume, а в главном меню на кнопке "Просмотр" и кнопках эпизодов - команду CallTitle [ID:1] Фильм,
мало того следует убрать из поп-ап меню другие кнопки с использованием команд CallTtle (например вызов бонусов), потому что каскады ресумингов (Меню > Фильм > Бонус и Бонус > Фильм > Меню) невозможны
Эти два условия взаимоисключающие.
При неывполнении этих условий всё пойдёт кувырком.
Обеспечение подсветки эпизодов производится так же как и в поп-ап меню только пользовательскому регистру задаётся значение (PSR)Backup Register #5[ID:37]
1 Move (GPR)Chapter Number[ID:2] (PSR)Backup Register #5[ID:37]
2 Вычисления ID кнопки
3 SetButtonPage Button: (GPR)Chapter Number[ID:2]
Далее нужно будет обусловить что при первом заходе в меню эпизодов должна быть выбрана кнопка первого эпизода, а после возвращения из фильма кнопка выбора текущего эпизода.
1 if (GPR)Movie[ID:3] == 1 SetButtonPage Button:Chapter Select[ID:63] Page:Chapters[ID:3]
2 SetButtonPage Button:Chapter 01[ID:0] Page:Chapters[ID:3]
P.S. Мой предыдущий пост можно удалить и забыть, дабы он никого не смущал.
-
Mowny Devam, Молодец спасибо. Займусь этим чуть позже, тогда. Сначала надо доделать раздел Дополнительных материалов, их будет не мало штук 8 наверно. А вот когда доделаю весь диск, тогда и займусь решением этого "финта" :smile_ay: с Подсветкой Чаптеров в ТОПе. Кстати в ПОП у меня есть кнопка Главное Меню и на неё я повесил CallTitle это, чтобы Резюм работал иначе при обычном ДжампеТитл он не работает.
Так ну я дальше работать, вам низкий поклон :)
-
Цитата:
есть кнопка Главное Меню и на неё я повесил CallTitle
Тоже вариант.
-
Затормозился немного. В общем на дисках ВорнерБразерс, часто бывает отдельный поток Аудио с комментарием режиссёра вынесен на отдельную страницу в Дополнительных материалах. Так вот на странице Допов у меня 2 кнопки имеются под включение дороги Аудио с комментарием и выключение этой дороги. С включением здесь всё ясно, а вот с выключением не совсем. Понятно дело, что поток Аудио нельзя полностью выключить, значит у меня на второй кнопке висит хитрая команда, которая не выключает Аудио с комментарием, а просто включает предыдущий поток Аудио. Допустим мы смотрели фильм с 1-ым потоком Аудио затем зашли в меню в Допы и там включили скажем 8-ой поток Аудио, что является комментарием режиссёра, а вот после нам надоело слушать режиссёра и мы в меню выключаем этот 8-ой Аудио поток и тут же включаем предыдущий Аудио поток т.е. 1-ый. В примере моём предыдущая дорога был 1-ый поток, но на его месте может быть любой другой, важен сам факт, что когда мы кликаем по кнопке выключить Аудио комментарий, то включаем не какой-то Аудио поток с 1 по 7, а именно предыдущий.
Как это на практике реализовать. Есть ли PSR регистр, который хранит память подобного рода, чтобы можно было подгрузить мне предыдущий Аудио поток или данный финт возможно реализовать только по пользовательским регистрам?
-
Денис Пирожков, я ж в теме писал какой PSR - Primary Audio [ID:1] - номер текущего аудиопотока.
Называете какой ни будь GPR, например, "Audio Backup".
Для кнопки включения комментариев назначаете комманды:
1 Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1]
2 Включаете поток комментароев
Для кнопки выключения назначаем команду SetStream Audio:No=(GPR)Audio Backup[ID:8], разумеется со сравнением сабов.
Если к комментам есть сабы, значит кроме этого при включении комментов делаем бэкап регистра PG TextST stream and PiP PG TextST [ID:2] (номер текущего потока субтитров) и при выключении назначаем аудиопоток и сабы сравнивая с этим бэкапом.
-
Mowny Devam, Ну это и есть через пользовательские регистры. Придётся так и делать. Я просто думал может есть регистр плеера PSR который бы помнил предыдущий поток. Ведь по логике когда мы Резюме вешаем, то при возобновлении наши потоки же сохраняются плеером, значит должен быть какой-то регистр бэкапа Primary Audio. Или я всё не так понимаю :)
То есть на включение потока я такую команду вешаю:
1 Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1]
2 Move (GPR)Audio Backup[ID:8] 8
А на выключение этого потока эту вешаю:
1 SetStream Audio:No=(GPR)Audio Backup[ID:8]
2 if((PSR)PG TextST stream and PiP PG TextST [ID:2] > 2147483647 SetStream PG TextST: [DispON]
3 if((PSR)PG TextST stream and PiP PG TextST [ID:2] < 2147483647 SetStream PG TextST: [DispOFF]
-
Только тогда бэкап и сохраняется.
Цитата:
1 Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1]
2 Move (GPR)Audio Backup[ID:8] 8
Sore wa nan desu ka?! O_o
-
Mowny Devam, Я просто не понял тебя когда говорил 2-ым пунктом Включаем поток коментариев. Его же можно включить как регистром моим так и СетСтримом. В общем сделал так как думал, может это ты мне тоже хотел сказать да я не понял просто.
Эту команду я кинул на кнопки Аудио:
1 if((PSR)PG TextST stream and PiP PG TextST [ID:2] > 2147483647 SetStream Audio:No=6 PG TextST: [DispON]
2 if((PSR)PG TextST stream and PiP PG TextST [ID:2] < 2147483647 SetStream Audio:No=6 PG TextST: [DispOFF]
3 Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1]
4 Move (GPR)Audio Backup[ID:8] 6
Точно такую же команду кинул на сам Коментарий режиссёра: (только без 3 и 4 сторки):
1 if((PSR)PG TextST stream and PiP PG TextST [ID:2] > 2147483647 SetStream Audio:No=8 PG TextST: [DispON]
2 if((PSR)PG TextST stream and PiP PG TextST [ID:2] < 2147483647 SetStream Audio:No=8 PG TextST: [DispOFF]
А вот на кнопку выключить Коментарий кинул вот такую штуку:
1 if((PSR)PG TextST stream and PiP PG TextST [ID:2] > 2147483647 SetStream Audio:No=(GPR)Audio Backup[ID:8] PG TextST: [DispON]
2 if((PSR)PG TextST stream and PiP PG TextST [ID:2] < 2147483647 SetStream Audio:No=(GPR)Audio Backup[ID:8] PG TextST: [DispOFF]
Вот это наверно ты хотел сказать. Сразу не понял :[ опыта мало, это мой первый диск который я стряпаю.
-
Денис Пирожков, всё равно непонятно зачем сначала Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1] и тут же Move (GPR)Audio Backup[ID:8] 6. Это взаимоисключающие команды: либо "8", либо "(PSR)Primary Audio[ID:1]" одновременно оба значения не могут быть.
Это раз. Потом. бэкап нужно делать непосредственно перед включением коментов, а не после включения других потоков, иначе придётся запрещать переключение аудиопотоков с пульта.
По этому включение комментови с учётом бэкапа сабов:
1 Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1]
2 Move (GPR)Subs Backup[ID:9] (PSR)PG TextST stream and PiP PG TextST [ID:2]
3 if((PSR)PG TextST stream and PiP PG TextST [ID:2] > 2147483647 SetStream Audio:No=8 PG TextST: [DispON]
4 if((PSR)PG TextST stream and PiP PG TextST [ID:2] < 2147483647 SetStream Audio:No=8 PG TextST: [DispOFF]
Выключение Коментариев:
1 if((GPR)Subs Backup[ID:9] == 2415853569 SetStream Audio:No=(GPR)Audio Backup[ID:8] PG TextST:No=1 [DispON]
1 if((GPR)Subs Backup[ID:9] == 2415853570 SetStream Audio:No=(GPR)Audio Backup[ID:8] PG TextST:No=2 [DispON]
----------------------------------\\-------------------------------
2 if((GPR)Subs Backup[ID:9] == 268369921 SetStream Audio:No=(GPR)Audio Backup[ID:8] PG TextST:No=1 [DispOFF]
Кнопка 6-го Аудио-потока:
1 if((PSR)PG TextST stream and PiP PG TextST [ID:2] > 2147483647 SetStream Audio:No=6 PG TextST: [DispON]
2 if((PSR)PG TextST stream and PiP PG TextST [ID:2] < 2147483647 SetStream Audio:No=6 PG TextST: [DispOFF]
-
Mowny Devam, Ого как много всего. А зачем делать бэкап 8-ой дороги т.е. Комментариев? Не совсем понял. Ведь задача была такая, когда у нас играет комментарий и мы кликаем его выключить, то не самого Аудио 8-го потока выключается, а включается предыдущий поток, который звучал перед выбором комментариев. Отсюда значит, что бэкапы дорог надо делать только с 1-ой по 7-ую, а на 8-ой она не нужна.
Цитата:
либо "8", либо "(PSR)Primary Audio[ID:1]" одновременно оба значения не могут быть.
А вот это от не понимая сути. Всё поправился оставил только PSR.
Итак на всех Аудио с 1-ой по 7-ой я повесил это:
1 if((PSR)PG TextST stream and PiP PG TextST [ID:2] > 2147483647 SetStream Audio:No=6 PG TextST: [DispON]
2 if((PSR)PG TextST stream and PiP PG TextST [ID:2] < 2147483647 SetStream Audio:No=6 PG TextST: [DispOFF]
3 Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1]
На сам Комментарий режиссёра повесил, то что было ранее и на кнопку выключить комментарий т.е. 8-ой поток в моём случаи тоже оставил ту же команду. И вот теперь как мне кажется всё ровно вышло. А зачем мне логические сравнения делать со знаком "==" и целую кучу их прописывать, ведь проще делать же "<" и ">" и всё. Или я не прав?
Цитата:
бэкап нужно делать непосредственно перед включением коментов, а не после включения других потоков, иначе придётся запрещать переключение аудиопотоков с пульта
Ну вот у меня осталось всё как было т.е. команда Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1] стоит после включения потока. И какие меня ждут сюрпризы или неточности? Проверил всё это дело не знаю, но у меня работает всё нормально. Кстати ещё момент зачем нам делать бэкап субтитров? Это ведь ненужное дело. Если сабы были включены до того как мы запустим поток Комментариев, то после запуска коментов они и останутся включенными, а также при нажатии кнопки выключить Аудио комментарий они также останутся включёнными т.е. в том состоянии как были. Поэтому думаю бэкап сабов не нужен.
-
Друзья, извините, ненадолго отвлеку ваше внимание! Вчера у одного из наших друзей, а именно у
Mowny Devam, был День Рождения! Если кто-то пожелает сказать пару добрых слов, милости прошу
сюда.
-
Пардон, это я заработался. Сам ничего не помню. :smile_ce: Спасибо что напомнили придали праздничного настроя!:D
-
Пирожков, пожалте к столу - я вас съем :smile_bm:, если будете задавать такие вопросы! :D
Мы делаем (можем делать!) только (!) бэкап текущего аудиопотока. (PSR)Primary Audio[ID:1] отражает только текущее состояние. И то что вы задаёте значение регистру (GPR)Audio Backup[ID:8] на каждой кнопке, ничего не даст.
Нажатием кнопки включения коментариев задаём команду бэкапа текущего на тот момент потоков и аудио, и сабов, а за тем команду включения потока коментов. Нажатием кнопки выключения коментов возвращаем на место заданные ранее звук и сабы.
Можно сократить набор команд при выключении коментов:
1 if((GPR)Subs Backup[ID:9] > 2147483647 Move (PGR)Subs State[ID:10] 1
2 if((GPR)Subs Backup[ID:9] < 2147483647 Move (PGR)Subs State[ID:10] 2
3 if((PGR)Subs State[ID:10] == 1 SetStream Audio:No=(GPR)Audio Backup[ID:8] PG TextST:No=(GPR)Subs Backup[ID:9] [DispON]
4 if((PGR)Subs State[ID:10] == 2 SetStream Audio:No=(GPR)Audio Backup[ID:8] PG TextST:No=(GPR)Subs Backup[ID:9] [DispOFF]
Да, ещё желательно запретить переключение аудиопотоков с пульта, чтобы невозможно было переключить потоки без создания бэкапа.
Нет, ну конечно, если у вас нет сабов или вам безразлично их состояние то - да, можете оставить необходимый минимум - никто вас не принуждает (хотя неплохо было бы знать как это грамотно делается) :smile_bq:.
-
Mowny Devam, Короче тяжело мне даётся эта навигация, я её не понимаю :D
Цитата:
Нажатием кнопки включения коментариев задаём команду бэкапа текущего на тот момент потоков и аудио, и сабов
Это фраза как я понял понимается этой командой Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1] ну это для Аудио, для сабов всё тоже только регистр будет [ID:9]
Если здесь я понял верно, тогда мои команды верны. Я ведь не зря её кинул эту команду 3-ей по счёту в каждое Аудио кнопку с 1-ой по 7-ую для того, чтобы первые команды под строчкой 1 и 2 сначала запустили поток Аудио взависемости с сабами или без них и потом дойдя до 3-ей строчки столкнулись с нашей командой Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1] бэкап. Грубо говоря запуск потока и потом уже метка этого же потока как
бэкап. И далее если выберем другую Аудио дорогу, то опять сначала запустим её а потом пометем меткой бэкапа и так далее. Так вот, а теперь нажатием кнопки
Выключить Аудио комментарий у меня идёт сравнение с PSR2 и тут Сетстрим GPR[ID:8] говоря русским языком запускается поток тот который был помечен меткой бэкап. Вот и всё. Не знаю понятно ли была моя логика сейчас, но этот номер у меня работает верно.
А вот зачем усложнять команды добавляя [ID:10]-ый регистр когда я для этих целей использую родной 2-ой PSR я так и не понял. А хотя понял в данном примере же показан бэкап и Аудио и Сабов. Я бэкап сабов не стал делать из-за не надобностью они итак у меня без бэкапа работают так как нужно. В общем вопросительного предложения от меня не будет, поскольку я свою логику которую выстроил понял для себя как верную.
-
Mowny Devam, Перепробовал ваш вариант и сравнил со своим результат один в один. Единственно, то что я навешал бэкапы на кнопки Аудио с 1 по 7-ую это лишнее, они там не нужны несмотря на то, что работают. Поэтому решил всё таки оставить команду бэкапа, только на 8-ой Аудио дороге Комментарий сам. По поводу бэкапа субтитров, команда реально не нужная они без бэкапа отображаются так как выбрано. Задача стояла ведь после Комментариев возобновить предыдущий поток Аудио, а не субтитров. Если мы сам комментарий т.е. 8-ю дорогу запускаем правильно, через сравнения регистров субтитра, то и бэкап сабов не нужен.
НО для себя я подчеркнул и записал себе в записульки общую команду бэкапа и Аудио и Субтитров.
Цитата:
желательно запретить переключение аудиопотоков с пульта, чтобы невозможно было переключить потоки без создания бэкапа
Вот это не стал делать. Не люблю я делать всякие UO запреты. Считаю, что всегда должны быть доступны 2 варианта выбора потока как через IG меню так и опционально плеером :smile_ay: Единственно, дабы записать в бэкап поток Аудио для начала, я кинул на вступительный варинг бэкап Аудио Move (GPR)Audio Backup[ID:8] (PSR)Primary Audio[ID:1] и только потом запускается ТОП, а в плеере у нас уже получается есть запись бэкапа первой дороги. Поэтому если даже при воспроизведении переключить Аудио на 8-ой поток Комментарий, а потом войти в любое меню и кликнуть кнопку Выключить Комментарий, то подгрузится 1-ый поток Аудио, который я пометил на вступительных варингах. Здесь всё, диск считаю завершённым.
Осталось разобраться постом
#1044 Вот не совсем понятно, как должна быть выглядеть команда и куда её вешать, как-то всё разбито на 2 части в каждой верный смыл, но должно же я так понял это быть всё в одном целом как-то выглядеть на кнопке Автоэкшен. Но вот как, не понимаю.
-
Цитата:
Осталось разобраться постом #1044 Вот не совсем понятно, как должна быть выглядеть команда и куда её вешать
В посте #1044 написан сокращённый вариант, для однооконного выбора эпизодов. А у меня в
теме расписано как это сделать для многостраничного выбора эпизодов в поп-ап, там используется PSR[ID:5] Chapter, заменяете его на PSR[ID:37] Backup Register #5 и все дела. Но, поскольку сразу после загрузки диска, при первом заходе в выбор эпизодов главного меню, регистр [ID:37] будет пуст, вычисления ничего не дадут и никакая кнопка не может быть подсвечена. Что бы обойти этот эффект нам нужно будет обусловить заход на страницу эпизодов. Для этого например на кнопке Эпизоды заглавной страницы вешаем команды:
1 if (GPR)Movie[ID:3] == 1 SetButtonPage Button:Chapter Select[ID:63] Page:Chapters[ID:3]
2 SetButtonPage Button:Chapter 01[ID:0] Page:Chapters[ID:3]
В MO фильма добавляем первую команду
1 Move (GPR)Movie[ID:3] 1
а после воспроизведения плейлиста с фильмом
Move (GPR)Movie[ID:3] 0
Таким образом если GPR)Movie[ID:3] == 0 то мы переходим на кнопку первой главы страницы эпизодов, если GPR)Movie[ID:3] == 1 то переходим на автоактивную кнопку страницы эпизодов где происходят вычисления ID кнопки эпизода.
Можно ещё обойтись без (GPR)Movie[ID:3] и использовать, опять таки, PSR[ID:37] Backup Register #5:
1 if (PSR)Backup Register #5[ID:37] != 0 SetButtonPage Button:Chapter Select[ID:63] Page:Chapters[ID:3]
2 SetButtonPage Button:Chapter 01[ID:0] Page:Chapters[ID:3]
-
Миш, спасибо огромное, ты меня спас! Дениска меня уже хотел на винегрет порубить, за то что
я ему не рассказываю, как всё нужно делать. А я, если честно и не помню, как я это делал. Правда
я и делал такое только в одном проекте, да и то, очень давно. :)
-
Цитата:
Можно ещё обойтись без (GPR)Movie[ID:3]
О, вот это мне уже нравится :) Не люблю я эти пользовательские регистры, хочется использовать те, что есть у плеера. :smile_ay:
То есть на кнопке Автоэкшен я меняю только для начала регистр 5-ый на 37-ой верно?
http://iceimg.com/f8HEr07N/f89993dcee00-thumb.jpg
А потом в эту же кнопку я вешаю первой строкой эту команду:
if (PSR)Backup Register #5[ID:37] != 0 SetButtonPage Button:Chapter Select[ID:63] Page:Chapters[ID:3]
вот только концовка мне не ясна. Смотрю ваш проект и эту команду странице Chapters нет, есть другие названия. Или это условное название т.е. не имеет отношение к проекту? Если условно, то мне то как её понимать, что это допустим моя
1-ая страница Чаптеров, а Chapter Select это тогда в моём случаи будет первая
картинка-кнопка 1-го Чаптера. Это всё верно понял? Дальше пока не пойду, я тут не совсем понял.
-
Palych, не стоит благодарности, чего благодарить если это я его, считай, спровоцировал!:D
А ежели вин хочеть кого порубать таки мы на его натравим
Барри-мясника тот сам кого хош порубает.
Фишка эта действительно не востребованyая (помню исследовали такую возможность и положили на полку за ненадобностью), да и с памятью моей, вернее с мозгами что-то не то стало.
Денис Пирожков, вы хочете, значить, на кнопку Chapter Select повесить команду SetButtonPage Button:Chapter Select? :smile_bw: И що воно буде.
Названия PGR в любом случае условные не сосредотачивайтесь на них а то и сами запутаетесь и других, выражениями типа
Цитата:
и эту команду странице Chapters нет, есть другие названия
, запутаете.
Не знаю что ещё объяснять, разве что за вас усё зробыть. Меняете (PSR)Chapter[ID:5] на (PSR)Backup Register
#5 [ID:37] и
не допускаете, любым удобным вам способом, чтобы он пришёл равным
0 на кнопку Chapter Select. Остальное как в теме.
Всё... сплю...
-
Mowny Devam, Palych, Ребят я вот чё начудил. Это же мой первый диск. Так назвывемый с ноля "0" сам делаю навигацию везде, так вот у меня Чаптеров много 40 штук разбиты они на 8 страниц по 5 Чаптеров, так вот в каждой странице сначала кнопка Автоэкшен ну и потом сами Чаптеры. Так вот мало того, что в ТОПе я в Автоэкшенах не заменил 5ый регистр на 37-ой так ещё и галочку на кнопке Action не поставил :[ Отсюда у меня паника, ни чё не работает. Поэтому, вы сами как бы меня не съели и не порубили на винегрет :D
Разобрался теперь я с этой подсветкой устранил косяки ну и всё заработало. :smile_ay:
Есть ещё вопрос на завтра поскольку спать пошёл поздно у меня уже. Вопрос такой, почему на оригинальном диске когда я в Чаптеры захожу, то подсвечивается сразу нужная страница и нужный Чаптер, а у меня всё тоже самое, но мельком моргает как-бы сначала первая страница чаптеров буквально на долю секунду а уже потом нужная страница и нужный Чаптер? Это всё происходит так быстро, но глаз улавливает это. Почему всё так происходит, не то что глаз улавливает :smile_bv:, а то что первая страница сначала быстро маргнёт?
-
Цитата:
первая страница сначала быстро маргнёт?
Не вникал в переписку, но, такое моргание, скорее всего, обусловлено заходом на эту страничку. Где находится команда перехода на нужную страницу? На первой чаптерной?
Почти наверняка, по нажатию кнопки "эпизоды" идёт переход на первую страницу чаптеров, на ней идёт сравнение и затем, если чаптер больше пятого, переход на нужную страницу.
-
shtift, ага всё верно. На первой Чаптерной странице висит Автоэкшен в нём прописано всё. Наверно из-за этого :smile_ay: С меню Аудио тоже самое происходит оно у меня на 2-ух страницах и если активна дорога на второй странице то, тоже моргание. :) первой странице происходит.
-
Mowny Devam, Пожалуй пришло моё время удивить вас, а может и нет :) Итак ваша команда:
1 if (PSR)Backup Register #5[ID:37] != 0 SetButtonPage Button:Chapter Select[ID:63] Page:Chapters[ID:3]
2 SetButtonPage Button:Chapter 01[ID:0] Page:Chapters[ID:3]
Смотрел я на неё и долго размышлял над её смыслом. И наконец понял, что концовка
1-ой строки SetButtonPage Button:Chapter Select[ID:63] Page:Chapters[ID:3] хотели мне показать, что если Чаптер не равен нолю "0", то переход будет на мою кнопку Автоэкшен, где у меня весят сравнения. Далее 2-ая строка говорит мне сразу переход на 1-ый Чаптер. Получается, чтобы 2-ая строка сработала необходимо, чтобы
не сработала 1-ая строка !=0 со скачком на мою Автоэкшен. А вот самое интересное, чтобы она не сработала, значит регистр 37-ой изначально при первом попадании имел значение =0, только в этом случаи будет пропуск 1-ой строки команды т.е. не будет логического сравнения, а сразу выполнится 2-ая строка команды.
Самое интересное, ради эксперимента я решил сразу выполнить это условие и приравнять 37-ой регистр к нолю дабы посмотреть логику и увидеть переход на 1-ый Чаптер. Проверяю результат и бах вижу при такой команде if (PSR)Backup Register #5[ID:37] = 0 SetButtonPage Button:Chapter 01[ID:0] Page:Chapters[ID:3] вижу
нет перехода на указанную кнопку :smile_bn:
Вывод: Изначально при первой загрузке диска и попадания в ТОП в меню Эпизодов 37-ой регистр не равен нолю "0", а равен тому значению, которое прописано в Свойствах
PL Mark ID 0, а именно параметру
Entry ES PID
Смотрим значение которое как раз сидит изначально в 37-ом регистре
http://iceimg.com/sG7q8jKG/nulevoj-plmark.png
А вот после того как воспроизвели фильм и повторном заходе в меню Эпизодов 37-ой регистр понимает обычные значения ID типо 1,2,3,4,5,... и так далее. Хотя этот регистр может и сразу понимать эти простые числа, просто ноля "0" он не понимает, ему нужно именно Entry ES PID.
[свернуть]
Поэтому я модернизировал вашу команду на свою типа:
1 if (PSR)Backup Register #5[ID:37] = 65535 ) SetButtonPage Button:Chapter 01[ID:0] Page:Chapters[ID:3]
2 if (PSR)Backup Register #5[ID:37] = 1 ) SetButtonPage Button:Chapter 02[ID:1] Page:Chapters[ID:3]
3 if (PSR)Backup Register #5[ID:37] = 2 ) SetButtonPage Button:Chapter 03[ID:2] Page:Chapters[ID:3]
------------------------------//------------------------------
Всё просто и со вкусом :smile_ay:
-
Денис Пирожков, совсем другое дело. Очень рад.:)
Разумеется если есть желание применить какую либо фишку и голова то, в конце концов, что нибудь придумаешь.
Я честно говоря считал такой приём излишним и теперь взялся экспериментировать в одно-страничном меню эпизодов, отчего у нас возникали непонятки.
Для многостраничного меню, с учётом вашей модернизации могу предложить вам такой вариант:
на заглавной странице меню, кнопке, обеспечивающей переход на страницы выбора эпизодов, задать такие команды
1 if (PSR)Backup Register #5[ID:37] = 65535 ) SetButtonPage Button:Chapter 01[ID:0] Page:Chapters 1-5[ID:3]
2 if (PSR)Backup Register #5[ID:37] > 35 ) SetButtonPage Button:Chapter Select[ID:63] Page:Chapters 36-40[ID:10]
3 if (PSR)Backup Register #5[ID:37] > 30 ) SetButtonPage Button:Chapter Select[ID:63] Page:Chapters 31-35[ID:9]
4 if (PSR)Backup Register #5[ID:37] > 25 ) SetButtonPage Button:Chapter Select[ID:63] Page:Chapters 26-30[ID:8]
5 if (PSR)Backup Register #5[ID:37] > 20 ) SetButtonPage Button:Chapter Select[ID:63] Page:Chapters 21-25[ID:7]
6 if (PSR)Backup Register #5[ID:37] > 15 ) SetButtonPage Button:Chapter Select[ID:63] Page:Chapters 16-20[ID:6]
7 if (PSR)Backup Register #5[ID:37] > 10 ) SetButtonPage Button:Chapter Select[ID:63] Page:Chapters 11-15[ID:5]
8 if (PSR)Backup Register #5[ID:37] > 5 ) SetButtonPage Button:Chapter Select[ID:63] Page:Chapters 6-10[ID:4]
9 if (PSR)Backup Register #5[ID:37] >= 1 ) SetButtonPage Button:Chapter Select[ID:63] Page:Chapters 1-5[ID:3]
(такой порядок позволит избежать мигания первой страницы или эффекта перелистывания страниц)
И уже в кнопках Chapter Select каждой страницы производить вычисление ID кнопки текущего эпизода
например, для страницы 1-5
1 Move (GPR)Chapters[ID:3] (PSR)Backup Register #5[ID:37]
2 Sub (GPR)Chapter[ID:3] 1
3 SetButtonPage Button: (GPR)Chapter[ID:3]
для страницы 6-10
1 Move (GPR)Chapters[ID:3] (PSR)Backup Register #5[ID:37]
2 Sub (GPR)Chapter[ID:3] 6
3 SetButtonPage Button: (GPR)Chapter[ID:3]
и т.д. С учётом что на всех страницах ID кнопок глав начинаются с "0", если они начинаются с "5" или "12", то расчёты будут другими.
Если придумаете модернизацию - прекрасТно, - поделитесь соображениями.
Удачи.
-
Mowny Devam, Вот этот длинный перечень как-будто у меня подглядели один в один :) Я всё также сделал после того как
shtift сказал из-за чего моргание идёт.
Цитата:
И уже в кнопках Chapter Select...
А я повесил туда команды без вычитаний, а обычное сравнение 37-го регистра со значение 1,2,3,4,5 т.е. 5 команд на кнопке.
Насчёт навигации с вычислением айди кнопок, то сама инфа полезная, но мне она ненужна. Я в Чаптерах на кнопках повесил согласно же вашей
религии дзен, которая часто меня сбивала с толку и многое не понимал. Вроде всё логично идём всё понятно, а тут бах "дзен" и всё на тебе навигация изменилась :D Короче оставил это:
1 Move (GPR)ChapPLMark[ID:4095] 0
2 JumpTitle Title#1[ID:1]
И в 37-ом регистре как раз после такой команды пишутся нормальные значения 1,2,3,4,5... и так далее. В общем к навигации Чаптеров вопросов больше не имею. Единственно, хочу узнать для себя верно ли я понимаю, что разнице нет ни какой если я в ПОП на Чаптерах повесил тоже:
1 Move (GPR)ChapPLMark[ID:4095] 0
2 JumpTitle Title#1[ID:1]
вместо этого:
1 LinkMK 0
2 JumpTitle Title#1[ID:1]
-
Move (GPR)ChapPLMark[ID:4095] 0 и JumpTitle Title#1[ID:1] - команды для перехода из Top Menu в главу фильма
LinkMK - команда для перехода на главу из Pop-Up Menu. JumpTitle тут совершенно не нужна.
Вы же предлагаете плееру совершить головокружительный кульбит: задать значение регистру, остановить воспроизведение фильма, начать воспроизведение фильма с переходом на главу согласно значению регистра. :smile_ce: Всё это вместо того что бы просто перейти на главу.
-
Mowny Devam, Хорошо вот это важно для меня. А то я повесил везде одинаково и задумался а почему я так сделал, а не как в мануале. Коль пошла такая пьянка давайте ещё разжуём это.
1 Move (GPR)IsChapJump[ID:4092] TRUE
2 Move (GPR)ChapMO[ID:4093] 0
3 Move (GPR)ChapPL[ID:4094] 0
4 Move (GPR)ChapPLMark[ID:4095] 3
5 JumpTitle Title#1[ID:1]
И тут опять религия дзен :D и порубала нашу навигацию оставив только 4 и 5 строку.
Так вот, мне бы хочется для себя понимать, что происходит при такой навигации до того как религия вмешалась. Разжуйте мне первые 3 строчки, а то я смотрю мануал там есть название этих регистров, но на практике, что они делают я не понял.
Прям по порядку с 1-ой строки по 3-ю расскажите, что происходит и также поясните почему их дзен убрала, не потому ли что эти же команды висят в МО фильма? :)
-
Данный набор команд образуется при использовании инструмента ChapterJump в окне Scenario Editor и неразрывно связан со списком команд в МО фильма:
http://s48.radikal.ru/i119/1210/53/4467ab818000t.jpg
Move (GPR)IsChapJump[ID:4092] TRUE - фильм воспроизводится в режиме произвольного доступа к маркерам глав, или FALSE - фильм воспроизводится последовательно без учёта маркеров. Сравнение происходит в первой команде MO фильма.
Move (GPR)ChapMO[ID:4093] 0 - может использоваться при автоматической навигации MO (Title) и т.п.
Move (GPR)ChapPL[ID:4094] 0 - может использоваться при автоматической навигации плейлистов и т.п.
Два этих типа навигации и соответственно GPR никогда не использовал. Поскольку в нашем случае не происходит разруливания последовательностей МО и плейлистов, то эти команды являются балластными.
Вообще эти регистры больше подходят для типовых командных блоков, наподобие рассматриваемого, когда на каждый МО вешают такой блок и навигация в нём зависит от значения регистров ,видимо зарезервированные системой регистры используются другими инструментами автоматической навигации и поскольку мы люди а не машины, то нам ни к чему все эти лишние команды.
Скрытый текст
Дзен-буддизм (дзен, зен - "всё" по японски) - чистый буддизм в котором отсутствует всё лишнее, обрядное, фанатичное (даже будда); только минимум необходимый для просветления. Среди всего прочего в его основы входит полная осознанность действий, никакого автоматизма. (Кстати первая "Матрица" оплот дзен-буддизма, Морфиус часто говорит дзенскими постулатами.) Так и в моём подходе к авторингу - полный сознательный контроль и ничего лишнего (никаких программных полей, перепроверок и т.п.)
[свернуть]
-
Mowny Devam, Так-так всё ясно :) А теперь цитата:
Цитата:
Сообщение от Из мануала
Т. е. если GPR ChapPL [ID:4094] имеет значение отличное от ноля выполняется переход на лейбл Chapter Play
Скриншот к этой цитате показывать не буду его и так видно в проекте, но скажу что на скрине логическое сравнение с выражением
!=0, а вот в проекте так
==0. Отсюда вопросы:
1) Где ошибка допущена в текстовом мануале или самом проекте?
2) А как теоретически попав в Тайтл1 вашего проекта при команде if ((GPR)ChapPL[ID:4094]
==0 GoTo Chapter Play[Лейбл] значение может быть другое не ноль? Т.е. если ноль то мы на Лейбл побежали, а если не ноль, то дальше по списку. Так вот как может быть другое значение? Ни как не могу сообразить как так сделать в теории, чтобы попасть на первый Тайтл 1 и при этом у меня ChapPL был больше ноля :smile_bn:
-
А в проекте (и на скиншоте) обозначен GPR ChapPL [ID:4094], а речь веду об GPR ChapPLMark [ID:4095] (вот оно плохое сосредоточение).
Например в кнопке главы 3 будут такие команды
1 Move (GPR)ChapPLMark[ID:4095] 2
2 JumpTitle Title#1[ID:1]
и потом в МО будет сравнение с ним.
-
Mowny Devam, Видимо всё таки надо было скриншоты показать. Не понял ты меня, я уже другую тему начал про, то что я считаю так,
теория всегда должна быть равна с практикой, верно?
Ну так вот я сейчас приведу скриншоты один взял из мануала, а другой сделал из проекта.
http://iceimg.com/lvXcDUly/manual-thumb.jpgОбращаем внимание на стрелочкуhttp://iceimg.com/T5EaxMYD/proekt-thumb.jpg
У нас разные выражения в одном случаи != это в мануале, а в другом случаи ==0 в проекте. Почему так по разному, то? Ведь теория должна = практике. Или я где-то, что-то упустил?
Второй вопрос который я задавал в предыдущем посте, тоже не вижу на него ответ. Походу кто-то из нас двоих не понимает :smile_bn:
-
Я ж говорю обшибся. См. пост #1075, а в первой команде МО должно быть if ((GPR)ChapPLMark[ID:4095] != 0).
Короче надо перезаливать проект.
-
Mowny Devam, Я думал это было обращение ко мне - "
(вот оно плохое сосредоточение)". Думал я упустил, что-то. Так значит в проекте у нас ошибка, ладно тут понятно. Значит регистр должен быть Чаптеровский (ChapPLMark), а не от Плейлиста (ChapPL). Кстати если смотреть этот
скрин, где команды выстроились при "использовании инструмента ChapterJump в окне Scenario Editor", то даже там я не пойму как всё таки можно попасть на Тайтл 1 и при этом 2-ая строка, чтобы не сработала т.е. больше ноля "0" ведь это не реально. Хотя ладно жду обновлённый проект и окончательный вид навигации МО. :)
-
Mowny Devam,
Цитата:
в первой команде МО должно быть if ((GPR)ChapPLMark[ID:4095] != 0).
А зачем она вообще нужна там? Совершенно спокойно можно выкинуть первые три строчки и метку.
п.с. в FirstPlay присвоить Move ChapPLMark[ID:4095] == 0, на всякий пожарный.