![](https://habrastorage.org/webt/4x/4o/db/4x4odbvciflwdpscublinm_rgea.png)
Мод, заменяющий модельку Волка из Sekiro на драконида-альбиноса. Мой
Продолжаем тему фанатских модификаций игр. В прошлый раз мы познакомились с понятием «моды», рассмотрели их классификацию и попробовали самостоятельно сделать мод-перекраску для TES V: Skyrim и игр Souls-серии.
Сегодня на очереди моды-реплейсеры или замена моделей внутри игры на альтернативные.
Примечание: Пост рассчитан на тех, кто еще только знакомится с тонкостями 3D-моделирования и игровой инженерии, и в некоторых случаях понятия подаются несколько утрировано для понимания сути процесса. В тексте будет много упоминаний программ, сайтов и сервисов, а также игр и разработчиков игр. Не сочтите это за рекламу. Также в тексте будут встречаться скриншоты файловых архивов, схемы строения, рендеры моделей и текстуры из различных игр. Это иллюстративный материал, приведенный в качестве примера. Все права на модели и их текстуры из игр принадлежат разработчикам и издателям этих игр. |
![](https://habrastorage.org/webt/9p/z8/11/9pz81199qn8efywowe5_tthryc0.png)
▎Делаем реплейсер модели
В прошлый раз мы делали ретекстур — замену окраски модели путем замены цветовых текстур. В этот раз мы будем менять модель.
В принципе, большая часть процесса замены модели в Скайрим очень похожа на замену текстур. Особенно в случае с заменой статичных моделек — оружия, ингредиентов, всякого мусора. Но есть большое и жирное «но», касающееся анимированных моделей. |
![](https://habrastorage.org/getpro/habr/post_images/667/84c/a1a/66784ca1aa475e8dac3b409c269d65a0.png)
Каждая из этих папок содержит свой скелет для анимаций.
Каждая раса в игре имеет свой скелет (свой риг) и собственный набор анимаций. Раса драконов, раса оленей, раса грязекрабов, раса хорхеров и так далее. А вот разные внутриигровые расы людей, как ни странно, делят один скелет между собой, только с разными настройками. Скелет аргониан и каджитов же отличается от людского только дополнительными костями для хвоста.
![](https://habrastorage.org/getpro/habr/post_images/8ab/663/59c/8ab66359c5b01ff67a69d85e886025d2.png)
Скелет для человекоподобных моделей.
Впрочем, если учесть наличие особых скелетных групп моделей, готовить реплейсеры становится даже проще. Отчасти. Проблемы начинаются в момент загрузки скелета для риггинга и при адаптации неподходящий моделей. Но об этом в другой раз.
Примечание
При большом желании и наплыве креатива можно натянуть на базовые скайримские скелеты практически что угодно. Яркий пример — Mikhail’s Monster mods, добавляющий множество весьма экстравагантных существ в игру. Ну либо можно ухитриться и, немного поиграв с пропорциями, адаптировать модельку из другой игры.
![](https://habrastorage.org/getpro/habr/post_images/27f/8d4/275/27f8d4275ce6460cde2604e02a459175.gif)
![](https://habrastorage.org/getpro/habr/post_images/37c/c4f/525/37cc4f52588daf1debfb2fa6d95d9cea.gif)
Драконы из Dark Souls PDTE, которых я (не без помощи более опытных людей) адаптировала под скелеты скайримских драконов. Если с рукокрылой красной виверной особых проблем не возникло, хотя и пришлось изменить длину шеи и хвоста и исправить размер головы и крыльев, то с четырехлапым Каламитом пришлось повозиться. В конце концов, было решено просто поджать передние лапы, оставив их без движения.
![](https://habrastorage.org/getpro/habr/post_images/60d/6fd/2f0/60d6fd2f0d46ac7eab2a72dba643a570.gif)
Иначе получилось бы криво, как здесь.
![](https://habrastorage.org/getpro/habr/post_images/27f/8d4/275/27f8d4275ce6460cde2604e02a459175.gif)
![](https://habrastorage.org/getpro/habr/post_images/37c/c4f/525/37cc4f52588daf1debfb2fa6d95d9cea.gif)
Драконы из Dark Souls PDTE, которых я (не без помощи более опытных людей) адаптировала под скелеты скайримских драконов. Если с рукокрылой красной виверной особых проблем не возникло, хотя и пришлось изменить длину шеи и хвоста и исправить размер головы и крыльев, то с четырехлапым Каламитом пришлось повозиться. В конце концов, было решено просто поджать передние лапы, оставив их без движения.
![](https://habrastorage.org/getpro/habr/post_images/60d/6fd/2f0/60d6fd2f0d46ac7eab2a72dba643a570.gif)
Иначе получилось бы криво, как здесь.
В прошлый раз мы использовали вот такой набор тулов:
- BSA extractor — для распаковки архива Textures.bsa
- DDS-plugin для Adobe photoshop CS5-6
- Irfranview с плагином DDS — для чтения, просмотра и экспорта dds-текстур. Это не обязательная программа.
Набор инструментов для модов-реплейсеров моделей в Скайрим пополняется следующими:
- Nifskope — программа просмотра (viewer) моделей в nif-формате. Без неё нам никак не обойтись, если мы хотим настроить нашу замену правильно.
- Nif importer — плагин импорта моделей nif в 3ds max. Аналогичный можно найти и для блендер, но я с ним, честно, не работала.
- Навыки работы в 3D-редакторе (желательно).
- Модель для переноса с текстурами (ради теста можно взять любую модель из самого скайрима или её измененную версию).
Идем внутрь папки Data в директорию Meshes и ищем там нужную папку с заменяемой моделью. Допустим, Эбонитовая катана лежит по пути Skyrim\Data\meshes\weapons\ebonyblade. Мы можем открыть его напрямую в 3Ds max с помощью Nif importer plugin, после установки которого импорт ниф-моделей будет доступен непосредственно с кнопки File — Import.
Либо открыть его с помощью Nifskope и импортировать оттуда в OBJ-формат, читаемый почти любой 3d-программой:
![](https://habrastorage.org/getpro/habr/post_images/0df/361/a19/0df361a193ba364855b2a52e8e27a3f4.png)
Если правильно настроить внутри программы пути до текстур, то в окне просмотра вы увидите полностью окрашенную модель. Правда, некоторые блестящие части будут отличаться от вида внутри игры. Чтобы экспортировать модель, необходимо выбрать в списке слева NiTriShapedata, иначе модель может экспортироваться не полностью.
Если вы хотите сделать просто переделку оригинальной модели, то измените ее по своему вкусу и переходите к следующей стадии. Если модель для переноса не из самой игры, то ее необходимо подготовить. Для этого в любом удобном для вас 3D-редакторе совместите оригинальную модель, которую вы хотите заменить, и её замену. Подгоните по масштабу с помощью инструментов gizmo (пространственной деформации) и постарайтесь сделать так, чтобы главные части были в соответствующих местах. |
![](https://habrastorage.org/getpro/habr/post_images/265/fd2/a1a/265fd2a1a0583ef7c5ea206232f5d947.png)
Желтый оригинал и сиреневый ремейк. е мудрствуя лукаво, я взяла ванильный посох и переделала его на более эпичный и фентезийный, похожий на то, что я рисовала много лет назад для небольшого рассказа.
Примечание
Обратите внимание, что некоторые модели оружия и доспехов имеют два-три варианта. Первый (иногда помечены префиксом gnd) — модель отображения в инвентаре и мире, для доспехов — сложенный или упакованный вариант. Второй с префиксом 1stperson — вид от первого лица, более детализированное оружие и рукава с отрезанным торсом для доспехов. Третий — вариант при виде от третьего лица на персонаже — полный доспех и оружие с ножнами.
Рукоятки мечей и всего остального должны совпадать как можно больше. То же справедливо и для длины лезвия. Натягивать цвайхандер на меч-одноручник не стоит, это будет мешать регистрации попаданий по врагу.
Аналогично с суставами при замене животных и доспехов:
![](https://habrastorage.org/getpro/habr/post_images/458/006/6ad/4580066ad7770f582e297e614e17b093.png)
Интересный факт — поворот модели в самой игре может отличаться от установленного в редакторе. Это связано с некоторыми настройками модели в самом 3Ds max и особенностях Nif-формата.
С доспехами для гуманоидных рас больше всего возни. Здесь мало учитывать только расположение костей и суставов между ними — доспехи в игре при надевании заменяют часть «кожи» базовой модели, поэтому неправильно подогнанные рукава, например, могут оставить кисти висеть в воздухе. Это можно исправить, но все же стоит держать сей факт в голове. Кроме того, в игре есть модификации тела, реализованные в виде ползунка между «худой» и «ширококостной» версиями тела, так что каждые доспехи нужно будет сделать в двух вариантах. Лучшим решением будет просто «раздуть» одну из версий доспехов с сохранением пропорций. |
![](https://habrastorage.org/getpro/habr/post_images/138/d1d/658/138d1d658da9cdbfb7fcd1869ed0c5cf.png)
И все равно многие вещи будут выглядеть несуразно. При попытке адаптировать костюмы из соулсборнов в скайрим соуловские человечки кажутся длинноногими и стройными эльфами по сравнению с угловатой приземистой фигурой скайримского героя.
После подгона по оригиналу сохраните куда-нибудь эту модель, чтобы не потерять ее. Время идет, но стабильности при работе с инородными моделями в 3Ds max оно не добавляет.
Теперь нам понадобится загрузить оригинальную модель и скелет, если мы заменяем не статичную, а анимированную модель.
![](https://habrastorage.org/getpro/habr/post_images/ac2/7bb/f37/ac27bbf3770dbf1d2049618415f99075.png)
Для скелета настройки импорта выглядят так. Для меша галочку с этого пункта снимаем.
Далее импортируем оригинал, сняв галочку с пункта «Import skeleton». Тогда игровая модель как бы натягивается на этот скелет:
![](https://habrastorage.org/getpro/habr/post_images/57b/d9e/1bc/57bd9e1bcc7bc5f2f3a98180901b5aed.png)
Имена костей в Скайриме очень сильно отличаются от оригинала, так что использовать сторонний риг не получится. Да и в принципе использовать уже отригованную модель для переноса нерентабельно. Все равно скелет придется удалить.
![](https://habrastorage.org/getpro/habr/post_images/03e/73c/c51/03e73cc51106bc736d06865a51cd4089.png)
В лучшем случае при попытке использовать готовый риг вы увидите нечто подобное.
Импортировать поверх скелета сначала оригинальную модель жизненно необходимо. Дело в том, что в Скайриме весьма специфические шейдеры (настройки отображения текстур и эффектов) и флаги меша, и так плагин импорта автоматически скопирует их с оригинала на новую модель.
Теперь загружаем нововведение. Если мы берем оружие, то задаем влияние от базовой кости в рукояти. Если доспех или животное, то стараемся следовать вышеобозначенным правилам — уделять внимание оригиналу и суставам.
Примечание
Функционал 3DS max позволяет назначить автоматический риггинг по костям скелета или даже спроецировать влияние костей с одной модели на другую при наличии общего скелета. Однако с моделями из Скайрима это не работает, т.к. несколько осей координат имеют нестандартное значение, и плагин импорта не может прочитать их корректно. Так, при попытке назначить авто-риггинг и включив отображение зон влияния в виде капсул, вы увидите, что большая их часть смещена и повернута вправо относительно основной вертикальной оси. Поэтому вам все же придется потратить время на ручной риггинг.
![](https://habrastorage.org/getpro/habr/post_images/de7/a04/247/de7a04247d16b0677c51ea076044d4df.png)
Проделав все необходимые настройки костей, удаляем меш оригинала и экспортируем нашу новую модель в формат nif.
Здесь есть два варианта развития событий — ленивый и не очень ленивый. Первый подразумевает copy/paste ветки NiTriShapeData в оригинальную модель с последующим удалением. Такой метод сохраняет коллизии (физику столкновения) и экономит несколько минут работы. |
![](https://habrastorage.org/getpro/habr/post_images/f81/3b3/777/f813b3777cc15453fe7e19341b8eb982.png)
Обратите внимание, что на одной модели может быть несколько NiTriSHape, но некоторые из них вспомогательные, либо являются дополнительными слоями для эффектов крови и зачарования. Выбирайте тот, при нажатии на который модель подсвечивается. Кроме того, если модель использует несколько мешей с разным набором текстур, для каждого из мешей будет свой NiTriShape.
Самостоятельно во всех флагах и настройках вы будете разбираться долго, и далеко не все из них работают в Скайриме, поэтому просто копируйте пункты ShaderFlag из оригинала на реплейсер в разделе BSLightingShaderProperty. В разделе BSShaderTextureSet укажите путь к текстурам.
Первый пункт — текстура цвета. Второй — карта нормалей. Пятый — карта environment, имитирующая отражения и металлический блеск. Шестая — карта наложения отражения, используется редко. |
![](https://habrastorage.org/getpro/habr/post_images/540/7be/3eb/5407be3ebfe62688397635275a08bef4.png)
После завершения настроек, сохраните свою новую модель и переименуйте ее в соответствии с оригиналом, заменив ванильную версию. После этого запустите игру, чтобы проверить, все ли удачно.
![](https://habrastorage.org/getpro/habr/post_images/c78/dad/f24/c78dadf2426263cab482fa734a061c68.png)
Если есть косяки с поворотами, как тут, необязательно лезть обратно в 3DS max. В Nifskope можно ткнуть на NiTriShape правой кнопкой мыши и выбрать Transform. Так вы сможете вращать и сдвигать модель относительно центра сетки координат.
![](https://habrastorage.org/getpro/habr/post_images/fdd/3b3/c56/fdd3b3c56363fbaf323c45f380905cce.png)
Так-то лучше
▎Замена соуса на подливку
Итак, нам снова надо распаковать целую кучу файлов и найти иголку в стоге сена. Опять же, предпочтительнее будет начать с замен оружия, так как большая его часть имеет только одну кость и ограниченный набор текстур. Хотя некоторые умельцы умудряются заменить целую модельку игрока на сексуальную рободевушку, начинающему моддеру это не под силу.
Для моддинга 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.
- Файл с расшифровкой номеров архивов с форумов по распаковке соулс-игр или очень много свободного времени.
Чтобы провернуть замену модельки в Dark Souls 3, Sekiro и, если повезет, Elden Ring, сверх уже упомянутых распаковщиков нам понадобятся:
- 3DS max или любой другой 3D-редактор, поддерживающий экспорт FBX с ригом
- FLVER import plugin для 3ds max (или аналогичный инструмент для Blender, но его я не пробовала)
- FLVER editor — для настройки модели
Ищем нужную модельку в файлах, убеждаемся, что это она, открыв ее в 3ds max или блендере.
Находим ей замену — как и в случае со Скайримом, это может быть просто другая модель из той же игры, либо совершенно новый объект.
![](https://habrastorage.org/getpro/habr/post_images/315/cbc/bc9/315cbcbc92b1388afad9cbb04326799d.png)
Импорт-скрипт модели из Dark souls в 3Ds max требует импорта скелета. Можно использовать базовый скелет персонажа из папки Parts. Потом его можно удалить, оставив только кость меча с номером.
Найдя необходимое, производим действия, аналогичные подготовке модели в Скайриме: импортируем распакованный оригинальный предмет/одежду/оружие/врага, импортируем замену и подгоняем под оригинальные масштабы.
![](https://habrastorage.org/getpro/habr/post_images/edd/d1a/7b0/eddd1a7b04fa6f3388c99c631197e710.png)
В некоторых случаях потребуется также проверить, все ли оси модели ориентированы правильно. Впрочем, этот пункт не обязательный, так как в некоторых случаях модель сразу работает правильно, а в некоторых требует еще одной перенастройки костей. От чего это зависит, честно, не знаю. Еще одно решение — отразить модель справа налево, иногда это помогает, а иногда нет. Кроме того, уделите особое внимание совпадению отдельных частей и пропорций — модели из последних соулсборнов более детализированы, а скелет имеет дополнительные кости возле суставов для плавности захвата движений, так что перекос или малейшее несовпадение будет смотреться очень некрасиво. |
![](https://habrastorage.org/getpro/habr/post_images/76c/2dc/576/76c2dc576ec796aea442b716e7e32611.png)
В режиме Skin (настройки влияния костей) красным обозначено 100% влияние. Не забудьте потом проверить назначение текстур на меш!
Далее идет еще более муторная часть, чем создание рига. Вам предстоит открыть FLVER Editor, открыть в нем модель, которую хотите заменить, и модель-замену.
![](https://habrastorage.org/getpro/habr/post_images/e95/85d/3c3/e9585d3c375e1cea9c8969314bac4a3a.png)
Для открытия можно просто перетащить модельку для редактирования на исполняемый файл MySFformat.exe
![](https://habrastorage.org/getpro/habr/post_images/c4a/d34/953/c4ad349539f5e5a8b28117334f9c0350.png)
Нажимайте смело кнопку Import Model, чтобы загрузить свою новую игрушку. На всех всплывающих окнах, кроме запроса на создание LOD, нажимайте OK.
Жмите на Mesh, чтобы открыть окно редактирования меша.
![](https://habrastorage.org/getpro/habr/post_images/7cc/2f5/5c1/7cc2f55c1c21ee2b757bd723f58296a4.png)
Кстати, простейшие изменения в оружии, как, например, шипы, можно сделать прямо в FLVER editor. Для этого правой кнопкой жмем на вершины (углы полигонов на модели), затем Transform и в окне с координатами меняем значения, не забывая жать на Modify.
![](https://habrastorage.org/getpro/habr/post_images/3e1/72e/b39/3e172eb39b3dde87df8bbf40feff4b82.png)
Снимите галочку с верхнего пункта в списке Chosen, чтобы оставить пока неизменной оригинальную модель (справа выделено красным). Включайте галочками режимы вращения, перемещения и масштабирования справа. По окончании масштабирования верните галочку Chosen на основу, а также поставьте птичку на строчку основы в списке Delete. Снова нажмите Modify.
Скорее всего, замена будет отличаться по размеру и ориентации в пространстве, так что придется пошаманить со значениями в разделе Translations и Rot (переместить и повернуть соответственно). |
Помните, что после нажатия этой кнопки ваш FLVER файл автоматически сохраняется. Так что позаботьтесь о резервной копии.
Примечание
. По итогу создания конкретно этого реплейсера выяснилось, что морозный клинок Иритила содержит слишком много дополнительных эффектов и скриптов. Так что сходу вспомнить, что я делала пять лет назад для корректной работы реплейсера я не смогла, и переключила свое внимание на реплейсер модели без визуальных эффектов — посохе Изалита.
![](https://habrastorage.org/getpro/habr/post_images/ac7/4b0/4ff/ac74b04ff04b8dd99365cc56a65a910d.png)
Иногда бывает и так. Приготовьтесь к таким фортелям при замене моделей с эффектами.
![](https://habrastorage.org/getpro/habr/post_images/173/9fd/1c1/1739fd1c1d91aba2c541c01e35306493.png)
Замена посоха Изалита
После настройки положения модели необходимо заняться текстурами. Так же, как и в случае с ретекстуром, сохраните их в DDS-формате и запакуйте в TPF-архив.
В том же FLVER Editor пропишите путь до ваших текстур на модели.
![](https://habrastorage.org/getpro/habr/post_images/f6f/1cc/276/f6f1cc2764c1d11adb409632485d1e1d.png)
Если вы заранее позаботились о подготовке и переносе в конечную папку текстур, то беспокоиться не о чем — программа сама подхватит карты и прикрепит их к модели. Если же нет, то ищите пропуски в путях (обычно выглядят как пустые кавычки "") и вводите путь до текстуры
Поместив все необходимое в папку с реплейсером, убедитесь, что все имена файлов соответствуют оригиналу, после чего запакуйте архив с помощью Yabber, перетащив папку.
Важный момент: даже если у реплейсера меньше текстур, чем у оригинала, не удаляйте лишние старые текстуры! Иначе Yabber будет паниковать, т.к. при распаковке создает список содержимого архива.Теперь, как и в случае с ретекстуром, можно либо запаковать все файлы, либо воспользоваться Mod Engine.
![](https://habrastorage.org/getpro/habr/post_images/477/365/03d/47736503d11fdf152e2d7a0ee5524614.png)
Можно загружать и проверять в действии. Иногда на лицензионной версии потребуется перезапустить компьютер, чтобы игра работала стабильно — это связано с особенностями работы средств защиты внутри Steam.
![](https://habrastorage.org/getpro/habr/post_images/dc2/2d6/008/dc22d6008c470b0551425c5f61fcf323.png)
![](https://habrastorage.org/getpro/habr/post_images/e8a/2d8/15e/e8a2d815e2c2fa7ae6e6e6650f0fc706.png)
Теперь можно и к боссу по десятому кругу!
Итак, чтобы провернуть замену модельки с ванильной на новую, необходимо следовать такому алгоритму:
- Распаковать игровые архивы
- Найти нужный файл для замены (текстуру и модель)
- Подогнать под ее пропорции новую модель
- Сделать риггинг и скиннинг (задать влияние костей от оригинала)
- Сохранить модель в формате игры
- Сохранить в нужном формате и цветности текстуры новой модели
- Заменить измененным файлом оригинал
- Запаковать файлы игры обратно в строго соответствии с уровнями архивации
Как и в случае ретекстура, очень важно найти правильные и безопасные инструменты. Кроме того, создание реплейсера модели потребует от вас куда больших сил и умений. Вам придется работать с 3D-редакторами для перенастройки влияния костей, а также строго соблюдать правила риггинга, включая иерархию костей, имена костей и порядок назначения веса от младшей кости к старшей. Однако для начинающего игродела этот опыт будет весьма полезен.
▎Итого
Моддинг в играх — весьма сложное и увлекательное занятие. Если все-таки решитесь заняться этим благородным, но неблагодарным делом, будьте готовы к бессонным ночам, поиску нужной версии инструментов и десяткам попыток, совсем как в самих играх от From Software.
Но и усилия вознаградятся сторицей.
![](https://habrastorage.org/getpro/habr/post_images/ca4/543/1da/ca45431da7406559fcb72b022b3ee3b9.png)
![](https://habrastorage.org/getpro/habr/post_images/ae9/62a/f74/ae962af74780e67d9759632fac725be3.png)
![](https://habrastorage.org/getpro/habr/post_images/c3c/fde/feb/c3cfdefeb8269e3bfad4b40f903ae6c7.png)
Помните, при создании простых модов-реплейсеров модели и текстуры заменяются во всей игре, так что ваши враги и союзники также получат измененное снаряжение. Все изменения носят исключительно косметический характер, внутриигровые характеристики в виде урона, частоты и силы крита, вероятности выпадения с врагов останутся прежними. О том, как эти характеристики изменить и как добавить что-то новое, не заменяя старое, мы поговорим в следующий раз. |
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS