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

Автопереводчик для Unity игр XUnity.AutoTranslator

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

https://github.com/bbepis/XUnity.AutoTranslator

вот типа:baby_tone2:  пример

Скачать видео
Скачать видео

 

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

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


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

Апну тему скринами из разных игр с использованием autotranslator:

Banner of the Maid (китайский →  русский): https://imgur.com/a/LNHYwsV

Banner of the Maid (китайский → английский): https://imgur.com/a/LDdyhHK

We the Revolution (английский → русский): https://i.imgur.com/D3hJUo1.png

NITE Team 4 (английский → русский):  https://i.imgur.com/K4KPip1.png

Tales of the Neon Sea (английский → русский):  https://imgur.com/a/y7oztQg

 

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


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

Creeper World 4 (Патч на русские шрифты для автопереводчика)
BepInEx-Unity.IL2CPP-win-x64-6.0.0-pre.2_AutoTranslator-5.4.4_RU
https://disk.yandex.ru/d/GcbPbnE53mqm5A
Текст в сложных БД.

Вытянутый гогле для перевода.
https://disk.yandex.ru/d/xKGf8BEp2w6aDw

Изменено пользователем DragonZH
  • Лайк (+1) 2

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


Ссылка на сообщение
11 минут назад, mixa_pulemet сказал:

Нужен скриншот, чтобы понять о чём вы.

font_outline.png
Видна некоторая “пиксельность” на буквах. Особенно хорошо видна “лесенка” на наклонных линиях.

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


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

Всем привет, есть такая игра Yet Another Zombie Survivors

она на il2cpp без mono переводчик отлично подключался до посл обновления 0.6 через BepInEx

после последнего обновления игры появились такие файлы в папке _Data
RuntimeInitializeOnLoads.json
ScriptingAssemblies.json

переводчик перестал подхватыватся на любые версии BepInEx и через Melon — нет реакции

Файлы и скрины вот https://disk.yandex.ru/d/zOZwt9OH-Oo_rg
Версия exe от 2022.03.28
Может кто знает как такое победить? Это новая версия юнити или что? Работало работало и перестало.

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

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


Ссылка на сообщение
14 часов назад, Alisa86 сказал:

Всем привет, есть такая игра Yet Another Zombie Survivors

она на il2cpp без mono переводчик отлично подключался до посл обновления 0.6 через BepInEx

после последнего обновления игры появились такие файлы в папке _Data
RuntimeInitializeOnLoads.json
ScriptingAssemblies.json

переводчик перестал подхватыватся на любые версии BepInEx и через Melon — нет реакции

Файлы и скрины вот https://disk.yandex.ru/d/zOZwt9OH-Oo_rg
Версия exe от 2022.03.28
Может кто знает как такое победить? Это новая версия юнити или что? Работало работало и перестало.

Используйте последнюю версию BepInEx-Unity.IL2CPP ОТСЮДА.

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

2024-06-14-182911.png

288.png

 

  • Спасибо (+1) 1

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


Ссылка на сообщение
В 10.06.2024 в 17:25, Дмитрий Соснов сказал:

Установил  на игру загрузчик Melon Loader: MelonLoader.Installer-0.6.1.exe

Подскажите, пожалуйста, а можно как-то перегружать перевод налету в игре? ALT+R не работает с этим загрузчиком. А то надоело многократно перегружать игру для проверки исправлений в тексте. :( 

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


Ссылка на сообщение
10 минут назад, Amigaser сказал:

Подскажите, пожалуйста, а можно как-то перегружать перевод налету в игре? ALT+R не работает с этим загрузчиком. А то надоело многократно перегружать игру для проверки исправлений в тексте. :( 

надо в файле конфига загрузчика поменять флаг: ReloadTranslationsOnFileChange=False на ReloadTranslationsOnFileChange=True

тогда он будет подгружать перевод из файла автоматом при его изменении во время игры...

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

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


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

Игра Svarog's Dream. Все делал по рецепту. Не создаются файлы с переводом в паке Svarog's Dream\AutoTranslator\Translation\ru\Text\ и Svarog's Dream\AutoTranslator\Translation\en\Text\. Создались только 3 файла с нулевым размером. _Postprocessors.txt _Preprocessors.txt _Substitutions. Пытался снять галочку “только чтение” с папки игры. Не снимается. Вернее снимается и сразу восстанавливается обратно. Но я видел скрин игры с переводом. Почему не выходит?

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

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


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

Случилось чудо. Неожиданно. Запустил игру, поиграл, вышел из игры. Спустя время опять запустил игру и о чудо Eset Endpoint Security просигнализировал что Google Translator хочет выйти в интернет (я не запрещал). Я дал разрешение и перевод начался. Очень кривой. Некоторые буквы заменяются на квадратики. Но самое плохое-описание оружия, брони, колец-просто выдает описание, вообще без характеристик и цифровых значений. Пришлось отказаться от перевода. Т.к я не знаю как отключить переводчик, присвоил папке AutoTranslator имя 1AutoTranslator.

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


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

А у меня вот такой вопрос. Можно ли что-то придумать, если в оригинальной строке, которую подхватывает Автопереводчик, есть символ ‘=’ ? Как-то экранировать что ли? Иначе Автопереводчик сбивается и не переводит такую строку. :( Может кто что подскажет? 

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


Ссылка на сообщение
Игра Alaloth - Champions of The Four Kingdoms
 
https://store.steampowered.com/app/919360/Alaloth_Champions_of_The_Four_Kingdoms/

Переводится с помощью BepInEx 6.0.0-be.682 + XUnity Auto Translator 5.3.0

Изменено пользователем Дмитрий Соснов

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


Ссылка на сообщение
18 часов назад, Дмитрий Соснов сказал:
Игра Alaloth - Champions of The Four Kingdoms
 
https://store.steampowered.com/app/919360/Alaloth_Champions_of_The_Four_Kingdoms/

Переводится с помощью BepInEx 6.0.0-be.682 + XUnity Auto Translator 5.3.0

Я вот все равно не понимаю.,как это делать можно сделать тут папку с переводом

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


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

Можете помочь, игра не цепляет переводчик.

https://store.steampowered.com/bundle/41367/Yakuza_Rogue_12/

Вот ссылка на игру в архиве.

Пробовал BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.692+851521c  и MelonLoader + MelonMod-IL2CPP-5.3.1 и тот и другой в итоге выбивает ошибку. Остальные версии попросту вообще не видят игры. Заранее спасибо !

 

 

 

 

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


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

Перевод текстур с помощью XUnity AutoTranslator

Начиная с версии 2.16.0+ этот мод предоставляет базовые возможности по замене изображений. Это функция, которая отключена по умолчанию. Однако автоматического перевода этих изображений нет.

Эта функция в первую очередь предназначена для игр с минимальной поддержкой модов или вообще без них, чтобы включить полные переводы без необходимости изменять файлы ресурсов.

Он управляется следующей конфигурацией:

[Texture]
TextureDirectory=Translation\Texture
EnableTextureTranslation=False
EnableTextureDumping=False
EnableTextureToggling=False
EnableTextureScanOnSceneLoad=False
EnableSpriteRendererHooking=False
LoadUnmodifiedTextures=False
TextureHashGenerationStrategy=FromImageName
DuplicateTextureNames=
DetectDuplicateTextureNames=False
EnableLegacyTextureLoading=False
CacheTexturesInMemory=True

TextureDirectory
указывает каталог, в который загружаются текстуры. Загрузка будет происходить также из всех подкаталогов указанного каталога, поэтому вы можете перемещать выгруженные изображения в любую желаемую структуру папок.

EnableTextureTranslation
включает перевод текстуры. В основном это означает, что текстуры будут загружаться из TextureDirectoryкаталога и его подкаталогов. Эти изображения заменят внутриигровые изображения, используемые игрой.

EnableTextureDumping
включает сброс текстур. Это означает, что мод будет выгружать любые изображения, которые он еще не выгрузил, в файл TextureDirectory. При сбросе текстур также может быть целесообразно включить: 
EnableTextureScanOnSceneLoad
более быстрый поиск всех текстур, требующих перевода. Никогда не распространяйте мод с включенным этим параметром.

EnableTextureScanOnSceneLoad
позволяет плагину сканировать объекты текстуры в событии sceneLoad. Это позволяет плагину находить больше текстур при незначительном снижении производительности во время загрузки сцены (что часто происходит во время загрузки экранов и т. д.). Однако из-за того, как работает Unity, не все из них можно заменить. Если вы нашли образ, который сброшен, но не может быть переведен, сообщите об этом. Однако обратите внимание, что этот мод в первую очередь предназначен для замены текстур пользовательского интерфейса, а не текстур для 3D-сеток.

EnableSpriteRendererHooking
позволяет плагину попытаться перехватить SpriteRenderer. Это отдельная опция, потому что SpriteRenderer на самом деле не может быть правильно перехвачен, а реализованный обходной путь может теоретически повлиять на производительность в определенных ситуациях.

LoadUnmodifiedTextures
Включает, должен ли плагин загружать текстуры, которые не были изменены. Это полезно только для отладки и может вызвать различные визуальные сбои, особенно если EnableTextureScanOnSceneLoadоно также включено. Никогда не распространяйте мод с включенным этим параметром.

EnableTextureToggling
включает, будет ли горячая клавиша ALT+T также переключать текстуры. Это ни в коем случае не гарантирует работу, особенно если EnableTextureScanOnSceneLoad
она также включена. Никогда не распространяйте мод с включенным этим параметром.

DuplicateTextureNames
указывает разные текстуры в игре, которые используются под одним и тем же именем ресурса. Плагин будет использовать «FromImageData» для идентификации изображения для этих изображений.

DetectDuplicateTextureNames
указывает, что подключаемый модуль должен определять, какие имена изображений дублируются, и автоматически обновлять конфигурацию с этими именами. Никогда не распространяйте мод с включенным этим параметром.

EnableLegacyTextureLoading
указывает, что плагин должен использовать попытку загрузки изображений по-другому, что может быть актуально, если движок единства старый (проверено с версиями ниже 5.3). Это не следует использовать, если загружаемые изображения не являются теми, которые вы ожидали.

CacheTexturesInMemory
указывает, что все текстуры перевода должны храниться в памяти для оптимизации производительности. Можно отключить, чтобы уменьшить использование памяти.

TextureHashGenerationStrategy
определяет, как изображения идентифицируются. Когда изображения сохраняются, игре потребуется какой-то способ связать их с изображением, которое она должна заменить. Это делается с помощью хеш-значения, которое хранится в квадратных скобках в каждом имени файла изображения, например: file_name [0223B639A2-6E698E9272].png. Эта конфигурация указывает, как генерируются эти хэш-значения:

FromImageName
означает, что хэш генерируется из внутреннего имени ресурса, которое игра использует для изображения, которое может существовать не для всех изображений или даже быть уникальным. Однако в целом он достаточно надежен. Если у образа нет имени ресурса, он не будет сброшен.

FromImageData
означает, что хэш генерируется из данных, хранящихся в образе, который гарантированно существует для всех изображений. Однако создание хэша связано с затратами на производительность, которые также будут нести конечные пользователи.

FromImageNameAndScene
означает, что он должен использовать имя и сцену для генерации хеша. Для этого по-прежнему требуется имя. При использовании этой опции есть шанс, что одна и та же текстура может быть сброшена с разными хэшами, что нежелательно, но может потребоваться для некоторых игр, если само имя не уникально и FromImageData
опция вызывает проблемы с производительностью. Если это используется, рекомендуется также включить EnableTextureScanOnSceneLoad.

При работе с этими параметрами необходимо учитывать один важный нюанс: если существует ЛЮБОЙ из этих параметров: EnableTextureDumping=True, EnableTextureToggling=True, TextureHashGenerationStrategy=FromImageData, то игре потребуется прочитать необработанные данные со всех изображений, которые она находит в игре, чтобы заменить изображение. а это дорогая операция.

Поэтому рекомендуется использовать TextureHashGenerationStrategy=FromImageName. 
Скорее всего, изображения без имени ресурса все равно будет неинтересно переводить.

Если вы распространяете этот мод с переведенными изображениями, рекомендуется удалить все изображения, которые вы либо не собираетесь переводить, либо вообще не переведены.

Вы также можете изменить имя файла на любое по своему желанию, если вы держите хэш, добавленный в конец имени файла.

Если что-то и вынести из этого раздела, то это должны быть следующие два пункта:

Никогда не распространяйте мод с помощью EnableTextureDumping=True, EnableTextureToggling=True, LoadUnmodifiedTextures=True или DetectDuplicateTextureNames=true
Распространяйте мод с включенным модом только в том TextureHashGenerationStrategy=FromImageData 
случае, если это абсолютно необходимо игре.

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


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

Можете помочь, игра не цепляет переводчик.

https://store.steampowered.com/bundle/41367/Yakuza_Rogue_12/

Пробовал BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.692+851521c  и MelonLoader + MelonMod-IL2CPP-5.3.1 и тот и другой в итоге выбивает ошибку. Остальные версии попросту вообще не видят игры. Заранее спасибо !

Игра на IL2CPP с которым у загрузчиков и XUnity AutoTranslator довольно плохо пока что. Так что если он с такой игрой не подружился, то только ждать обновления проги и молится чтобы там улучшили поддержку игра на IL2CPP...

Вот что пишут в инструкции к XUnity AutoTranslator:

Поддержка IL2CPP

Хотя этот плагин предлагает некоторый уровень поддержки IL2CPP, он ни в коем случае не является полным. Можно наблюдать следующие отличия/отсутствующие функции:

Некачественные возможности перехвата текста

TextGetterCompatibilityMode не поддерживается
Переводы для плагинов не поддерживаются (пока)
Переводы IMGUI не поддерживаются (пока)
Многие другие функции полностью не доказаны

Изменено пользователем Дмитрий Соснов
  • +1 1

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

    • Посмотрел проект, Ink файлов там 70 штук, через https://github.com/yole/inkdc и его доработку удалось экспортировать текст. В целом потом обратный патч Ink файлов через gdre работает корректно. Займусь переводом, игра выглядит интересно.
    • У нас перебоев с электричеством нет  Если только ужин при свечах 
    • @SerGEAnt там русификатор в 25 году обновлялся, в архиве старая версия.
    • хороший канделябр никогда не подведёт 
    • Перевёл на русский язык с использованием нейросети + адаптировал шрифты для корректного отображения кириллицы. Совместимая версия: steam билд 23043813 v. 1.0.2 от 1 мая 2026 года. Лучше не ставьте на другую версию игры во избежании проблем. Русификатор сломается если игра обновится. Лучше не ставьте на другую версию игры во избежании проблем. Русификатор сломается если игра обновится. Скачать: Boosty Установка: 1. Распакуйте архив. 2. Cкопируйте папку «Ariana and the Elder Codex_Data». 3. Откройте Steam → нажмите на шестерёнку (Настройки) → Управление → Показать локальные файлы. 4. Вставьте её в основную папку игры. 5. При запросе на замену файлов нажмите «Да».   Также на бусти есть видеодемонстрация    
    • в это то и прокол что там нету этой строчки
    • Скажу больше: коварные поставщики энергии могут заставлять лампочки мерцать тоже (нестабильным напряжением). А уж эти коварные электрики, которые делали не менее коварную проводку — это и вовсе отдельная песня.
    • Это самые дешёвые или подделки, где на схемотехнике существенно сэкономили.
    • Хотелось бы рассказать, как именно я делаю свою нейроозвучку и почему даже небольшая игра может занять сотни часов ручного кропотливого труда. Многие считают, что нейроозвучка делается за несколько нажатий кнопки. На практике это не так. Ниже я описываю свой собственный рабочий процесс. Я не утверждаю, что все авторы работают именно так — это лишь тот подход, которого придерживаюсь я. Всё начинается с распаковки ресурсов игры. Определяется движок игры, находятся инструменты для его вскрытия и распаковки, проходит серия экспериментов для того чтобы оценить, “а смогу ли я потом запаковать всё обратно”. Это самый легкий этап занимающий от одного дня до недели в зависимости от сложности. Допустим, я распаковал, вытащил аудиофайлы. Далее мне нужно просеять 15—20 тысяч аудиофайлов, чтобы найти среди них только те, которые содержат реплики персонажей. Я тут не полагаюсь на автоматизацию, и методом выборочной проверки прохожусь по всем папкам с аудио в ручную отслушивая сотни треков. Это еще +1 день или около того. Теперь, имея аудио с четкой структурой, мне нужно вытащить субтитры и как-то связать отдельную строчку субтитров с каждым отдельным аудиофайлом. Вот тут начинаются сложности, так-как это возможно сделать далеко не всегда. Есть два типа файлов: В которых я легко могу вытащить субтитры; В которых я не могу установить четкую связь “файл-субтитры”. В случаях, когда это сделать невозможно, прогоняю такие аудио через модель, которая распознает текст с высокой долей точности даже для зашумленных звуков. Что я получаю в итоге? Набор строчек где каждый конкретный файл связан с его текстом на английском языке. Далее я должен в ручную прослушать все аудио (тысячи реплик) чтобы понять, соответствует ли то, что там распознано нейронкой тому, что на само деле звучит на записи. Убедившись, что английский текст соответствует, произвожу нейронный перевод на русский язык, и… опять в ручном режиме проверяю, чтобы все было переведено нормально, и соответствовало тому, что говорится на аудио. Сразу же отсеиваются все тексты, которые нейронка перевела “от балды”, т.е. не соответствующие смыслу и стилю оригинала. На этом этапе я уже два раза обработал тексты и аудио! И так, я имею на руках проверенные пары из английский/русский тексты + аудио. Приступаю к генерации! Прогоняю через 2 нейронки все аудио, а то, что получилось, сначала подгоняю под длительность оригинала, а потом вместе с текстами запихиваю в самописное ПО для ручного озвучивания, где я могу в ручную генерировать то, что мне нужно для любой реплики, если мне что-то не нравится. И тут начинается самый сложный этап! Я прослушиваю тысячи реплик в ручном режиме, очень внимательно (и сгенрированные, и оригинал на английском): Если вижу, что аудио по эмоциям прям сильно уступает оригиналу, то я его генерирую заново; Нейросеть не всегда правильно ставит ударения или выбирает нужную форму слова. Например, вместо "замОк" может прозвучать "зАмок". Такие ошибки приходится отлавливать вручную, потому что автоматически определить их практически невозможно, то есть такое аудио я генерирую заново; Если вижу, что интонации совсем неестественные —  генерирую заново; Если вижу, что реплика очень ускорена (после подгонки под оригинал), то провожу укладку текста, то есть изменяю реплику так, чтобы она сохранила дух и стиль оригинала, но стала короче настолько, чтобы с приемлемой скоростью поместится в тайминги длительности оригинала, и… —  генерирую заново; Если реплика сильно короче получилась чем оригинал, то опять же провожу укладку текста, то есть делаю текст таким, чтобы реплика не была растянута очень неестественно, и персонаж не говорил как пьяный (либо если оставить естественны темп, то реплика прозвучит, а персонаж будет беззвучно хлопать ртом — некрасиво), и далее генерирую заново. Если я обнаруживаю сложное аудио, которое содержит охи/вздохи/крики/смех/свист или любые дополнительные эффекты, то я сначала генерирую нужную реплику, а потом открываю в аудиоредакторе такой файл и с помощью ручного звукомонтажа монтирую аудиодорожку так, чтобы эффекты органично легли на русское аудио. Если что-то не выходит, то все отправляется в помойку и начинаю работу над этим аудио заново. Если попадается аудио, где на одной аудиодорожке разные персонажи, да еще и с эффектами, то приходится вначале отделять прочие звуки от вокала (голоса человека), затем нарезать голос по персонажам прослушивая все внимательно чтобы не там не обрезать случайно, затем генерирую каждую реплику отдельно по правилам изложенным выше, а потом собираю все в одну аудиодорожку в правильном порядке, и в правильные места вставляю все аудио, чтобы каждый голос звучал в свое время, и накладываю снова эффекты (звук мотора, шелест ветра и т.д.). Это самая сложная аудиодорожка в игре, их могут быть сотни, а на работу с одной уходит от десятков минут, до нескольких часов в зависимости от длительности и сложности. Количество генераций одной реплики из примерно в среднем 5-8 тысяч реплик может достигать 10, 20, и даже более! Нередко на то, чтобы получить приемлемое качество одной реплики, уходят десятки минут, и это только одна реплика. На обработку всех файлов уходят месяцы, и это при ежедневной затрате труда в 5-6 часов, почти как на работе. Когда все же наконец предыдущий сложный этап подходит к концу, все аудио снова проходят микро подгонку к оригиналу по длительности, чтобы не было обрывов/щелчков в игре, и интегрируются в игровые архивы. Игра полностью самостоятельно проходится от начала до конца (тут я работаю уже тестером), выцепляются мелкие оставшиеся ошибки, и исправляются, озвучка “шлифуется”. Да, прохожу один раз, не все ветки диалогов вижу, но так я 70-80% оставшихся ошибок зацепляю. Игра после всех манипуляций выкладывается на суд общественности. Это краткая версия моих действий. На деле все еще сложнее. И это я еще не упомянул о том, что для всего этого нужны десятки отлаженных инструментов, которых нет в свободном доступе, и их пришлось создавать с нуля. Повторюсь, я не знаю как там делают другие, да и мне все равно, я делаю именно так  и могу отвечать только за свой рабочий процесс. Я не люблю халтуру, поэтому стараюсь как для себя, хотя я ведь и правда делаю для себя те игры, которые хочу пройти сам, и не беру ни с кого никакого доната, ни копейки. Все бесплатно! Самая большая часть времени уходит не на генерацию, а на принятие решений человеком. Проверить перевод, оценить эмоции, подобрать интонацию, адаптировать текст под тайминг, смонтировать сложные реплики, пройти игру целиком и исправить найденные ошибки — все это невозможно автоматизировать одним нажатием кнопки. Именно поэтому работа над одной игрой занимает сотни часов. Моя цель — не заменить профессиональную студию, а создать качественную любительскую озвучку, с которой самому приятно пройти игру. Поэтому при работе приходится искать разумный компромисс между качеством и временем производства. Если бы я шлифовал озвучку ища “ту самую идеальную интонацию”, то это растянулось бы на годы, и озвучка скорее всего не вышла бы никогда. Тут важен компромисс между качеством, и трудозатратами. Надеюсь, вам было интересно заглянуть за кулисы казалось бы такого простого действия, как создание нейроозвучки. Я постарался объяснить простыми словами на самом деле далеко не простой процесс.
  • Изменения статусов

    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
    • NekoNya  »  Onzi

      https://www.dropbox.com/scl/fi/4xncxr2tqy77vz4644q08/text_RU_FINAL.json?rlkey=xckxss3jkql4gjmc1ah6qjb5e&st=k5ql651f&dl=0 
       
      Вот, то что вышло. Извинюсь, что зря говорил, что помогу (
      · 2 ответа
    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
    • serfly  »  SamhainGhost

      Доброго времени. По локализации игры Wicked Seed. Шрифт размазан и в полях, другие можно попробовать? Например arialuni_sdf_2022? Я профан в этом, но интересно.
       
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

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


×