ДвижкиРуководстваFAQPatreonDiscordСкачать
Войти
RuneTranslate · перевод японских игр от и до
ДвижкиРуководстваСравнениеТекст на картинкахРедактор сохраненийРежим читовFAQСкачатьPatreonDiscordYouTubeКонфиденциальностьУсловияКонтакты
Все статьи
unity · tutorial · engine

Как перевести игру на Unity на английский

9 июн. 2026 г.·6 мин чтения

Переводите игры на Unity с RuneTranslate — читая TextAsset, поля MonoBehaviour (Mono и IL2CPP) и StreamingAssets, почему это только вынесенный текст и как защита идентификаторов удерживает вас от поломки игры.

Unity — движок, стоящий за растущей долей японских инди-игр и визуальных новелл — и самый хитрый из распространённых движков для перевода, потому что у Unity нет единого формата текста. Диалоги могут жить в блобах TextAsset, в строковых полях MonoBehaviour, в россыпных скриптах StreamingAssets или скомпилированными прямо в DLL на C#. Это руководство проводит через перевод игры на Unity с RuneTranslate и, что не менее важно, объясняет одно правило, что делает Unity другим: только вынесенный текст.

Сначала большая оговорка: только вынесенный текст

RuneTranslate переводит текст Unity, который живёт в данных — файлах ресурсов, которые движок загружает во время выполнения, включая строковые поля на компонентах MonoBehaviour (диалоги, имена, подписи). Он читает эти поля на сборках Mono и IL2CPP: раскладка типов приходит из собственных DLL игры на Mono или реконструируется из метаданных IL2CPP, когда нет папки Managed/. Чего он не может достичь — это текст, захардкоженный в сам скомпилированный C#-код (Assembly-CSharp.dll). На практике игры, которые держат свой скрипт в ресурсах и компонентах, переводятся хорошо — и открытие проекта, первый шаг, говорит вам, что у вас есть.

Что вам нужно

  • RuneTranslate для Windows — бесплатно, каждый движок и провайдер разблокирован.
  • Папка игры Unity — каталог с .exe игры и папкой <GameName>_Data/ (содержащей globalgamemanagers, resources.assets, data.unity3d и файлы level*).
  • Целевой язык — английский, испанский, французский, немецкий, португальский, русский, китайский, итальянский, турецкий, вьетнамский и 20+ других.
  • Один провайдер перевода. Бесплатный Google Translate работает из коробки; у DeepL есть бесплатный тариф; OpenAI, Anthropic, локальная модель и любой OpenAI-совместимый API — со своим ключом.

Шаг 1: Откройте папку игры

Запустите RuneTranslate, нажмите New project и укажите его на каталог игры Unity. Определение движка ищет папку _Data/ и идентифицирует проект как Unity. Встроенный Python-сайдкар UnityPy (поставляемый внутри установщика) открывает файлы ресурсов и перечисляет читаемые строки в рабочее пространство проекта под %APPDATA%/RuneTranslate/unity-workspace/<projectId>/. Ваша оригинальная папка игры никогда не изменяется. Unity — это движок best-effort — проверьте, что экспортированная сборка запускается, перед распространением.

Шаг 2: Как извлекаются строки

RuneTranslate читает текст из каждого места, где Unity выносит его наружу:

  • TextAssets — блобы JSON / CSV / скриптов, встроенные в .assets и AssetBundles, нарезанные формат-осведомлённым экстрактором.
  • Строковые поля MonoBehaviour — отображаемый текст на компонентах (диалоги, имена, подписи), на сборках Mono и IL2CPP (информация о типах приходит из DLL игры или реконструируется из метаданных IL2CPP).
  • StreamingAssets — россыпные файлы скриптов, обходимые напрямую на диске (.json, .txt, .csv, .tsv, .xml, .yaml, .ks и другие).
  • Зашифрованные Addressable-бандлы — игры, которые AES-шифруют свои Addressable-бандлы ресурсов, расшифровываются автоматически (ключ выводится из собственного имени файла бандла), поэтому их текст извлекается как любой другой бандл.

Unity — это также место, где чрезмерный перевод наносит больше всего урона, поэтому RuneTranslate поставляет защиту для этого. Многие строки MonoBehaviour вообще не отображаемый текст — это управляющие идентификаторы и операнды потока: имена сцен, которые вызов LoadScene разрешает по строке, ключи маршрутизации сообщений, имена клипов анимации / звука, имена частей Live2D и значения сравнения внутри логики Fungus If / SetVariable (например, флаг вроде 村落出口). Переведи их — и игра тихо ломается — классический симптом это бесконечный экран «загрузки» без ошибки. RuneTranslate автоматически классифицирует их как исключённые (показаны красным, только по опциональному включению), поэтому редактор выводит настоящие диалоги и подписи и оставляет механику в покое. Подстановки Fungus {$var} и разметка {color=...} / TMP <...> маскируются за плейсхолдерами, чтобы они пережили перевод нетронутыми.

Шаг 3: Переведите и проверьте

Выберите провайдера и запустите. DeepL или LLM читаются лучше всего для диалогов; бесплатный Google Translate покрывает меню и названия предметов. Внесите ваш состав и повторяющиеся термины в глоссарий сначала — см. Глоссарий 101. Каждая строка попадает в редактор рядом с её источником; редактируйте инлайн (сохраняется при потере фокуса или Ctrl+Enter) и запустите необязательный AI-доработчик для вычитки вторым проходом. Бесплатный тариф работает с умеренным ограничением скорости (примерно в 2× медленнее на AI-провайдерах, меньше на скраперах) — те же движки, то же качество вывода; платный просто работает на полной скорости.

Шаг 4: Экспортируйте играбельную сборку

Нажмите Export. RuneTranslate копирует игру, затем патчит переведённые строки обратно в файлы ресурсов на месте. Та же защита исключений работает при обратной записи, поэтому старый проект не может случайно протолкнуть переведённое имя сцены или операнд потока при повторном экспорте. Вывод — полная, играбельная копия игры в выбранном вами месте — запустите .exe — и она играется на вашем целевом языке.

Переводите на не-латинский язык (китайский, японский, корейский, тайский, арабский), чьи глифы встроенный шрифт игры не может отобразить? RuneTranslate внедряет резервный шрифт в стек шрифтов TextMeshPro при экспорте, так что переведённый текст показывается вместо квадратиков отсутствующих глифов.

Известные ограничения

  • Только вынесенный текст: строки, захардкоженные в скомпилированный C#-код (Assembly-CSharp.dll на Mono или бинарник IL2CPP), не переводятся. Поля данных MonoBehaviour — да, на сборках Mono и IL2CPP.
  • Чтение MonoBehaviour на IL2CPP требует разбираемого global-metadata.dat; сильно обфусцированные метаданные могут не реконструироваться (best-effort).
  • Best-effort: подтвердите, что экспортированная игра запускается и читается корректно, перед тем как делиться ею.
  • Текст на изображениях (логотипы, нарисованный вручную интерфейс, подписи CG) не переводится — вне области машинного перевода.

Почему это проще старого способа

Ручной перевод Unity означал распаковку ресурсов с помощью UABE или AssetStudio, охоту за тем, какие TextAssets и поля MonoBehaviour держат настоящий текст, ручное избегание строк-идентификаторов, что роняют игру, затем повторный импорт без порчи таблицы ресурсов. RuneTranslate складывает извлечение, классификацию (чтобы вы не переводили механику), перевод и патч-на-месте в несколько кликов — с редактором открытым, чтобы вы контролировали формулировки.

Смотрите страницу движка Unity для полного списка функций, читайте руководство по TyranoBuilder про движок на основе HTML или скачайте RuneTranslate и попробуйте его на реальной игре.

Похожие материалы
01

Как перевести файлы .po и .mo игры (gettext)

gettextpomoenginetutorial4 авг. 2026 г. · 7 мин
Читать →
02

Как перевести игры на Godot на английский

godotenginetutorial17 июн. 2026 г. · 6 мин
Читать →
03

Как перевести игру на Ren’Py на английский (полное руководство)

renpytutorialengine9 июн. 2026 г. · 6 мин
Читать →

Готовы попробовать RuneTranslate?

Бесплатный тариф открывает все движки и всех провайдеров перевода. Supporter ($3/mo) открывает полную скорость.

Скачать для Windows