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

Amigaser

Пользователи
  • Публикации

    270
  • Зарегистрирован

  • Посещение

Репутация

81 Хорошая

О Amigaser

  • Звание
    Постоянный участник

Информация

  • Пол
    Мужской
  • Откуда
    Санкт-Петербург
  1. Duke Grabowski, Mighty Swashbuckler

    @SerGEAnt я польщён. Ребята молодцы, обещали — сделали. Больше людей поиграют на русском!
  2. Этап 3 Добавление разметки для русских букв в дескрипторы Текстуры с русскими символами созданы. Теперь нужно добавить для них разметку. Для каждой надписи или типа текста в игре существует файл разметки для шрифта из атласа текстуры — дескриптор с расширением .desc Всего в игре 52 таких файла. Название файлов говорит само за себя, для какого шрифта он предназначен. А название текстуры, для которой предназначена разметка и где находятся глифы с этим шрифтом, можно увидеть в заголовке этого файла. Файл состоит из заголовка с разной длиной (из-за разных имён файла текстуры в нём) и блоков данных разметки символов длиной 54 байта — чанков. Они располагаются друг за другом до конца файла. https://disk.yandex.ru/i/8uycMMOOHZRXew Добавляем чанки для русских глифов python-скриптом. Что делает скрипт. 1. Отделяет заголовок от блока чанков и отправляет их в массив 2. Добавляет в цикле в конец массива новые чанки с координатами русских глифов в текстуре в нужном формате (54 байта). Помните, мы создали ранее xml-файл с координатами русских символов в текстуре? Вот из него их и берём. 3. Посчитывает новое количество чанков в дескрипторе (старое кол-во + 66 символов русских букв (33 строчных и 33 прописных)) и заменяет соотв. байт в заголовке 4. Меняет в заголовке величину разрешения текстуры по вертикали (напр., на 1024 — 0x400h) в нужном месте 5. Добавляет отредактированный заголовок в начало массива чанков 6. Сохраняет модифицированный файл дескриптора https://disk.yandex.ru/i/M2ebDLD22bmoPw Затем копируем новый модифицированный файл дескриптора в папку IronyCurtain_1080p_en игры. После этого все тексты в игре будут отображаться с русскими символами. Сами тексты находятся в папке IronyCurtain_en в обычных xml-файлах. https://disk.yandex.ru/a/4Ct7jiMY665eaA
  3. Этап 2 «Русификация» текстурных (bitmap) шрифтов Русские шрифты для игры найдены и установлены в систему. Теперь надо добавить в атласы и метрики шрифтов игры русские символы. Все bitmap шрифты находятся в папке IronyCurtain_1080p_en. Текстуры с символами (глифами) находятся в запакованном виде в файлах .stex, а координаты разметки для глифов (метрики) — в файлах .desc. Движок игры довольно тупой, этим и воспользуемся. В файле .desc в заголовке прописано имя файла текстуры, откуда будут браться символы для вывода в тексте игры. По умолчанию, там .stex, но если расширение поменять на .png, то символы будут браться именно из такой картинки. С помощью python-скрипта распакуем все .stex файлы и вытащим оттуда png-картинки атласов. Файлы stex состоят из заголовка (24 байта), идентификатора формата (ARGB или DXT5) и блока запакованных в lz4 данных. Скрипт распаковывает данные и формирует из них png-картинку. Вот как выглядят такие bitmap текстуры шрифтов https://disk.yandex.ru/i/Mv1bsZB2YGmHhw В них намешаны глифы разных шрифтов и разных размеров. Типа «оптимизация»… Вот такой коленкор… Наша цель — добавить в них русские символы нужного шрифта и нужного размера. Я добавляю весь русский алфавит — 66 символов, 33 строчные и 33 прописные буквы. 1. Как видим, текстуры забиты под завязку, пихать туда русские глифы некуда. Поэтому для начала расширим текстуру по вертикали в Фотошопе, измерением размера холста. Большая часть текстур — 256 Х 256 пикселей, но есть и 512 х 512, и даже 1024 х 1024. Изменим её размер на 256 х 1024, чтобы наверняка всё влезло. 2. Сначала нужно сгенерить текстуру (атлас) для набора русских символов нужного шрифта и файл разметки для них. Я использовал утилиту bmfont для этих целей. После настройки и создания bitmap этой утилитой на выходе получаются файл png-картинки с глифами и файл разметки для неё в xml-формате с расширением .fnt. Теперь нужно поместить в Фотошопе этот слой с русскими символами ниже основных символов текстуры по определённому смещению по-вертикали, https://disk.yandex.ru/i/WidVwl9U6Zt6CA и добавить это смещение ко всем координатам в файл .fnt. Я это делаю с помощью отдельного скрипта и сохраняю изменения в xml-формате. 3. Теперь самое муторное. Надо вычислить какой дескриптор (.desc) нужно адаптировать для добавленного в текстуру шрифта для конкретных надписей в игре. Я делаю это старым проверенным способом — заштриховываю некоторые английские символы в текстуре и проверяю текст в игре (расширение в .desc д. б. поменяно на .png, иначе картинка текстуры будет браться из .stex). Если текст «покоцался», то значит мы попали — это именно этот дескриптор для этого текста в игре. Если нет, то проверяем другие дескрипторы, которые для этой текстуры и шрифта. В принципе можно ориентироваться на наименование текстуры в заголовке и название файла дескриптора (имя шрифта). В игре все тексты, в том числе и на картинках документов, записок и пр., завязаны на эти дескрипторы. На следующем этапе будем адаптировать дескрипторы (файлы .desc) для отображения русских символов из текстур в игре. Продолжение следует…
  4. Мне сначала нужно пройти игру и выявить все шрифты в разных местах и русифицировать их. Есть там нюансы. После этого можно будет делать вычитку текста в игре и его редактирование. Но с выявлением шрифтов и их адаптацией не быстро движется. Как закончу, напишу.
  5. Irony Curtain: From Matryoshka with Love

    @tvoydrug57 я делаю перевод, так что смысл ждать есть.
  6. @tvoydrug57 работа ведётся. Но есть нюансы и косяки с теми же шрифтами в отдельных местах. Да и текста там прилично, около 7000 строк. И жаргонизм и специфический юмор присутствует. Всё это надо вычитывать по ходу игры и править. Для начала хотя бы явные ошибки нейроперевода подправить… Я всё делаю один, так что скоро не получится.
  7. Этап 1 Вычисление шрифта Подготовка: Распаковываем все ресурсы .cub в соотв. папки с помощью утилиты quickbms.exe и скрипта к ней для распаковки ресурсов игры enigmatis.bms. Всё это есть в свободном доступе и найти не представляет труда. Напр., для IronyCurtain.cub создаём папку IronyCurtain и распаковываем ресурсы туда. Нам нужны IronyCurtain.cub, IronyCurtain_1080p.cub, IronyCurtain_1080p_en.cub и IronyCurtain_en.cub. Для того, чтобы вычислить шрифт, которым написана та или иная фраза в игре, нужно сделать следующее: 1. Открываем xml-файл text.xml (напр., в Notepad++) в папке IronyCurtain_en и находим там нужную фразу. Напр., найдём надпись на стикере у телефона в конференц-зале. «Please, watch what you say!». Видим над ней идентификатор L01_Z_TELEPHONE_STICKER2_TEXT. Копируем. 2. Ищем в TC в файлах по содержанию этот id в папке IronyCurtain. Находим его в бинарном файле Z_CongressHallTelephone.cubebin *. Открываем дамп файла, ищем в нём L01_Z_TELEPHONE_STICKER2_TEXT. Смотрим перед ним идентификатор шрифта. Это ZTelephone_sticker2. 3. Теперь нам нужен файл карты шрифтов игры - fonts.cubefont. Он находится в папке IronyCurtain_1080p. Это тоже xml-файл. Отрываем его NP++ и ищем там идентификатор шрифта ZTelephone_sticker2. Видим, что ему соответствует шрифт Lato-Regular.ttf Шрифт, которым отображается в игре эта фраза найден. Это Lato-Regular.ttf. В игре используется всего 15 шрифтов. Для некоторых есть такой же с кириллицей, а для других надо искать похожий по начертанию. Напр., на сайте fonts-online.ru Русские шрифты понадобятся для внедрения кириллицы в ресурсы игры. * Игровой код хранится в файлах cubebin, а exe файл игры — это сам движок (Spark Casual Engine). Файлы cubebin — это просто lua-скрипты, но зашифрованные, но при этом идентификаторы в них в текстовом виде, что очень помогает в идентификации шрифта, которым написаны тексты в игре. Продолжение следует…
  8. Foolish Mortals

    Я бы уж точно не стал этим заниматься в ветке игры на стиме. Благо же есть “неофициальные” переводы от двух людей, можно и этим ограничиться для этой игры. А если так коробят названия и имена, то можно и самому для себя их подправить на своём компе. Ресурсы игры легко вытаскиваются и правятся. Что я и сделал успешно для себя.
  9. Foolish Mortals

    @DjGiza пусть авторы игры или перевода сами заморачиваются. Мы тут высказываем просто своё чисто субъективное мнение. Возможно авторы перевода даже читают эту ветку. Я вот уже почти прошёл это квест, как пройду удалю с компа и забуду. Всяк на русском лучше играть, чем вообще без русского, даже если в переводе есть косяки, имхо. А так перевод от мастертранслейта вполне качественный, особенно перевод текстур вдохновляет. А мелкие косяки — это мелочи, их можно подправить, равно как и адаптированные названия и имена.
  10. Foolish Mortals

    Я бы оставил американское название города в русской транскрипции — Диднэтл. Напр, Colorado Springs же мы не переводим как “Колорадские Пружины”… Но, можете оставить как есть, это ни на что принципиально не влияет. То же касается имён персонажей. А вообще, адаптированный перевод американизмов — это та ещё задача, вы правы. Особенно если они вплетены в канву и сюжет игры.
  11. Foolish Mortals

    @allodernat а зачем весь? Только эту дурацкую “адаптацию” имён убрать в тексте и на текстурах. Ну, и копейки в центы превратить. На 90 % перевод нормальный и довольно качественный. Я бы там ещё и над названиями локаций поработал… Напр., город “Мертвоцвет”.
  12. Foolish Mortals

    @allodernat это всё познавательно, но лучше займись текстурами игры. Твоя картинка явно лучше. И тогда сможешь предложить свой перевод авторам игры. Возможно они внедрят его официально.
  13. Foolish Mortals

    Это была шутка… Во вселенной переводчиков — альтернативная вселенная. В оригинале, конечно, не копейки.
  14. Foolish Mortals

    Вставлю свои две копейки… Это альтернативная реальность, где и Луизиана, и Калифорния, и Аляска, и свободный Техас в составе России. А Себастьян Пряткин, да — это выше моего понимания. Имена собственные, равно как и названия мест, городов и пр. лучше оставлять в оригинальной транскрипции, но писать русскими буквами, имхо. Ну, а в остальном, какие-то надуманные проблемы… Хопспоты, “вшитые” в сейвы, это не проблема разработчиков, а проблема движка, я так думаю… В Unity зачастую аналогичная ситуация. Нужно проходить сначала или с предыдущего сейва. https://disk.yandex.ru/i/3aXI9JSTETde0w https://disk.yandex.ru/i/ayl4bObrMzKCeQ
  15. Foolish Mortals

    @allodernat ну, так очевидно же, что авторы игры добавили перевод текста и текстур от mastertranslate. Я вот для себя подправил шрифт и вот такие косяки, и с удовольствием играю. В целом, всё очень прилично, но текст кое-где требует правок.
Zone of Games © 2003–2026 | Реклама на сайте.

×