Как перевести визуальные новеллы на движке Artemis на английский
RuneTranslate переводит визуальные новеллы на Artemis Engine (iMel/Mikage) на английский и 30+ языков — читая архивы .pfs (включая шифрование PF8), извлекая диалоги и варианты выбора и экспортируя патч-переопределение root.pfs, который загружает игра. Best-effort.
Чтобы переводить игры на Artemis Engine, RuneTranslate читает фреймворк, который долго был почти неприкасаемым для фан-переводчиков: Artemis Engine, фреймворк визуальных новелл на основе Lua, стоящий за сотнями японских релизов. Откройте папку игры Artemis, и вы найдёте кучу архивов .pfs и ничего читаемого. RuneTranslate определяет движок, открывает эти архивы на чистом TypeScript (шифрование и всё прочее), читает диалоги, имена персонажей и варианты выбора из его скриптов и экспортирует переведённую копию, которую игра загружает сама.
У Artemis годы вариаций от студии к студии, поэтому если вы указываете RuneTranslate на игру Artemis, а он не определяет, не открывает или экспортирует то, что игра не загружает, скажите нам — о том, как, в конце.
Что такое Artemis Engine на самом деле
Artemis — коммерческий японский движок визуальных новелл, разработанный iMel Inc. (студией, также известной как Mikage). Там, где более старые движки вроде Kirikiri или NScripter выставляют собственный предметно-ориентированный скриптовый язык, Artemis построен вокруг Lua — его скрипты сценариев по сути являются таблицами данных Lua — что делает его гибким для разработчиков, но на практике стеной для любого, кто пытается перевести готовую игру снаружи. Около 730 релизов на VNDB построены на нём, поэтому это далеко не нишевая диковинка; это целый бэк-каталог, который инструменты машинного перевода исторически пропускали.
На диске игра Artemis — это Windows-.exe плюс один или несколько ресурсных архивов .pfs, которые хранят скрипты, арт и звук. Скрипты внутри — в основном файлы .ast (скрипты сценариев в виде Lua-таблиц) и файлы .txt (более простой построчный формат). RuneTranslate работает напрямую из этих архивов и скриптов, поэтому он покрывает игру независимо от того, поставила студия сценарии как .ast или .txt.
Почему игры Artemis было так трудно переводить
По сравнению с движком на исходниках вроде Ren’Py, Artemis прячет свой текст за несколькими слоями. Несколько конкретных держали его вне досягаемости как для ручных переводчиков, так и для наивных инструментов:
- Всё живёт внутри архивов `.pfs`. Скрипты не россыпью на диске — они упакованы в собственный контейнерный формат Artemis
.pfs(вы увидите вариантыPF8,PF6и устаревшийPF2). Без ридера для этого формата вообще нечего редактировать. - Новейшие архивы зашифрованы. Текущий формат
PF8не просто упаковывает файлы, он шифрует их содержимое: каждая запись XOR-ится с ключом, выведенным из хешаSHA-1собственного индекса архива. Нельзя просто вырезать байты — нужно воспроизвести вывод ключа движком, чтобы получить читаемый скрипт обратно. - Скрипты — это данные Lua, а не обычный текст. Сценарий
.ast— это Lua-таблица: диалоги, имена говорящих и варианты выбора — вложенные поля внутри структурированных таблиц, перемешанные с командами движка. В природе две раскладки таблиц (более старая v1 и более новая v2), и переводчику нужно понимать обе, чтобы вытащить собственно произнесённые строки, не искорёжив структуру вокруг них. - Инлайн-команды движка вплетены сквозь диалоги. Аннотации руби/фуригана, таблички имён, смены цвета и клик-ожидания написаны инлайн с текстом. Поиск-и-замена, который их не распознаёт, переведёт и командные токены, и игра ломается.
Итог: даже переводчик, свободно читающий по-японски, сначала должен распаковать проприетарный зашифрованный контейнер, затем вручную разобрать таблицы Lua, затем аккуратно обойти инлайн-разметку — прежде чем будет переведена хоть одна строка. Это та работа, что RuneTranslate теперь делает за вас.
Что RuneTranslate делает сейчас
RuneTranslate относится к Artemis как к полноценному движку и обрабатывает весь конвейер на чистом TypeScript — никаких внешних инструментов, никакого Python-сайдкара, ничего устанавливать не надо:
- Читает архивы `.pfs` напрямую. Он открывает форматы архивов
PF8,PF6и устаревшийPF2внутри себя, включая XOR-шифрование PF8 на ключе `SHA-1` — воспроизводя вывод ключа движком, чтобы содержимое скрипта вышло читаемым. - Извлекает диалоги, имена и варианты выбора. Он парсит читаемые скрипты сценариев
.ast(Lua-таблицы) — как более старую раскладку v1, так и более новую v2 — скрипты.txt(построчные), И скомпилированные бинарные сценарии `ASB`, которые многие игры реально поставляют (определяются по сигнатуре, даже когда переименованы в кастомное расширение вроде.iet), и перечисляет каждую переводимую строку в редакторе: произнесённые диалоги, имена персонажей на табличках имён и ветвящиеся варианты выбора. - Сохраняет команды движка. Инлайн-разметка — руби/фуригана, таблички имён, цвет, клик-ожидания — и переводы строк маскируются за числовыми плейсхолдерами, прежде чем что-либо достигнет провайдера перевода, затем восстанавливаются точно на выходе. Текст переводится; инструкции движка — нет.
- Экспортирует патч переопределения. Artemis читает свои скрипты из смонтированных архивов
.pfs, поэтому при экспорте RuneTranslate записывает переведённый патч-архив переопределения — файлroot.pfs.NNN, по одному на каждый исходный.pfs— в копию игры. Artemis монтирует архив с наибольшим номером последним и читает из него, поэтому патч затеняет упакованные оригиналы без пересборки собственных архивов игры. (Переведённые скрипты также записываются россыпью как безвредное дополнение.) Это та же идея патча переопределения, что и в нашем потоке патча Kirikiri.
Японский → английский — золотая середина, но вы можете нацелиться на любой из 30+ языков — испанский, французский, немецкий, португальский, русский, китайский, итальянский, турецкий, вьетнамский и другие.
Что вам нужно
- RuneTranslate для Windows — бесплатно; каждый движок и провайдер разблокирован (бесплатный тариф ограничен по скорости, не по функциям).
- Папка игры Artemis. Это каталог, содержащий
.exeигры и её архивы.pfs(скрипты и ресурсы упакованы внутри них). - Целевой язык — английский, испанский, французский, немецкий, португальский, русский, китайский, итальянский, турецкий, вьетнамский и 20+ других.
- Один провайдер перевода. Бесплатный Google Translate работает из коробки; у DeepL есть бесплатный тариф; OpenAI, Anthropic, локальная модель (Ollama / LM Studio) и любой OpenAI-совместимый API — со своим ключом. Игры Artemis насыщены диалогами и чувствительны к тону, поэтому LLM (OpenAI / Anthropic) или DeepL обычно читаются лучше всего.
Шаг 1: Откройте папку игры
Запустите RuneTranslate, нажмите New project и укажите его на каталог игры Artemis. Определение движка запускается автоматически — когда оно видит архивы .pfs движка, оно распознаёт проект как Artemis. Ваша оригинальная папка игры никогда не изменяется.
Шаг 2: Как читаются скрипты
RuneTranslate открывает архивы .pfs и вытаскивает скрипты за вас, расшифровывая и разбирая по ходу:
- Зашифрованные архивы `PF8` — расшифрованы внутри с использованием схемы XOR на ключе
SHA-1, поэтому вы никогда не запускаете отдельный распаковщик. - Незашифрованные архивы `PF6` / устаревшие `PF2` — читаются напрямую.
- Скрипты `.ast` и `.txt` — разобраны на диалоги, имена и варианты выбора и перечислены в редакторе, сгруппированные по файлу.
Инлайн-команды движка и переводы строк маскируются за числовыми плейсхолдерами, прежде чем что-либо достигнет провайдера, затем восстанавливаются на выходе — так что аннотации руби, таблички имён и теги цвета переживают круговой обход нетронутыми.
Шаг 3: Переведите
Выберите провайдера и запустите. Для визуальной новеллы LLM (OpenAI / Anthropic) лучше всего для голоса персонажа и тона, DeepL быстр и чист для повествования, а бесплатный Google Translate годится для коротких строк меню и вариантов выбора. Внесите ваш состав и повторяющиеся термины в глоссарий заранее, чтобы имена отображались одинаково на протяжении всей игры — см. Глоссарий 101. Когда закончите, необязательный проход AI-доработчика перечитывает каждую строку в контексте и подтягивает жёсткие, буквальные формулировки, которые машинный перевод склонен оставлять.
Шаг 4: Экспортируйте готовую к запуску копию
Нажмите Export. RuneTranslate записывает переведённую копию игры с патч-архивом переопределения root.pfs.NNN — по одному на каждый исходный .pfs — который Artemis монтирует последним и читает в предпочтение к упакованным оригиналам. (Переведённые скрипты также кладутся россыпью как безвредное дополнение.) Запустите её — и игра играется на вашем целевом языке.
Известные ограничения
- Скомпилированные сценарии `.asb` читаются — многие игры Artemis поставляют сценарий как скомпилированный бинарный AST (форма, начинающаяся с маркера
ASB) вместо читаемых.ast/.txt, и некоторые переименовывают расширение (одна протестированная нами игра использует.iet). RuneTranslate определяет это по сигнатуре, а не по расширению, и переводит на месте. Там, где игра хранит имена говорящих в графике или как имена команд, а не как внутрискриптовый текст, эти имена приходят из потока текста на изображениях, а не из скрипта — если имя остаётся японским, обычно поэтому. - Патч переопределения — путь загрузки. Переведённый архив
root.pfs.NNN— это то, что игра реально читает. На редком тайтле, который монтирует архивы иначе, экспорт может потребовать корректировки — ровно то поведение на реальных играх, что мы укрепляем по мере поступления сообщений. - Текст, запечённый в графический арт — заставка или кнопка меню, нарисованные как растр — это пиксели, а не скриптовый текст, поэтому экстрактор скриптов до него не дотянется. Для этого см. перевод текста на изображениях.
- Точный вариант архива и скрипта может отличаться между релизами. Всегда проверяйте на вашей конкретной копии.
Наткнулись на загвоздку? Скажите нам
Ридер .pfs, шифрование и парсеры .ast / .txt / .asb построены и покрыты юнит-тестами, но у Artemis годы вариаций от студии к студии. Если игра не определяется, не открывает архивы, ничего не извлекает или экспортирует то, что она не загружает, сообщите об этом в наш Discord — название игры и то, как она упакована (какой вариант .pfs, .ast против .txt против .asb), — ровно то, что помогает нам укрепить это быстрее всего.
Скачайте RuneTranslate, укажите его на ту ВН на Artemis, которую вы хотели прочитать, и попробуйте. Чтобы взглянуть, как мы обрабатываем другой архивный движок ВН, читайте дальше разбор Kirikiri.
Готовы попробовать RuneTranslate?
Бесплатный тариф открывает все движки и всех провайдеров перевода. Supporter ($3/mo) открывает полную скорость.
Скачать для Windows
