Перейти к содержимому
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) 3
  • +1 1

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


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

В игре 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-файл.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

    • Сам стим не выставляет цены, это делают издатели. Если меняется ндс, то цена автоматически не поменяется, вальвы просто больше начнут изымать с профита от продаж у издателей для уплаты ндс.
    • Это только у меня или после перевода часть пунктов меню тупо с ошибкой?
      https://postimg.cc/D8spw934
    • Прошел демку отличной головоломки: https://store.steampowered.com/app/4232550/Cages_Hidden_Worlds/ Релиз еще не скоро, к сожалению, но определенно буду ждать.
    • Вой внутренний Шерлок раскрывает это хитрое дело, указывая на то, что дома ты почти не двигаешься, а ещё куда легче одет. Ну а также, дома на тебя не светит солнце, согревая лучами на градус-два выше “по ощущениям”. Ещё б тебе не было холоднее, даже если температура примерно одинаковая. Если думаешь, что это ненадолго, то просто включи комфорку плиты, а лучше на час-два духовку. Станет теплее. Главное, не забудь выключить духовку через пару часов самое большое, т.к. это и вредно (может голова начать болеть, если газ слишком долго горит), и можно плиту испортить. Ещё можешь купить тепловую пушку, тёплый ветерок тебе твоя 5090 не сделает, так что это худо-бедно, но оправдано, ага.
    • Ток заметил стим поднял  НДС до 22%.  Но как и с 18% Габен все взял на себя(пока по крайней мере) . 
    • Ага, и ещё с FGx6 )  К счастью, нет. В нативе.  Это надо быть очень наглой мышью, чтобы с такой картинкой, нужно было бы ещё и длсс включать для такого fps )  Ну да, одно из двух - либо "дырки", либо проца не хватает ) Главное, что по ощущениям, в квартире холоднее чем на улице.  Скорее всего, тут дело ещё в самих хрущёвках, слишком они какие-то сырые и холодные. На улице, когда одетый и двигаешься, в целом норм. А вот в квартире очень зябко.    Каждый раз порываюсь идти за обогревателем, но останавливает мысль: а нахрена я тогда покупал 5090, если при этом ещё и обогреватель придётся покупать?  )) @vadik989 мышь прикольная, но уже чувствуется некоторая сложность, так как она очень ленивая и не хочет делать дэши, кувырки, и даже бегать.
    • chasm на ms-dos ещё выходил  зацени этот шутер 
    • Всё это уже Ромке говорилось ранее.  Но он либо вовсе не отвечает на неудобные для него тезисы, либо называет их пренебрежительными и несущественными (в т.ч. и примеры) и продолжает гнуть свою линию. Забавно то, что когда я ему давал статистику о соотношении игр в раннем к новинка в целом, то для него это были несущественные данные на фоне его выдуманной цифры, взятой с потолка, в виде 99%. А когда он сам соизволил их загуглить, то это для него стало железобетонным аргументом в разговоре с другим человеком. При этом он взял неполные данные и принял на веру вывод, о том, что значения не меняются, сделанный гугловским ИИ, не проверяя их совсем. Ну и он опять-таки прогнорировал вторую часть данных о соотношении доходности игр в раннем доступе к прочим новинкам. В общем, смысла тратить время на то, чтобы ему что-то доказать тут лично я не вижу. Будет сплошное переливание из пустого в порожнее.
    • https://store.steampowered.com/app/2061230/Chasm_The_Rift/ 75% Надо заценить
    • А я ещё в своё время, перед тем, как стать понаехавшим, всё шибко удивлялся: а чего это на многих объявлениях о продаже квартир в Питере стоят грелки напольные? Как говорится сначала не понял, а потом как понял. Теперь сам такой. С грелочкой.   
  • Изменения статусов

    • Jimmi Hopkins  »  SerGEAnt

      Это не просто перевод, а полноценная авторская сценарная адаптация. Диалоги переписаны так, чтобы персонажи звучали живо, остро и в характере. Добавлен чёрный юмор там, где авторы постеснялись. Убраны лорные противоречия, докручены мотивации. В результате игра стала умнее, злее и смешнее оригинала.
      · 0 ответов
    • ElikaStudio

      Долгожданный релиз полного сезона состоялся!
      https://youtu.be/mwBk2stm2OQ?si=qpJojB_XDABaC0We
      https://vk.com/video-48153754_456239394?sh=4&list=c62797c2b7d0725d6e
      Life is Strange: Before the Storm:
      Эпизод 1: "Прoбуждeниe"
      Эпизод 2: "О дивный новый мир"
      Эпизод 3: "Ад пуст"
      Бонусный эпизод: "Прощание"
      Русская озвучка уже доступна для скачивания!
      ElikaStudio выражает огромную благодарность всем, кто принял участие в создании проекта! 
      Группе Mechanics VoiceOver R.G. MVO , в частности их руководителю Дмитрию за неоценимую помощь в выпуске эпизода.
      Скачать для PC Classic (2018):
      GDrive: - https://drive.google.com/file/d/19CL_L80Mz0sIxcb54Ss64byAkeZmV22r/view?usp=sharing
      Скачать для PC Remastered (2022):
      GDrive: - https://drive.google.com/file/d/13q58Lpvw5_aYPYeZ7OGYZlAKOoS1gEbL/view?usp=sharing
      Скачать для Свитч(2022):
      GDrive: - https://drive.google.com/file/d/15e—T1LQiGQCYIHeNnj_C2qJA16Gvh1i/view?usp=sharing
      Ручная установка PC(оба издания):
      https://drive.google.com/drive/folders/1MJPd8965m4XxxAuOBt8enSHtv8_yy5xh?usp=sharing
      Баг репорт в обсуждении:
      https://vk.com/topic-48153754_55571577
      ___________________________________________
      Финансовый аппарат:
      www.donationalerts.com/r/elikastudio
      Пожертвовать средства на наши проекты:
      Кошелек ЮMoney 4100 1188 6818 3009
      карта Сбер банк 2202 2018 6334 1042
      карта Альфа банк 5559 4937 0209 8584
      Спасибо за вашу поддержку!
      #elikastudio #русскаяозвучка
      · 0 ответов
    • fox222  »  Siberian GRemlin

      Здравствуйте, хочу купить персональный доступ к переводам, сколько стоит?
      · 1 ответ
    • vitkach  »  eaZy

      Извините за беспокойство. Хотел спросить, а русификатор ещё когда-нибудь будет обновляться? Дело в том, что после его выхода выходили ещё обновления, в частности обновление 1.1, вышедшее летом 2023 года, где была добавлена целая сюжетная глава в конце если проходишь на лучшую концовку золотого пути, это где-то ещё полчаса диалогов. Также в игре присутсвуют иногда кракозябры вместо русского языка, это в основном связано с тем, что кое-где текст был изменён, в основном в обучающих сообщениях.
      · 0 ответов
    • TerryBogard  »  Siberian GRemlin

      C&C: RA: Retaliation (ПК) не работает.
      · 0 ответов
  • Лучшие авторы


×