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". Инструкция по смене ниже.
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
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 файла
Story05_CG01.m2v
, используемый кодек H.264 aka AVC)Story05_CG01.hca
)Story05_CG01_en.txt
)
P.S. принимаются как с окончанием на _en.txt
так и без..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"
"distr/USM_subs_toolbox.exe"` - путь до патчера от Девятого (НЕ ИСПОЛЬЗУЕТСЯ @TODO начать его использовать для получения сабов из .usm файлов)
.usm_build.bat
При выполнение будет создана папка usm_builder_temp
. После успешного или не успешного выполнения скрипта, её можно удалить.
Если эта папка существует и в ней есть файлы с тем же названием, например, вы повторно запустили скрипт, то они будут перезаписаны.
Может быть ошибка нехватки .NET, ставьте отсюда https://dotnet.microsoft.com/en-us/download/dotnet/8.0BH3_Data/StreamingAssets/Video
. Если что, бэкап у нас есть в usm_videos
.Написал скрипт .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): "
./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): "
./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: больше не используется, прога переписана под консольный интерфейс