Amigaser
Пользователи-
Публикации
302 -
Зарегистрирован
-
Посещение
Все публикации пользователя Amigaser
-
Кто-нибудь уже переводит эту игру?
-
Как импортировать атласы и метрики для шрифтов, которые я сделал для версии игры 1.1.9207.35014. Скачайте UnityPatcher Releases · JunkBeat/UnityPatcher Распакуйте архив в папку игры. Создайте тут же папку RURU и распакуйте в неё файлы вот из этого архива https://disk.yandex.ru/d/f0QWrPyGW5R7rA Это шрифт Ubuntu в разных вариациях. Затем запустите командную строку cmd рядом с Patcher.exe и выполните команду Patcher.exe pack "RURU" -i "Ignorance_Data" —outsamedir —backup Дампы импортируются в ассеты и создастся рядом папка BACKUP с оригинальными файлами (на всякий случай). Это только шрифт Ubuntu русифицированный в разных вариациях, но в игре могут быть ещё и другие шрифты. Вычислять их сложно. Проще всего вытащить все шрифты из игры также через UnityPatcher командой Patcher.exe unpack -i "Ignorance_Data" —font Создастся папка Patcher_Assets и в ней папка SDF со шрифтами. Там смотреть png-картинку (Атлас) шрифта и сличать буквы из неё с текстом в игре. Похожий SDF шрифт подменить на русский. Можно взять тот же Ubuntu, но отредактировать идентификаторы в метрике и имена файлов метрики и атласа, импортировать в игру по команде выше, и проверить в игре. Если это тот шрифт, то заколосится. Если не тот, то пробовать другой похожий. Можно было бы найти шрифт цивилизованно через UnityExplorer, но у меня почему-то не работает с этой игрой BepInEx, который нужен для UnityExplorer. Если удастся подобрать работающий, то найти нужный шрифт будет проще. Для того, чтобы экспортировать тексты из ассетов в дампы, нужно выполнить в cmd вот такую командуPatcher.exe unpack -i "Ignorance_Data" -c TextMeshProUGUI —group type_sourceВ папке Patcher_Assets появится папка MonoBehaviour, а в ней по папкам ресурсов будут находиться json-дампы. В каждом файле json-дампа есть поле "m_text", в нём и будет англ. текст для перевода. Для импорта переведённых дампов в ассеты игры, нужно очистить папку RURU и скопировать туда переведённые дампы без всяких папок, просто в кучу. Выполнить команду импорта как для импорта шрифтов выше. Все команды импорта в ассеты нужно выполнять, естественно, при закрытой игре. Не все тексты в игре находятся в ассетах. Некоторые тексты вставлены прямо в код игры в виде строк. Но таких строк не сильно много. Для их перевода придётся воспользоваться декомпилятором кода и правкой их прямо в коде игры, с последующим сохранением модуля. Это всё находится в файле Assembly-CSharp.dll в папке \Ignorance_Data\Managed\. Для декомпиляции и поиска текста нужно воспользоваться утилитой dnSpyEXRelease v6.5.1 · dnSpyEx/dnSpyРаспаковать в какую-нибудь папку и запустить. Выйти из игры. Открыть файл Assembly-CSharp.dll. Затем в строке поиска искать текст, который нужен. Напр., при выходе из игры появляется окно с текстом “Are you sure you want to quit to your desktop?” Найти текст с настройками поиска как на картинкеhttps://disk.yandex.ru/i/DXj-gIaU-nUAxQЗатем нажать на нём правой мышкой и выбрать “Изменить инструкции IL” и заменить текст на русский. Затем OK. И в меню выбрать Файл — Сохранить модуль. Некоторые фразы могут содержаться не в объектах с классом TextMeshProUGUI. Для их поиска нужно воспользоваться командой Патчера search. Напр., для поиска текста WE PROTECT THE NATION. нужно выполнить такую команду: Patcher.exe search "WE PROTECT THE NATION." —entire_search —once —export -i "Ignorance_Data" —group type_source —output_folder Patcher_search Будет найден ассет, содержащий этот текст, и результат поиска в виде json-дампа будет помещён в папку Patcher_search А дальше переводим там этот текст и дамп с переводом помещает в папку RURU (предварительно очистив её) и выполняем команду импорта. Многие хотят переводить прямо в контексте игры не выходя из неё и правя текст прямо по ходу игры. Такой вариант тоже есть, напишу о нём позже. P.S. Все длинные тире в командах перед опциями — это два тире, движок форума их почему-то сливает.
-
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
Удалось вычислить шрифт через UnityExplorer, которым отображается этот текст. Это ZiHun213-LiLiSong_SDF. Это смешанный шрифт китайско-латинский, в нём есть латинские буквы, а вот русских нет. Движок игры построен таким образом, что если он не находит нужного символа в метрике шрифта, то переключает на запасной (fallback) ttf-шрифт LiberationSans, он мультиязычный. Но этот механизм в Unity глючный, некоторые буквы он не может правильно подставить и выдаёт квадраты. Можете сравнить свою картинку с картинкой с оригинальным шрифтом https://disk.yandex.ru/i/u1kE1SzSI1TaGA Видно, что шрифт совсем другой. В игре есть ещё 3 подобных шрифта, возможно где-то ещё будет подмена шрифта и возникнут подобные проблемы с квадратами. Вот шрифт, который должен решить проблемы с квадратами в тексте, да и он лучше подходит под стилистику игры. https://disk.yandex.ru/d/54-MBt8bKluhcA Скопировать бандл с заменой (оригинальный на всякий случай сохраните) по пути \shanhelvtan_Data\StreamingAssets\yoo\MainAsset\ за шрифт и собранный бандл благодарности @allodernat -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
А где там квадраты вместо букв? У меня все русские буквы на месте. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
А дайте сэйв, где эти квадраты появляются. Скажу какой шрифт там используется. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@vvildfish попробуйте пройти до места с газетой News of Shen’s Arrest в английской версии игры, без заменённых файлов. Не с сэйвов, а с начала игры/главы, и посмотрите, будут ли там квадраты. Если будут, то это косяк разработчиков. Если нет, то дело в шрифте. На месте квадратов д. б. иероглифы, имхо. img1.png — Яндекс Диск То же и с картинкой с фразами, где квадраты. Пройдите до неё в оригинальной версии, без модификации, и покажите как выглядит эта картинка в оригинале. Это в какой главе квадраты появились? -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@vvildfish там у вас SDF шрифты заменены на кириллические, поэтому и нормально отображается. Вопрос только именно в этом шрифте, в котором некоторые буквы отображаются квадратами. Вот его надо вычислить и заменить на “русифицированный”. Вам дали вот этот бандл с русифицированным шрифтом? mainasset_assets_art_font_beforeinit_adobekaitistd-regular sdfbeforeinit.bundle Вы пробовали его заменить? -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
В игре куча китайских шрифтов с иероглифами. Дело только в коде, китайцы не предусматривали поддержку кириллицы. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@vvildfish а что это за сэйв? Файлы сейфов вот тут находятся — c:\Users\<ваша учётка>\AppData\LocalLow\OMESCAPE\山河旅探\SaveData\ -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@vvildfish надо. А ещё лучше дать сэйв в этом месте. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@vvildfish что получится? Вот, как бы, найти этот шрифт… Вот тогда и получится. Но есть шанс. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
Как раз не все. В некоторых надписях пропадают русские буквы из-за кривого механизма fallback в Unity. Вот мы тут с этим и разбираемся. Это не параметры шрифта нужно менять, а код игры. Разрабы не предусмотрели возможность ввода других, не латинских символов при вводе имени. При вводе на китайском, скорее всего, будет тот же коленкор. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@vvildfish проблема в том, что в этих фразах используется SDF шрифт, который не русифицирован. Система fallback шрифтов, если не находит нужных символов подсовывает мультиязычный шрифт на замену, но работает это криво, некоторые символы пропускает и выдаёт квадраты. Чтобы это исправить, надо найти нужный SDF шрифт и заменить его атлас и метрику на русифицированные. Но, чтобы его как-то найти, нужно его хотя бы увидеть в оригинале. Поэтому нужны эти надписи в игре на английском языке. Да и чтобы до них добраться, нужен хотя бы сейв в этом месте, где выводятся эти тексты. Тогда можно будет попробовать визуально идентифицировать этот шрифт, сравнивая его с теми, что есть в игре. По другому я не знаю как это шрифт вычислить. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
Я пробую, но пока не так всё просто... -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@parabelum я пока изучаю вопрос. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@vvildfish а напишите фразу, которая квадратами показывается. Лучше на английском. -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
@vvildfish а мне UnityEX не нужен. Вопрос только где взять новую версию, чтобы работала без стима? -
помощь со шрифтами в Юнити игре
Amigaser ответил в тему пользователя vvildfish в Вскрытие игровых ресурсов
Могу посмотреть. Но мне нужна сама игра той версии, которую переводите. На рутрекер есть версия 1.5.50. Она подойдёт? -
@Saimys87 что непонятного? Берёшь текст из поля "texten", переводишь, и вставляешь перевод в поле "textru". Сохраняешь изменения. Когда всё переведёшь, скинешь мне файлы с переводом. Я импортирую перевод в ресурсы игры. А если захочешь сам попробовать заняться импортом, напиши в личку. Попробую рассказать что да как.
-
@Saimys87 русский SDF шрифт Ubuntu сделал в разных вариантах, которые в игре используются. В архиве дампы для шрифта для Unity Patcher. https://disk.yandex.ru/d/8fdbp8xPI_ruZA А в этом архиве шрифты уже импортированные в ассеты игры. Их просто скопировать с заменой в папку Ignorance_Data https://disk.yandex.ru/d/JWjCw-kKlDbcTA Возможно где-то в игре ещё и другие шрифты используются, это можно выявить только по мере её прохождения. Тогда нужно вычислять нужный шрифт и заменять его на похожий русский. С текстами оказалось чуть сложнее, чем ожидалось. Не весь текст в объектах TextMeshProUGUI, некоторый в объектах с другими классами, и некоторый скомпилирован прямо в код в виде строк. Напр., как надписи на третьем скрине. Но основной текст всё же в объектах TextMeshProUGUI. Ещё есть проблемы, что переведённый текст может на влезать в контейнер для него предназначенный, банально из-за того, что перевод на русский длиннее английского текста. Даже в настройках это проявилось. Тут, кроме как сокращать русский текст, не знаю что ещё можно сделать. https://disk.yandex.ru/i/5iHP2pfHs_usxQ https://disk.yandex.ru/i/CNj-aUGwqCW9zg https://disk.yandex.ru/i/_xNyVdZhOqZhyg Вот вытащенный текст по файлам ресурсов из объектов TextMeshProUGUI. Это просто текстовые файлы в формате json. Добавлять перевод нужно в поле textru (в кавычках). Переводить можно только текст, escape-последовательности (перенос строк и пр.), обратные слэши, служебные символы и тэги не трогать. В тэгах можно переводить только текст в них. https://disk.yandex.ru/d/mjxG1KGG6RvIGw Если надо, можно текст и в таблицу Эксель, где будет и поле для перевода (textru). После перевода вставлю перевод в дампы и импортирую в ассеты в ресурсах. Я вижу процесс перевода так: - проходить игру, и по мере прохождения искать в json-файлах фразы и переводить их в контексте игры. - после прохождения вставлю перевод в игру, и нужно будет его протестировать по мере прохождения - тексты, которые остались не переведённые, записывать в текстовый файлик с их переводом, я смогу затем англ. текст поискать в ресурсах игры и заменить их на перевод. Также можно отдельно сохранять русские тексты, которые не вписываются в контейнеры для них предназначенные. И думать как их сократить, заменить. Вот как-то так… Тогда может получиться вполне приличный перевод этой игры. Внимание! Ресурсы, которые выложены выше, ТОЛЬКО для версии игры 1.0.6654.43043. Для других версий игры, напр., последней в Стиме 1.1.9207.35014 они не подойдут. Поскольку я не смог найти эту версию игры, отвязанную от Стима, то переводчикам придётся самим вытаскивать дампы из их версии игры через UnityPatcher, переводить в них тексты, и запаковывать назад в ассеты. Как это сделать, напишу позже.
-
Шрифт смогу поменять. Для начала нужно его создать в Unity и подправить метрику. Позже сделаю. Можно переводить в файле с текстами по мере прохождения игры. Ищешь английский текст в файле, и в нём же добавляешь перевод. Когда, напр., пройдёшь первый эпизод, можно будет импортировать перевод в игру и ещё раз его потестить Сначала вытащу все тексты в удобоваримом виде, затем скажу где и как править.
-
@Saimys87 хорошо. Когда всё подготовлю — выложу тексты для перевода.
-
@Saimys87 в игре 5879 строк для перевода. Будешь делать?
-
@parabelum они там вроде как и 3-ю собирались делать…
-
@parabelum @Saimys87 SDF шрифты там без поддержки кириллицы. Надо менять Атлас и Метрику с кириллицей. В ресурсах игры — 88 SDF шрифтов. Но это не значит, что все они используются в игре. Часто разрабы просто не убирают мусор при компиляции проекта. Судя по начальным текстам — да, там Ubuntu шрифт используется. Можно попробовать его для начала заменить.