Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Gothic ½Субтитры к видео | zBinkSubtitles [универсальный плагин]
Требования: Union или SystemPack
Платформа: Gothic I, Gothic II NoTR
Архитектура: Union Framework
Исходный код: Gitlab
Релизы: Gitlab
Данный плагин позволит выводить текст поверх игровых видео. Для отрисовки текста, вы должны создать .d файл и реализовать следующие определения:
Строковые массивы: Bink_NpcName[] и Bink_Message[]. Каждый элемент массива соответствует текстовой строке. Элемент Bink_NpcName указывается, когда строка должна начинаться с имени персонажа. Вы можете пропустить данный пункт, если строка не должна начинаться с имени, либо является продолжением предыдущей строки.
Опционально может быть добавлена строковая константа BINK_SUBTITLES_FONT_NAME для определения пользовательских шрифтов субтитров.
Для любого видео, предполагающего наличие субтитров, должна быть определена соответствующая функция, имеющая следующую сигнатуру func void G_BinkPrintSubtitles_<VIDEO_NAME>(var int frameTime), где frameTime время целевого кадра в миллисекундах.
В Gothic.ini при первом запуске появится опция для отображения имени ролика, а также времени в миллисекундах: [BINK] BinkDebugInfo.
Gratt спасибо за плагин, начал для Одиссеи делать субтитры. Но там чото с временами совсем все криво. Пришлось пока сделать внешнюю функцию поиска подстроки Hlp_Ext_Str_Has(strBase,"5032704") и так определять нужное время.
Вроде немного читабельно, но frameTime в минус уходит иногда и недолго держится текст. Может имеет смысл передавать в функцию строку? А там уже сами или преобразуем в int если нормальное видео или поработать со строками можно. Я про
parser->CallFunc( funcIndex, GetFrameTime() );
Gratt, текст я поправлю еще длинный, как и сам перевод. Я только начал делать Что делать с кривыми временами, фиг знает. Думаешь такая проблема только в Одиссее?
Нет конечно. Я когда масштабирование видео делал, видел в некоторых роликах скорость када что-то типа 10000000. Умножение текущего кадра на скорость дало бы примерно такой же результат, как у тебя в примере. Можно, конечно, вообще отказаться от скорости кадра, но по нему чисто проще ориентироваться и не надо все субтитры переделывать, если пересохраняешь ролик с другой частотой. Скинь мне это видео, я гляну вечером его bink структуру.
Gratt, ок, как доделаю все в ближайшие дни, скину все три видео и скрипты к ним. Там в одном ролике как раз диалог будет с именами. В двух просто история. Ну и может еще со шрифтами поиграюсь.
Ну вроде пока так получается. Удобство плагина в том, что можно к одному видео сделать спокойно субтитры на нескольких языках, просто будет несколько .d файлов для разных языков. Если прикрутишь как хотел затемнение, то будет вообще красота.
Возможно ли сделать расчет времени вывода субтитров просто от начала видео в миллисекундах, потому как иначе указать верный тайминг очень сложно (как я понял имеет значение количество кадров видеоролика)?
Вот пример: фраза "Огонь" во вступительном ролике к 1 игре, когда лучники дают залп по атакующим оркам произносится на 34 секунде. Одна секунда это 1000 миллисекунд, то есть в скрипте должно стоять 34000, но методом проб удается установить субтитры на эту фразу на 22000 (то есть по идее на 22 секунде), и дальше разброс только увеличивается. Возможно я что-то делаю неправильно.
Файл, где я начал разносить тайминги субтитров во вложении.
Значит такое время кадра у ролика. Как ты хочешь все равно не сделать, в зависимости от ПК ролик может играть с разной скоростью и тогда пойдёт рассинхрон. Плюс вероятно первый кадр (который черный в начале) может быть длиннее остальных
Из-за корявых таймингов пришлось подбирать время вручную и группировать текст гораздо более длинными отрезками - то есть на экране могут быть одновременно несколько реплик все время, пока они произносятся. Но зато подходит универсально под любой язык озвучки.
При условии наличия плагина zBinkSubtitles в папке Plugins, для отображения субтитров в видео необходимо добавить файл скрипта Subtitles1.d (для первой части игры) или Subtitles2.d (для второй) в папку Autorun.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.