В последние годы было выпущено достаточно много японских новелл на движке Kirikiri. Некоторые из них были переведены, поскольку движок достаточно неплохо относится к попыткам локализации.
А вот статей о том, как сделать перевод новеллы на этом движке я почти не встречал, потому мы со Chtobi пораскинули мозгами и решили написать этот маленький гайд.
Статьи будут касаться только той части движка, которая подлежит переводу. Полный разбор по косточкам я делать не собираюсь. Кроме того, сведения ниже актуальны только для старых версий движка(об этом потом), с новыми может быть все иначе.
Немного о движке.
Игра на движке Kirikiri обычно хранит почти все интересующие нас данные в архивах .xp3 . В разных играх названия архивов могут быть разными, но иногда они совпадают с написанными ниже:
bg.xp – фоновые изображения.
char.xp3 – специально закодированные изображения спрайтов персонажей.
data.xp3 – изображения меню, файлы разметки, изображения игровых событий, настройки…
scenario.xp3 – файлы сценария.
sound.xp3 – звуки спецэффектов.
video.xp3 – видеофайлы, заставки.
voice.xp3 – озвучка персонажей.
Желательно проверить каждый архив, но как правило, требующие перевода файлы находятся в scenario.xp3, data.xp3 и bg.xp3 .
Что внутри?
Внутри архивов могут быть следующие файлы:
.bmp – фоны, изображения игровых событий, надписи в меню… (Движок поддерживает только несжатые bmp)
.jpg – фоновые изображения, иногда и остальная графика.
.png – спрайты героев, элементы оформления, надписи в меню… (Есть поддержка прозрачности и альфа-канала)
.tlg – формат изображений Kirikiri, может быть преобразован в png.
.mpg , .mpeg , .wmv – видеофайлы.
.ogg , .wav – озвучка, музыка.
.tjs – текстовые файлы TJS скриптов, которыми определяется работа движка.
.ks – непосредственно файлы сценария.
.csv – текстовые файлы, со значениями, разделенными запятыми. Могут содержать текст пунктов меню и других надписей.
Под перевод в первую очередь попадают .ks и .tjs файлы, на них стоит остановиться по подробнее.
Сценарий.
По-умолчанию, .ks файлы сценария закодированы в кодировке Shift-JIS. Но движок также понимает и кодировку UCS-2LE (UTF-16LE).
Помимо непосредственно текста, выводимого на экран, в файле сценария есть служебные команды(макросы).
На 100% команды из одной игры не соответствуют командам из другой, но они выполняют приблизительно те же функции.
Символы |* обозначают, что при сохранении, игра начнется с этого места. Это своеобразный savepoint. Их расположение лучше не менять.
Символы [r] – начало новой строки.
Символы [l] – ожидание клика пользователя.
Символы [p2] – ожидание клика пользователя, а затем очистка экрана с текстом.
; — точка с запятой. Комментарий. Строка, в начале которой стоит точка с запятой, движком не обрабатывается.
Вместе с основным текстом переводу подлежат еще и имена героев, которые часто выводятся в рамках над основной панелью. Вариантов может быть много, имена могут обозначаться как:
[stName]Робогорничная[endName]
или
[setname name=Казуки]
или
@name chara="Почтальон Печкин"
По смыслу можно легко догадаться, какой макрос отвечает за вывод имен. Более подробно макросы, используемые игрой, описаны в файле macro.ks .
Если новелла не кинетическая и предполагает выбор вариантов, в тексте будет что-то вроде таких строк:
@select target1="*s002b" text1="Впустить Печкина" target2=«*s002c» text2="Прогнать Печкина"
Разветвление обозначено метками *s002b и *s002c далее в тексте. Если ветки имеют общее продолжение, скорее всего в конце будет стоять:
@jump target="*s002d"
То есть команда автоматического перехода на метку *s002d
.
В конце файла сценария может находиться строчка:
@jump storage=«title.ks»
или
[jump storage=scene08.ks target=*090]
То есть переход к указанному в кавычках файлу и(во втором случае) к указанной метке в этом файле.
Файлы настройки.
От файлов .ks отличаются синтаксисом. Помимо прочего, строки с комментариями отмечаются двойным слэшэм (//), а не точкой с запятой. Мы еще вернемся к ним при подробном разборе.
Теперь давайте попробуем перевести что-нибудь.
Начинаем перевод.
Итак, приступим. Вдоволь налюбовавшись на героев любимой визуалки, отбросив сладкую истому после счастливой концовки, вы вознамерились перевести какую-нибудь игру.
Для примера возьмем переведенную Tsundere na imouto.
Проверяем версию движка.
В папке с установленной игрой вы видите что-то вроде этого:
Ищем исполнимый файл игры и смотрим его свойства.
Если в графе «Описание» есть надпись вроде TVP(KIRIKIRI) 2 core, то читаем дальше. Если нет – игра не использует движок Kirikiri и написанное ниже нам вряд ли поможет.
Вскрытие архивов xp3.
К сожалению, стопроцентного способа вскрыть эти архивы на данный момент нет, но попытаться в любом случае стоит.
Для вскрытия можно использовать программу AE Tools (http://wks.arai-kibou.ru/ae.php?p=dl) или утилиты от insani для распаковки из командной строки(http://tlwiki.org/images/a/af/Xp3tools-20060708.zip).
Запускаем распаковку:
То есть, распаковываем data.xp3 в подпапку data, которая находится в папке с архивом.
Полученный результат:
Здесь нас интересуют файлы сценария, которые находятся в подпапке scenario.
Собственно сами файлы могут называться scene00.ks, scene01.ks, scenario… Кстати, в архивах иногда лежит мусор вроде черновых версий, поэтому желательно не ошибиться и выбрать правильный файл.
Если вы не нашли нужных .xp3 файлов, возможно они склеены вместе с исполнимым .exe Отделите их с помощью утилиты KiriKiri/KAG3 Embedded EXE Splitter & Merger(ссылка есть во второй части статьи), а полученный архив распакуйте любым удобным способом.
Обычно файлы в архивах имеют названия, набранные латиницей, но зачастую японские разработчики считают, что их творения будут запускать только в Японии и используют в именах японские символы. Поэтому если какой-то файл содержит знаки вопроса или кракозябы и не желает открываться, возможно стоит еще раз распаковать архив, загрузившись с японскими языковыми настройками.
Что делать, если вы так и не смогли распаковать .xp3 файлы?
Видимо, вам не повезло и вы взялись за новеллу, где файлы дополнительно зашифрованы. Это бывает если игру делала «серьезная» фирма. Например у Fate/Stay Night архивы открываются только утилитами заточенными под эту игру. То же самое можно сказать про игры сделанные на последней версии движка KirikiriZ (Nekopara).
Тогда вам придется искать, не сподобился ли кто сделать утилиту для конкретно вашей игры или попросить кого-нибудь написать ее. В крайнем случае, сделать это самим. Ж)
Мацуо Басё в переложении Толстого.
Вот все файлы сценария, которые потребуется перевести.
Вы уже готовы ожесточенно без перерыва переводить неизвестные закорючки на родной язык? Приступайте, но…
- Как было сказано выше, файлы сценария закодированы в кодировке Shift-JIS. Если вы хотите, чтобы русский текст отображался нормально, измените кодировку файла на UCS-2LE (UTF-16LE).
- Не стоит удалять исходный японский текст, полностью заменяя его своим переводом. Оригинал вам еще понадобится для вычитки и проверки. Удобнее будет просто закомментировать строку с японской фразой, поставив перед ней символ ; (точка с запятой)
- Аккуратнее правьте макросы. Незакрытая квадратная скобка в строках типа
[setname name=Казуки]
может вызвать ошибку в игре.
А посмотреть?
После перевода, даже частичного, вам, конечно, захочется посмотреть, как выглядит игра с новым, переведенным текстом. Архив собирается обратно теми же утилитами, которыми вы его распаковывали. Можно отправить готовый вариант в тот же архив, где были раньше файлы оригинала, но тогда придется переупаковывать массу ненужной информации, не входящей в ваш перевод.
Более выгодный способ – создать отдельный файл patch.xp3 , в который поместить все что вы наизменяли и напереводили, а потом закинуть его в папку с игрой.
Существуют несколько вариантов размещения файлов в архиве patch. Иногда игра подразумевает, что структура каталогов будет сохранена, т.е. если в оригинальном .xp3 файлы находились в папке \scenario , то и в patch.xp3 они должны находиться в той же папке.
В случае с Tsundere na imouto, движок считает, что все файлы в patch.xp3 должны находиться только в корне архива. Для вашей игры это придется определить самим.
Кстати, если в папке игры по недоразумению уже есть файл patch.xp3 , можно смело создать patch2.xp3 , patch3.xp3 …
С помощью консольных утилит запаковку выполняем командой:
xp3-repack F:\Work\other\tundere\crack\patch patch.xp3
После названия запаковщика идет путь до папки, куда вы скопировали все переведенные файлы(F:\Work\other\tundere\crack\patch) и имя получаемого патча(patch.xp3) .
Итак, вы довольный, уверенный в собственных силах, запускаете игру, чтобы увидеть первые плоды своих трудов и…
В следующей части речь пойдет о том, какие еще опасности ждут на пути перевода.
Знаете, эм… Не всегда выходит так прекрасно вскрыть архивы. Программы просто тупят и ничего не понимают обычно. Мда.
НравитсяНравится
Увы! В этом-то и вся проблема.
НравитсяНравится
Хм, вроде всё получается, распаковывается, собирается. Но когда запускаю уже правленную версию, меню я не трогал, оно работает, но в тот момент, когда должен появиться русский текст, просто черный экран и ничего не происходит.
НравитсяНравится
Что за игра-то хоть?
НравитсяНравится
Да взял первую, что под руку попалась. Hypno-traning My Mother and Sister
НравитсяНравится
От Mangagamer ? Они, наверное, опять постарались и накрутили туда защиту. Тут я мало чем могу помочь.
НравитсяНравится
у меня почти такая же проблема как у Galok_119 03.01.2016 в 01:17
только в русской локали, в японской локали нет ошибок. запускаю новую игру появляется черный фон, хотя, на месте него должны быть картинки из папки(bgimage) в остальном текст нормально печатается и другие картинки всплывают. иногда на месте фона появляется картинка из папки (image) и потом не пропадает, так же из этой папки не включаются картинки меньше фона в 5 раз.
НравитсяНравится
По поводу KiriKiri/KAG3 Embedded EXE Splitter & Merger.
А можно поподробней, как для чайника — каков формат вводимой строки (команды), как осуществить ввод, если Enter закрывает окно.
НравитсяНравится
Если нужна распаковка, делаем как указано в хелпе программы.
Запускаем cmd.exe , далее пишем :
kiri_sm.exe -e executable.exe
Вместо executable.exe имя вашего экзешника.
Получаем на выходе: embedded.exe (экзешник с вырезанным xp3) и archive.xp3 (сам архив)
НравитсяНравится
Э-ээ… Почти… А можно ещё подробней…?
Как она (прога) его найдёт (ехешник-то). Надо путь как-то прописать.
Видимо как и выше в случае с другими консольными программами, я верно понял?. Пардон, что туплю — не приходилось пользоваться. Пробелы в строках имеют значение?
НравитсяНравится
Вобщем я нифига не понял. Ввожу строку, как описано. И что дальше? Нажав ввод (Press Enter to quit), закрываем прогу и ничего не происходит, не нажав, тупо смотрим на экран.
Собсно я разобрал, то, что хотел — банально просто, однако получилось. Но что толку. Здесь же прельщало прежде всего то, что и собрать можно. Брал отсюда, http://wks.arai-kibou.ru
НравитсяНравится
Я имел ввиду, что разобрал другими методами.
НравитсяНравится
Ну, сборка делается почти точно так же.
По шагам:
1. Копируем экзешник игры и xp3 архив, которые надо склеить, в папку с kiri_sm.exe
2. Запускаем cmd.exe
3. Переходим в папку с kiri_sm.exe
4. Пишем следующее:
kiri_sm.exe -m executable.exe archive.xp3 embedded.exe
Вместо executable.exe должно быть имя экзешника для склейки, вместо archive.exe имя архива. embedded.exe это имя файла, который получится в результате.
5. Нажимаем Enter.
Готово.)
НравитсяНравится
Блин… Значит, исходник должен быть в папке с прогой? А об этом нигде…
Впрочем, этот вариант первое, что пришло мне в голову и я опробовал его почти сразу. Увы не прокатило. Жаль.
Ресурсы вынул (кстат, использовал Universal Extractor), а собрать в .ЕХЕ обратно не выйдет — имена файлов закодированы, а декодер в ехе-шнике. Ну и на том СПС.
Ну лан, но есть ещё пробла. Ты как, готов, если буду бомбить вопросами, хотя он пока один? Думаю не стоит засорять страницу многословной перепиской. Мой адрес в этом посте настоящий.
НравитсяНравится
Что-то не вижу адреса, может быть его движок прячет.
Можешь писать на мой ящик, который я указывал в этом посте:
Правда, оперативно отвечать не смогу, но все же.)
НравитсяНравится
И ещё, а ваши игры после локализации открываются всё так же под Аплокалью, Нтлееи
или уже как обычно?
НравитсяНравится
Tsundere na imouto была специально доработана, чтобы запускаться под русской локалью. Хотя на некоторых системах бывают сбои.
НравитсяНравится
Хэлп!
Я не понимаю, когда мы сделали перевод, как сохранить файл со сценарием в формате ks?…
НравитсяНравится
Просто открыть файл через Notepad++ , выбрать из меню Кодировки->Преобразовать в UCS2-Little Endian и сохранить.
НравитсяНравится
Песат, стрёмно, что открыть ты сумел, а сохранить нет.
Открыл, изменил, «Сохранить» — и всё.
Открыл, изменил, «Сохранить как…» — тут иначе, можешь выбрать(изменить) расширение.
Можно в Ворде, Блокноте, текстовых редакторах и т.д. Просто функционал Notepadа шире, он удобнее, да и заточен под написание скриптов и html.
НравитсяНравится
А в папке с игрой нет файла scenario.xp3
Где ещё может лежать сценарий?
НравитсяНравится
Он может не обязательно называться scenario.xp3 . Если есть сомнения, можно распаковать все файлы и проверить каждый.
НравитсяНравится
У меня файл ks не открывается, пробовала менят кодировку, не выходит(
А ещё, как можно графические файлы извлечь из архивов? Они в другом формате — tlg.
НравитсяНравится
Что за игра? В принципе, архивы могли неправильно распаковаться. Для преобразования tlg2png есть программа, можно найти в конце второй части статьи: https://kindkanjistudio.wordpress.com/2015/06/21/%d0%bf%d0%b5%d1%80%d0%b5%d0%b2%d0%be%d0%b4-%d0%b8-kirikiri-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2/
НравитсяНравится
Новелла Mahoutsukai no Yoru. Перевода полного нет, вот и решила а взяться за неё. Может к ней тоже как и к Fate нужна особая утилита?
А как пользоваться вашей tlg2png… Ну, сама разберусь.
НравитсяНравится
Mahoutsukai no Yoru — это еще одно произведение от Type-Moon. Подозреваю, что обычные тулзы здесь не помогут. Пишут, что вот эта вещь может распаковать их архивы: https://github.com/vn-tools/arc_unpacker
НравитсяНравится
Ох, черт, не понимаю я, как пользоваться ей D:
Не видать перевода тайпмуновцам.
НравитсяНравится
блин, хороший движок, жалко, что слишком специфичный и информации о нём мало. Очень заинтересовала e-mote технология, узнал вроде, что новелки с оной на этом движке пишутся, а анимация в emofuri(e-mote studio) делается. Японский шоль учить начать)
НравитсяНравится
Ну, как сказать. Относительно хороший. Windows only, хотя под Вайном работает без проблем. Emofuri там в виде плагина, который еще и платный.
НравитсяНравится
«Поэтому если какой-то файл содержит знаки вопроса или кракозябы и не желает открываться, возможно стоит еще раз распаковать архив, загрузившись с японскими языковыми настройками.»
Как загрузиться языковыми настройками? :с
НравитсяНравится
То есть, загрузиться с японским языком в качестве языка для программ, не поддерживающих юникод. (С японской локалью).
НравитсяНравится
Аа, ну толку всё равно мало, кракозябры остаются.
Вариант что неправильно распаковывается скрипты, уже несколькими пробовал.
НравитсяНравится
Можно файлик мне кинуть? Я попробую у себя.
НравитсяНравится
Вопрос: во время распаковки хр3 выдает такую ошибку
Expected «#01» at position 0x17 but saw «#80».
Traceback (most recent call last):
File «xp3-extract.py», line 104, in ?
assert (indexoffset+compsize+17 == filesize)
AssertionError
в чём может быть проблема?
НравитсяНравится
Возможно файл зашифрован или просто формат другой. Попробуйте открыть через AnimeEd(http://wks.arai-kibou.ru/ae.php). А что за игра?
НравитсяНравится
Добрый день! В статье Вы упомянули, что tlg файл может быть преобразован в png (или tga). Не могли бы Вы, пожалуйста, подробнее рассказать как это сделать и какие программы необходимо для этого использовать?
НравитсяНравится