Всем привет, хочу поделиться небольшой инструкцией или гайдом, как можно ПЕРЕОЗВУЧИТЬ Total War: Pharaoh.
Для работы Вам понадобятся:
1) RPFM Для просмотра ссылки Зарегистрируйтесь - для работы с исходниками
2) wwiser Для просмотра ссылки Зарегистрируйтесь - для получения данных о звуковых дорожках из исходников
3) python Для просмотра ссылки Зарегистрируйтесь - для запуска wwiser
4) vgmstream Для просмотра ссылки Зарегистрируйтесь - конвертация исходных аудио .wem в .wav
5) wwise studio Для просмотра ссылки Зарегистрируйтесь - конвертация новых аудио .wav в .wem
6) Total War: Audio Tools Для просмотра ссылки Зарегистрируйтесь - небольшой набор утилит за моим авторством, ускоряющий/облегчающий работу на некоторых этапах. Написаны они на коленке, прямо в процессе работы над модом по озвучке, но в дальнейшем обещаю, довести их до ума и привести в божеский вид.
Подготовка:
Все утилиты скачиваются с офф сайтов/репозиториев и имеют готовые исполняемые файлы под windows.
Исключение - wwiser и wwise studio.
Для работы wwiser Вам понадобится установленный в системе свежий Python, так как исполняемый файл представляет собой архив типа .pyz.
Для установки wwise studio Вам будет НЕОБХОДИМ vpn, если Вы находитесь в Российской Федерации. Иначе Вы не сможете скачать лаунчер, а затем через лаунчер установить wwise studio.
Разработка минимода Переозвучка вступления Таусерт
Далее будет приведена пошаговая инструкция, на примере создания русской озвучки для вступительной речи Мернептаха о Таусерт.
Для работы Вам понадобятся:
1) RPFM Для просмотра ссылки Зарегистрируйтесь - для работы с исходниками
2) wwiser Для просмотра ссылки Зарегистрируйтесь - для получения данных о звуковых дорожках из исходников
3) python Для просмотра ссылки Зарегистрируйтесь - для запуска wwiser
4) vgmstream Для просмотра ссылки Зарегистрируйтесь - конвертация исходных аудио .wem в .wav
5) wwise studio Для просмотра ссылки Зарегистрируйтесь - конвертация новых аудио .wav в .wem
6) Total War: Audio Tools Для просмотра ссылки Зарегистрируйтесь - небольшой набор утилит за моим авторством, ускоряющий/облегчающий работу на некоторых этапах. Написаны они на коленке, прямо в процессе работы над модом по озвучке, но в дальнейшем обещаю, довести их до ума и привести в божеский вид.
Подготовка:
Все утилиты скачиваются с офф сайтов/репозиториев и имеют готовые исполняемые файлы под windows.
Исключение - wwiser и wwise studio.
Для работы wwiser Вам понадобится установленный в системе свежий Python, так как исполняемый файл представляет собой архив типа .pyz.
Для установки wwise studio Вам будет НЕОБХОДИМ vpn, если Вы находитесь в Российской Федерации. Иначе Вы не сможете скачать лаунчер, а затем через лаунчер установить wwise studio.
Разработка минимода Переозвучка вступления Таусерт
Далее будет приведена пошаговая инструкция, на примере создания русской озвучки для вступительной речи Мернептаха о Таусерт.
Подготовка исходников(RPFM) (Reveal)
Основные аудио данные Фараона лежат в audio.pack и audio_en.pack.
В них есть файлы трех типов:
.wem - исходные аудио файлы
.dat - файлы данных об звуковых ивентах(клик на персонаже, нажатие кнопки и т.п.)
.bnk - файлы отвечающие за связь между ивентами из .dat и .bnk
Файл event_data_core.dat понадобится Вам при работе со звуком ВСЕГДА
Файлы типа .wem лучше распаковать сразу все в отдельную папку.
Файлы .bnk можно использовать по отдельности, в зависимости от того, над какой частью озвучки Вы планируете работать.
Копируем файлы audio.pack и audio_en.pack в отдельную папку и открываем их в RPFM
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
Ищем файлы campaign_advice_core.bnk(тут лежит информация о репликах советника и вступительные реплики) и event_data_core.dat(содержит служебную информацию о наименованиях ВСЕХ аудио триггеров в игре) и распаковываем их в отдельную папку
Для просмотра ссылки Зарегистрируйтесь
Основные аудио данные Фараона лежат в audio.pack и audio_en.pack.
В них есть файлы трех типов:
.wem - исходные аудио файлы
.dat - файлы данных об звуковых ивентах(клик на персонаже, нажатие кнопки и т.п.)
.bnk - файлы отвечающие за связь между ивентами из .dat и .bnk
Файл event_data_core.dat понадобится Вам при работе со звуком ВСЕГДА
Файлы типа .wem лучше распаковать сразу все в отдельную папку.
Файлы .bnk можно использовать по отдельности, в зависимости от того, над какой частью озвучки Вы планируете работать.
Копируем файлы audio.pack и audio_en.pack в отдельную папку и открываем их в RPFM
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
Ищем файлы campaign_advice_core.bnk(тут лежит информация о репликах советника и вступительные реплики) и event_data_core.dat(содержит служебную информацию о наименованиях ВСЕХ аудио триггеров в игре) и распаковываем их в отдельную папку
Для просмотра ссылки Зарегистрируйтесь
Работа с wwiser (Reveal)
wwiser позволяет связать по сути безымянные .wem файлы с названиями звуковых ивентов.
Для этого необходимо получить из .dat файла имена всех ивентов, сформировать специальный файл wwnamrs.txt(по сути перечисление имен ивентов) и положить этот файл рядом с исполняемым файлом wwiser.pyz
Выходной формат wwiser не очень удобен для работы, поэтому в данном разделе также приведен способ приведения его в читаемый вид.
wwiser позволяет связать по сути безымянные .wem файлы с названиями звуковых ивентов.
Для этого необходимо получить из .dat файла имена всех ивентов, сформировать специальный файл wwnamrs.txt(по сути перечисление имен ивентов) и положить этот файл рядом с исполняемым файлом wwiser.pyz
Выходной формат wwiser не очень удобен для работы, поэтому в данном разделе также приведен способ приведения его в читаемый вид.
Подготовка: получить имена ивентов из .dat и сформировать wwnames.txt(names parser) (Reveal)
Утилита names parser парсит файл event_data_core.dat в файл wwnames.txt. Это важный этап, чтобы иметь понимание, какому исходному .wem файлу соответствует то или иное игровое событие(клик на персонажа например). В исходном виде все .wem имеют наименование в виде набора цифр и не несут полезной информации.
Запускаем names_parser.exe
Для просмотра ссылки Зарегистрируйтесь
Нажимаем Open, выбираем .dat файл, затем место, куда сохранить wwnames.txt.
Для просмотра ссылки Зарегистрируйтесь
Ждем пока процесс не завершится и не появится надпись COMPLETED.
Для просмотра ссылки Зарегистрируйтесь
Примерное содержимое wwnames.txt
Утилита names parser парсит файл event_data_core.dat в файл wwnames.txt. Это важный этап, чтобы иметь понимание, какому исходному .wem файлу соответствует то или иное игровое событие(клик на персонажа например). В исходном виде все .wem имеют наименование в виде набора цифр и не несут полезной информации.
Запускаем names_parser.exe
Для просмотра ссылки Зарегистрируйтесь
Нажимаем Open, выбираем .dat файл, затем место, куда сохранить wwnames.txt.
Для просмотра ссылки Зарегистрируйтесь
Ждем пока процесс не завершится и не появится надпись COMPLETED.
Для просмотра ссылки Зарегистрируйтесь
Примерное содержимое wwnames.txt
Получить .xml файл со связями .wem и имен ивентов (Reveal)
1) Положить wwnames.txt в одну папку с wwiser.pyz
Для просмотра ссылки Зарегистрируйтесь
2) Запустить wwiser
Для просмотра ссылки Зарегистрируйтесь
3) Load banks, выбрать интересующие .bnk файлы,
Для просмотра ссылки Зарегистрируйтесь
4) дождаться внизу в логе parser: done, выделить в поле BANKS все файлы, нажать Dump banks,
Для просмотра ссылки Зарегистрируйтесь
5) выбрать куда сохранить, дождаться внизу в логе dumper: done, закрыть wwiser
1) Положить wwnames.txt в одну папку с wwiser.pyz
Для просмотра ссылки Зарегистрируйтесь
2) Запустить wwiser
Для просмотра ссылки Зарегистрируйтесь
3) Load banks, выбрать интересующие .bnk файлы,
Для просмотра ссылки Зарегистрируйтесь
4) дождаться внизу в логе parser: done, выделить в поле BANKS все файлы, нажать Dump banks,
Для просмотра ссылки Зарегистрируйтесь
5) выбрать куда сохранить, дождаться внизу в логе dumper: done, закрыть wwiser
Привести .xml файл к читаемому формату .tsv файл(xml bnk parser) (Reveal)
После предыдущего шага Вы получите файл campaign_advice_core.bnk.xml
Для просмотра ссылки Зарегистрируйтесь
Для дальнейшей работы, необходимо преобразовать его в .tsv файл. Каждая строка будет содержать запись вида
"номер.wem readable_event_name"
Запускаем xml_bnk_parser.exe
Нажимаем Open, выбираем campaign_advice_core.bnk.xml и место куда его сохранить
Для просмотра ссылки Зарегистрируйтесь
Жмем Parse и дожидаемся окончания процесса
Для просмотра ссылки Зарегистрируйтесь
На выходе получаем файл parsed_bnk.tsv
Для просмотра ссылки Зарегистрируйтесь
После предыдущего шага Вы получите файл campaign_advice_core.bnk.xml
Для просмотра ссылки Зарегистрируйтесь
Для дальнейшей работы, необходимо преобразовать его в .tsv файл. Каждая строка будет содержать запись вида
"номер.wem readable_event_name"
Запускаем xml_bnk_parser.exe
Нажимаем Open, выбираем campaign_advice_core.bnk.xml и место куда его сохранить
Для просмотра ссылки Зарегистрируйтесь
Жмем Parse и дожидаемся окончания процесса
Для просмотра ссылки Зарегистрируйтесь
На выходе получаем файл parsed_bnk.tsv
Для просмотра ссылки Зарегистрируйтесь
Поиск файлов, нужных для редактирования (Reveal)
Если Вы все правильно сделали на этапе работы с wwiser, то Вы получаете файл .tsv, содержащий связи для всех реплик, которые он смог для Вас найти. Данный раздел посвящен тому, как можно быстро найти и подготовить для дальнейшей обработки конкретные, нужные Вам реплики.
Результат
Для просмотра ссылки Зарегистрируйтесь
Если Вы все правильно сделали на этапе работы с wwiser, то Вы получаете файл .tsv, содержащий связи для всех реплик, которые он смог для Вас найти. Данный раздел посвящен тому, как можно быстро найти и подготовить для дальнейшей обработки конкретные, нужные Вам реплики.
По полученному .tsv файлу найти интересующие строки и перенести их в новый .tsv файл (Reveal)
Для просмотра ссылки Зарегистрируйтесь
В нашем примере мы будем искать строчки, включающие intro_merneptah_tau
Для просмотра ссылки Зарегистрируйтесь
Таких всего 5 штук, оставляем только их и сохраняем файл.
Для просмотра ссылки Зарегистрируйтесь
В нашем примере мы будем искать строчки, включающие intro_merneptah_tau
Для просмотра ссылки Зарегистрируйтесь
Таких всего 5 штук, оставляем только их и сохраняем файл.
Найти .wem файлы с нужными именами(copier) (Reveal)
Вы можете поискать файлы .wem в .pack вручную, если их немного.
Если их много, предварительно нужно распаковать все .wem файлы в отдельную папку
Запускаем copier.exe
Для просмотра ссылки Зарегистрируйтесь
По кнопке Open последовательно выбираем файл .tsv из предыдущего шага(это будет список необходимых для обработки файлов)
Для просмотра ссылки Зарегистрируйтесь
Далее указываем путь к папке, где лежат все .wem файлы
Для просмотра ссылки Зарегистрируйтесь
И путь к папке, куда скопировать только необходимые .wem файлы
Для просмотра ссылки Зарегистрируйтесь
Жмем Parse и дожидаемся окончания процесса
Для просмотра ссылки ЗарегистрируйтесьДля просмотра ссылки ЗарегистрируйтесьДля просмотра ссылки Зарегистрируйтесь
ВНИМАНИЕ! Не перетаскивайте в vgmstream-cli.exe больше 1000 файлов за раз, можете повесить систему.
Если их много, предварительно нужно распаковать все .wem файлы в отдельную папку
Запускаем copier.exe
Для просмотра ссылки Зарегистрируйтесь
По кнопке Open последовательно выбираем файл .tsv из предыдущего шага(это будет список необходимых для обработки файлов)
Для просмотра ссылки Зарегистрируйтесь
Далее указываем путь к папке, где лежат все .wem файлы
Для просмотра ссылки Зарегистрируйтесь
И путь к папке, куда скопировать только необходимые .wem файлы
Для просмотра ссылки Зарегистрируйтесь
Жмем Parse и дожидаемся окончания процесса
Для просмотра ссылки ЗарегистрируйтесьДля просмотра ссылки ЗарегистрируйтесьДля просмотра ссылки Зарегистрируйтесь
ВНИМАНИЕ! Не перетаскивайте в vgmstream-cli.exe больше 1000 файлов за раз, можете повесить систему.
Перевод/Редактура/Творчество (Reveal)
Несколько примеров того, как именно я подхожу к процессу непосредственного перевода и редактуры исходных данных игры. В целом это самый необязательный раздел, так как тут сложно дать единственную правильную инструкцию
Несколько примеров того, как именно я подхожу к процессу непосредственного перевода и редактуры исходных данных игры. В целом это самый необязательный раздел, так как тут сложно дать единственную правильную инструкцию
Распознать реплики из .wav(recognizer) (Reveal)
Можно распознать реплики на слух, а можно воспользоваться утилитой recognizer
Запускаем recognizer.exe
По кнопке Open последовательно выбираем
- файл .tsv из шага номер 6(это будет список необходимых для обработки файлов)
- путь к папке с .wav файлами из шага 9
- путь, куда сохранить файл с распознанными репликами
Для просмотра ссылки Зарегистрируйтесь
Жмеме Parse, дожидаемся окончания процесса, получаем файл recognized.tsv
Для просмотра ссылки Зарегистрируйтесь
Содержимое файла примерно такое
Для просмотра ссылки Зарегистрируйтесь
Можно распознать реплики на слух, а можно воспользоваться утилитой recognizer
Запускаем recognizer.exe
По кнопке Open последовательно выбираем
- файл .tsv из шага номер 6(это будет список необходимых для обработки файлов)
- путь к папке с .wav файлами из шага 9
- путь, куда сохранить файл с распознанными репликами
Для просмотра ссылки Зарегистрируйтесь
Жмеме Parse, дожидаемся окончания процесса, получаем файл recognized.tsv
Для просмотра ссылки Зарегистрируйтесь
Содержимое файла примерно такое
Для просмотра ссылки Зарегистрируйтесь
Перевести текст(google sheets/нейросеть/вручную) (Reveal)
На этом этапе универсального рецепта нет. тут нужно много редактуры и творчества. Для коротких реплик, я обычно использую google таблицы, добавляя столбец с форулой =GOOGLETRANSLATE(B1; "EN"; "RU")
Для просмотра ссылки Зарегистрируйтесь
Для перевода реплик Мернептаха во вступлении я использовал YandexGPT, чтобы сократить кол-во редактуры. Тут уж на ваш вкус и цвет.
На этом этапе универсального рецепта нет. тут нужно много редактуры и творчества. Для коротких реплик, я обычно использую google таблицы, добавляя столбец с форулой =GOOGLETRANSLATE(B1; "EN"; "RU")
Для просмотра ссылки Зарегистрируйтесь
Для перевода реплик Мернептаха во вступлении я использовал YandexGPT, чтобы сократить кол-во редактуры. Тут уж на ваш вкус и цвет.
Озвучить текст(voiceover/любой удобный способ) (Reveal)
Сама озвучка также процесс индивидуальный, рассмотрю в качестве примера, как делал я.
Вам понадобится аккаунт на Для просмотра ссылки Зарегистрируйтесь
И файл с переведенными репликами, в формате как на скриншоте в пункте про распознавание реплик, назовем его recognized_translated.tsv
Запускаем voiceover.exe
Выбираем recognized_translated.tsv и путь, куда сохранить переведенные .wav файлы
voiceid - указываем идентификатор голоса steosvoice(214 - Гюнтер о'Дим из ведьмака)
token - ваш api-token из аккаунта на steosvoice
Для просмотра ссылки Зарегистрируйтесь
Жмем Parse и дожидаемся окончания процесса
Для просмотра ссылки Зарегистрируйтесь
Сама озвучка также процесс индивидуальный, рассмотрю в качестве примера, как делал я.
Вам понадобится аккаунт на Для просмотра ссылки Зарегистрируйтесь
И файл с переведенными репликами, в формате как на скриншоте в пункте про распознавание реплик, назовем его recognized_translated.tsv
Запускаем voiceover.exe
Выбираем recognized_translated.tsv и путь, куда сохранить переведенные .wav файлы
voiceid - указываем идентификатор голоса steosvoice(214 - Гюнтер о'Дим из ведьмака)
token - ваш api-token из аккаунта на steosvoice
Для просмотра ссылки Зарегистрируйтесь
Жмем Parse и дожидаемся окончания процесса
Для просмотра ссылки Зарегистрируйтесь
Конвертировать .wav в .wem при помощи wwise studio (Reveal)
Конвертация ваших готовых .wav файлов в формат .wem, воспринимаемый игрой, пожалуй самая запутанная часть. К сожалению, более легкого способа это сделать, я пока не нашел.
Запускаем wwise studio и создаем новый проект
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
САМОЕ ВАЖНОЕ!!!
Нажимаем Project -> Project Settings -> Source Settings -> Default Conversion Settings жмем и выбираем в открывшемся окне Vorbis Quality High
Без этой настройки звука в игре НЕ БУДЕТ!
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
Теперь добавим в проект наши файлы
Нажимаем Project -> File manager
Для просмотра ссылки Зарегистрируйтесь
Жмем правой кнопкой мыши на поле рядом с Sources Folder и выбираем Open Containing Folder
переходим в папку ...\Originals\Voices\English(US)
Для просмотра ссылки Зарегистрируйтесь
В эту папку необходимо переместить наши новые .wav файлы
Для просмотра ссылки Зарегистрируйтесь
Нажимаем Project -> Import Audio Files, в открывшемся окне жмем Add Files
Для просмотра ссылки Зарегистрируйтесь
и выбираем все файлы в папке ...\Originals\Voices\English(US)
Для просмотра ссылки Зарегистрируйтесь
Жмем Import
Жмем Project -> Convert All Audio Files
Для просмотра ссылки Зарегистрируйтесь
Жмем Convert.
Нажимаем Project -> File manager
Жмем правой кнопкой мыши на поле рядом с Sources Folder и выбираем Open Containing Folder
переходим в папку ...\.cache\Windows\SFX
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
Если Вы все сделали правильно, то Вы увидите в этой папке ваши .wem файлы с постфиксом _818F3B66
Для дальнейшего использования, постфиксы _818F3B66 надо удалить.
Конвертация ваших готовых .wav файлов в формат .wem, воспринимаемый игрой, пожалуй самая запутанная часть. К сожалению, более легкого способа это сделать, я пока не нашел.
Запускаем wwise studio и создаем новый проект
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
САМОЕ ВАЖНОЕ!!!
Нажимаем Project -> Project Settings -> Source Settings -> Default Conversion Settings жмем и выбираем в открывшемся окне Vorbis Quality High
Без этой настройки звука в игре НЕ БУДЕТ!
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
Теперь добавим в проект наши файлы
Нажимаем Project -> File manager
Для просмотра ссылки Зарегистрируйтесь
Жмем правой кнопкой мыши на поле рядом с Sources Folder и выбираем Open Containing Folder
переходим в папку ...\Originals\Voices\English(US)
Для просмотра ссылки Зарегистрируйтесь
В эту папку необходимо переместить наши новые .wav файлы
Для просмотра ссылки Зарегистрируйтесь
Нажимаем Project -> Import Audio Files, в открывшемся окне жмем Add Files
Для просмотра ссылки Зарегистрируйтесь
и выбираем все файлы в папке ...\Originals\Voices\English(US)
Для просмотра ссылки Зарегистрируйтесь
Жмем Import
Жмем Project -> Convert All Audio Files
Для просмотра ссылки Зарегистрируйтесь
Жмем Convert.
Нажимаем Project -> File manager
Жмем правой кнопкой мыши на поле рядом с Sources Folder и выбираем Open Containing Folder
переходим в папку ...\.cache\Windows\SFX
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
Если Вы все сделали правильно, то Вы увидите в этой папке ваши .wem файлы с постфиксом _818F3B66
Для дальнейшего использования, постфиксы _818F3B66 надо удалить.
Добавляем озвучку в игру (Reveal)
Новые .wem файлы запаковать в .pack вашего мода (Reveal)
В RPFM создаем мод
Для просмотра ссылки Зарегистрируйтесь
Создаем структуру папок, аналогичную audio_en.pack
Для просмотра ссылки Зарегистрируйтесь
импортируем в нее наши новые .wem файлы
Для просмотра ссылки Зарегистрируйтесь
Сохраняем .pack файл.
В RPFM создаем мод
Для просмотра ссылки Зарегистрируйтесь
Создаем структуру папок, аналогичную audio_en.pack
Для просмотра ссылки Зарегистрируйтесь
импортируем в нее наши новые .wem файлы
Для просмотра ссылки Зарегистрируйтесь
Сохраняем .pack файл.
Проверить в игре (Reveal)
Закидываем .pack файл в папку data игры total war pharaoh.
Если Вы все сделали правильно, то при запуске лаунчера Вы увидите свой .pack файл в списке модов
Для просмотра ссылки Зарегистрируйтесь
Активируем его и запускаем игру
Для просмотра ссылки Зарегистрируйтесь
Начинаем новую кампанию за Таусерт и наслаждаемся результатом работы
Закидываем .pack файл в папку data игры total war pharaoh.
Если Вы все сделали правильно, то при запуске лаунчера Вы увидите свой .pack файл в списке модов
Для просмотра ссылки Зарегистрируйтесь
Активируем его и запускаем игру
Для просмотра ссылки Зарегистрируйтесь
Начинаем новую кампанию за Таусерт и наслаждаемся результатом работы

Результат
Для просмотра ссылки Зарегистрируйтесь
P.S. (Reveal)
Замечания, доработки, улучшения и вопросы по всему, что касается данной инструкции и работы со звуком в целом - приветствуются
.


