на главную
об игре

Перенос официальной русской локализации Nier Automata со Switch на ПК

Я знаю, что на игру есть фанатский перевод от команды The Miracle, этот вариант прошу не предлагать.

Итак, игра использует движок Criware, игровые файлы запакованы в формат .cpk в обеих версиях (Switch и ПК, файлы Switch версии распакованы из .nsp файла). В Switch версии есть файлы с переводом на русский, в ПК версии, скаченной из Steam, их нет. Если заменить все файлы .cpk ПК-версии на файлы .cpk Switch-версии, то игра при запуске вылетает. Судя по всему, есть определённые файлы локализации: data100.cpk, data019.cpk и data009.cpk. С их заменой игра запускается, но вместо текста пустота (текст не отображается), а экран тёмный (в меню игры), хотя яркость стоит на среднюю (5 делений из 10). В файлах data100.cpk, data019.cpk и data009.cpk хранятся шрифты, субтитры и какие-то тексты к новеллам.

В общем, вопрос: Возможно ли перенести официальную локализацию из Switch-версии в ПК-версию? И как это сделать?

P. S. Спустя 3 суток работы могу сказать, что "Да, можно". Был использован метод ручной установки фанатской локализации: Папки core, novel, ph1, ph2, ph3, ph4, phf, quest, st1, st2, subtitle, txtmess, ui и wd1 кладутся в папку data с директорией игры. Папки novel, subtitle и textmess в switch-версии имеют файлы с припиской ru/rus, поэтому стоит в названии файлов приписку ru/rus заменить на us/eng, то игра начинает использовать эти файлы и отображать русский текст. В файлах же без приписок игра использует эти же файлы, но отображает английский текст, так как в файле русский текст не заменяет английский, а лежит отдельно. Nier: Automata Localization Tool парсировал эти мультиязычные .dat файлы (пришлось добавить аргумент ru/rus в langs в парсере, так как его там не было) в файлы .properties с русским текстом, но с закодированным Unicode. Далее эти файлы .properties с русским текстом парсируются обратно в файлы .dat, но на этот раз русский текст заменяет английский. Таким образом игра по большей части начинает использовать официальную локализацию switch-версии со всеми вытекающими. К сожалению, добавление папки ui с файлами switch-версии привело к некорректному отображению интерфейса в ПК-версии, поскольку файлы UI для разных платформ могут использовать отличающиеся форматы или требовать специфических графических ресурсов и шрифтов, несовместимых при прямом копировании.

P. P. S. Спустя ещё 4 дня у меня получилось заставить работать папку ui от switch-версии. Проблема была в том, что switch-версия для рендера шрифтов использовала .astc, а ПК-версия .dds.Ни одного файла фанатской локализации использовано не было. Были использованы Noto Sans для 03, Open Sans для 02 и PerfectDOSVGA437 для 10. Некоторые строки текста отсутствовали в switch-версии, поэтому локализованы не были и остались с английским текстом ПК-версии. Перенесённая официальная русская локализация работает, но надо тестировать и дорабатывать.

11
11
Комментарии:  11
Ваш комментарий

У Switch и ПК версий Nier Automata примерно одинаковая структура файлов: Папки Enlighten, movie, movie_logo, sound и куча файлов dataxxx.cpk (xxx - это числа от 000, 001 и далее), на switch версии cpk файлов больше.
Сравнение размера папок:
sound: PC - 1.52 GB и 116 файлов/6 папок, Switch - 1.11 GB и 104 файла/6 папок
movie_logo: PC - 19.0 MB и 5 файлов, Switch - 2.58 MB и 4 файла
movie: PC - 19.5 GB и 150 файлов, Switch - 3.52 GB и 150 файлов
Enlighten: PC - 3.31 MB и 364 файла, Switch - 3.32 MB и 364 файла.
Файлы dataxxx.cpk: PC - 19.7 GB и 24 файла, Switch - 6.19 GB и 30 файлов.

В общем, используя метод ручной установки фанатского перевода (копированием 386 файлов в 15 папках wd1, txtmess, ui, st1, st2, st5, subtitle, ph3, ph4, phf, quest, core, novel, ph1 и ph2 в папку data в директории игры), игра начала использовать файлы switch версии официальной локализации. Но экран был тёмным, а некоторые элементы интерфейса не отображались корректно. Чтобы решить эту проблему, папка UI с файлами switch версии была удалена. В итоге на русском языке есть: Некоторые элементы UI (как получение G или подтверждение о загрузке сохранения), субтитры (только перендеры в 30 фпс, в самой игре субтитры всё равно на английском) и заметки в разделе Intel.

Папки с ручной установкой фанатской локализации (но с файлами от Switch-версии):
Папка core: corehap.dat (какой-то файл, что делает неясно)
Папка novel: 19 файлов формата .txt с похожими названиями на M9000_S0500_N_eng.txt (вероятно после переноса работают)
Папка ph1: p100.dat; Папка ph2: p200.dat Папка ph3: p300.dat; Папка ph4: p400.dat
(Файлы каких-то фаз, отвечают за общие субтитры)
Папка phf: pf10.dat, pf30.dat, pf31.dat, pf60.dat (Файлы каких-то финальных фаз, отвечают за общие субтитры)
Папка quest: 88 файлов из четырёх символов, всегда начинающихся на букву q (qXXX.dat), формат фалов .dat. (Файлы описаний квестов. Работают)
Папка st1: r100.dat, r110.dat, r120.dat, r130.dat, r140.dat, r150.dat, r160.dat, r170.dat
Папка st2: r200.dat; Папка st5: r530.dat (Какие-то скрипты, отвечают за общие субтитры)
Папка subtitle: 208 файлов с форматом .dat с названиями похожими на subtitle0010_us.dat или subtitleb060_us.dat (Файлы субтитров видео-катсцен-пререндеров, те, что в 30 фпс. Работают)
Папка txtmess: txt_chapter_us.dat, txt_core_add_us.dat, txt_credit_us.dat, txt_dlc1_us.dat, txt_dlc2_us.dat, txt_dlc3_us.dat, txt_hud_add_us.dat, txt_hud_us.dat, txt_pause_add_us.dat, txt_pause_us.dat, txt_shop_us.dat, txt_support_us.dat (Файлы текста интерфейса, что не находится в папке ui. Работают)
Папка ui: 38 файлов форматов .dtt и .dat, названия начинаются на ui_ (Файлы интерфейса. Не работают. Экран затемняется, некоторые элементы интерфейса пропадают или отражаются неправильно).
Папка wd1: g11516.dat (какой-то файл, что делает неясно)

ну теоретически возможно, при условии того, что инструменты для моддинга поддерживают свич, в чём я сомневаюсь

Так Switch фактически своё дело сделал: Дал образ игры с картриджа/Nintendo eShop. Далее просто идёт распаковка файлов .nsp или .xci и всё. Файлы Switch и ПК версий есть, только нужно понять как сделать так, чтобы в игре на ПК появился русский язык со Switch версии.

Ну так одного наличия файлов недостаточно)
Нельзя просто взять файлы свича и запихнуть в пк порт, платформы то разные.
Всё что нужно, по сути, так это распаковать эти самые файлы и переконвертировать для совместимости с ПК портом. Затруднений это вызвать не должно, так как моддинг автоматы вроде как достаточно развит.

Могу попытаться сделать это, как буду свободен, хотя опыта в моддинге этого движка у меня нет

P.S. есть кстати ссылка на образ свича? Я чёт искал, но не нашёл

Платформы разные, движок фактически один - Criware. Структура файлов почти одинаковая - файлы типа .cpk, только в Switch версии их больше (PC - 24 файла, Switch - 30 файлов). Файлы .cpk распакованы: 30 папок и 10776 файлов. За основу установки переноса локализации решено было взять "Установку фанатского перевода ручным методом, переносом нужных папок в папку data с игрой, без exe-установщика и без редактирования exe-файла игры". Конкретно папки wd1, txtmess, ui, st1, st2, st5, subtitle, ph3, ph4, phf, quest, core, novel, ph1 и ph2, в них 386 файлов. Файлы из switch версии были мной скопированы таким же образом, как и в фанатской. Получилась папка data с официальными файлами размером 65.4 MB против фанатской со 103 MB, кол-во файлов такое же. В результате игра запускается, но на месте интерфейса пусто, но иногда русский текст всё же показывается. При начале игры в геймплее иногда в UI появляется русский текст, субтитры почему-то английские, но в пререндере (его легко заметить, так как он идёт в 30 фпс) показываются уже русские субтитры.

Итог с папками ph1, ph2, ph3, ph4, phf, st1, st2, st5.
Файлы .dat в этих папках не имеют языковых приписок и поэтому являются "многоязычными" в обеих версиях игры. В Switch-версии эти .dat файлы имеют блоки с русским текстом (в виде кракозябр, но всё же). В Switch-версии можно выбрать русский язык в главном меню игры (он не заменяет английский язык), в ПК-версии такого нет. С этими файлами .dat switch-версии игры, ПК-версия игры ищет блоки с английским языком и воспроизводит общие субтитры на английском языке.

А с папкой ui с файлами switch-версии я понятия не имею, что делать. Мне пришлось её удалить, что интерфейс нормально работал.

С помощью Nier: Automata Localization Tool с GitHub мне удалось распаковать большинство файлов .dat со всеми локализациями switch-версии c помощью unpack_dat.py. Но когда дело доходит до switch-файлов .dat без языковых приписок (файлы эти мультиязычная, хранят в себе несколько языков, включая русский), то скрипт get_strings.py может перенести в файлы типа .properties только английский текст, с выводом русского текста это скрипт, скорее всего, работать не может.

Nier: Automata Localization Tool всё-таки смог распаковать файлы switch-версии с официальной русской локализацией. Нужно было просто в парсеры (langs) добавить аргумент ru и rus с индексом 8 и он парсировал большую часть в файлов в файлы .properties. Русский текст оказался в закодированном Unicode, но OmegaT смог дать его прочитать, конвертировав в UTF-8. Далее русский текст из файлов .properties был "замаскирован" под английский и парсирован обратно в файлы .dat. Как итог, всё работает, кроме папки ui. Локализация заработала без добавления папки font.

Мне получилось перенести русский текст switch-версии из папки ui на ПК-версию. Проблема была в том, что switch-версия для рендера шрифтов использовала .astc, а ПК-версия .dds. Поэтому пришлось ещё и файлы ПК-версии распаковывать и парсировать. Были недостающие строки на английском языке, файлы ПК-версии были "соединены" с официальным русским текстом switch-версии. Так как в трёх шрифтах полностью отсутствовали русские шрифты (они как бы есть в switch-версии, но как их вытаскивать я не знаю), пришлось генерировать Python'ом символы в формате .png при помощи похожих шрифтов. Были использованы Noto Sans для 03, Open Sans для 02 и PerfectDOSVGA437 для 10. Ни одного файла фанатской локализации использовано не было.

Слева перенесённая на ПК официальная русская локализация с Nintendo Switch-версии, справа фанатская локализация от The Miracle, Rindera версии 1.31. Переводы где-то схожи, где-то отличаются.

Новое на форуме NieR: Automata