Мои заметки после
портирования озвучки Drug WarsВесь звук и видео находится в папке DrugWarsData\aScenario\
Куча файлов Scenario.001 Scenario.002 ... Scenario.066 это уже знакомые нам
stream файлы
Текстуры лежат отельными файлами
cel и
img в папке DrugWarsData\Art\
Ролики внутри stream файлов расположены довольно хаотично, иногда внутри могут оказаться ролики из одного эпизода, а иногда совсем из разных.
Например, ролики эпизода carchase находятся в 001, 003 и 066 файлах, а ролики с комментариями партнёра из уровня Южной Америки в 021 и 063
Начальное видео находится в 041 и 042 файлах, нарезанное кусками
В некоторых Scenario есть видео файлы, состоящие из одного кадра, например слайды титров в 042
(в папке art тоже есть слайды титров, но в виде img файлов)
И, да. В некоторых stream файлах попадается тот самый case #3 из
UNSPEAKABLE HACK
Видео запаковано стандартным cinepack кодеком с битрейтом примерно 2mbits/s. Размер кадра 288x216. 15 fps
Аудио не сжато: pcm_s8 22050Hz mono
Но! Первый чанк данных аудио файла не простой, а со своим заголовком внутри
Из-за этого пришлось подправить
BMS скрипт извлечения, чтобы он отрезал заголовок в файл
После подготовки wav файлов с русской озвучкой(нарезка из mpg файлов ПК версии)
Конвертируем в aiff командой
for %f in (Scenario*RU.wav) do ffmpeg -i %f -c:a pcm_s8 %~nf.aiff
Затем,
отрезаем aiff заголовок BMS скриптом
Клеим суб-заголовок к новым аудио-данным
в командной строке
copy /b *.Header + *.sound *.done
проверять, будет ли работать без этих суб-заголовков, не стал.
Из-за того, что в Scenario может быть несколько аудио файлов, (Scenario.066-0.done Scenario.066-1.done и тд)
склеиваем их
copy /b Scenario.066*.done Scenario.066.full
эту команду повторял для каждого Scenario файла(в примере Scenario.066)
наверное, есть одна команда для склейки сразу всех файлов, но мне она не известна
В итоге, у нас получились Scenario.*.full аудио
файлы с русской озвучкой, готовые для вставки обратно в stream файлы
с помощью
ZStreamChunksReader (вкладка Audio Data Insert)
PS.
Если кто-то захочет использовать BMS скрипт извлечения, имейте ввиду, что он еще
сырой.
При запуске он спрашивает, извлекать видео? извлекать аудио? Отвечайте "y" или "n" в зависимости от того,
что вам нужно. Одновременное извлечение видео и аудио(yy)
глючит!:
Сначала извлеките видео, а потом извлеките аудио.(yn затем ny)
Внутри есть переменные ConcatVideo и ConcatSound, если поменять их значения на "y", то скрипт предварительно
склеит файлы внутри каждого Scenario файла.
Если ваш проигрыватель не подхватывает аудио-дорожку к видео из соседнего aiff файла,
командой
ffmpeg -i video.avi -i audio.aiff -c copy VideoWithSound.mov
можно смешать видео и аудио в один файл (для просмотра со звуком)