English soon, btw just use translator.
Этот репозиторий содержит все для работы с .usm синематиками игры Honkai Impact 3.
Перечисленные здесь инструменты позволят вам открыть файлы с синематиками расположенными \Games\BH3_Data\StreamingAssets\Video
.
Получить видео дорожку. Получить аудио дорожку. Получить несколько дорожек с субтитрами. Заменить видео, аудио, субтитры.
Каждый синематик - это .usm файл.
Все синематики можно просмотреть в игре "Телефон" -> "Collection" -> "Cutscenes".
Либо "Профиль" (слева сверху) -> "Replay CG".
.NET 8.0 - можно скачать с офф сайта
Net framework 3.5 - для работы Scaleform VideoEncoder
DirectX 9 - для работы Scaleform VideoEncoder можно скачать с офф сайта
Scaleform VideoEncoder - для сборки USM файлов можно тут
ffmpeg - конвертировать медиа после VGMToolBox, использую билд отсюда. Размещена, где угодно. В скрипте указывается путь до неё.
VGMToolBox - экспортировать медиа и аудио из usmиспользую билд отсюда. Размещена, где угодно. В скриптах не используется.
Экспортировать сабы из USM / Конвертировать сабы для будущей упаковки - USM_subs_toolbox.exe - прога, использую билд с гита или билд из Discord (оба работают). Размещена в distr/
.
Упаковщик USM - USM_builder - запаковывает файлы обратно в формат, пригодный игре.
-1. Windows Defender может посчитать файл "distr\USM_subs_toolbox.exe" вирусом. В таком случае, используйте другой билд этой же программы "distr/USM_subs_toolbox_build_23072024.exe". Инструкция по смене ниже. 0. Из игры не требуется выходить. Все послед. действия можно выполнять с запущенной игрой.
- Помещаем интересующий нас файл из
BH3_Data/StreamingAssets/Video
вusm_videos
НапримерStory05_CG01.usm
cp "C:\Program Files\Honkai Impact 3rd glb\Games\BH3_Data\StreamingAssets\Video\Story05_CG01.usm" ".\usm_videos\Story05_CG01.usm"
- Запускаем
.usm_srt_extract.bat
, вводим путь к файлу при запуске скрипта ИЛИ прописываем название файла внутри скрипта - Указываем путь к файлу - ничего не трогаем, просто запускаем скрипт
- В строке
set "folder_name=6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a"
изменяем название файла. Убираем из этой строки::
, добавляем в строку ниже, чтобы получилось::set /p "folder_name=Enter file name (ex: Story05_CG01): "
При выполнение будут созданы папкиlogs/Story05_CG01
иsrt/Story05_CG01
. Вsrt/Story05_CG01
будут храниться все хранимые в файле субтитры. Если каких-то не хватает, можно проверитьlogs/Story05_CG01
. НадписьSubtitles not found in this file
означает, что по указанному номеру (lang id) нет субтитров. Это первый этап на котором вы можете переводить текст в файле с англ субтитрамиlang_1.srt
. Если файлаlang_1.srt
нет, то англ. субтитров нет для этого файла. Для такого файла русские субтитры создать не получится. Но можно создать через Aegisub и подобные редакторы которые могут экспортировать субтитры в формате srt (как это например делают переводчики аниме). Должно работать. Сейчас мы способны изменить только англ дорожку субтитров. Это задевает все синематики "Дни рожденья" т.к. там видеоряд - это письмо на англ языке. Напишите в раздел Issues, если найдете еще. - Запускаем
.usm_srt_convert.bat
, вводим путь к файлу при запуске скрипта ИЛИ прописываем название файла внутри скрипта Вводим путь к файлу при запуске скрипта ИЛИ прописываем название файла внутри скрипта - Указываем путь - ничего не трогаем, просто запускаем скрипт
- В строке
set "folder_name=6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a"
изменяем название файла. Убираем из этой строки::
, добавляем в строку ниже, чтобы получилось::set /p "folder_name=Enter file name (ex: Story05_CG01): "
При выполнение будут созданы папкиlogs/Story05_CG01
иsrt/Story05_CG01
(Если вы не пропускали прошлые пункты, то должно выдать сообщениеA subdirectory or file srt/Story05_CG01 already exists.
иA subdirectory or file log/Story05_CG01 already exists.
). - В
srt/Story05_CG01
будут храниться конвертированные файлы субтитров. Конвертирование нужно для будущей сборки. Это второй этап, последний этап, на котором вы можете переводить текст в файле с англ субтитрамиconverted_lang_1.txt
. - Переведенный файл кладем в папку
usm_builder_input
и называем егоStory05_CG01_en.txt
либоStory05_CG01.txt
- Открываем VGMToolBox. В интерфейсы программы: Misc. Tools -> Stream Tools -> Video Demultiplexer -> Формат "USM (CRI Movie 2)"
- Закидываем файл (файлы) из
usm_videos
(Story05_CG01.usm) В этой же папке будет создана два файла:Story05_CG01_40534656.m2v
иStory05_CG01_40534641.hca
. m2v - видео-дорожка. hca - аудио-дорожка. - Переносим эти файлы (
Story05_CG01_40534656.m2v
иStory05_CG01_40534641.hca
) в папкуusm_builder_input
. - Переименовываем эти файлы, убираем мусор из названия (
Story05_CG01.m2v
иStory05_CG01.hca
). Для этого можно выделить оба файла и нажать F2, тогда переименуются выделенные файлы. - На этом этапе в папке
usm_builder_input
можно размещать множество файлов. Для создания одного .usm файла в папкеusm_builder_input
должно быть 3 файла- FILENAME.m2v - видео (
Story05_CG01.m2v
, используемый кодек H.264 aka AVC) - FILENAME.hca - аудио (
Story05_CG01.hca
) - FILENAME.txt - сабы (
Story05_CG01_en.txt
) P.S. принимаются как с окончанием на_en.txt
так и без.
- FILENAME.m2v - видео (
- В файле
.start_usm_builder.bat
меняем./USM_Builder.exe "usm_builder_input" "distr/ffmpeg/bin/ffmpeg.exe" "distr/ffmpeg/bin/ffprobe.exe" "distr/Scaleform VideoEncoder/medianocheH264.exe" "usm_builder_output" "distr/USM_subs_toolbox.exe"
- "usm_builder_input" - путь до папки с файлами .avi (видео), .txt (субтитры), .wav (аудио)
- "distr/ffmpeg/bin/ffmpeg.exe" - путь до ffmpeg.exe
- "distr/ffmpeg/bin/ffprobe.exe" - путь до ffprobe.exe
- "distr/Scaleform VideoEncoder/medianocheH264.exe" - путь до энкодера
- "usm_builder_output" - путь до папки с результатами (будет создана если не существует)
- "-doNotUseSubtitles" - опциональный параметр если usm файл должен собраться без субтитров
"distr/USM_subs_toolbox.exe"` - путь до патчера от Девятого (НЕ ИСПОЛЬЗУЕТСЯ @TODO начать его использовать для получения сабов из .usm файлов)
- Запускаем Сборку .usm файла
.usm_build.bat
При выполнение будет создана папкаusm_builder_temp
. После успешного или не успешного выполнения скрипта, её можно удалить. Если эта папка существует и в ней есть файлы с тем же названием, например, вы повторно запустили скрипт, то они будут перезаписаны. Может быть ошибка нехватки .NET, ставьте отсюда https://dotnet.microsoft.com/en-us/download/dotnet/8.0 - Результат обратно кидаем в
BH3_Data/StreamingAssets/Video
. Если что, бэкап у нас есть вusm_videos
.
- txt - что угодно
- srt - субтитры
- usm - видеоролики (медиа, аудио, субтитры в одном файле)
- m2v - медиа файл после vgmtoolbox (без аудио и сабов)
- hca - аудио файл после vgmtoolbox (без видео и сабов)
- bat - самодельные скрипты
- md - файлы документации
- exe - исполняемые файлы
Написал скрипт .usm_srt_extract.bat
- достает из usm файла сабы
- Помещаем файл из
BH3_Data\StreamingAssets\Video
в./usm_videos/
- Вводим путь к файлу при запуске скрипта ИЛИ прописываем название файла внутри скрипта
- Указываем путь - ничего не трогаем, просто запускаем скрипт
- В строке
set "folder_name=6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a"
изменяем название файла. Убираем из этой строки::
, добавляем в строку ниже, чтобы получилось::set /p "folder_name=Enter file name (ex: Story05_CG01): "
- Запускаем скрипт
Достанет 0-7 дорожки сабов в папку
./srt/6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a/
, лог в./logs/6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a/
Написал скрипт .usm_srt_extract_en.bat
- достает из usm файла англ сабы
- Помещаем файл из
BH3_Data\StreamingAssets\Video
в./usm_videos/
- Вводим путь к файлу при запуске скрипта ИЛИ прописываем название файла внутри скрипта
- Указываем путь - ничего не трогаем, просто запускаем скрипт
- В строке
set "folder_name=6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a"
изменяем название файла. Убираем из этой строки::
, добавляем в строку ниже, чтобы получилось::set /p "folder_name=Enter file name (ex: Story05_CG01): "
- Запускаем скрипт
Достанет 1 дорожку сабов в папку
./srt/6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a/
, лог в./logs/6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a/
Написал скрипт .usm_srt_convert.bat
- конвертирует формат сабов. Перед запуском требуется запустить extract.bat, чтобы он создал файлы .srt
- В строке
set "folder_name=6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a"
изменяем название файла - Запускаем скрипт
Все usm файлы надо хранить в ./usm_videos
. USM_subs_toolbox иначе не работает. Запуск в таком случае Test.exe -extractSbt "usm_videos/kiana.usm" -l 4
. файл с сабами будет лежать в usm_videos/kiana.srt. Иначе будет ошибка: Error : [file_open,null/test.srt]
В некоторых файлах нет англ сабов (1 индекс), т.к. на экране буквально англ текст. После сборки подобных файлов мы все равно не получим сабы на экране.
До версии 5.8 (в 5.8 от 30.06.2022 произошел переход на .usm формат) использовались mp4 файлы. Их битрейт намного выше (качество выше), поэтому рекомендую использовать их для сборки синематиков до версии игры 5.8. ссылка на гугл драйв с архивом и списком файлов1
Windows Defender может посчитать файл "distr\USM_subs_toolbox.exe" вирусом. В таком случае, используйте другой билд этой же программы "distr/USM_subs_toolbox_build_23072024.exe". Замените название файла с USM_subs_toolbox_build_23072024.exe
на USM_subs_toolbox.exe
. На момент 29.07.2024 защитник windows обе программы считает безопасными, если у вас повторился этот случай, пожалуйста, составьте issue в гитхабе.
Номер билда - это дата (23.07.2024) когда @Persivan получил билд в Disocrd.
Файл usm_videos/7.1_Birthday_Kiana_21f3d1f775e2938ac9c205e53d88bd82.usm
- Китайский (упрощенный)
- НЕТ ДОРОЖКИ!? (видимо тут должен быть английский, но т.к. на видеоряде англ буковки, то решили ничего не писать)
- Вьетнамский
- Тайский
- Французский
- Немецкий
- Индонезийский
Файл usm_videos/2.6_CG111_mux.usm
- Китайский
- Английский
- Вьетнамский
- Тайский
- Французский
- Немецкий
- Индонезийский
Файл 6.5_Birthday_Mei_efbc04aec45adb226958ad3f7582d70a.usm
- Китайский (упрощенный)
- НЕТ ДОРОЖКИ!? (видимо тут должен быть английский, но т.к. на видеоряде англ буковки, то решили ничего не писать)
- Вьетнамский
- Тайский
- Французский
- Немецкий
- Индонезийский
Devyatyi9/HI3rd_usm_sbt_patcher
Оконная программа для сборки USM на NetFramework - автор artserious (это дискорд ник). Он не загружал её на гит. UPD: больше не используется, прога переписана под консольный интерфейс