Озвучка 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 Составил полную таблицу звуков worms.csv, написал проверялку. Было 2 дубля, которых я по началу не нашел. То, что другой бы сделал за 15 минут, я сделал за 3 часа, зато качественно, найдя все-все-все файлы со звуками. 10:59 03.02.2015 Сгенерировал все файлы николаем, надо разбираться в заголовках wav-иков 11:12 03.02.2015 Играю в червей в озвучке николая 11:23 03.02.2015 Зделол релиз озвучки. Думаю сделать своим голосом, но пока не знаю что именно говорить. По хронологии событий видно, что на синтезированную озвучку у меня ушло менее часа, основное время ушло на разбирательство какие фразы надо говорить и где, на исправление возможных косяков локализации. А когда перед глазами есть весь текст, то все становится очень просто: 1. Отредактировал таблицу звуков, получил worms2.csv (важно!) 2. Запустил Audacity на запись 3. Читаю фразу в уме, проговариваю ее тоже в уме и с эмоциями (может не раз) 4. Читаю фразу в микрофон, повторяя только что разученное звучание 5. Если фраза коротка, то проговариваю в уме "миссис-сиппи" в качестве паузы 6. Читать так все фразы, пока не надоест, т.е. с пункта 3 и далее. 7. Остановить запись, почистить шум, наложить пич-шифт, компрессор, эквалайзер. 8. Почистил шум там, где должна быть тишина, см. ниже 9. Экспортнул в wav одним куском и самодельной утилиткой нарезал все фразы на wav 10. Скриптом worms-wav-renamer.pl прошелся по файлам, сконвертил их в 22 килогерца (зря) и переименовал Вот и вся работа. Само озвучивание у меня заняло примерно 7 минут, остальное еще минут 10. Конечно, мы сделали "грязный" перевод, который ложится поверх какого-либо готового языка, а не добавляет новый язык в меню игры. Однако не во всех играх это так легко сделать, порой надо достаточно серьезно перерабатывать код самой игры, что под силу не каждому. В червях же достаточно просто оформить перевод и он сам появится в меню игры, что и сделал Анонимус с моей озвучкой, добавив недостающие ресурсы, за что ему моя благодарность. Скачать: worms.rar Скачать: 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 минут, правда?