Структура мода


 




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

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

 


Открыв папку мода вы увидите:
1) Другие папки, с говорящими названиями на английском. В них содержатся все ресурсы необходимые для мода. Текстуры, модели, анимации, звуки и тп
2) Кучу файлов в расширении .txt (текстовики). Это скомпилированные (обработанные для использования в игре) файлы модульки. В них содержатся все скрипты, диалоги, квесты, параметры звуков, оружия, и персонажей.
3) Отдельно выделяются файлы module.ini - параметры загрузки мода, и main.bmp - картинка мода, которая выводится в меню лаунчера.
4) Модулька. В стандартном native ее нет, поэтому нужно докачивать отдельно, по мере необходимости.
Рассматривать их далее мы будем именно в этом порядке.

Для более подробного ознакомления с файлами и папками я взял мод Floris Gameplay Mod Pack 2.55 поскольку в стандартном модуле рассматривать их было бы неинтересно (там ничего нет, кроме текстовиков и сцен - все остальное в игре).

ПАПКИ

Data - папка содержащая редко изменяемые текстовики или файлы .xls.
font_data.xml - это файл с настройками отображения шрифтов.
flora_kinds.txt - здесь прописана автоматически генерируемая растительность, используемая в игре.
ground_specs.txt - это файл, содержащий названия текстур, материалов и некоторые настройки типов земляной поверхности (снег, трава, дорога), которые могут использоваться при создании местности (terrain) на сцене.
item_modifiers.txt - файл, в котором заданы некоторые настройки для модификаторов предметов.
skeleton_bodies.xml - файл, содержащий описание скелетов игры
skyboxes.txt - файл, определяющий набор текстур, которые могут использоваться в качестве скайбоксов, и некоторые настройки для них.

languages - папка содержащая все языки на которые переведен ваш мод. Обычно нужен лишь ru. Если же в модуле нету русификатора или если он неполный, то непереведенное будет выводится на английском (языке модульки). Подробнее о русификации модов здесь.

Music - здесь располагается вся фоновая музыка мода в формате ogg или waw. Подробнее о ее замене вы можете прочитать здесь.

Resource - здесь, в brf-архивах (Игра принимает также файлы trf. При запуске они будут автоматически конвертироватся в brf, но это займет некоторое время) находятся четыре основных типа файлов:
Модели предметов, тел людей и животных, причесок и т.д. - это именно то, что привлекает любого мододела в первую очередь - новые скакуны,одежда и броня, новое оружие, знамена, продукты и все такое прочее. Эти файлы относительно легко поддаются изменениям, без особых требований к знаниям или навыкам мододела, за исключением моделирования.

В связи с редактированием этого типа файлов вам могут пригодиться:
Гайд по добавлению вещей в мод
Создание простейшего шлема в Wings3D
Гайд по замене мешей с помощью openBRF
Перетаскивание оружия из одного мода в другой
Гайд по разработке волос



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

Анимации - необходимы для воспроизведения движений людьми и лошадьми. Бывают разных типов, но в МиБе в основном используется вертексная и скелетная (Rigged) анимация. Например лук при натяжении использует один тип анимации, так называемый vertex, скачущая лошадь или бегущий человек - другой.
Вертексная анимация может быть создана при последовательном изменении одной и той же модели (Или по умному: изменением мешей одного предмета, при помощи нескольких фреймов одной и той же модели). Как например мужской\женский варианты брони. Или пустеющий при стрельбе колчан со стрелами. Или состояние ножен - с оружием или без.
Rigged же анимация подразумевает синхронизацию (риггинг) выбранной модели и "скелета", через который происходит передача сложных движений моделям тел, одежд или доспехов. Сама же анимация, которую синхронизируют, так и зовется "скелетная анимация". Таким образом в файле такой анимации прописаны лишь привязка и движения скелета. В обычном МиБе всего два скелета: лошади и человека, но некоторые мододелы умудряются добавлять и другие скелеты. Например гномов, пауков, марсиан и шагоходов.
Однако чтобы все эти нестандартные создания получали урон, к ним (их моделям) нужно привязать хитбоксы - контрольные точки, регистрирующие попадания стрел пуль и мечей. Если этого не сделать, то выглядеть существо будет как указанная модель, а получать урон как обычный человек. Допустим вы выстрелили в голову огромного тролля, но стрела пролетит сквозь модель, не нанеся никакого вреда. А все потому, что у обычного человека голова располагается на 2 метра ниже.

Вот тут об этом подробнее.
Скелетная анимация и с чем ее едят
Работа с анимацией, вопросы и ответы
Создание анимации
Как сделать vertex animation для ножен
Привязка модели к скелету в 3Ds Max

Модели зданий и коллизии к ним - этот тип важен в общем-то только сценоделам. Тут сосредоточены зрительные и физические модели зданий и некоторых других элементов декора. Модели помещены в раздел "Meshes" (как и обычные). Физические параметры - в "collision". Коллизии отвечают за поведение "актеров" - людей и животных на территории модели. То есть грубо говоря - правильную работу пола, потолка и стен. Чтобы герой не проходил сквозь двери и не мог провалиться сквозь крышу, но мог при этом пройти сквозь листву дерева.
Создание зданий для вашего мода

К некоторым моделям прилагаются Lod'ы (Level of details - уровни детализации). Это та же самая модель, но с уменьшенным кол-вом полигонов. Они нужны для оптимизации игры: как только вы отойдете достаточно далеко модель автоматически подменяется другой - с уменьшенной детализацией. Отойдете еще дальше - модель станет еще хуже, но вы этого почти не заметите из-за расстояния, а нагрузка на железо уменьшится. Обычно у мибовских моделей всего 4 lod'а.

Для открытия и редактирования архивов подойдет программа OpenBRF. С помощью нее вы сможете открыть архив и извлечь из него необходимые ресурсы, а потом отредактировать в своей программе для моделирования, анимирования и вернуть обратно. В OpenBRF можно импортировать модели таких форматов как: OBJ, PLY, OFF и STL. Также с ее помощью можно редактировать материалы.

SceneObj - здесь находятся все сцены (локации) для мода. В них прописано расположение рельефа, всех предметов, переходов между сценами, мест генерации персонажей (энтри-поинтов) в локации и не только.
Редактировать эти файлы проще всего, поскольку в игру уже встроен редактор для них. Он довольно прост в освоении, но чтобы изучить все тонкости понадобится довольно много времени и старания. Более подробно о сценоделии вы можете прочитать здесь, или здесь, а также в темах: Барьеры и телепорты, Точки входа и Как создать новую сцену.

Sounds - здесь располагаются все звуки задействованные в модуле в формате ogg или waw.
По умолчанию функция автоподгрузки звуков отключена, поэтому, если хотите что-то поменять, вам надо залезть в module.ini и заменить там строку
scan_module_sounds = 0
на scan_module_sounds = 1
После этого вы сможете менять звуки мода, просто кидая файлы с названиями из игры в папку (все звуки игры находятся в игра\Sounds ). Подробнее о добавлении звуков здесь.

Textures - и наконец последняя стандартная папка, в которой находятся все текстуры мода необходимые для предметов из папки Resource. Редактировать их можно программой paint.net или photoshop и gimp с соответствующими плагинами. Автоподгрузка текстур по умолчанию включена поэтому мудрить с module.ini не придется. Обычно используются текстуры в формате dds, но игра принимает также tga и jpg.
Помимо собственно текстур в папке располагаются фоны различных менюшек и иконки некоторых элементов интерфейса (лайфбар, курсор).
Обычно текстуры предметов имеют тн разверстку - тестура делится на несколько частей для более удобного отображения и редактирования. Кроме того, иногда встречаются текстуры в которых совмещены фрагменты текстур разных предметов. В этом случае, редактировать их следует максимально аккуратно.

 


Все текстуры делятся на несколько типов:
Первый - собственно текстуры. Они отвечают за правильную передачу цвета.
Второй - карты нормалей. Дополняют обычные текстуры. Их название в файлах игры, как правило, содержит слово "bump", "norm" или "normalmap". Эти текстуры содержат информацию о поведении текстуры при попадании на нее солнечного или иного света. Они создают эффект "объемности", даже будучи нанесенными на абсолютно гладкие поверхности, придавая игрой света и тени наибольшую реалистичность модели. Обычно их либо рисуют вручную, либо получают в специальных программах вроде CrazyBump, но есть и другие способы.
Третий вид - карты отражений. В названии содержит слово "spec" или "specular". Эта текстура также взаимодействует со светом но по-другому. Она, в соответствии с настройками шейдеров, отражает попавший на нее свет под определенным углом.
Альфа канал - дополнительный слой обеспечивающий прозрачность/непрозрачность частей текстуры.С его помощью можно обрезать лишнее (Белый фон).
MIP mapping - тут.

О текстурах можно почитать тут:
Работа с текстурами, вопросы и ответы
Работа с текстурами.
Создание лиц

ТЕКСТОВИКИ

Все текстовики можно условно разделить на две группы: скрипты и списки. И если с первыми понятно только, что ничего не понятно, то вторые вполне поддаются моддингу, даже без модульки.
Устройство у них у всех примерно одинаковое: в первой строчке обычно стоит число обьектов в списке (иногда его нет) - если вы добавили один предмет то прибавьте к этому числу 1. Дальше идет сам список - туева хуча записей с примерно следующей структурой:
Начало на английском, потом куча непонятных цифр. Без пол-литры и файлов модульки с ними не разобраться.
Обычно редактирование протекает так: копируете в конец одну из строк, меняете начало строки, добавляете к числу в начале единицу. Подробнее смотрите в гайдах. Если под рукой нет гайда и вы не знаете что точно надо делать - лучше не трогайте.



Теперь о скриптах: обычно это невразумительная мешанина из цифр и записей, вроде той что выше. Редактировать их сложно и неудобно. Но у некоторых получается. Гайд по твикованию (изменению работы различных скриптов).

Другие файлы: map.txt - глобальная карта мода и ее содержимое
variables.txt - список глобальных (используемых более чем в одном файле) переменных мода
mb.fx, mb_2a.fxo, mb_2b.fxo... - их можно поместить в папку модуля, чтобы мод мог использовать свои шейдеры

Программы: текстовики довольно просты по структуре, но неудобны в использовании. Поэтому было создано большое количество разномастных едиторов облегчающих техпроцесс. Ниже приведены некоторые из них.
Morpgh Editor - позволяет редактировать снаряжение солдат, параметры вооружения, фракций и многое другое. Подробный гайд прилагается.
Troopeditor - еще один редактор, но только для редактирования войск.
Item Editor - пользовательский редактор предметов с неплохими возможностями.
TweakMB 5.09 - очень полезная программа с широким функционалом. Полностью на английском языке, но догадатся что делает та или иная кнопка все же можно. Гуглоперевод вам в помощь.
MnWarband Editor - набор тулкитов (едиторов) китайского происхождения. Имеется множество возможностей правки и изменения игровых ресурсов. Есть англификатор.
Troops / Items Editor and stats Viewer - позволяет редактировать файлы troops и item_kinds в формате exel. Подойдет для настройки баланса, поскольку есть возможность сравнения двух отрядов\предметов.

MODULE.INI

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

 


Опции загрузки - находятся в начале и конце файла и указывают различные параметры мода. Например приведенная ниже строка, в соответствии с переводом, указывает множитель навыка содержания пленных (5 пленных на 1 ед. навыка).
skill_prisoner_management_bonus = 5
Если мы вместо 5 поставим 50, то за единицу навыка наш максимум пленных будет повышатся на 50. Помимо множителей навыка лидерства и содержания мы можем отредактировать например размер карты, включить\выключить показ навыка владения огнстрелом или поменять другие параметры, нужные скорее мододелам, вроде синхронизации регдолла и адреса папки с текстурами.

Список подгружаемых brf - занимает всю середину списка (более 80%). В нем прописаны все загружаемые при старте brf архивы. Обычная запись выглядит примерно вот так:
load_resource = ani_jump
Это имя загружаемого архива, без названия расширения, и место откуда его следует загружать: из игры, или из мода. За это отвечает начало строки: load_resource - загрузка из игры, load_mod_resource или load_module_resource - загрузка из папки resource в папке мода. О ней вы могли прочитать выше.

Иногда встречаются т.н. закомментированные строки. Перед ними стоит знак #. В игре они никак не используются и предназначены для разработчиков. Обычно в них объясняется предназначение и/или устройство различных частей кода, для более удобного ориентирования. Иногда этой функцией пользуются для того чтобы "отключить" некоторые участки кода.

МОДУЛЬКА

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



process - файлы компилирующие привязанный к ним файл module. Именно они компилируют модульку.
header - файлы содержащие необходимые для компиляции ключи. Если открыть один из них то вы увидите цифры, на которые заменяются скрипты модульки и которые вы видели в списках txt. Все ключи прописаны в самом движке и изменить их нельзя.
ID - файлы идентификаторы. Они создаются при каждой новой компиляции и нужны исключительно в ее процессе.
module - файлы в которых находятся доступные для редактирования скрипты. Именно их и нужно редактировать.

Также имеются:
build_module.bat - пакетный файл ms dos. Содержит в себе список команд, которые выполняются друг за другом. В данном случае - по очереди запускает все process файлы.
build_module.sh - то же самое, но для unix-систем. Обычному пользователю винды не нужно.
variables.txt - список всех использующихся в моде переменных, нужен для правильной компиляции и работы мода.

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

 



МИНИМОДЫ И OSP

Многие мододелы, не готовые или по каким-то причинам не могущие выпустить отдельный мод, выпускают osp (open source packs - открытые источники). Это небольшие пакеты с ресурсами, которые можно свободно использовать в своем моде. Ограничений только два: не использовать в коммерческих продуктах и дать ссылку на авторов. Все osp можно условно поделить на несколько типов (Вы уже неоднократно могли заметить мою страсть к классификации):

Ресурс-паки - обычно это архив, доступный для свободного скачивания, в котором находятся различные ресурсы мода. Такие как модели, текстуры, анимации, сцены и прочее. Зачастую ко всему этому есть простая инструкция по установке (А иногда и не простая) в которой расписано куда, как, и что кидать; где, как и зачем прописывать.

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

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

ТИТРЫ

Полезные ссылки:
Справочник мододела
Инструментарий ВК (Всадников Кальрадии)
Вики по моддингу
Обмен опытом ВК
Гайды ВК
Оф. форум TaleWorlds (англоязычен)
Перечень гайдов commando (раздел "Мододелие)
Общие вопросы по мододелию (Аналог ВК)
Идеи для модов
Перечень минимодов и ОСП

Авторы: Vampir в соавторстве с Shapka_Spartakov
Благодарности: Janycz

Ну вот и все. Если вы нашли в этом гайде что-то для себя полезное, не забывайте жать smile30
Данный гайд разрешено тащить куда угодно, но только с указанием никнеймов авторов, и ссылки на эту страницу!




- используйте эту кнопку если вы обнаружили ошибку/искажение содержимого/отсутствие контента в новости или если хотите сообщить администрации о выходе новой версии мода и т.п.

Комментариев 26

Мододел
Vampir
Офлайн 15 августа 2015 22:57 поделиться
Жду отзывы, предложения, критику и тп


Царь
syabr
Титул: Главный динозавр и ГГ сайта
Офлайн 15 августа 2015 22:59 поделиться
Vampir,
Так уже отплюсили, ещё на стадии создания)


Танки грязи не боятся, сама отвалится
Я на Всадниках Кальрадии: https://rusmnb.ru/index.php?action=profile;u=18932
Мододел
Vampir
Офлайн 15 августа 2015 23:01 поделиться
syabr, ну так это была "незапланированная бетаверсия" же ))) Теперь читайте в полном варианте с вставками от Шапки, скринами, инфой по module.ini и другим новым.


Друг сообщества
Ger4og
Офлайн 15 августа 2015 23:07 поделиться
Гайд отличный, уже с первого взгляда. Времени потрачено много наверно) Огромный плюс в подробном описании каждого элемента. smile30


Мододел
Vampir
Офлайн 15 августа 2015 23:08 поделиться
Цитата: Ger4og
Времени потрачено много наверно)

20 человекочасов, не считая Шапкиных (он расписывал папки resource и textures. Я лишь чуть-чуть добавил) fellow


Мододел
Shapka_Spartakov
Офлайн 15 августа 2015 23:09 поделиться
Ох ляпота)
Цитата: Ворона из "приключений попугая Кеши"
Прррэлестно!

А если кроме шуток, толково. Отмечу, моя часть основательно и с умом дополнена. Так что однозначно +. Самому понравилось. Пишешь просто, новички должны без труда понять. А тем кто шарит - не помешает обновить в памяти - благо ссылок тьма)


"Я не пытаюсь предсказать будущее – я пытаюсь его предотвратить"
©Рэй Брэдбери
Мододел
Vampir
Офлайн 15 августа 2015 23:53 поделиться
Цитата: Shapka_Spartakov
Пишешь просто, новички должны без труда понять. А тем кто шарит - не помешает обновить в памяти - благо ссылок тьма)

Как-то так и планировалось ) Отмечу, что я мододелии далеко не ас, так что критика приветствуется )


Мододел
Королёв
Офлайн 16 августа 2015 00:21 поделиться
Нужная статья, мне, скорее всего, пригодится smile30


Царь
syabr
Титул: Главный динозавр и ГГ сайта
Офлайн 16 августа 2015 00:27 поделиться
Vampir,
Я бы добавил про ОСП, что требуется учитывать пожелания автора. Иногда он просит указать его, иногда всю команду, иногда ссылку на его сайт, а иногда всё это вместе взятое. И что читать это надо на родных страницах.


Танки грязи не боятся, сама отвалится
Я на Всадниках Кальрадии: https://rusmnb.ru/index.php?action=profile;u=18932
Мододел
Vampir
Офлайн 16 августа 2015 17:12 поделиться
syabr, так я же про это написал. Или..... smile0 smile18 блин, забыл чтоб его. Хотел же про это тоже добавить. Записал, поправлю вместе с остальными очепятками.


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Онлайн

Сейчас на сайте: 137
Гостей: 134

Пользователи: 

Последние комментарии

Парламент commando
Samiraldos, Сегодня, 08:55
Цитата: ArtkolobokSamiraldos, Хорошо, но чтобы получить быстрый ответ, заходи на наш дискорд...
Парламент commando
Artkolobok, Вчера, 13:56
Samiraldos, Хорошо, но чтобы получить быстрый ответ, заходи на наш дискорд сервер:...
Парламент commando
Samiraldos, Вчера, 07:44
Цитата: ArtkolobokSamiraldos, Идея с партиями давно утратила свою актуальность, да и никто особо не...
MOD Voice Acting - AI Voice Acting for Every Character
Gut, 19 ноября 2024 18:13
с возвращением, грац!!...
Парламент commando
Gut, 19 ноября 2024 18:03
Samiraldos, Если есть желание, то всегда можно найти компромисс. Сами по себе партии утратили...
Парламент commando
Artkolobok, 19 ноября 2024 09:57
Samiraldos, Идея с партиями давно утратила свою актуальность, да и никто особо не хочет этим...
Парламент commando
Samiraldos, 19 ноября 2024 03:23
Я бы добавил должность партии в виде фрилансеров. Ну допустим я играю сейчас в МиБ потом буду...
Кольца
Samiraldos, 19 ноября 2024 03:06
https://commando.com.ua/uploads/posts/2018-05/1525510484_zol-bol-rad.png...