1. Основы моддинга и распаковка игровых архивов
Основы моддинга и распаковка игровых архивов
Создание пользовательских модификаций для современных ролевых игр требует глубокого понимания их внутренней архитектуры. Моддинг проекта Pathfinder: Wrath of the Righteous базируется на взаимодействии с файловой системой игрового движка Unity. Чтобы добавить новый меч, изменить характеристики класса или написать собственную сюжетную линию, необходимо научиться извлекать оригинальные данные, понимать их структуру и правильно упаковывать изменённые файлы обратно.
Архитектура данных в Unity и концепция блюпринтов
Игры на базе Unity не хранят модели, текстуры и текстовые данные в открытом виде. При компиляции проекта все ресурсы упаковываются в специализированные бинарные архивы с расширениями .assets и .resS. Это делается для оптимизации загрузки в оперативную память и защиты интеллектуальной собственности разработчиков.
Однако студия Owlcat Games использует специфический подход к организации игровой логики. Вся база данных игры (заклинания, квесты, диалоги, предметы) построена на системе блюпринтов (blueprints).
> Блюпринт — это текстовый файл-чертёж, содержащий набор инструкций и характеристик для конкретного игрового объекта. Он не содержит самой 3D-модели или иконки, но хранит ссылки на них, а также описывает все математические и логические параметры объекта. > > Owlcat Games о разработке Pathfinder
Блюпринты хранятся в формате JSON (JavaScript Object Notation). Это текстовый формат обмена данными, основанный на парах «ключ-значение», который легко читается как машиной, так и человеком.
!Схема архитектуры модификации
Инструментарий мододела
Для полноценной работы с ресурсами Pathfinder: Wrath of the Righteous потребуется набор специализированных программ. Использование правильного софта — половина успеха в обратном инжиниринге.
| Название программы | Основное назначение | Форматы файлов |
| --- | --- | --- |
| AssetStudio | Просмотр и извлечение визуальных ассетов (модели, текстуры, звуки) | .assets, .bundle |
| UABE (Unity Asset Bundle Extractor) | Глубокая распаковка и обратная запаковка архивов | .assets, .resS |
| Visual Studio Code | Редактирование логики, написание скриптов и правка блюпринтов | .json, .xml, .cs |
| Unity Mod Manager (UMM) | Загрузка и внедрение пользовательских модификаций в игру | .zip (с DLL внутри) |
| WotR Modding Tools | Фанатская адаптация официальных Kingmaker Modding Tools для генерации дампов | Дампы базы данных |
Помимо этого, для создания новых визуальных эффектов или 3D-моделей экипировки потребуется сам редактор Unity. Важно использовать ту же версию движка, на которой скомпилирована игра (для Wrath of the Righteous это ветка 2019.4.x), иначе игра не сможет корректно прочитать созданные вами ассеты.
Распаковка игровых архивов: пошаговый процесс
Первый практический шаг в моддинге — получение доступа к оригинальным файлам игры. Без этого невозможно понять, как разработчики реализовали ту или иную механику. Для извлечения данных мы будем использовать AssetStudio.
File -> Load folder.Wrath_Data, которая находится в корневой директории установленной игры.resources.assets весит около 3-4 ГБ, а после распаковки может занимать более 15 ГБ на жёстком диске, разбиваясь на сотни тысяч мелких файлов.Asset List. Здесь находится плоский список всех найденных ресурсов.Filter Type. Для поиска иконок предметов выберите Texture2D, для поиска текстовых блюпринтов — TextAsset.Export -> Selected assets.Например, если вы хотите изменить портрет компаньона, вам нужно найти его текстуру по имени (например, Camelia_Portrait), экспортировать её в формате .png, изменить в графическом редакторе, а затем использовать мод-менеджер для подмены оригинала в оперативной памяти во время игры.
Работа с форматом JSON и структура предметов
После того как вы сгенерируете дамп блюпринтов с помощью WotR Modding Tools или мода Toy Box, вы получите доступ к тысячам файлов JSON. Давайте разберём структуру типичного игрового предмета на примере простого длинного меча.
```json { "AssetId": "a1b2c3d4e5f67890", "Data": { "1d84DD = R + 4R185 \leq D \leq 122d6$». Этот метод называется Runtime Patching (патчинг во время выполнения) и реализуется с помощью библиотеки Harmony, которая поставляется вместе с UMM.
Освоив распаковку ассетов и чтение блюпринтов, вы получаете полный контроль над математикой и логикой игры. Следующим этапом станет создание собственного независимого модуля, который добавит в мир Голариона совершенно новый предмет экипировки с уникальной 3D-моделью и характеристиками.