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

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

Доброго всем времени суток. А скажите есть возможность установить перевод так, что бы переведены были только диалоги? Я пробовал как, устанавливал из перевода папку map с заменой и файлы xls_data, выходил один фиг перевод всех наименований и тп... Может как то можно установить перевод, так что бы только диалоги читать на русском?

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


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

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

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

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


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

У меня была проблема с "Professional Lepidopterist". Последнего босса пришло убивать дважды. С руссификатором достижение не зачлось.

Кстати, после удаления руссификатора этот босс стал значительно выносливее, видимо Hard режим некорректно работает на русском)

Все остальные достижения корректно работают)

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


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

Народ подскажите как поставить на Steam версию

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


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

Про шрифты.

Можно воспользоваться одним из шрифтов. Первый предложил jk232431. Второй был нарисован мной.

У игры значения от 00 по 1F и от F0 по FF используются как служебные и выводу не подлежат.

 

Spoiler

2559c21c0943.png

 

Spoiler

136f060b533c.png

Для отрисовки символов из строк, где расположен символ сердца и ниже, используется двухбайтное значение. Для их обозначения используется опкод F0. Кто пользовался дампером текста, видел встречающийся F0 в тексте. Строки также начинаются с хекс-значения 20 с добавлением F0. То есть, если верхний символ «Ё» имеет значение E0, то нижняя широкая «Ё» – B0F0, «сердце» - 21F0, d4a6d79a5778.png - 2AF0 и так далее. Широкий шрифт, как я понял, используется в меню.

 

Spoiler

ed70721fca40t.jpg

Вот так эти шрифты выглядят в игре.

 

Spoiler

03e39fd2170a.png

 

Spoiler

d02193c5ba56.png

Шрифт https://yadi.sk/d/YfWc3G7ev8BUN

Теперь по изменению длины строки текста.

Для разбора структуры файлов использовались:

• Итальянский перевод. Обычное сравнение файлов со старой версией и Аниверсари.

• Исходный код утилиты GR2dump by Mat.

В начале файлов идет первый блок поинтеров. Назову их «главные поинтеры».

На рисунке представлены 2 файла: 2000.mdt и 4С00.mdt

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

Главные поинтеры 4-х байтовые. На смещении 00000078 указан размер текстовой части (выделено темным цветом). В файле 2000.mdt это 54d40000, переворачиваем его и получаем 0000d454. Это и есть размер нашего текста.

На смещении 0000007c находится поинтер начала текста (зеленый блок). Он не меняется, так как до начала текста файл не был изменен. Это значение необходимо знать для пересчета остальных главных понтеров. Значит, стартовое смещение текста будет c8ed0000 - > 0000edc8.

На далее идут поинтеры, указывающие на следующие блоки информации, которые не относятся к тексту (выделено синим цветом). При том количество этих поинтеров в файле 4С00.mdt больше (строки 80 и 90). С чем это связано, я не знаю. Лучшим способом знать все эти поинтеры – это сравнение в HEX редакторе версии Аниверсари с итальянским переводом.

Также имеется значение, похожее на поинтер, в обоих файлах (строка d0, выделено красным). В файле 2000.mdt такого смещения нет, так как файл всего 122 348 байт. В 4С00.mdt значение красного блока меньше предыдущего синего. В итоге: это значение не нужно трогать.

Теперь об изменении размера текста. Если кто обратил внимание, то «размер текста» + «смещение начала текста» = «первый синий поинтер», то есть 0000d454 + 0000edc8 = 0001c21c. Переворачиваем и получаем: 1cс20100 (строка a0). То есть при увеличении текста в файле на N байт, необходимо увеличить на N значение размера текста (выделено темным цветом) и на столько же – все блоки с синим цветом, не забыв переворачивания.

 

Spoiler

457e61f3a13e.png

c2a57a32e07b.png

Теперь опустимся вниз на смещение начала текста. Здесь рассматриваю файл 2000.mdt.

Выше выяснили его начало: c8ed0000 - > 0000edc8. Здесь появляется таблица поинтеров текста. Первые 4 байта - это размер этой таблицы (выделено синим цветом). Значение ec000000 переворачиваем и получаем 000000ec. Теперь, зная размер таблицы, можно её выделить полностью (в красной рамке). В принципе, конец таблицы обозначается как ffffffff и без труда находится.

 

Spoiler

33e6268e51d1.png

После первых 4 байт, указывающих размер таблицы, идут сами поинтеры текста. Состоят они из двух пар по 2 байта. Их легко увидеть, если представить значения в HEX редакторе в 4 столбца:

 

Spoiler

4aab2a939e5e.png

Первая пара – это какой то идентификатор текста, он нам не нужен. Вторая пара – непосредственно указатель на выводимый текст. Для данных указателей «стартовой позицией» отсчета будет адрес, сразу следующий после окончания таблицы поинтеров. То есть для файла 2000.mdt это будет смещение 0000eeb4.

Первый поинтер: 00 11 00 00, из которого 00 11 – идентификатор, 00 00 – указатель. Так как его значение равно нулю, то и ссылается он как раз на 0000eeb4.

Второй поинтер: 00 40 33 00. Опять же 00 40 – идентификатор, 33 00 – указатель (перевернутый 0033). Текст, на который ссылается указатель рассчитывается так: «стартовая позиция» + «указатель» * 8= «смещение текста относительно начала файла». Для данного примера: 0000eeb4 + 0033 * 8 = 0000f04c.

То есть из-за коэффициента все блоки текста кратны восьми.

Рассмотрим первый блок текста, на который ссылается поинтер 00 11 00 00. Здесь отображены имена персонажей, встречающиеся в диалогах этого файла.

 

Spoiler

da999a6a3687.png

Первые 2 байта 17 01 означают начало текста, этот опкод и далее будет встречаться. После идет перечисление имен персонажей с разделительным опкодом 1f. Завершение перечисления идет опкодом 17 00, он также будет встречаться часто. В конце блока идет последовательность 02 00 00 00 00. Опкод 02 означает конец блока и ставится всегда, нули же идут после 02 и добиваются для кратности блока 8 (восьми). Соответственно иногда блок может заканчиваться только опкодом 02.

В самих блоках текста имеются еще одни поинтеры: с идентификатором 03 10 и 03 20. Например, в файле 9000.mdt (для удобства блоки текста раскрашены в синий и желтый цвета):

 

Spoiler

f68284a7224f.png

Структура такая же, как и в таблице понтеров: 2 байта – идентификатор, 2 байта – указатель. Основное отличие: поинтеры 0310 и 0320 НЕ нужно умножать на восемь. То есть формула будет такая: «стартовая позиция» + «указатель» = «смещение текста относительно начала файла». В файле 9000.mdt «стартовая позиция» = a7 b0. Значит, поинтер 0310 ссылается на: 0153 (сразу перевернул) + a7b0 = a903. То есть ссылка идет на тот же блок в котором расположен поинтер. Иная ситуация с 0320: 0220 + a7b0 = a9d0 – ссылка идет на другой блок.

По поинтерам всё. Этого достаточно, чтобы изменить размер текста.

Иногда в файлах встречается служебная информация в двухбайтовой кодировке. В первом желтом блоке ее видно, так как начинается с 17 01. На рисунке выделил ее голубой рамкой.

 

Spoiler

aa4dfca99c5f.png

Если расшифровать, получим "TMP DEMO 31700". Понятия не имею для чего это.

Теперь немного по опкодам. Для рассмотрения возьму фразу из начальной заставки, она содержится в файле d000.mdt.

 

Spoiler

b4eaab25db5c.png

17 01 – обозначает начало фразы.

18 00 08 - 3 байта с указанием говорящего. Первые 2 байта и есть сам опкод, оставшийся байт – номер говорящего. Он берется из списка имён, который шел выше в этом файле. Кусок представлю:

 

Spoiler

090ad458703c.png

Значение номера переводим в десятичное. В данном примере оно так и останется 08 и отсчитываем от первого имени, начиная с нуля. Значит: 0 – Ryudo, 1 – Ryudo, 2 – Elena, 4 – Elena, 5 – Millenia и так далее.

Иногда номер говорящего обозначен как FF, это значит текст говорит безымянный персонаж.

Вернёмся к фразе. Следующие 3 байта – 18 10 ff, довольно часто встречаются в тексте, но я так и не понял для чего они. Пробовал вставить их в середину текста, но опкод был проигнорирован.

Далее 1с 02 – точно не понял для чего он. Видел и другие их вариации: 1C01, 1C03 и 1CFF. Похоже, что отвечает за скорость вывода текста. Если 02 заменить на 44, то текст буде выводиться с задержками по 2 символа. Если заменить на ff – похоже, что скорость вывода увеличится.

Затем идет последовательность 53 6b 79 65 21 20 - сам текст «Skye! ».

1d ff 09 – это пауза. 1d – опкод, остальные 2 байта – время паузы. Встречаются и другие вариации, например, 1D 01 8C 00, структуру до конца не разобрал. Возможно, 00 не используется, иногда изменяется на 01. Те варианты, которые видел, были вида 1D 01 (некий байт) 00 (или 01).

Потом идет фраза «Over here!». Снова пауза и затем идут какие то опкоды, значения которых я не понял.

Ещё типы опкодов:

1f – переход текста на новую строку.

1a – Очищает окно с текстом от самого текста. Необходимо, когда у персонажа много текста, не вмещающегося в отведённые строки.

Выше я говорил, что фразы начинаются с 17 01. Есть и другие опкоды: 17 40 – это меню с выбором действия, например, когда подходим к точке сохранения. 17 80 –это текст, выводимый вверху экрана, например, при переходе локаций. Похоже, сам опкод здесь только 17, второй байт указывает на тип текста или его завершение.

Мест, где требуется увеличить длину строки, не много, но вручную пересчитывать муторно. Я в программировании не силён. Кто сможет накатать прогу для удобного пересчета и редактирования текста или загонет в круптар - дело бы пошло быстрее.

Изменено пользователем Renesso
  • +1 1

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


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

Переводом ещё кто-нибудь занимается?

И вопрос на засыпку, кто-нибудь запускал стим версию с переводом? У меня он начал просить вставить диск 2.

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


Ссылка на сообщение
Переводом ещё кто-нибудь занимается?

И вопрос на засыпку, кто-нибудь запускал стим версию с переводом? У меня он начал просить вставить диск 2.

видимо забросили, сам жду

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


Ссылка на сообщение
видимо забросили, сам жду

Как всегда...Хорошие игры зарываются в долгий ящик =(

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


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

Одна из лучших рпг своего времени. Качественный перевод был бы отличным подарком всем фанам. : )

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


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

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

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


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

Нужно ресурсы разбирать, игра-то отличная, спору нет, но сама по себе точно не переведётся...

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


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Похожие публикации

    • Автор: SerGEAnt
      The Alters

      Метки: Выживание, Строительство базы, Менеджмент, Исследования, Научная фантастика Платформы: PC Разработчик: 11 bit studios Издатель: 11 bit studios Серия: 11 bit studios Дата выхода: 13 июня 2025 года Русский язык: Интерфейс, Субтитры Отзывы Steam: 9531 отзывов, 89% положительных
    • Автор: SerGEAnt
      No More Heroes

      Метки: Экшен, Слэшер, Юмор, Ассассины, Beat 'em up Платформы: PC SW Wii Разработчик: Grasshopper Manufacture Издатель: Marvelous Europe Серия: No More Heroes Дата выхода: 22 января 2008 года Отзывы Steam: 1974 отзывов, 83% положительных

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

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

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

    • хороший канделябр никогда не подведёт 
    • Перевёл на русский язык с использованием нейросети + адаптировал шрифты для корректного отображения кириллицы. Совместимая версия: 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% оставшихся ошибок зацепляю. Игра после всех манипуляций выкладывается на суд общественности. Это краткая версия моих действий. На деле все еще сложнее. И это я еще не упомянул о том, что для всего этого нужны десятки отлаженных инструментов, которых нет в свободном доступе, и их пришлось создавать с нуля. Повторюсь, я не знаю как там делают другие, да и мне все равно, я делаю именно так  и могу отвечать только за свой рабочий процесс. Я не люблю халтуру, поэтому стараюсь как для себя, хотя я ведь и правда делаю для себя те игры, которые хочу пройти сам, и не беру ни с кого никакого доната, ни копейки. Все бесплатно! Самая большая часть времени уходит не на генерацию, а на принятие решений человеком. Проверить перевод, оценить эмоции, подобрать интонацию, адаптировать текст под тайминг, смонтировать сложные реплики, пройти игру целиком и исправить найденные ошибки — все это невозможно автоматизировать одним нажатием кнопки. Именно поэтому работа над одной игрой занимает сотни часов. Моя цель — не заменить профессиональную студию, а создать качественную любительскую озвучку, с которой самому приятно пройти игру. Поэтому при работе приходится искать разумный компромисс между качеством и временем производства. Если бы я шлифовал озвучку ища “ту самую идеальную интонацию”, то это растянулось бы на годы, и озвучка скорее всего не вышла бы никогда. Тут важен компромисс между качеством, и трудозатратами. Надеюсь, вам было интересно заглянуть за кулисы казалось бы такого простого действия, как создание нейроозвучки. Я постарался объяснить простыми словами на самом деле далеко не простой процесс.
    • коварные лампочки могут мерцать  всегда проверяю камерой 
    • @Tirniel я Gauss брал на всю квартиру. На них гарантию 2 года давали на замену (пару раз воспользовался). Остальные работали и работают больше двух лет.
    • Ну если честно, не смотря на то, что у меня и так светодиодные, но экономии не заметил. Они всё так же регулярно перегорают,  пусть и реже обычных, но т.к. стоят куда дороже обычных, то по сути получается шило на мыло. Разве что светят тусклее. В целом, то, что они перегорают — это по сути запланированное устаревание, т.к. их проектируют специально таким образом, чтобы они прилично грелись (нулевая вентиляция и парилка внутри), что ощутимо снижает срок их службы. Со временем светодиоды перегорают, что повышает нагрузку на оставшиеся (если вдруг цепь не последовательная, что уже редкость), что приводит к полному выходу лампочки из строя со временем. Уж молчу, что нагрузку можно и заведомо делать неравной, чтобы хоть один светодиод, да перегорел раньше, оборвав последовательную цепь. Разумеется, мало кто решит вскрыть лампочку и восстановить цепь в обход перегоревшему светодиоду. Да, в теории у них есть гарантия с возможностью замены на новую в случае преждевременной порчи лампочки, но на практике много ли кто ею пользуется? У нас, например, это в принципе околоневозможно, но знаю людей из других регионов страны, где это практикуется (обычно там, где есть заводы этих самых лампочек).
  • Изменения статусов

    • 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 ответов
  • Лучшие авторы


×