August 18th, 2015

Наш паровоз, вперёд лети! В Коммуне остановка...

Итак, в выходные "Хаул" ушёл в народ.
Не хвастовства ради, но ради констатации факта стоит заметить, что технически на данный момент это лучший релиз из собранных мною. Код проекта в "Сценаристе" в очередной раз претерпел некоторые изменения (явно в лучшую сторону) — стало меньше лишних команд. С логикой у меня всегда были проблемы, поэтому решение некоторых проблем даётся с особым трудом. Что такое код проекта? По сути, всего лишь обычный алгоритм с заданными условиями, которые в определённый момент времени выполняются или нет. К этому можно свести половину, а то и больше всего кода.
1 этап. Задание переменных и присвоение им значения. Выполняется на этапе Firstplay — "первый воспроизводимый элемент", обычно это различные предупреждения и/или реклама. Фактически его вообще может не быть, может последовать переход сразу к фильму или в меню, тут всё зависит от желания автора проекта. Но даже в этом случае Firstplay будет содержать хотя бы всего одну команду — переход к следующему элементу в очереди.
2 этап. Собственно, выполнение команд/воспроизведение элементов проекта, основанное на выполнении условий с использованием переменных, заданных в Firstplay.
А уж между этими этапами, да и внутри них, может выполняться немереное число алгоритмов.
"Сценарист" по отношению к содержимому проекта сравним с командной строкой винды — прямой доступ к ресурсам, никакой автоматизации. С одной стороны это даёт свободу контроля над содержимым, с другой — в голове нужно держать уйму условий и переменных, чтобы они не начали конфликтовать между собой. В конечном итоге после сборки нескольких проектов процесс сводится к копи-пасте обкатанного программного кода из одного проекта в другой, но даже на этом этапе остаётся свобода для игры воображения. Иногда в этом обкатанном коде вылезают незамеченные ранее проблемы или конфликты, которые можно устранить или нивелировать (конечно, первое лучше, но второе иногда проще). Иногда приходится и вовсе искать новые пути решения известных проблем, потому что в контексте нового проекта старые решения могут не работать. Вот этим и интересен авторинг в "Сценаристе" — всегда есть что-то новое.
Вот и "Хаул" и "Арриэтти" местами содержат новые строчки кода, ранее не встречавшиеся, потому что потребовалось решить проблему с принудительным включением субтитров в раскадровке, и в итоге сказалось это на схеме работы всего меню дисков в целом. А меню разные, потому что проекты разные. "Хаул" поделён на 2 диска — фильм и допы (как говорится, котлеты отдельно и мухи отдельно), но "Арриэтти" с допами будет уживаться на одном диске, поэтому код, применённый в "Хауле" пришлось дальше проработать.
А цель была проста — принудительно активировать русские субтитры в раскадровке, но я же её намеренно усложнил, доведя до логичной последовательности действий. Теперь сабы в раскадровке должны быть включены с начала воспроизведения только в случае активации в меню именно русских сабов. Если там активны любые другие или вовсе отключены, в раскадровке (да и в других допах, снабжённых сабами) сабы не будут отображаться. Конечно, ничто не мешает пользователю включить их самостоятельно. И тут возникает новая проблема — что делать в случае, если пользователь включил или отключил в допе сабы самостоятельно? Должно ли это сказаться на глобальных настройках отображения субтитров? Обращаемся к коммерческим проектам. "Oblivion" — не самый удачный вариант, впрочем, очевидно, что активация сабов в допах никак не связана с сабами в самом фильме. Уже кое-что. Продолжаем изыскания. "Fellowship of the Ring" — уйма бесполезных "ворнингов" и логотипов студий (словно весь Голливуд был занят в производстве), далее реклама, из которой нельзя выйти в меню — очень удобно с точки зрения навязывания новых релизов, и вот спустя минут 15(!) мы, наконец, в главном меню. Смотрим единственный доп — пародию на совет Эльронда — и обнаруживаем, что активация субтитров в нём опять же никак не влияет на оную в самом фильме. Фух! Можно облегчённо выдохнуть, потому что это избавляет меня от необходимости снова перелопачивать меню.
Забыл упомянуть, что при всей своей прелести и сложности проекта, "Хаул" в релизной версии не обошёлся без проблем. Из-за многочисленных изменений в части наполнения звуковыми дорожками я забыл о том, что рисовал меню, ориентируясь на японский исходник, где оригинальная дорожка была в 5.1-ES, это ненастоящая схема 6.1, но в меню она, тем не менее, так была заявлена. Однако в процессе пересборок она была заменена дорожкой из американского релиза, где оная оказалась с ядром (и средним битрейтом) вроде бы лучшего качества, но без ES-матрицы динамиков, т.е. честной 5.1. Всё бы хорошо, да только картину кнопки я не перерисовал. И, как это часто бывает, обнаружил эту проблему уже после завершения работы. Сошлись мы с TFloater'ом на том, что спишем это на "опечатку", чтобы заново не перелопачивать меню. Ну пусть так и будет.

Меж тем, возрождение "Арриэтти" идёт полным ходом. Вот уже готовы главное и PopUp-меню, частично прописаны команды для меню в сценарии, собраны все плейлисты, расставлены метки глав... Иными словами, как повелось, проекту не достаёт только исправленных русских сабов, которые в те же выходные были отправлены на вычитку коллеге. Так что "Арриэтти" имеет все шансы стать самой быстрой русификацией "японца".