В прошлый раз я уже рассказывала о том, как могут быть устроены игры. Теперь же настало время поведать вам, как это строение узнали и зачем вообще людям изучать организацию файлов той или иной игры. 
Примечание:

Пост рассчитан на тех, кто еще только знакомится с тонкостями 3D-моделирования и игровой инженерии, и в некоторых случаях понятия подаются несколько утрировано для понимания сути процесса.

В тексте будет много упоминаний программ, сайтов и сервисов, а также игр и разработчиков игр. Не сочтите это за рекламу.

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

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


Мод, заменяющий модельку Волка из Sekiro на драконида-альбиноса. Мой

▎Начнём с того, что такое реверсивная инженерия.

 
Реверсивная инженерия (reverse engineering) — различные способы вскрытия скрытых программных и непрограммных внутренностей зашифрованных файлов, включая закодированные библиотеки всевозможных редакторов (фото, видео, аудио-редакторов), расшифровку запароленных архивов со сложной архитектурой и, конечно, содержимое графических движков и игровые файлы. 

▎Зачем вскрывать игровые архивы? 


Рядовой пользователь, скорее всего, подумает о поиске способов нелегального получения выгоды (читах или пиратстве, продаже элементов кода или моделек). 
Дизайнер или художник скажет, что неплохо было бы поближе изучить отдельные детали — подробности строения монстров, одежду или украшения героев (а то и лица в играх, где они детализированы, но на скриншотах не видны), устройство и архитектуру уровней и локаций и т.п.

Начинающий геймдизайнер тоже захочет поближе познакомиться с архитектурой, но уже не только локаций, но и с архитектурой файлов в целом и организацией скриптов. 
Но есть и ещё одна, особая категория продвинутых юзеров, которым также необходимо знать, как устроены файлы игры. Это энтузиасты, которые могут не спать ночами, не получая ни копейки прибыли за свои мучения (как правило). Люди, которые одинаково ревностно хранят свои секреты и делятся ими на открытых форумах. Безумцы, способные пересобрать игру в нечто настолько отличное от оригинала, что рядовой юзер и не поймёт, что играет в переделку. Имя им — легион… Ой, то есть мододелы. 

▎Моды и их классификация


Моды или фанатские модификации (mod, mods) — всевозможные преобразования и изменения, вносимые в игру не разработчиком, а фанатской аудиторией. Далеко не всегда это улучшения или какие-то заметные правки, зачастую это мелкие коррекции баланса (урона, перезарядки умений, подзагрузок и т.п.), иногда замена частей интерфейса или текстур, а порой просто форменное безумие, представляющее собой винегрет из авторского бреда и вырвиглазных моделей с корявой анимацией. 
Мододелы по большей части люди непрофессиональные. Обычно в мододелы перерастает самый обычный игрок, которому не понравилась какая-то одна незначительная деталь, намозолившая глаза за десяток-другой прохождения любимой игры. Но в процессе поисков исправления этой детали он узнал о своей любимой игре столько, что просто не мог не попробовать разнообразить свое прохождение чем-то ещё. 
Кстати, ретекстуры появились не в 3D-играх. Первые моды-перекраски делали еще для первых видеоигр, заменяя спрайты (пиксельные изображения) либо кодом, либо путем перерисовки игровых атласов. Но для этого требовался немалый труд, ведь заменять приходилось не одну картинку с цветом, а несколько десятков или сотен кадров на каждое движение и действие персонажа. К слову, моды-ретекстуры на «плоские» игры существуют и сейчас.

Вот, например, оригинал и ретекстур главного героя из игры Hollow Knight в мододеланьи которой я тоже поучаствовала:

     
Внизу вы видите два атласа (набора текстур для спрайтов героя). Аналогично, слева оригинал, справа ретекстур. Работа была проделана колоссальная. Автор ретекстура LOATR, название Sapphire knight.
Чтобы нам в дальнейшем было проще ориентироваться, я приведу примитивную классификации модов, которой так или иначе придерживаются на многих русскоязычных сайтах и форумах с модами и модостроением. Эта классификация основана на том, какие изменения мод вносит в игру.
«Ванильная» игра — жаргонное название базовой игры без модификаций (в некоторых случаях и без DLC). Наибольшее распространение получило среди мододелов Скайрима, причём как русско-, так и англоязычных. 


В некоторых случаях ванильными могут назвать и моды или сборки модов, не нарушающие атмосферу и лор (историю мира), а также не вносящие серьёзные изменения в геймплей и внешний вид игры (lore-friendly моды).

Фикс (fix) — небольшая правка, изменяющая одну или несколько функциональных точек игры. Обычно представлена в виде исправления непосредственно кода игры, либо в виде добавления небольших текстовых файлов (dll- и dxl-библиотек, крохотных по весу системных файлов и т.п.). 


Иногда фиксы содержат и изменения текстур. Например, сильно облегчивший жизнь игрокам из 2011-го — 12-го DSfix — маленькая модификация, изменяющая настройки разрешения игры, клавиши и подписи в меню и интерфейсе игры Dark Souls PDTE на пк. В «ванильной» версии игры эти подписи были сделаны под кнопки джойстика, и пк-боярин поначалу очень сильно терялся.

Очень близко к фиксам стоят графические модификации без замены текстур и моделей. Обычно это такой же dll-файл, а то и вообще изменения в текстовом файле с базовой графической информацией или файл настроек игры в папке «Документы». По сути своей такие моды всего лишь изменяют настройки рендера (визуализации) игры, добавляя настройки камеры, света, силу и глубину теней и размытие. 


Сюда, например, можно отнести ENB-пресеты для Скайрима и серии Соулс, а также некоторые SFX-моды. Но предупреждаем — ресурсы слабых копмпухтеров эти модификации жрут очень сильно.

Геймплейные моды — изменения игрового процесса. Хотя многие геймплейные моды содержат в себе и фиксы, и реплейсеры, в базовом своём варианте это изменения, в первую очередь, программные — различные скрипты, плагины и надстройки, вносящие правки в код игры. 

Реплейсер (replacer) — обширная категория модов-заменителей чего бы то ни было. Большая часть реплейсеров содержит только и непосредственно заменяющий файл (текстуру, модель, анимацию и т.п.). 

Реплейсер текстур или ретекстур — самый распространённый тип модов. Как называется, так и выглядит — простая замена одной картинки на другую. Рамки очень широки — от изменения внешнего вида HUD до полной переработки текстур окружения на Full HD, что уже значительно меняет качество картинки на экране.  Хотя основная масса реплейсеров, конечно, перекраска шмоток и оружия для героев. 


                                   Оригинал VS ретекстур

Примечание
Простыми перекрасками ради увеличения разнообразия грешат и сами разработчики, добавляя дубликаты моделек внутри игры с разными текстурами. 






Скины-ретекстуры и скин-ремодел для драконов Фантома в игре Century: age of Ashes
Кстати, последний вдохновлен Адской виверной з Dark Souls PTDE


Правда, обычно это называется Skin и продается отдельно за внутриигровую валюту. Однако в новых играх скины могут содержать не только перекраску, но и дополнительные обвесы или вовсе новую модель.

Реплейсер моделей — замена ванильной модельки и её текстур на другую. Как и с текстурами, диапазон и масштаб замен очень велик. Наиболее популярны реплейсеры моделек брони и оружия, но реплейсеры врагов, монстров и архитектуры тоже достойны внимания. В редких случаях маньяки-мододелы полностью заменяют и пересобирают целые локации. 


Замена ГГ одной игры на ключевого босса другой. Не мое, ориг

Переработки и сборки (overhaul моды) — комплексные изменения, содержащие как программные геймплейные правки, так и реплейсеры, и ENB. Это не то чтобы совсем другая игра, однако значительные улучшения графики вкупе с небольшими исправлениями геймплея могут неплохо развеять вас как игрока или помогут освежить приятные воспоминания от первого прохождения игры. Ведь наш мозг устроен так, что любая понравившаяся нам вещь в воспоминаниях выглядит намного лучше, чем была в жизни, а посему при перепрохождении годы спустя мы часто испытываем разочарование. 

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

И отдельной категорией идут реворки — полные переделки оригинала. Причём изменения и дополнения порой настолько сильные, что результат правильнее будет назвать «игрой на движке ХХХ» (вставить вместо ХХХ название оригинала). Это тяжёлая и сложная работа, которую мододелы редко выполняют в одиночку (несмотря на то, что самое сложное — движок — используется уже полностью готовый и отлаженный). Некоторые из подобных проектов до сих пор находятся в разработке. Например, приснопамятный Skywind — ремейк Morrowind на движке Skyrim. Или знакомый отечественным игрокам как отдельная игра Диккурик — новая игра на базе небезызвестной Gothic. А уж широко известный в узких кругах Darkmod, поддержка которого осуществляется до сих пор… 


геймплейные особенности и квесты игры Thief. За годы существования проекта, командами из разных стран к этой базе были созданы сотни модификаций, от коротких приключений до полновесных игр с собственным сюжетом, озвучкой и кат сценами (роликами) на движке игры.

▎Купи Скайрим и сделай игру сам


The Elder Scrolls V: Skyrim — самая простая в моддинге игра из числа тех, которые я лично модифицировала или пыталась модифицировать. Заметьте, не самая простая в мире, а самая простая лично на мой вкус и цвет. Наверное, это потому, что Bethesda softworks к моменту создания «скурима» окончательно обленилась и стала выпускать песочницу или базу для доработки фанатами вместо полноценных игр. 
Где-то плачет один фанат Fallout

Хотя на момент выхода Скайрима лично я была им довольна. Конечно, некоторых моментов драматизма и деталей мира, как в Морровинд, мне не хватало, как и цветности Обливиона, но в целом было хорошо. До тех пор, пока я не узнала, что в игре, где основой сюжета (и геймплея) были драконы, самих драконов было всего четыре вида, один из которых в двух цветах, плюс ещё три именных с уникальными моделями и один костяк на всех после смерти. Да и зубов в пастях огромных альфа-хищников как-то маловато. 

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


Последние два отличаются только текстурой и цифрами урона (тонкости магии опустим). Уникальные драконы — Алдуин (босс), его братишка Партурнакс и предатель Одавиинг.

Позднее разработчики добавили ещё пару видов драконов — благородного перепончатого любимца игроков, легендарного и змеевидного, а также именного дракона Дюрневира c собственным квестом. Но это все ещё преступно мало: 



Это стало одной из причин для меня изучать моддинг в этой игре (и моддинг вообще) — разнообразить драконов. Второй причиной было желание изучить моделлинг для игр более подробно, так как на тот момент сам моделлинг на базовом уровне я освоила, но как перенести это в игру и функционально адаптировать, я не знала. 


Обычный дракон vs моя первая переделка. С этого ракурса разница не очень заметна, но для начала работа была немаленькая.

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


Одни моды добавляют только текстуры и настройки для драконов в игре (Bellyache New dragon species). Другие приносят пару десятков драконов с новыми моделями, способностями и квестами, как Chaos dragons.

В дальнейшем на каждом этапе моддинга я буду упоминать аналогичный этап для Скайрима, чтобы лучше показывать как процесс моддинга, так и отличия в моддинге разных игр. 
Я уделяю этому так много внимания сейчас, потому что моддинг других игр далеко не такой дружелюбный, как модификация Скайрима. И внесение правок в игры серии Dark Souls, равно как и в другие игры From Software, например, Sekiro и Elden Ring, по сложности сравнимо с прохождением этих игр. 

▎Что мод грядущий нам готовит


К чему была подводка про реверсивный инжиниринг в самом начале? К тому, что без знания о строении игр и способах упаковки файлов вам будет весьма трудно делать моды. Заметьте, не невозможно, просто трудно. Те же ENB-пресеты можно делать наобум, просто меняя значения в файле конфигурации графики. Рано или поздно вы создадите графический мод, пускай и после нескольких вылетов игры. Однако для создания хоть чего-то вразумительного вам понадобятся знания и инструменты. О каждом из них я расскажу подробнее в процессе. 

Кроме того, создание модов напрямую связано с нормальной и реверсивной инженерией игровых архивов. Даже самый простой реплейсер текстуры какого-нибудь завалящего меча невозможен без распаковки архива оригинальной игры. А многие игры после редактирования требуют еще и запаковывания этих архивов обратно с сохранением структур подпапок и порядка вложения архивов. Таким образом, для моддинга вам понадобится правильно распаковать и запаковать игру обратно. Благо для самых популярных игр энтузиасты из числа талантливых программистов уже сделали для вас соответствующие инструменты. Хотя и с ними не все так гладко.
???? Итак, что нам понадобится для моддинга Скайрима в базовом его виде? Исключая самые простейшие ENB. 
Собственно, сам Скайрим.
И все? 
И все.

Ну, может инструмент распаковки архивов — BSA extractor v3, позволяющий извлечь содержимое игровых файлов Скайрима и Fallout 3-4. В принципе, этого может хватить для совсем примитивные вещей. Но для серьёзной работы вам понадобится куда более внушительный арсенал. 
????Интересный факт.
Распакованные архивы Скайрима ускоряют загрузку игры и некоторых локаций на слабых ПК. 
Кроме того, распакованные модели, текстуры и скрипты имеют приоритет в загрузочных листах. Другими словами, если вы делаете мод для себя и не собираетесь его никуда загружать или наоборот, тестируете какие-то нововведения, вам достаточно только изменить распакованные части и запустить игру, не запаковывая их обратно. Это весьма удобно, особенно для мододелов, и значительно ускоряет работу с модификациями.


Если вам не нравится дизайн железных стрел, можете просто копировать модельку стеклянной стрелы в папку с железной стрелой, переименовав саму модельку в steelarrow. В принципе, мод готов, и даже упаковывать не надо :-).

Для создания простейшего реплейсера текстур вам потребуется уже две программы. Сверх BSA extractor вы должны будете установить какой-нибудь фоторедактор и плагин к нему, позволяющий читать и сохранять файлы формата DDS. Например, NVidia dds plug-in for Photoshop. 


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

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

          
В Скайриме много, что сделано «не как у всех». В том числе настройки блеска, спрятанные внутри карт нормалей, из-за чего текстурная карта выглядит почти черной с редкими фиолетово-синими узорами.

Итак, простейший ретекстур вы уже способны сделать. Но то в Скайрим. Как обстоят дела с нашим обожаемым Кольцом Элден? 

Для того, чтобы сделать ретекстур в почти любой соулс-игре, вам понадобятся:

  • UXM-editor (распаковщик и упаковщик архивов верхнего уровня — BDT-файлов) 
  • Yabber (функции схожи, но не во всем) 
  • Bindertool (аналогично первым двум, но лучше работает с некоторыми текстурными архивами)
  • Irfranview+dds plug-in
  • Noesis с плагином для чтения TPF-архивов с текстурами (может заменить Irfranview, но с оговорками)

Зачем такие сложности?

Дело в том, что не каждая из этих программ распаковывает архивы правильно (хотя создатели этих программ потихоньку исправляют проблемы своих детищ), а запаковывать обратно могут только яббер и UXM. Биндертул же нужен для распаковки отдельных внутренних архивов в папках с боссами, доспехами и оружием, а также для распаковки текстур. Текстуры также можно открыть с помощью Noesis и TPF-плагина, созданного специально для распаковки файлов Dark souls 3, но пригодного и для большинства текстурных пакетов Sekiro и Elden Ring. Но этот плагин коверкает имена текстур при распаковке, поэтому рекомендуется использовать его только для распознавания содержимого (номера текстур в папке соответствуют номерам ID-индекса модели — врага, босса, сета одежды и т.п.).


В окне предпросмотра в Noesis вы увидите слайд-шоу из содержащихся внутри TPF-архива текстур.

Однако это, так сказать, весьма узкий набор сущностно необходимых инструментов. Настоящий моддинг требует куда большего арсенала.

▎Делаем ретекстур


Начнем с простого. Сделаем простейший ретекстур на любую модель.
В истории мододельства долгое время для игр From software были доступны только ретекстуры. Никто толком не знал, как вытаскивать модели из Dark souls с правильным риггингом, не говоря уже о том, чтобы как-то изменить их и засунуть обратно в игру с сохранением функционала. Поэтому список модов на оригинальную DS PDTE в основном состоит из перекрасок брони для персонажа и некоторых косметических изменений, как, например, HD-текстуры для отдельных локаций или замена анимации стойки с мечом на другую. Верхом модостроительства был хитрый мод, меняющий оружие и щит на коробку с игрой. Помню, что тогдашние пользователи недоумевали, как автор мода заменил модель щита на что-то новое. Но все оказалось намного прозаичнее — текстура коробки с диском просто была натянута на базовую прямоугольную плитку, а небольшой скрипт менял один из щитов в списке чтения игры на эту самую плитку. К сожалению, сейчас этот мод найти не удалось.
Итак, для того, чтобы сделать ретекстур в Скайриме нам понадобятся уже упомянутые программы:

  • BSA extractor — для распаковки архива Textures.bsa
  • DDS-plugin для Adobe photoshop CS5-6
  • Irfranview с плагином DDS — для чтения, просмотра и экспорта dds-текстур. Это не обязательная программа.

В принципе, не лишними будут и такие программы, как Nifskope, но на данном этапе хватит и первых двух.

Идем в директорию игры — в папку, где лежит основной исполняемый файл запуска игры. Ищем там папку Data, а в ней — архив Textures.bsa. Это все или почти все текстуры игры.
Будьте готовы к тому, что программе-архиватору понадобится какое-то время на распаковку, а также очистите место на диске — в распакованном виде текстуры весят в 2-3 раза больше, чем в запакованном.

В зависимости от того, какая у вас версия или сборка игры, некоторые текстуры могут лежать в отдельных архивах с DLC:


Например, у меня стоят дополнительные пакеты текстур высокого разрешения, а также три DLC — Dragonborn, Dawnguard и HearthFires. Чтобы сделать ретекстур на предмет или моба из дополнений, вам придется распаковать также и архив с дополнением.

После того, как BSA extractor справится со своей задачей, вы увидите несколько папок, названия которых понятны интуитивно. В большинстве своем, мододелов интересуют папки:

  • Actors — персонажи игры, от гуманоидов и тела для игрока до врагов, боссов и драконов;
  • Armor — броня для игрока и NPC (неигровых героев, т.е.персонажей, за которых отвечает ИИ и скрипты);
  • Weapon — соответственно, оружие для игрока и персонажей.

Содержимое архива Textures.bsa:


Каждый, кто хоть раз играл в Скайрим, узнает эти названия. Почти все они соответствуют своим внутриигровым наименованиям:



Итак, мы выбираем себе оружие, которое хотим перекрасить. Например, посох драконьего жреца (мне просто нравятся их посохи). Соответственно, идем в папку Dragon priest внутри папки Weapon. Здесь мы найдем пять файлов — две текстуры для кинжала и три — для посоха. 


Посох драконьего жреца представлен в игре в двух вариантах — золотистый и железный (использующий вместо текстуры серую карту отражения). Посередине — карта нормалей. В скайриме она заметно темнее, чем в других играх, так как содержит альфа-канал, отвечающий за силу металлического блеска.

Копируем куда-нибудь оригинал (можно просто оставить копию там же, игра читает имена текстур, а не любые файлы в папке) и открываем золотую текстуру в PS (photoshop). Проводим необходимые манипуляции и ищем в меню сохранения пункт D3D/DDS.


Этот пункт появляется только после установки NVidia DDS-плагина. Плагин бесплатный.

После этого у вас появится окно с выбором настроек для экспорта DDS-текстуры. Рекомендуется ничего в этих настройках не менять — они достаточно универсальны.


Маленькая тонкость — старайтесь избегать в перекраске чисто белого цвета, так как некоторые игры, в том числе ранняя версия Скайрима, очень плохо его воспринимают, особенно с включенным ENB.
????Памятка.
При создании ретекстура необходимо помнить о такой вещи, как UV-mapping или карта наложения. Обычно вы не видите ее в файлах игры, однако она всегда присутствует на модели. Так, нельзя загрузить вместо одной текстуры текстуру любой другой модели — в лучшем случае вы получите забавный орнамент, в худшем — галиматью с дырами, а в случае с динамическими текстурами (пламя, вода, магия) и картами отражений можете и вовсе сломать игру. Поэтому при создании ретекстуров необходимо открыть оригинал и ориентироваться на края рисунка при создании нового.
Ретекстур посоха готов, осталось только запустить игру и проверить. Помните, что Скайрим считает приоритетными распакованные файлы, так что наша текстура должна автоматически подхватиться скриптами и появиться в игре.

Желтые посохи драконьих жрецов — не редкость в середине игры, и штуку-другую вы наверняка найдете в своем инвентаре или на складе.

Текстура загрузилась автоматически. Интерфейс моего Скайрима не ванильный, а собранный из SkyUI и AddItem menu — пара модов, облегчающих не столько саму игру, сколько процесс ее модификации, а заодно позволяющие получать вещи из модов без заморочек с их расположением:



Броня тоже модовская, но уже моя:


Слева — модовский посох, справа — ванильный зачарованный меч. Вид от первого лица

Аналогично ретекстуру можно сделать реплейсер музыки в игре. Для этого вам понадобится Skyrim audio converter. Найдите оригинальные саундтреки в папке Music, скопируйте их имена, переименовав свежесконвертиованную музыку, и замените оригинальные треки в папке назначения. Это не добавит новую музыку, только заменит старую. Кстати, мод-реплейсер моего творения музыки, заменяющий ванильную на музыку из серии соулсборнов и пару ремиксов оттуда, до сих пор лежит на одном из сайтов.

▎Перекраска соуса. Или секиры


Моддинг соулс-игр отличается от моддинга Скайрима так же, как и сложность этих игр для прохождения неподготовленным человеком. Начиная с того, что инструменты моддинга вам сначала предстоит найти и раздобыть, рыская по форумам и чатам в закрытых дискорд-каналах, а все описание применения оных сводится к «скачай, открой, а там сам разберешься». Да и вопросы про функционал на этих форумах часто остаются без ответа.

Итак, для моддинга Dark Souls 2-3, Sekiro и Elden Ring вам понадобятся в обязательном порядке:

  • UXM editor — для распаковки файлов игры самого верхнего уровня (BDT) и запаковки их модифицированных версий обратно. 
  • Yabber — для распаковки и запаковки текстур в TPF и моделей с TPF-тестурами в DCX — архивы второго уровня.
  • Bindertool версии 0.5 для DS2 и версии 0.6 и выше для DS3, Sekiro и ER. Он понадобится для извлечения содержимого TPF-архивов — файлов с текстурами. В принципе, он может служить и распаковщиком основных архивов верхнего уровня (в корневой папке игры), но запаковать обратно не сможет, как и все прочие архивы. Искать на Github.
  • ModEngine (Elden Ring mod loader) — специальный плагин для загрузки модов в виде DLL библиотеки, свой для каждой из игр фромов. Необходим для загрузки модов без перезапаковки всех 30 с гаком гигабайт игры. Можно найти, как и UXM, на Nexusmods.
  • Файл с расшифровкой номеров архивов с форумов по распаковке соулс-игр, т.к. своими силами вы будете опознавать их до второго пришествия Гвина.

Расшифровка содержимого архивов — особый челлендж среди мододелов игр Fromsoftware, стартующий сразу, как инструмент адаптируют для новопоявившейся игры. В отличие от Bethesda, фромы не утруждают себя подписыванием каждой папки именем персонажа или названием монстра. Вместо этого вы всегда увидите числовой код из четырех цифр (ID) и несколько суффиксов или префиксов. Например, c4510 в Elden ring — драконица-оборотень Лансеакс, а BD_M_0000 — часть базового тела для персонажа игрока.
Вид на содержимое папки Parts, в которой покоятся доспехи, оружие и части тел:



К счастью для меня, я была одним из активных участников рекогносцировки архивов DS3 и чуть менее активным — Sekiro и Elden Ring, так что некоторые списки составляла сама и помогала составлять другим. И то они не являются полными на 100% — некоторые файлы все-таки распаковываются с ошибкой, и поврежденные текстуры и модели открыть пока невозможно. 

Необязательными, но желательными будут программы:

  • Irfranview — в дополнеиние к ноэзису
  • Bloodborne tools — программа для автоматического конвертирования нативного (оригинального) flver-формата моделей фромов в более-менее удобоваримый smd с сохранением некоторых основных костей рига. Изначально создавался для Bloodborne, но автор адаптировал его под Elden Ring и Dark Souls 3. Некоторые модели и текстуры из Sekiro он тоже кушает.

Далее нам надо позаботиться о том, чтобы за мод нас не забанили в стиме и в игре. Особенно это актуально для Elden Ring, так как новый защитник — EasyAntiCheat — весьма капризный, и на старте вызывал проблемы с запуском даже у чистых официальных копий продукта, а уж любые изменения в файлах, даже незначительные, воспринимает как смертный грех.

Как быть?
Чтобы отключить античит, необходимо перейти в директорию с установленной игрой. Для стим-версии это будет steam/steamapps/common/Elden Ring. Найдите там файл start_protected_game.exe, переименуйте в любую белиберду и допишите в конце после расширения (.not) без скобок, чтобы загрузочный лист игры не проверял работу этого файла. 
Далее необходимо создать копию основного файла запуска elden_ring.exe и переименовать ее в start_protected_game.exe.
После этого можно запускать игру через стим. Если вы увидите всплывающее оповещение, что игру невозможно запустить онлайн, значит, вы на верном пути.

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

Теперь самое долгое — распаковать игровые архивы первого уровня. В зависимости от мощности вашего железа и размера архива распаковка занимает от пары минут до получаса. Рекомендую использовать UXM, хотя для целей ретекстура оружия и брони подойдёт и Bindertool. 

Но для распаковки с помощью Bindertool вам придётся сначала расшифровать архивы. Звучит сложно, но разработчики программы уже позаботились об этом, вам остаётся только перетащить на иконку Bindertool маленькие BHD-архивы, содержащие ключи шифрования. Находятся они в той же директории, что и основные BDT-архивы, и имеют соответствующие названия. 


Первым делом расшифровываем ключи, вторым – распаковываем архивы. Ничего особенного, просто перетаскиваем файлы. Пока что.
Bindertool имеет преимущество перед UXM в том, что первый даёт возможность распаковать только один нужный архив за раз — только Data2 и 3, например. А вот UXM распаковывается сразу все содержимое папки с игрой. Это хорошо для масштабных модов-переработок и работы с анимациями и скриптами, но не для простого ретекстура. Хотя новые версии UXM selective extraction вроде как поддерживают работу с отдельными архивами.
Далее ищем папку Parts, в которой лежат базовые тела для героя и фантомов, базовое лицо, причёски, одежда, доспехи, ближнее и дальнее оружие, катализаторы магии и молитв.

Оружие, включая магические штучки, имеет префикс WP_: 


Всё оружие и доспехи имеют два варианта — обычный и с суффиксом _L. Второе — версия текстур с низким разрешением. Разницу в модели я не увидела. 

Сверяемся со списком распознанных пушек и с помощью яббера или биндертула распаковываем dcx-архивы. Внутри них будут ещё архивы, на этот раз bnd, а уже в них многоэтажные и почти пустые папки. В самом конце этого пути вы найдёте несколько файлов. Нас интересуют tpf и flver файлы. Второе — модель, а вот первое — текстурный архив. 


Убедиться, что архив мы распаковали правильно, можно и с помощью Noesis+tpf plug-in. Многие текстуры весьма узнаваемы среди тех, кто пропылесосил всю игру. А если ещё не успели, то что вы делаете среди модов? Бегом исследовать мир! Зря, что ли, его для вас делали? :-)

Теперь распаковываем tpf, желательно биндертулом или яббером, чтобы сохранить имена текстур. Не все из них без проблем откроются в Irfranview и фотошоп — многие карты нормалей кушает только ноэзис и специальные программы. Но нормали нам не особо нужны, а текстуры цвета обычно проблем не доставляют. 


Для удобства просмотра я конвертировала эти текстуры в PNG.

Примечание
К сожалению, продемонстрировать именно на Elden RIng мне сегодня не удастся. Приличный комп приказал долго жить, а ноутбук новинку не тянет, и играть приходится в облаке, которое установку своих модов не поддерживает, а одобрения в списке модов в Steam я до сих пор не получила. Но я буду показывать на примере Dark Souls 3 и Sekiro: Shadows die twice. Благо и сам процесс, и сопутствующие проблемы одинаковые.

Далее, аналогично работе со скайримскими текстурами, открываем в редакторе и меняем их на свой вкус и цвет. Обращаем внимание на полупрозрачные и прозрачные части и стараемся по возможности не трогать их или редактировать аккуратно. 
Некоторое оружие имеет мех, ленты, обмотку и т.п. Если закрасить соответствующие области на текстурах, то их форма и внешний вид сильно пострадают, т.к. это не отдельные волоски, а прозрачная плашка с нарисованные пучком. За редким исключением — мицелий кордицепса на доспехах рыцарей гнили. Да, он так и называется внутри файлов игры. Мощная подсказка к природе гнили, помимо лишайника вокруг. 

Был меч ледяной, а станет магический. Кстати, у данного меча еще и текстура свечения есть с пометкой _em (emission). Ее тоже стоит изменить.

Сделав свое чёрное дело, мы должны сохранить dds-текстуру и запаковать плод нашего труда. В этом нам поможет UXM и Yabber. 

  • Заменяем оригинальные текстуры на измененные с сохранением имен от оригинала, переходим на одну папку выше


  • Запаковываем их с помощью Яббера, просто перетащив папку с DDS-текстурой на программу. Сохраняйте последовательность и имена подпапок!

  • Поднимитесь на тот уровень, где был DCX-архив с нашей моделью — внутрь папки Parts. Повторите действия с Яббером, чтобы он создал новый DCX-архив

В принципе, вы можете просто запаковать обратно все 30-40 гигабайт игровых файлов с помощью UXM. Если все сделано верно, то при загрузке игры вы увидите свои изменения. 


                                   Оригинал (скрин не мой)


Перекраска. Ну, хоть  какое-то разнообразие. Вообще, он мне очень нравится, иритильский меч. Он красивый, легкий, длинный, с хорошим выпадом, высоким критом для прямого меча и еще и накладывает обморожение. Но постоянный ледяной туман делает слабому ПК бобо :-)

Либо можно найти и скачать Mod Engine или Mod Loader, почти для всех последних соулс-игр он есть на Nexusmods в соответствующем разделе. Эти программы могут пропатчить вашу игру, загружая моды из указанной директории без необходимости перепаковывать каждый раз весь ворох файлов. Инструкции к процессу могут немного разниться, но в общем случае вам нужно поместить патчер в папку с игрой и прописать путь до папки с модом в соответствующем файле (dll или txt). Правда, модэнжины гарантированно работают только с последними официальными Steam-версиями игр, и запустить пиратскую или устаревшую копию с модэнжином навряд ли получится.
ВАЖНО! При перепаковке обратно в архив с помощью Yabber программа ищет собственные ключи шифрования, которые создает только при распаковке архивов. Так что, если вы распаковали пушку биндертулом, вам придется еще раз распаковать ее уже Яббером для того, чтобы получить этот XML-файл и корректно запаковать архив.
Теперь осталось только запустить игру и наслаждаться. 


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

Общий алгоритм для всех игр будет выглядеть так:

  1. Распаковать игровые архивы
  2. Найти нужный файл для замены (текстуру)
  3. Изменить текстуру
  4. Заменить измененным файлом оригинал
  5. Запаковать файлы игры обратно

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

Так что главное и первое, что вам придется сделать как моддеру, это найти нужные инструменты. Помните, что нет универсального анпакера, для каждой игры каждой студии инструмент свой. А порой инструмента нет вовсе, и создавать программы придется самому…
Впрочем, не будем о страшном.

▎Итого


Моддинг в играх — весьма сложное и увлекательное занятие. Не все игры можно модифицировать в равной степени, для многих из них такое попросту недоступно на нынешнем этапе. Для некоторых разработчики сами создают инструменты модостроения, для других их приходится создавать с нуля энтузиастам. В одних играх моддинг дружелюбен к новичку, в других, под стать самим играм, требует немалого скилла и много времени на пробы и ошибки.
Если все-таки решитесь заняться этим благородным, но неблагодарным делом, будьте готовы к бессонным ночам, поиску нужной версии инструментов и десяткам попыток, совсем как в самих играх от From Software. Но и усилия вознаградятся сторицей.
Помните, при создании простых модов-заменителей текстуры заменяются во всей игре, так что ваши враги также получат внешне измененное снаряжение. Внутриигровые характеристики останутся прежними. О том, как эти характеристики изменить, включая замену целых моделей, и как добавить что-то новое, мы поговорим в следующий раз — я покажу вам, как сделать моды с новой моделью не только в Skyrim, но и в Dark Souls, Sekiro и Elden Ring.

С вами была Людмила Хигерович. Всего хорошего и не болейте!


НЛО прилетело и оставило здесь промокод для читателей нашего блога:
15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS

Комментарии (12)


  1. lawrence_flaming
    18.01.2023 15:16
    +2

    Создание модов для "Скайрима" асегда казалось мне какой-то магий несмотря на то, что делают их много и часто. Спасибо за статью!


  1. SciTeam
    18.01.2023 15:43
    +2

    Спасибо за статью! Очень интересно.


  1. dlinyj
    18.01.2023 15:49
    +2

    Ух, какая ламповая красота. Пахнуло чем-то приятным, и разархивировались детские воспоминания.

    Первыми хаками, подобного рода было в игре Dangerous Dave, где я никак не мог пройти дальше второго уровня. Оказалось, что уровни просто файлы, и можно менять имя файла, открывая новый уровень.

    А игру Quake III Arena мы вообще собирали по кусочкам сами, для того чтобы лучше игралось.


    1. phanerostroi_evidence Автор
      18.01.2023 23:04
      +1

      Спасибо, очень лестно видеть такие слова)Помнится, моими первыми модами были примерно такие же манипуляции, но с игрой дум)На ранних билдах был глюк с третьим боссом, из-за которого дальнейший путь не открывался, и приходилось лезть в файлы игры и менять состояние переключатель состояния вручную. Ну а потом это выливалось в небольшие мозаичные арены, где можно было устраивать многочасовве зарубы с бесконечно спавнящимися врагами)Движок не поддерживал одновременно присутствие более чем пяти-семи моделек, поэтому приходилось искать способы их постоянного восполнения)Хорошие были времена))


  1. Dmytro_Kikot
    18.01.2023 16:38
    +2

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


  1. perfect_genius
    18.01.2023 19:26
    +3

    Всё руки чешутся сделать инструмент, максимально облегчающий моддинг в играх, чтобы можно было даже стороннему человеку легко переносить элементы из одной игры в другой, например. Но ведь тогда Нексус завалят мусором, не так и?: )


    DDS-текстуры в играх этой статьи сжаты с потерями или без? Т.е. пересжимая-запаковывая теряется ведь качество?


    1. Vova-Grib
      19.01.2023 23:48
      +1

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


  1. phanerostroi_evidence Автор
    18.01.2023 23:32

    Увы, сделать максимально совместимый с наибольшим числом игр инструмент моддинга на мой взгляд невозможно. По крайней мере, известными мне инструментами. Есть попытки сделать заскриптованные процедуры в блендер для оптимизации некоторых шагов, но это все костыли. Различные движки игр имеют свои особенности и перенос из одной игры в другую даже в рамках одного двжка может иметь проблемы.


    Если движок From software за годы существования дарк солс изменился не сильно (между секиро, дс3 и Элден ринг разницы в работе движка почти нет, а между дс1 и дс2 были проблемы с переносом ранее)

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


    1. perfect_genius
      19.01.2023 16:47

      Создать можно если изучать каждую игру и постоянно обновлять инструмент. Вопрос только в том, много ли кому нужен такой инструмент.
      Насчёт текстур — т.е. игры Фромов поддерживают текстуры и с потерями и без?


  1. axe_chita
    20.01.2023 06:58

    Первой игрой, в которой можно было делать «моды», была Dune 2 от Westwood. Игра смотрела лежит ли в незапакованном виде файл который должен лежать в архиве ресурсов, и если такой файл находился, то игра использовала его в первую очередь.


    1. lAfftaRl
      20.01.2023 11:20

      Видимо делали для дебага и успешно забыли выпилить такой функционал.


      1. axe_chita
        20.01.2023 14:56

        Вполне может быть что и забыли, но в данном контексте это означало отсутствие возни с упаковкой исправленных файлов обратно в ресурсный файл.
        Более того в C&C, а возможно и в Red Alert, народ баловался с редактированием RULES.INI где прописывались практически все настройки игры и юнитов.