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

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


