Corpse Party: Book of Shadows [Инструкция по переводу и инструменты]
В связи с тем, что Vincente, которая занималась переводом текста, внезапно заявила, что не собирается выпускать перевод (ссылка), я решил сделать эту инструкцию. Так как для меня это означает, что, фактически, над переводом никто не работает и не работал, а сил и времени с моей стороны в это дело было вложено немало... Здесь собраны все необходимые инструменты (основная часть, до этого времени, была приватной) с описанием и доступной инструкцией общего процесса, так что любой желающий, без каких-либо знаний технической части, сможет вставить свой перевод в игру.
1) Распаковка/запаковка ресурсов
С самим ISO-образом работаем по стандарту в UMDGen, там особых нюансов нет, с извлечением и заменой файлов все должно быть интуитивно понятно. В папочке MOV находится видео PMF (формат встречается в каждой второй PSP игре, работу с ним я здесь описывать не стану, благо готовых инструкций полно) и почти все необходимые нам ресурсы хранятся в DATA0.AFS. Для работы с ним используем AFSExplorer v3.7, при открытии картина следующая:
FONTS - это шрифты, SCENE00 - текст, все остальное - графика/изображения. Файлы извлекаются правым кликом, командой Export. Вставка/замена файлов командой Import, но тут все немного комплекснее: если новый файл превышает размер оригинального, то появляется сообщение "File length exceeds available reserved space..." с предложением зарезервировать место под новый файл. Если появилось такое сообщение, то сначала соглашаемся и сразу же (в таком случае файлы вставляем по-одному) нажимаем 'Advanced->Modify reserved space...->Regenerate AFS!' и сохраняем новый AFS. На этом этапе в новосозданном AFS старый файл еще не заменен, под него только выделено место, так что открываем его и импортируем (на этот раз предупреждений не выскочит) и снова сохраняем командой 'Regenerate AFS!' уже в третий и финальный AFS.
2) Замена шрифта
Переделанный русский шрифт находится в 'Corpse_Party_BoS_font_ru_RikuKH3', для того чтобы русский текст нормально отображался нужно заменить оригинальные DFRRA14.FNT и DFRRA14.FNI на модифицированные DFRRA14_ru.FNT и DFRRA14_ru.FNI.
3) Работа с текстом
Все необходимое для работы с содержимым SCENE00 находится в 'Corpse_Party_BoS_text_inject_rev3_RikuKH3', скрипты сконвертированы в удобноредактируемый текстовый формат и работать с ними можно в любом удобном редакторе. Запуском приложенных BAT-файлов, из содержимого *.txt генерируются готовые для вставки в игру *.BIN. Формат следующий:
В специальных скобках находится имя говорящего, оно обязательно должно совпадать с тем, что внутри 'DATA.txt'. То есть, разумнее всего сначала перевести и выписать имена из DATA.txt и потом во всех остальных файлах автозаменой пройтись по 【...】 (если заменять со скобками, то ничего лишнего не заденет).
Команда <LINE> служит для перехода на другую строку, их можно свободно удалять/вставлять. Т.к. шрифт в игре имеет разную ширину букв, для удобства приложены две программы - 'cpbos_linecalc' и 'cpbos_text_fomatter'. Первая показывает влезает ли строка и занимаемое место в пикселях, вторая - сканирует и сама разбивает слишком длинные строки и переносит слова. Я бы советовал печатать все в одну строку, вручную вставляя <LINE> лишь в исключительных случаях, и прогонять финальный текст через 'cpbos_text_fomatter'.
4) Работа с графикой
В игре используется два формата для изображений - KLZ и p2t, и тот и другой распаковывается в TIM2 (*.tm2) и запаковывается обратно при помощи утилит в 'cpbos_image_batch_scripts'. Для работы непосредственно с TIM2-форматом используем 'OptPix iMage Studio 3.12'. Для работы с графикой нужны навыки работы с прозрачностью (альфой):
После открытия *.tm2, для редактирования его сохраняем в PNG или PSD. Для тех кто не знает как работать с прозрачностью, проще всего открыть PNG в фотошопе, добавить временно новый слой под основное изображение и залить его в любой удобный цвет:
После того как закончили, просто удаляем временный слой, убеждаемся что новая картинка отображается схоже со старой и сохраняем в тот же PNG. Тут основные настройки для сохранения в подходящий для нашей игры *.tm2:
В комплекте с 'cpbos_linecalc' приложен AutoIt скрипт, который настроен по нажатию F6 копировать строку из Блокнота/Notepad в окошко калькулятора строк. Для этого запускаем Блокнот с текстом, cpbos_linecalc и AutoIt3 скрипт (раскладка клавиатуры перед запуском должна на русском стоять). Сам AutoIt3.au3 можно подправить для работы с другими редакторами, для этого нужно заменить в нем [CLASS:Notepad] на название своего (полностью, без квадратных скобок, например: Programmer's Notepad).
cpbos_text_fomatter по-умолчанию сканирует все строки и разбивает только те, которые превышают лимит. Галочка "Full reformat" перед началом дополнительно ищет и заменяет все двойные пробелы и склеивает все уже разбитые строки в одну. Кнопка "Check for Errors" предназначена для проверки уже обработанного и финального текста на наличие слишком длинных фраз (т.к. лимит в игре - 3 строки).
В 'FONT' содержатся: DFRRA14_ru.FNT - файл растрового шрифта 16x16, DFRRA14_ru.FNI - файл с описанием ширины каждого символа, DFRRA14.act - палитра для редактирования глифов в TileMolester/Photoshop, *.txt/*.png - описание значений ширины и настроек для редактирования.
В директории 'EBOOT' находится информация по ASM-поинтерам на текст, который хранится в EBOOT.BIN (текста там очень мало, в основном системные окошки сохранения и главного меню) и пример файла, где несколько фраз сдвинуты. Руководствуясь имеющимися значениями и значениями позиций самого текста, можно вычислить значения для остальных фраз (на случай если перевод не влезет и появится необходимость что-то сдвинуть). В примере фразы перенесены в область системных сообщений видеокодека, в самой игре они, фактически, не используется, так что это место можно использовать как угодно. Сам текст в 2-байтной ShiftJIS кодировке (8440-8460, 8470-8491), но разумнее использовать 1-байтную кодировку, которую я добавил перед релизом (A1-DF,5C,5E,60).
Последний раз редактировалось riku.kh3; 03.01.2015 в 01:02.