Перейти к содержимому
Zone of Games Forum
Tericonio

Руководство по русификации игр от Adventure Game Studio

Рекомендованные сообщения

Программы для работы с файлами

agsutils, Любой HEX-редактор, Photoshop, Notepad++

 

Скрытый текст

 

Поддержка версии Adventure Game Studio (2.0 + /3.0 +)

Для распаковки исполняемого файла нам понадобится agsutils

Скачиваем с репозитория и извлекаем архив в удобное место к примеру на диск D:\

Переносим в папку agutils —  исполняемый файл с которым будем работать и запускаем из этой директории CMD

Команда распаковки исполняемого файла: agstract file.exe folder1

Команда распаковки AGS файла: agstract file.ags folder1

Если имя исполняемого файла с пробелом то закомментируем в кавычки, так же и Папку куда распаковывать, если у папки будет пробел

Скрытый текст

acsprset.spr // Спрайты игры

*.wfn //Информация о шрифте

*.ttf //Шрифт

agspack.exestub // Игровой Player или исполняемый файл самого движка

agspack.info //Информация о распакованных файлах

*.ogg //Внутренние файлы диалогов персонажей или комментариев разработчиков либо ещё музыка может быть

*.dta //Информация с текстами на кнопки, расположение текста и т.д.

*.pcx //Загрузочный экран — открывается в Photoshop

room*.crm //Комнаты в которых тоже присутствует текст и часть скриптов за их вывод

sprindex.dat // Всякие данные о спрайтах

 

 

Скрытый текст

 

agscriptxtract -oblf folder1 folder2

Редактирование *.s скриптов в folder2

Открываем в Notepad++ и находим через поиск li ax, "

В строке li ax, " — Будет текст диалогов

Ниже строк __NEWSCRIPTSTART — операнды диалогов из li ax 

Всё что ниже __NEWSCRIPTSTART  вырезаем в другой файл и сохраняем чтобы не мешало, пока переводим, а когда переведёте, верните назад в файл

Текст замещаем только в li ax, ",  а также смотрим на регулярки внимательно : \? & \’  \”

Пример 1: What…\? — Что\?.. = Что?..  ← Итог

Пример 2: &What… — &Что... = Что...  ← Итог

Пример 3: \’ What\’ … — \’ Что\’... = ‘Что’... ←  Итог

Теперь преобразовываем в кодировку ANSI и сохраняем

 

Скрытый текст

agssemble folder2/script.s

 

Скрытый текст

 

К примеру, мы распаковали игру и у нас вышли такие *.s скрипты

dialogscript.s / gamescript0.s /gamescript1.s /globalscript.s /room1.s /room2.s

Упаковка будет такая:

agsinject 0 RU_s/globalscript.o RU/game*.dta   //(0 — первый скрипт на упаковку в *.dta) (Первый глобальный)
agsinject 1 RU_s/dialogscript.o RU/game*.dta  //(1 — второй скрипт на упаковку в *.dta) (Второй диалоговый)
agsinject 2 RU_s/gamescript0.o RU/game*.dta  //(2 — третий скрипт на упаковку в *.dta) (Третий внутриигровой)
agsinject 3 RU_s/gamescript1.o RU/game*.dta  //(3 — четвёртый скрипт на упаковку в *.dta) (Четвёртый внутриигровой)

и т.д. если gamescript2 то уже будет после:  agsinject 4

Для комнат всегда будет 0
agsinject 0 RU_s/room1.o RU/room1.crm  //(0 — первый скрипт на упаковку в *.crm поскольку скрипт в комнате всегда будет один)
agsinject 0 RU_s/room2.o RU/room2.crm  //(0 — первый скрипт на упаковку в *.crm поскольку скрипт в комнате всегда будет один)

 

Поскольку текст не весь распаковывается из скриптов то часть остаётся ещё в *.crm и *.dta

 

Скрытый текст

После того как уже перевели в скриптах диалоги и вставили обратно в *.crm

Открываем в HEX-редакторе *.crm поэтапно

Первые 3 байта заголовок комнаты 21 00 01

2-3 байта размер секции или смещение (будем править после перевода до секции SCOMS/SCOMZ — самого скрипта)

с 5/6 байт по 0a — 0 байты

Со смещения 0x0b начинается первый отрезок комнаты и будет начало первого отрезка указанное в смещении 0x03

Теперь переходим к смещению 0x101, если первый текст объекта No hotspot или Hotspot*, то такие не переводим, а ищем между ними или же бывает объекты начинаются для перевода со смещения 0x101 (сам текст) а размер на смещении 0xFD

Включаем режим вставки, чтобы текст не замещался а вставлялся в кодировке ANSI (А  — С0) и перед объектом-текста за минусом 4 байта длина текста

Пример: 04 00 00 00 54 65 78 74 00 00 00 00 (04 — размер  3 байта нулевых поскольку предложение даже не превышает значение ff  и дальше пошёл текст 54 65 78 74 — Text)

Когда всё перевели между No hotspot и Hotspot* и заменили размер байтов перед текстом, ищем Начало следующей части комнаты, а именно SCOMZ или SCOMS,  и слева от SCOM через -9 байт будет начало первого нашего отрезка, сразу же после разделителя 07 (ID Скрипта) — И теперь выделяем с этой части и до 0x0b и будет наш размер или смещение на первую часть, и вписываем в смещение с 0x03 в перевёрнутом виде : 1с20 = 201с или 10020 = 200001

 

Как только заменили первый участок, ищем следующий через текст юКпѕ — сразу после него будет разделитель комнаты — 1 байт, а после будет уже размер отрезка — начало отсчёта 8 байт (количество объектов) после смещения и будет отрезок до следующего разделителя, и переводим так же как и в начале *.crm файла и после перевода и исправления размера перед текстом правим размер этого отрезка и сохраняем и так проделываем со всеми скриптами *.crm

 

Скрытый текст

После того как упаковали все скрипты обратно в *.dta 

Открываем в HEX-редакторе в 3 частях файла

 

Первая часть

После смещения 1800 будет первый текст на объекты или предметы, который надо переводить

Здесь не включаем Режим вставки, а просто замещаем текст 

Размер общего блока под объект/предмет 44 байта, под текст где-то 16 байт 

Править смещения не надо или размер общего файла

 

Вторая часть

Теперь переходи к последнему скрипту SCOM по поиску через юКпѕ

И после этих строк до btn или lbl находим имена персонажей, оставшиеся диалоги выбора или какой либо ещё текст

Для имён персонажей 24 байта для вариантов ответов или вопросов или диалогов 94 байта

Так же вставляем текст как и в первой части

 

Третья часть

Это оставшаяся часть с редактированием текста в btn  или lbl, и сам размер перед текстом  -4 байт и с включённым режимом вставки

В этом же месте можно изменить расположение текста и кнопок по осям X и Y (позднее напишу)

 

Скрытый текст

agspack -e folder1/ file.exe

Под обновление

Изменено пользователем Tericonio
  • Спасибо (+1) 2

Поделиться сообщением


Ссылка на сообщение

В игре Rosewater (движок версии 3.6.0) есть уже файл German.tra с немецким переводом. Может есть способ проще русифицировать игру, без ковыряния ассетов в Rosewater.ags? Просто правкой этого German.tra? По инструкциям, которые нашёл, утилитой AGSUnpacker почему-то ничего не получается.  Декомпилирую .tra в .trs, делаю правки в файле. Затем снова компилирую в German.tra. В игре ничего не меняется :( В чём может быть причина? Утилита не работает?

Поделиться сообщением


Ссылка на сообщение

@Chaves Dudevich у меня ничего не получается. Делаю изменения в немецком тексте в .trs, компилирую в .tra, и в игре изменения не отображаются. Вижу только что некоторые немецкие буквы поломались... На немецкий язык в настройках, естественно, меняю. Вы какой утилитой делаете изменения? Дайте её, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
2 часа назад, Chaves Dudevich сказал:

@Amigaser В самой игре язык поменяйте, чтобы German.tra работал.
 photo-2025-04-01-17-58-55.jpg

1 час назад, Amigaser сказал:

@Chaves Dudevich у меня ничего не получается. Делаю изменения в немецком тексте в .trs, компилирую в .tra, и в игре изменения не отображаются. Вижу только что некоторые немецкие буквы поломались... На немецкий язык в настройках, естественно, меняю. Вы какой утилитой делаете изменения? Дайте её, пожалуйста.

По опыту официальной локализации игр на движке Adventure Game Studio могу сказать, что важно соблюдать исконную кодировку файла при работе с ним. 

Смотрите. Допустим, вы открыли .trs файл в Notepad++. Внимательно посмотрите на немецкий текст — вы увидите, что часть немецких букв искажена из-за того, чтобы кодировка при открытии определилась неправильно. 

okGVquz.png

А теперь меняем кодировку с ANSI на ISO-8859-1.DOS и получаем:
gjek5aB.png


Хотя не знаю, сохранит ли Notepad++ нормально.
В своё время я менял текст в trs файлах от этих игр через wxMEdit.

Изменено пользователем 0wn3df1x

Поделиться сообщением


Ссылка на сообщение

@Chaves Dudevich я тоже именно ей всё делаю. Использую последнюю версию (08) из репозитория. Там, по сути, две кнопки Decompile TRA и Compile TRS. Не получается как у вас изменить текст. А в каком редакторе вы редактировали текст в trs-файле? В какой кодировке он у вас открывается в редакторе?

@0wn3df1x Я редактирую trs-файл в Notepad++. В нём этот файл, который создала утилита AGSUnpacker, открывается в UTF-8 кодировке, и там все немецкие буквы отображаются нормально. Попробовал менять кодировки trs-файла, но ничего не помогает. Текст, который я добавляю в немецкую фразу вообще не появляется. :( Но про немецкие буквы вы правы, напр., если компилировать trs в ISO-кодировке, то буквы во фразах не ломаются. Но на кнопках всё равно ломаются.

Поделиться сообщением


Ссылка на сообщение

@Amigaser Редактировал в Notepad ++. Файл открывается в кодировке UTF-8. Предварительно еще распаковал ресурсы и сгенерировал game.id.

Поделиться сообщением


Ссылка на сообщение
1 час назад, Chaves Dudevich сказал:

Предварительно еще распаковал ресурсы и сгенерировал game.id.

Это для чего? В общем разобрался с текстом во фразах. Он появляется только если делать правку в “нумерных” строчках. Но шрифты в игре без русских букв.  Внешние русские шрифты agsfntХ.ttf не кушает. Вернее кушает, но русские буквы не отображаются. :( 

UPD. Со шрифтами разобрался. Они отображаются когда файл trs перед компиляцией переконвертировать из UTF-8 в ANSI. 

Изменено пользователем Amigaser

Поделиться сообщением


Ссылка на сообщение

Непонятно что делать с кнопками меню и пр. надписями. Изменения в текстах отображаются только для “нумерованных” строк. А все надписи на кнопках и в меню — в “обычных” строках. Видимо, утилита не всё правильно “декомпилирует” из tra. :( 

Поделиться сообщением


Ссылка на сообщение

@Amigaser 

Через *.trs не весь текст подхватывается, сам движок AGS так устроен, что часть текста не может декомпилировать в данные текста в файл *.trs

Часть текста бывает в изображениях — Надо смотреть файлы спрайтов и потрошить их

Часть текста бывает в сценах — Надо смотреть файлы комнат и потрошить их

Поэтому я и написал руководство по русификации на движке AGS, а не руководство по *.trs

Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение

Понятно. Сильно заморочно русифицировать такие игры. Я попробовал перевести текст кнопки в начальном меню по вашей инструкции. Но, к сожалению, не получилось, игра крашилась. Наверно, что-то не так сделал. Видимо, не буду заниматься переводом игры. Инструкция полезная, но слишком сложно для не профессионалов. Особенно возня с правками в hex-редакторе. Жаль что нет удобных GUI утилит для прямой правки ресурсов игры, напр., как для Unity.

Изменено пользователем Amigaser

Поделиться сообщением


Ссылка на сообщение

@Amigaser рано сдались. Сгенерированный trs файл конкретно для Rosewater должен быть в UTF-8. Если файл получен из tra, то в его начало нужно добавить строчку “//#Encoding=UTF-8”, тогда проблем с порченными символами не будет. Это бага в AGSUnpacker v08, он не считывает кодировку из tra файла если в нем есть блок настроек.

Что касается непереводимости текста кнопок в меню… На самом деле все переводится, просто разработчик для немецкого языка захардкодил текст этих самых кнопок на немецком. Проще говоря, когда выбран немецкий язык, игра ищет перевод не для “New Game”, а для “Neues Spiel”. Если в trs файл добавить перевод для этой строки, то текст начинает подхватываться.

HOKATvI.jpeg

Содержимое trs файла:

//#GameId=1087995093
//#GameName=Rosewater
//#Encoding=UTF-8
Neues Spiel+
TEST+

 

Поделиться сообщением


Ссылка на сообщение

@adm-244 с кодировкой понятно. А вот куда добавлять перевод строки, так и не понял. :( Утилита AGSUnpacker делает trs-файл German.trs, в котором есть вот такие строки

……
New Game+
Neues Spiel+
New Game
Neues Spiel
Load Game
Spiel laden
Settings
Einstellungen
Continue
Weiter
Quit Game
Spiel beenden
…...

Где и что мне нужно поменять, чтобы изменить надпись на кнопке, напр., Neues Spiel, чтобы это отобразилось в игре? В самом начале в первом меню игры. Объясните, пожалуйста, мне тупому… А лучше скиньте такой правленный trs-файл.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • Если наложить перевод от Erebus Production на оригинальный перевод + озвучка, будет ли результатом оригинальная русская озвучка + перевод от Erebus Production?
    • из описания не очень понятно, на сколько завершен перевод. 0.8 = 80% переведено? 
    • Нужен ли перевод?
      Перевод RAIDOU Remastered: TMOTSA - Perevodi | Boosty
    • Надо ресурсы проверить, может там как с Персоной в своё время, обнаружат недоделанный перевод, который с обновой активируют и выпустят в релиз
    • ИСТОРИЯ: "О, проклятая святая, обретет ли твоя душа свет, или ты навсегда потеряешься во тьме?" Ужасное проклятие окутывает королевство мраком, ввергая его в полное отчаяние и стирая весь свет. Однажды с севера появляется дева и прогоняет тьму, вновь наполняя землю светом. Однако, поглотив все тени, дева оказывается поглощенной злом, позволяя ему вырваться из ее тела. В последней попытке запечатать то, что ускользнуло, девушка запирается на ключ. Король, движимый страхом, требует смерти девушки, чтобы спасти свое королевство. Множество воинов отправляются в путь, пытаясь убить девушку, но тьма проклинает всех, кто осмеливается посягнуть на нее, создавая еще большее зло, которое поглощает королевство. Возьмите в руки оружие, как следующий храбрый воин, чтобы спасти землю и изгнать тени! ГЕЙМПЛЭЙ:
      Выберите одно из пяти мест происхождения: жизни людей, которые едва не стали героями, и все они обладают разными навыками и умениями. Унаследуйте одно из их тел как свое собственное и начните свой героический путь. У "Сердца тьмы" несколько концовок, в зависимости от выбранного вами места происхождения и решений, которые вы принимаете на протяжении всего приключения. Наслаждайтесь быстрыми пошаговыми сражениями, в которых стратегия и выбор союзников играют ключевую роль! Найдите Теневые души — духи воинов прошлого — и заручитесь их поддержкой в битве! Каждый из них имеет свою уникальную предысторию и способности, и их можно свободно менять местами. На протяжении всего вашего приключения вы встретите как друзей, так и врагов, также исследующих Святилище. Выполняйте задания, чтобы усмирить могущественных зверей или разыскать семейные реликвии павших благородных домов. Управляйте "Покоем куклы", вашей операционной базой, где вы сможете больше узнать о мире, создать новое оборудование и расширить особняк, добавив в него новые помещения! Разгадайте тайны, окутывающие Святилище Тьмы и его обитателей, в этой зловещей RPG, которую представили вам Kagura Games и BigWednesday. История в стиле темного фэнтези Королевство Хайярд - одна из самых отдаленных границ человечества, и многие искатели приключений сходят с ума, пытаясь противостоять опасностям Святилища. Какой будет ваша судьба? Множество классов Выберите класс, соответствующий вашему стилю игры, который повлияет как на то, как вы будете сражаться, так и на то, как будет развиваться ваша история. Несколько союзников-Душ Теней Найдите души героев прошлого и наберите их в помощь в ваших поисках, повышая их уровень по своему усмотрению. Быстрый стратегический бой Используйте как свои собственные способности, так и способности Теневых Душ, а также используйте статусные эффекты в своих интересах в бою. Большой выбор персонажей От благородных охотников до трусливых мародеров, познакомьтесь с несколькими яркими персонажами во время исследования Святилища и узнайте, как развиваются их истории. Языки локализации: Японский, китайский и английский. https://store.steampowered.com/app/1413990/The_Heart_of_Darkness/
    • Ну смотря чем другим отвлекаться Занятий по вечерам после работы можно много найти. Не каждый же день синячить
    • Это уже @RikuKH3 просить нужно перезалить.
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


Zone of Games © 2003–2025 | Реклама на сайте.

×