Как перевести японскую визуальную новеллу на движке KirikiriZ (без навыков программирования)
Вступление
Каждый, кто знает английский язык и при этом хочет подарить миру перевод какой-либо японской визуальной новеллы, чаще всего сталкивается с большим числом трудностей, вызванных потребностью в умении работать с технической частью ВН.
В данной статье речь пойдёт о KiriKiri — втором по популярности движке после Ren'Py. Про него уже существует статья в двух частях, однако, во-первых, она была выпущена достаточно давно, а во-вторых, в ней рассматривается старая, немодифицированная версия данного движка (то есть KiriKiriZ).
Но поскольку вышеописанная статья всё же даёт базовые сведения о структуре движка и пригодится для перевода более старых игр на нём, я крайне рекомендую ознакомиться с ней.
________________________________________________
Следует отметить, что в представленной ранее статье автор не уделяет внимание четырём важным моментам:
1) После установки шрифта обязательно нужно удалить папку savedata, чтобы шрифт смог корректно отображаться в игре.
2) Чаще всего при запуске игры будет выдаваться ошибка (подобное также может быть и с японскими релизами ВН на KiriKiriZ, не попавшими на зарубежный рынок), а потому для корректного открытия новеллы необходимо использовать программу Locale Emulator, следуя данной инструкции:
— распакуйте архив и запустите LEInstaller.exe. Выберите в нём вариант Install for current user;
— нажмите на экзешник игры правой кнопкой мыши и выберите данные пункты: Эмулятор локали → Run in Japanese.
3) Во избежание проблем лучше прописывать шрифт EET поверх стандартного японского MS (или другого шрифта). Поскольку EET не является системным шрифтом, переводчику достаточно будет поместить его в архив перевода, а читателю — установить (пример установки будет рассмотрен в конце статьи).
4) В статьях не описан процесс преобразования PNG-картинок обратно в расширение TLG. Делается это с помощью одной программы.
Для того чтобы поменять расширение картинки с PNG на TLG, требуется перейти в kirikiri2 → tools → krkrtpc.exe. Далее в программе нужно выбрать пункты TLG5 и TLG5 with alpha channel в категориях Opacity и Image with Transparency соответственно, а после следует просто перекинуть PNG-картинку в открывшееся окно.
Все ссылки на использованные в статье программы будут представлены в конце.
________________________________________________
Первые приготовления
Я постараюсь описать процесс перевода визуальных новелл на KiriKiriZ как можно детальнее, чтобы каждое моё действие было понятно читателю.
Разумеется, всякая игра имеет свои особенности в плане структуры файлов. Например, в одной новелле файлы сценария, графики и музыки могут лежать в общем XP3-архиве, в то время как в другой ВН — в разных. И поскольку отличительные черты каждого проекта разобрать просто невозможно, вам придётся учитывать их самостоятельно. Тем не менее принцип перевода каждой визуальной новеллы един, и о нём я расскажу далее.
________________________________________________
Для начала разберёмся с тем, как же узнать, что выбранная вами новелла построена именно на KiriKiri. Сделать это очень просто:
1) открываем vndb.org — базу данных всех существующих визуальных новелл (чтобы отображались картинки, используйте VPN);
2) переходим на страницу Visual Novels;
3) выставляем в поле Language английский язык;
4) после выбираем кнопки в следующем порядке: + (правее Tags) → Release → Engine, а далее в появившемся поле Search пишем «KiriKiri»;
5) вновь нажимаем на + (ниже Rel), потом — на Length и выбираем из открывшегося списка нужную длину ВН;
6) нажимаем на Search.
Важно отметить, что таким образом сайт покажет вам не полный список новелл на KiriKiri, имеющих английский перевод, потому что на странице той или иной ВН может быть не указан движок, на котором она создана. И в таком случае данная новелла не удовлетворит нашей выборке.
Возможное решение такой проблемы состоит в том, чтобы вписать в поле Language ещё и японский язык. Однако минусом данного подхода является отображение ВН, не имеющих английского перевода.
Рекомендуется обращать внимание на дату выхода игры: если она выпущена раньше, скажем, 2013 года, то при работе с ней вы с большей вероятностью столкнётесь со старой версией движка KiriKiri. Это можно будет понять по тому, что сценарные файлы игры будут представлены в формате KS (а не KS.SCN).
_______________________________________
Начало
Для примера я возьму визуальную новеллу под названием Nekogami-sama to, Nanatsuboshi -Imouto no Ane-. В Steam данной игры нет, но её можно скачать на сайтах с новеллами по типу ryuugames.com (для входа используйте VPN), moegesoft.com (или на крайний случай через торрент).
На скриншоте представлена структура файлов игры.
adult.xp3 — архив с хентаем. Содержит 18+ картинки, порой скрипты (иногда могут быть помечены буквой h), а также озвучку для постельных сцен.
data.xp3 — самый главный архив, основа всей игры. Сценарий, фоны, арты, графика, музыка и другое находятся там. Однако, как упоминалось выше, иногда все вышеперечисленные вещи могут быть в отдельных архивах: bgimage.xp3, evimage.xp3, scn.xp3, uipsd.xp3 и так далее.
evimage.xp3 — архив с артами.
fgimage.xp3 — архив со спрайтами.
patch.xp3 — архив с патчем для игры. В дальнейшем нам нужно будет создать свой патч и поместить в него перевод графики и сценария, а также задействованные системные файлы.
voice.xp3 — архив с озвучкой.
Примечание: разновидностей XP3-архивов довольно много, перечислять их можно долго.
______________________________________
Итак, как же работать с такими архивами? Для этого нам понадобится программа GARBro New, а именно её новая, модифицированная версия, потому что в ней, в отличие от старого GARBro, разработка которого была заброшена, содержатся шифрования к недавно вышедшим визуальным новеллам.
На скриншоте показан интерфейс программы.
Нажимаем на любой XP3-архив. Перед нами предстаёт окно с выбором шифрования.
Примечание: с некоторыми визуальными новеллами программа может сбоить и свободно открывать архивы, не запрашивая шифрования. В таком случае вам нужно переименовать исполняемый файл игры, убрав или добавив любую букву или цифру: например, изменить nekotsubo.exe на nekotsub.exe. После в программе нажать на следующие кнопки: Просмотр → Обновить.
______________________________________
Ищем среди списка шифрование нашей игры (у программы ориентир на японское название новеллы) и открываем архив data.xp3.
Может быть и так, что взятая вами новелла изначально не содержит в себе шифрования, даже несмотря на то что её название имеется в списке. Понять это можно, например, если при варианте «без шифрования» программа сможет без всяких проблем визуально отобразить PNG-картинки.
______________________________________
Однако бывает и наоборот: игра зашифрована, но GARBro не предоставляет её шифрование, или шифрование есть, но оно нерабочее. В таком случае нужно обратиться сюда или же попробовать вскрыть игру через KrkrExtract.exe (о нём мы ещё поговорим в дальнейшем).Пароль от архива: 1111.
Перед скачиванием отключите безопасность Windows и безопасность в вашем браузере. Программа не является вирусом; система ругается на неё потому, что та взаимодействует с исходным кодом движка.
______________________________________
Бывают ситуации, когда мы уже видим patch.xp3 в папке игры. Чаще всего это касается официальных переводов, однако подобные случаи могут наблюдаться и с неофициальными переводами той или иной игры. Если такое произошло, то при работе с новеллой нам следует основываться на файлах данного патча (там могут быть как технические файлы, так и пригодные для перевода сценарий с графикой). Тем не менее, конечно, не стоит забывать и о data.xp3, ведь может случиться так, что в найденном patch.xp3 будут лежать не все нужные вам файлы.
В представленной ситуации собственноручно созданному патчу нужно давать имя patch2.xp3 (если заранее приготовленных патчей было двое, то следует выбрать имя patch3.xp3). Пытаться повторять до единого содержание чужого патча, лежащего в папке, не стоит. Загружаем в свой патч лишь то, с чем мы взаимодействовали при переводе игры. Патч нужно создавать без шифрования.
______________________________________Иногда при возникновении трудностей с созданием патча можно обратиться к другим фанатским переводам (если они есть): посмотреть структуру файлов их патчей и сделать нужные выводы.
Открываем data.xp3, находим папку scn — именно в ней содержатся файлы сценария. У движка KiriKiriZ расширение данных файлов может быть или TXT.SCN, или KS.SCN. Важно отметить, что они не всегда лежат в той же папке, что приведена на скриншоте взятой для примера игры.
Создаём в папке с игрой папку под названием patch. Выделяем все файлы сценария в scn, нажимаем Извлечь и перемещаем их в созданную папку.
В папке patch появится папка scn. Скопируйте все скрипты оттуда и сделайте так, чтобы они лежали именно в patch, а не находились в подпапке. Далее удалите теперь уже пустую scn. У вас должно получиться так, как показано на скриншоте ниже.
Перевод сценария
Теперь наконец перейдём к главному — работе над переводом файлов сценария. Для этого нам потребуется программа VNTextPatch — и именно слегка изменённая её версия.
Разница между обычной версией и этой в том, что первая в случае наличия в игре двух и более языков, что свойственно многим официальным переводам (к примеру, играм Yuzusoft и FrontWing), будет брать ориентир на японский текст при создании таблицы, в то время как вторая — на английский, что нам и нужно.
_________________________
Для большей наглядности покажу содержимое файлов игры, отвечающих за сюжет, с помощью программы SCNEditorGUI. Чтобы воспользоваться ей, нужно:
1) переместить всё содержимое архива со сценарными файлами в любое удобное нам место;
2) открыть ScnEditorGUI.exe, нажать Open File;
3) прописать путь к папке с SCN-файлами сценария у своей новеллы;
4) открыть нужный сюжетный файл.
Откроем файл сценария игры Nekogami. Как можно заметить, каждая реплика имеет несколько вариаций под разные языки.
Хоть программа SCNEditorGUI и позволяет редактировать сюжет (для этого нужно изменять выбранные строки в нижнем поле, а по окончании работы нажать на правую кнопку мыши и выбрать пункт Save File), однако ей я предпочитаю VNTextPatch.
__________________________
Итак, в начале работы с VNTextPatch нужно создать папку с любым названием (я выберу имя нашей новеллы, то есть nekogami). Важно, чтобы в имени папки не было пробелов!
Далее в поле, где содержится путь к папке с VNTextPatch, нужно написать cmd и нажать клавишу Enter — в результате откроется командная строка с прописанным путём к данной папке.
Следующим шагом будет написание такой команды:
VNTextPatch extractlocal nekogami nekogami.xlsx
Вместо nekogami вставьте название своей папки и таблицы.
Total lines — количество строк.
Total characters — количество символов.
В итоге у нас создастся Excel-таблица, в которой будет находиться наш скрипт. Работая с ней, перевод нужно записывать в столбец TL. Если у оригинального текста есть кавычки, то в переводе их тоже лучше учитывать.
Внешний вид готовой таблицы (каждый лист которой представляет собой один сюжетный файл) можно увидеть на скриншоте ниже:
При желании можно перевести все имена в игре всего в несколько кликов. Для этого нам понадобится файл names.xml, который находится в папке программы. Открываем его через блокнот или NotePad++. Имя переводим именно в теге <tl>. Когда все имена будут переведены, следует удалить Excel-таблицу и создать её способом, описанным выше.
Итак, имена перевелись.
Чтобы превратить таблицу обратно в файлы сценария по окончании перевода сюжета, нужно создать папку nekogami_ru (вместо nekogami пишем название своей папки; пометка ru также необязательна), а после открыть командную строку и вписать в неё следующее:
VNTextPatch insertlocal nekogami nekogami.xlsx nekogami_ru
На скриншоте ниже представлена папка с появившимися скриптами.
А также VNTextPatch со всеми созданными нами папками.
Перемещаем все скрипты из nekogami_ru в созданную нами ранее папку patch, находящуюся в папке с игрой.
__________________________
Если сценарные файлы выбранной вами игры имеют расширение не TXT.SCN или KS.SCN, а TXT, то ко всем описанным выше командам надо добавлять --format=kirikiriks
То есть:
VNTextPatch extractlocal --format=kirikiriks visual_novel visual_novel.xlsx
VNTextPatch insertlocal --format=kirikiriks visual_novel visual_novel.xlsx visual_novel_ru
__________________________
Если вы работаете в команде с кем-либо, то можно загрузить Excel-таблицу в виде Google-таблицы, что позволит переводить новеллу в онлайн-формате.
Для этого выполните следующую инструкцию:
1) создайте Google-таблицу;
2) нажмите на нужные кнопки в следующем порядке: Файл → Импортировать → Добавить → Обзор;
3) выберите созданную в VNTextPatch таблицу, а после, заменив в выпадающем списке вариант Создать таблицу на Заменить таблицу, нажмите на кнопку Импортировать данные.
Далее вам останется настроить доступ к файлу, то есть дать возможность редактировать его только участникам вашей команды.
По окончании перевода следует скачать таблицу, переместить в VNTextPatch, заменив находящуюся там ранее таблицу, и по описанным ранее правилам получить из неё обновлённые файлы SCN-формата. Важно: удалять папку с первоначальными скриптами, то есть с названием nekogami и без пометки ru, нельзя!
Для того чтобы создать patch.xp3, воспользуемся программой Xp3Pack.exe. Переносим папку patch на программу и отпускаем мышь. В результате у нас появляется patch.xp3.
Однако же данная игра не восприняла наш патч (и такой случай не является единичным). Чтобы перевод всё-таки был применён, нужно поместить в папку с игрой файл version.dll (он содержит шифрования множества игр модифицированной версии движка).
Если вы сделали всё правильно, то должно получиться так, как показано на скриншоте.
И как мы видим, русский текст успешно вставился. Тем не менее надпись с именем персонажа содержит большой межбуквенный интервал (хотя чаще всего, например в играх от FrontWing и Yuzusoft, такого не наблюдается). Чтобы исправить данную проблему, нам нужно поменять шрифт.
Это можно сделать несколькими способами. Конкретно в случае с игрой Nekogami нам нужно выполнить следующую инструкцию.
1) Открываем GARBro и переходим в data.xp3 (соблюдая шифрование ВН). Там заходим в папку main и извлекаем оттуда в папку patch файл Config.tjs.
2) Открыв Config.tjs, находим представленную на скриншоте ниже строку и меняем в ней значение マルベリ на スキップ
На скриншоте ниже представлен вид папки patch.
Далее вновь воспользуемся программой Xp3Pack.exe, а после, наконец, получим приятное для глаза отображение имени персонажа.
Кроме того, шрифт также регулируется файлом embfontlist.tjs. В нём же можно настроить и жирность текста. Подробнее это будет раскрыто на примере одной из игр Yuzusoft, а именно PARQUET, чуть позже в статье.
Графика
У игр движка KiriKiriZ графика может быть представлена либо в PNG-формате (тогда никаких трудностей не возникнет: нужно будет просто извлечь картинки из архива, перевести их на русский, а затем положить в будущий патч), либо в формате TLG (в таком случае для повторного превращения в TLG достаточно воспользоваться программой, описанной в начале статьи).
__________________________
Открываем архив data.xp3 через GARBro (соблюдая шифрование) и находим папку uipsd.
Так как новелла мультиязычна, открываем подпапку en (ведь мы работаем с английским языком).
Перед нами предстаёт формат изображений PIMG. Открыв его с помощью того же GARBro, мы видим множество TLG-картинок. Извлечём PIMG-файлы в папку patch.
Для работы с TLG-изображениями, заключёнными в файле с форматом PIMG, понадобится программа FreeMoteToolKit.
Ниже показан вид папки данной программы с перемещёнными туда PIMG-файлами.
Переведём главное меню. Для этого возьмём файл title_en.pimg (нужные нам картинки находятся в нём) и перенесём его на программу PsbDecompile.exe.
PNG-картинки русифицируем через любой фоторедактор, например, Adobe Photoshop.
________________________________________________
Закончив перевод графики в Photoshop, нужно добиться того, чтобы переведённая графика отображалась в игре, — то есть создать новый PIMG-файл.
Для этого находим созданный JSON-файл для выбранного PIMG-файла (в нашем случае — файл title_en.json) и переносим его на программу PsbBuild.exe.
Далее появится файл title_en.pure.pimg. Получив его, удаляем изначальный PIMG-файл, после чего убираем текст .pure из названия нового файла. Осуществляем данные манипуляции с каждым файлом графики.
Перемещаем всю переведённую графику в папку patch.
Вновь с помощью Xp3Pack.exe создаём patch.xp3 и получаем результат в игре.
Другие детали
Если вы хотите перевести название игры и верхнее меню (кнопки по типу File (F), Screen (S) и т. д.), то следуйте описанной ниже инструкции.
1) Откройте архив data.xp3. Зайдите в папку main и извлеките оттуда файл syslangtext_en.ini.
2) Переведите название игры.
Найдите текст, отвечающий за верхнее меню, и проведите с ним те же действия (на скриншоте ниже переведена лишь его часть).
В конечном счёте вы получите показанный ниже результат.
В данной игре всплывающие окна с текстом (например, представленная на скриншоте фраза Change setting tab в левом нижнем углу) не являются файлами графики. Они, так же, как и верхнее меню, переводятся в отдельном файле.
________________________________________________
Открываем архив data.xp3 (соблюдая шифрование). Далее в папке main находим TXT-файлы с префиксом help. Выбираем из таких файлов те, что содержат пометку en, и извлекаем их в папку для патча. Находим в них нужный текст и переводим его (на скриншоте ниже переведена лишь его часть).
Далее по уже известной схеме создаём новый патч с помощью Xp3Pack.exe и получаем желаемый результат.
Закончив перевод сюжета и графики, создаём конечный патч и в папку к нему прикладываем файл version.dll. Далее создаём архив — и перевод завершён.
________________________________________________
Иной способ получения доступа к файлам играм
Иногда GARBro не может корректно распаковать содержимое новеллы, из-за чего созданный с помощью неправильно извлечённых файлов патч либо будет проигнорирован игрой, либо вызовет ошибку.
Например, если таким образом пробовать вскрыть файлы сценария PARQUET, то VNTextPatch выдаст следующую ошибку:
Тогда на помощь нам может прийти KrkrExtract.exe.
Пароль от архива: 1111.
Перед скачиванием отключите безопасность системы Windows и вашего браузера. Программа не является вирусом; система ругается на неё потому, что та взаимодействует с исходным кодом движка.
Поместив её в папку к новелле, выбираем EXE-файл игры и наводим его на KrkrExtract.exe.
В итоге откроется окно, представленное ниже.
Следом наводим архив patch.xp3 (если он изначально существует в файлах выбранной вами ВН) и data.xp3 (программа работает с любым XP3-файлом) на это окно.
Ожидаем окончания процесса вскрытия архива.
В конечном счёте у нас появляется папка outPath.
И теперь, положив файлы сценария из архива scn.xp3 (его нужно распаковать таким же образом) в VNTextPatch, получаем показанный ниже результат.
Далее, применяя описанные ранее методики (см. пример с игрой Nekogami), переводим текст новеллы и имена персонажей, после чего используем команду insertlocal и получаем готовые файлы с расширением KS.SCN.
Важно отметить, что KrkrExtract.exe также позволяет упаковать вскрытые папки и создать архив patch.xp3.
Правда, конкретно с выбранной для примера визуальной новеллой PARQUET данная функция не работает. Однако в случае, например, с игрой Sanoba Witch от того же издателя никаких проблем с созданием архива патча не возникает.
________________________________________________
Как бы то ни было, рассмотрим процесс создания XP3-архива в данной программе.
1) Перемещаем скрипты в папку patch и вновь открываем программу KrkrExtract.exe.
2) Выбираем данную папку и наводим её на категорию Pack Setting.
3) Нажимаем на кнопку Make Package.
В итоге получаем результат ниже.
Вернёмся к игре PARQUET. Как я говорил ранее, способ создания XP3-архива через программу KrkrExtract.exe является нерабочим для этой ВН, а потому при работе с ней следует воспользоваться программой Xp3Pack.exe (не забудьте поместить файл version.dll в папку с патчем).
При проверке созданного в игре патча можно заметить, что русский текст является менее жирным, чем его английская версия.
Чтобы это исправить, перейдём в папку outPath, а после, открыв архив data.xp3, найдём в папке font файл embfontlist.tjs.
Если открыть данный файл через блокнот, то можно понять, что он зашифрован.
Убрать шифрование можно с помощью программы KirikiriDescrambler.exe. Для этого требуется перенести нужный TJS-файл на программу.
И теперь, получив возможность увидеть читаемый текст, меняем в файле следующие строки:
1) 源ノ角ゴシックB на スキップ
2) (const)%[ "name"=>"スキップ" на (const)%[ "name"=>"スキップ1"
Следом перемещаем изменённый файл embfontlist.tjs в папку patch и с помощью программы Xp3Pack.exe создаём патч для игры.
Теперь шрифт превратился в жирный под стать английскому, однако возникла проблема с переносом строк.
Для того чтобы сделать перенос строк удобным для читателя, вернёмся в папку VNTextPatch и найдём в ней файл VNTextPatch.exe.config, в котором можно настроить нужный нам параметр.
Сейчас в теге с ключом ProportionalLineWidth задано значение 1000. Попробуем изменить его на 800 (можно выбирать и другое, главное — узнать, как поведёт себя игра) и посмотрим, что произойдёт с переносом строк в новелле.
Очищаем папку parquet_ru от добавленных ранее KS.SCN-файлов, а затем, пользуясь командой insertlocal, снова создаём их.
Вновь собираем архив patch.xp3, заменяем им тот, что лежал в папке игры ранее, и получаем представленный ниже результат.
Стоит сказать, что трудности с переносом строк в ВН встречаются не всегда, поэтому если вы перевели какую-либо новеллу, создали для неё патч и, зайдя в игру, поняли, что не столкнулись с подобного рода проблемами, то лучше не меняйте никаких значений в файле VNTextPatch.exe.config.
Кроме того, по окончании работ с ВН не забывайте возвращать исходное значение (то есть 1000) в ключ ProportionalLineWidth — в противном случае вы рискуете получить таблицу с некорректными переносами при переводе уже другой игры.
________________________________________________
Вставка собственного шрифта в новеллу
Данная тема касается игр, построенных на старом движке. Напоминаю, что заметить такие новеллы можно по следующему признаку: их сюжетные файлы имеют расширение KS (а не KS.SCN).
Итак, рассмотрим добавление нового шрифта в ВН на примере игры Suki to Suki to de Sankaku Ren'ai.
Содержимое папки с данной новеллой можно увидеть ниже.
Создаём в папке с игрой папку patch. Открываем архив data.xp3 через GARBro и выбираем нужное шифрование среди предложенного списка (у программы ориентир на японское название новеллы).
Переходим в папку scenario, затем — в папку main. Там выделяем все KS-файлы, относящиеся к сценарию, и перемещаем их в папку патча.
Поскольку VNTextPatch работает с ВН, построенными на старом движке, нестабильно, я не буду его использовать, а открою файлы сценария через программу NotePad++.
Стоит сказать, что иногда файлы старых игр имеют нестандартную кодировку (а именно Shift-JIS). Если вы столкнулись с такой проблемой, то повторите действия, описанные на скриншоте ниже.
Для этого откройте файл через NotePad++ и поставьте файлу кодировку Shift-JIS.
Итак, мы получили доступ к сценарию игры. Важно: при переводе подобного рода файлов нужно менять только строки, относящиеся к сюжету, — иначе существует риск нарушить работу кода и получить ошибку.
Теперь рассмотрим последний известный мне способ создания архива XP3. Открываем GARBro, переходим в папку patch, выделяем всё её содержимое и нажимаем на кнопку Создать архив. Если у выбранной вами игры есть шифрование, то его необходимо указать при создании архива.
Однако если руководствоваться подобным способом с играми на KirikiriZ — созданный вами патч должен быть без шифрования, какое было у игры.
Находим в папке patch созданный файл patch.xp3 и переносим его в папку с EXE-файлом игры. Следом удаляем папку savedata, чтобы игра отреагировала на наши изменения.
Как можно заметить, текст отобразился. Кроме того, мы столкнулись с уже известными нам проблемами: непереведённым именем и большим межбуквенным интервалом.
Давайте исправим первую проблему. Для удобства создадим папку data в папке с игрой. Теперь извлечём все файлы архива data.xp3 туда.
Далее находим файл init_variableadv.ks, а уже в нём — имена персонажей.
Стоит отметить, что нужный файл с именами может находиться и в другом архиве (например, в title.ks) в зависимости от игры. Но все имена не разбросаны по разным файлам: они всегда лежат в одном определённом файле.
Понимая это, можно взять имя любого персонажа, встретившееся в сюжете, и просмотреть все KS- и TJS-файлы, используя в каждом из них комбинацию клавиш Ctrl + F.
Закончив работать с файлом init_variableadv.ks, переместим его в папку патча.
Возвращаемся к сюжетным файлам. С помощью замены меняем прописанные там имена на их переведённые версии.
И такое нужно проделать с каждым именем и в каждом сюжетном файле.
________________________________________________
Следом, используя GARBro, вновь создаём архив patch.xp3. Не забываем удалить папку savedata для того, чтобы изменения вступили в силу!
И теперь мы можем увидеть переведённые имена.
Осталась проблема с межбуквенным интервалом. Чтобы её решить, нужно поменять шрифт.
Открываем папку data, затем — папку system, а после заходим в файл config.tjs.
Ищём в нём строку, содержащую текст userFace =
В итоге наблюдаем, что в переменной userFace = заключён шрифт MotoyaLMaru (хотя чаще всего на его месте выступает японский MS). Меняем его на EET.
Важно отметить, что в таком случае вам следует приложить шрифт EET к вашему патчу, чтобы пользователь мог его установить.
К слову, в файле config.tjs можно поменять и название игры (однако у некоторых новелл оно может быть записано в override.tjs).
Теперь снова создадим XP3-архив патча с помощью GARBro, удалив при этом папку savedata, и запустим игру.
Таким образом, мы смогли решить проблему большого межбуквенного интервала другим способом — с помощью изменения шрифта в игре.
________________________________________________
Давайте увеличим размер текста. Для этого вернёмся в файл config.tjs, найдём там строку с переменной defaultFontSize = и изменим её значение с 20 на 25.
После применения изменений получаем представленный ниже результат.
В нашем случае никаких проблем с переносом строк в игре не возникло, однако так бывает не всегда.
Переносы регулируются файлом messagelayer.tjs. Открываем его и ищем в нём строку, содержащую переменную wwLeading, а далее меняем её значение, заключённое в кавычках, на следующее:
\\$([{「‘“(〔[{〈《「『【¥$£АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщэюяъыь.,
Поскольку графика в данной игре представлена в виде PNG-картинок, её можно легко перевести через любой фоторедактор и вставить в будущий патч.
Также важно сказать и о другом появляющемся в игре тексте:
— шрифт текста, находящегося в меню «История» у игр, построенных на старом движке, может быть изменён в файле historylayer.tjs;
— текст верхнего меню у игр на старом движке может находиться в файле menus.tjs;
— всплывающие окна с текстом могут встретиться в файле mainwindows.tjs.
В давней статье, ссылку на две части которой я оставлял в самом начале, поднимаются другие детали касаемо старого движка. Рекомендую к ознакомлению.
И конечно, не стоит забывать, что у игр на старом движке часто разнится структура файлов, отчего нужный текст приходится искать по всем KS- и TJS-файлам, как это было показано в примере перевода имён героев.
________________________________________________
Заключение
Как я уже говорил, уместить все тонкости и особенности работы с каждой ВН в одну статью просто нереально, а потому некоторые вещи вам придётся изучать самостоятельно. Тем не менее я надеюсь, что смог понятно объяснить вам основы перевода игр на движке KiriKiri.
На мой взгляд, понять движок KiriKiri и его модифицированную версию KiriKiriZ на базовом уровне (пригодном для возможности перевести ВН) не составит труда, поэтому разобраться в них, не обладая никакими навыками в области программирования, — вполне реальная задача.
________________________________________________
Все использованные программы:
EET — шрифт для русификации игр на старом движке;
FreeMoteToolKit — изменение формата графики с PIMG на PNG;
GARBro New — извлечение данных из XP3-архивов с выбором из множества шифрований, создание патча;
KirikiriDescrambler — возможность дешифровать TJS-файлы движка KiriKiriZ;
KrkrExtract — иной способ извлечения данных из XP3-архивов и создания патча;
Пароль от архива: 1111;
Перед скачиванием отключите безопасность Windows и безопасность в вашем браузере. Программа не является вирусом; система ругается на неё потому, что та взаимодействует с исходным кодом движка.
kr2_232r2EN — изменение формата графики с PNG на TLG;
LocaleEmulator — эмулятор локали: позволяет запустить игру, доступ к которой имеется только у систем с японской локалью;
NotePad++ — версия блокнота, учитывающая кодировку файлов;
ScnEditorGUI — иной способ работы с SCN-файлами сценария;
version.dll — содержит в себе шифрования множества игр, построенных на движке KiriKiriZ;
VNTextPatch — создание удобной таблицы для перевода текста;
Xp3Pack.exe — создание XP3-патча.
Похоже, кто-то наконец-то объяснил в подсайте Аниме, как пропатчить KDE2 под FreeBSD😁
А, да? Не знал)
Комментарий недоступен
Классно расписано.
По факту у нас большую часть переводов делают школьники и студенты, у которых свободного времени валом, им полезно будет почитать.
У самого руки доходят иногда только все картинки через нейронку прогнать и перепаковать в визуалках. Ну или шрифт поправить, чтобы с телика можно было читать.
Если хочется перевод для личного пользования, то тот же транслюмо всегда можно поверх накрутить. Кривенко, но для понимания происходящего сгодится.
А так, когда знаешь английский и работаешь, то желание сделать перевод на русский быстро пропадает. По крайней мере у меня. Ибо задача распаковать все файлы и придумать, как их править, лично мне куда интереснее самого процесса перевода.
Наконец-то хоть какой-то интересный лонг в подсайте, даже учитывая то, что я не собираюсь никогда переводить внки на KiriKiriZ. Я в целом не собираюсь переводить внки. Но текст реально годный, разложил все по полочкам со скринами, авось найдет своего читателя, хотя такое явно не на дтф постить надо
Куда ещё можно выложить? Здесь самое близкое к вн, что я нашёл. Анивизуал закрыт, новый сайт от НВН в процессе — иных ресурсов не знаю
Отличный лонг, спасибо за инфу, если когда нибудь моя ленивая жопа решит начать что то делать, то можно и заняться, столько хороших игр не переведено на русский...