[[anondub:start|{{ :anondub:header.png?direct |Анонимная озвучка на радио}}]] ====== Озвучка Worms Armageddon (простой пример озвучивания игры) ====== Хотелось бы показать, как можно сделать простую озвучку игры своим голосом. В этом нет ничего сложного. Пример будет проходить на игре Worms Armageddon, которая имеет кучу своих озвучек, да и меня просили сделать "свою", уж не знаю зачем. Первый шаг — разобраться, где собственно звук лежит. Если побегать по директориям игры, то можно найти кучу wav-файлов — самый простой вариант. Во многих играх звук кодирован собственными форматами, а потом еще и упакован в какой-то архив, формат которого тоже зачастую неизвестен, а тут просто достаточно подменить файлы. Правда, я пошел несколько другим путем. Я раздербанил файл names.wdb, вынул оттуда базу звуков. Почти мануал по озвучке. Наличие такого файла — большая удача, так как внутри содержится описание для каждого звука. Хотя нет, не для каждого, об этом чуток позже. Затем я отслушал всю русскую локализацию, чтобы лучше представлять какие звуки и где находятся и как они согласуются с мануалом. Оказалось, что в русской локализации присутствуют фразы, которых нету в этом самом names.wdb! Например, такие фразы как "торопись" или "змей горыныч". Если так, то может быть и в русской локализации не все звуки? В русской озвучке 54 файла (+ дубли, файлы сохраненные с небольшими опечатками), всего в базе 56 звуков, в некоторых озвучках до 58 файлов. Решил сделать свои тестовые звуки, чтобы понять какие дефолтные звуки и откуда грузятся, откуда идет подгрузка имен файлов. Сами имена было найдеры в 3х местах, включая сам exe-шник. Определил свои цели: * %%./User/Speech/LAUGH.WAV%% * %%./DATA/User/Speech/LAUGH.WAV%% * %%./DATA/User/Speech/English/LAUGH.WAV%% * %%./DATA/User/Speech/Russian/LAUGH.WAV%% * %%./DATA/User/Speech/Russian/LOUGH.WAV%% Сгенерил семплы простой говорилкой, перезаписал файлы озвучки, запустил игру — не работает. Может быть еще что-то перезапусать надо? Оказывается, фразу "трус" говорят про команду противника, для тестов лучше было изменять "да, сэр" или "бросай". Звука опять нет. Или мне показалось? Звук хранится в основном Microsoft PCM, 16 bit, mono 22050 Hz, но есть и 44 килогерца и даже стерео. Странно. Сделал везде 22 килогерца, звука все еще нет. Поебать PCM? Тут уже начинается байтоебля. Ах да, звук оно где-то еще держит, я вроде бы заменил все файлы со смехом, а оно еще смеется в английском варианте. Переустановил червей, перезаписал семплы с цифрами. Ну все… Черви говорят моим голосом! Оказывается, черви по дефолту юзают Американский, а не английский язык! Далее, за основу своего языка я взял именно его. 10:41 03.02.2015\\ Составил полную таблицу звуков {{ :anondub:worms.csv |}}, написал проверялку. Было 2 дубля, которых я по началу не нашел. То, что другой бы сделал за 15 минут, я сделал за 3 часа, зато качественно, найдя все-все-все файлы со звуками. 10:59 03.02.2015\\ Сгенерировал все файлы николаем, надо разбираться в заголовках wav-иков 11:12 03.02.2015\\ Играю в червей в озвучке николая 11:23 03.02.2015\\ Зделол релиз озвучки. Думаю сделать своим голосом, но пока не знаю что именно говорить. По хронологии событий видно, что на синтезированную озвучку у меня ушло менее часа, основное время ушло на разбирательство какие фразы надо говорить и где, на исправление возможных косяков локализации. А когда перед глазами есть весь текст, то все становится очень просто: - Отредактировал таблицу звуков, получил {{ :anondub:worms2.csv |}} (важно!) - Запустил Audacity на запись - Читаю фразу в уме, проговариваю ее тоже в уме и с эмоциями (может не раз) - Читаю фразу в микрофон, повторяя только что разученное звучание - Если фраза коротка, то проговариваю в уме "миссис-сиппи" в качестве паузы - Читать так все фразы, пока не надоест, т.е. с пункта 3 и далее. - Остановить запись, почистить шум, наложить пич-шифт, компрессор, эквалайзер. - Почистил шум там, где должна быть тишина, см. ниже - Экспортнул в wav одним куском и самодельной утилиткой нарезал все фразы на wav - Скриптом {{ :anondub:worms-wav-renamer.pl |}} прошелся по файлам, сконвертил их в 22 килогерца (зря) и переименовал Вот и вся работа. Само озвучивание у меня заняло примерно 7 минут, остальное еще минут 10. Конечно, мы сделали "грязный" перевод, который ложится поверх какого-либо готового языка, а не добавляет новый язык в меню игры. Однако не во всех играх это так легко сделать, порой надо достаточно серьезно перерабатывать код самой игры, что под силу не каждому. В червях же достаточно просто оформить перевод и он сам появится в меню игры, что и сделал Анонимус с моей озвучкой, добавив недостающие ресурсы, за что ему моя благодарность. Скачать: {{ :anondub:worms.rar |}}\\ Скачать: {{ :anondub:worms_nikolai.rar |}} (распаковать в American или другой язык) Примечение:\\ Зачем чистить тишину? Зачем было делать паузы и проговаривать "миссис-сиппи"? Лично мне очень сложно делать однотипные операции, запоминать какая фраза и в каком файле должна быть, а потом монотонно вырезать кусочки в Аудасити и бегая по менюшкам сохранять семплы. Очень просто ошибиться и перезаписать какой-то файл дважды, или записать не туда. Что и продемонстрировали авторы русской локализации, положив файлы с опечатками в именах! Лично для меня подобное — боль. Какой файл был прошлым? какую фразу я сейчас сохраняю? ААААААААА! МОЯ ГОЛОВА! Чтобы избежать этой головной боли, я для себя любимого сделал утилитку cutter.c, которая нарезает большие вавики на кучу мелких, попутно прогоняя компрессор по семплам. Утилита имеет кучу настроек, жутко кривая и глючная, но это лучше, чем руками постоянно жмакать по менюшкам. На выходе я получаю серию готорых вавиков. Нарезка происходит именно по тишине в файле. В принципе, аналогичную операцию можно выполнить в sox, но я уебался с его настройками и сделал свой велосипед, который прост и хотя бы ездиет как я хочу. Однако, в процессе работы шумодава/компрессора/эквалайзера и снова компрессора, шум тоже усилился и нарезать по такой "тишине" стало невозможно, потому я просто скопировал в буфер 3 секунды тишины и пробежался по всему треку, делая копипасту там, где требовалось. Быстро и просто, работы минуты на 3. Фраза "Mississippi one, Mississippi two" — это известная фраза для заполнения времени, ведь очень сложно сделать паузу секунды на 3, отсчет "раз-два-три" может быть очень быстрым, а вот "миссис-сиппи" как раз будет соответствовать примерно 1 секунде. Поэтому если мне нужно где-то вставить паузу известной длительности, то достаточно проговорить "миссис-сиппи" несколько раз. Есть и другие плейс-холдеры, смотри Words_used_as_placeholders_to_count_seconds в интернетах Примечание 2:\\ Внимательный слушатель наверное заметил, что я патчил в том числе LOUGH.WAV, равно как и LAUGH.WAV. Это я пытался понять, откуда вообще идет подгрузка. Как выяснилось, если поменять имена файлов в самом wa.exe, к примеру заменить A на O, то будет загружен LOUGH.WAV, так я узнал где хранятся файлы и полный список звуков. А ведь казалось, что достаточно просто вавики заменить, делов на 5 минут, правда?