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


 




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

Прежде всего посмотрим что такое есть мод. Это папка внутри которой располагаются ресурсы игры заменяющие\дополняющие те что имеются в игре. После того как вы поместите эту папку по адресу игра\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

Мододел
RobertKing
Офлайн 16 августа 2015 17:34 поделиться
Vampir,
Хороший гайд, нам как раз не хватает кучи солянок smile30
Юные мододелы должны будут всё понять и уяснить мне кажется.
Даже соляночку не так то просто собрать, ну в смысле на эту сборку уйдет определенное время и пару тройку нервов) надеюсь что кое - кто это поймет и не будет не уважительно относится к чужому труду.


Мододел
Vampir
Офлайн 16 августа 2015 17:41 поделиться
Цитата: RobertKing
нам как раз не хватает кучи солянок

А причем тут собственно солянки? Речь идет исключительно, о структуре мода для новичков.


Мододел
RobertKing
Офлайн 18 августа 2015 13:57 поделиться
Vampir,
Дык пошутил же wink
Гайд на +5, мне понравилось, кратко, понятно, в общем молодцы, хорошо поработали smile30 smile
Спасибо всем тем, кто пишет такие гайды)


Гридень
sagittarius
Офлайн 25 августа 2015 18:31 поделиться
"+", "+" и еще раз "+", как-то так...


Достоинство каждого дела в том, чтобы оно было доведено до конца
Друг сообщества
Janycz
Офлайн 25 августа 2015 19:56 поделиться
Не все написано, смысл следующих файлов не раскрыт:
game_variables.txt
mb_2a.fxo
mb_2b.fxo
и многих других...

Iron Launcher не нужен. Warband версии 1.132 и старше сам умеет делать, то что делал Iron Launcher.


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

Не только, тут есть описание формата и парсер .sco файлов на C.


1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25
Мододел
Vampir
Офлайн 29 августа 2015 07:09 поделиться
Цитата: Janycz
game_variables.txt

Да, забыл.
Цитата: Janycz
и многих других...

Вроде все основное, что есть в моде я расписал. Если что забыл - напиши.
Цитата: Janycz
mb_2a.fxo
mb_2b.fxo

Они встречаются только в файлах самой игры, в модах я такого не видел раньше.
Цитата: Janycz
Iron Launcher не нужен.

Спс. Ок. Исправлю.
Цитата: Janycz
тут есть описание формата

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


Друг сообщества
Janycz
Офлайн 29 августа 2015 10:12 поделиться
Цитата: Vampir
Они встречаются только в файлах самой игры, в модах я такого не видел раньше.

Их можно поместить в папку модуля, чтобы мод мог использовать свои шейдеры.
Или можно положить один скомпилированный файл шейдеров mb.fx, без разделения на ps_2_a vs_2_a и ps_2_b vs_2_b

Принимаемые форматы ресурсов:
.trf – Текстовые файлы — При загрузке игры автоматически конвертируются в бинарные
.brf – Бинарные файлы — Не требуют конвертации, более быстрая загрузка игры

Принимаемые форматы текстур: .dds .tga .jpg
Принимаемые форматы музыки и звуков: .mp3, .ogg, .wav

Файлы папки data:


map.txt - глобальная карта мода
variables.txt - список глобальных переменных, используемых в моде.


1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25
Мододел
Vampir
Офлайн 29 августа 2015 10:21 поделиться
Janycz, спс. Про файлы data, я изначально хотел примерно так и расписать, но потом сократил.


Мододел
Vampir
Офлайн 1 сентября 2015 16:34 поделиться
Одмины, отправьте тему на модерацию. Грядет Guide v3: fixed edition.

Грянул )


Каторжник
ThugLife
Офлайн 7 октября 2015 22:11 поделиться
Прочитаю обязательно, но он ОГРОМЕН recourse


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

Онлайн

Сейчас на сайте: 141
Гостей: 139

Пользователи: 
- отсутствуют

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

MOD Distinguished Service
Максим Шевченко, 20 декабря 2024 03:31
Добрый, заранее извиняюсь. может за глупый вопрос. Установил данный мод на игру с модом "Игры...
MOD 457 AD
Vito, 20 декабря 2024 02:28
Приветствую, подскажите пожалуйста по квесту "Меч Марса". Я на стадии где по просьбе матери Аттилы,...
MOD 457 AD
zhenshen667, 15 декабря 2024 19:42
Некультурно со стороны администрации писать "(Его нет, ждите перевод или делайте сами)"....
Технические проблемы с игрой
Чикабой, 11 декабря 2024 23:18
timur karsli, Ты именно это переустановил? "Microsoft visual c++"?, или драйвера видеокарты? там...
MOD A World of Ice and Fire
Чикабой, 11 декабря 2024 23:15
timur karsli, Переустановить библиотеку визуалов, ибо там повреждены файлы....
MOD 1429 : la Guerre de Cent Ans - Steel Edition
kitel, 11 декабря 2024 09:04
Цитата: kitelпередайте тем кто руссификаторы делал чтобы перед презентацией сами проверяли их. Я...
MOD 1429 : la Guerre de Cent Ans - Steel Edition
kitel, 10 декабря 2024 16:45
передайте идиотам что руссификаторы делали чтобы перед презентацией сами проверяли их. Я только...
Быстрый перевод мода Warband гуглом
kitel, 1 декабря 2024 20:28
я перевел файл но перевод какой то странный. строки с командами отправились под конец диалога. это...
MOD Armor Mod for Viking Conquest
Halfdown, 30 ноября 2024 14:17
Еще можно установить его?  Переходя по ссылке выдает это The mod requested could not be found. We...