1. Ресурсы игры.
Ресурсы игры делятся на код и скрипты, модели, текстуры, материалы, коллизион меши, скелеты, шейдеры, файлы сцен, звуки и музыку, языковые файлы.
1.1 Код и скрипты
Находятся в корне папки подключаемого мода, представляют из себя текстовые файлы, читаемые игрой. В принципе, разобравшись, можно редактировать их, но лучше скачать текущую версию модульной системы и редактировать её, потом преобразовать в понимаемый игрой формат.
1.2 Модели.
Нативные модели находятся в папке CommonRes и запакованы в brf файлы.
Модели мода находятся в папке Modules/имя_мода/Resource
Открывать BRF Editor, искать на вкладке mesh. См. пункт 2.
1.3. Текстуры.
Нативные находятся в папке Textures, текстуры мода - Modules/имя_мода/Textures
Текстуры в формате dds, для их открытия графическими редакторами понадобятся плагины. См. пункт 3.
1.4 Материалы
Материалы, использованные в 3д редакторах игрой игнорируются, максимум - берется имя и имя привязанной к материалу текстуры. Свои материалы игра хранит в brf, их можно найти на вкладке mat.
Name - имя материала.
Shader - название шейдера, который будет применяться к этому материалу.
Diffuse - текстура, используемая материалом.
Diffuse 2 - еще одна текстура, используемая материалом. Используется в специальных случаях, например в материале лиц, как текстура "старого лица". (Другое применение требует уточнения).
Bump - карта нормалей, используемая материалом. Требуется для создания эффекта выпуклости (bump) текстуры. В игре применяется только для статичных объектов - здания, деревья и т.п.
Enviro - (требует уточнения)
Spec - текстура спекуляров. С использованием этой карты игра создает блеск на предметах. Текстура должна быть нарисована в градациях серого - чем светлее участок, тем сильнее он будет блестеть. Требует применения соответствующего шейдера (например, specular_shader). Также для этой цели в игре используется iron_shader, но он использует не отдельную текстуру - карту бликов, а альфаканал основной текстуры.
Specular (и настройки R, G, B рядом) - применяется для настройки спекуляров.
Значение specular определяет четкость бликов - чем больше, тем четче, но меньше эффект спекуляра. Значения RGB определяют цветность блеска в палитре RGB (красный, зеленый, синий)
Остальные настройки контролируют такие параметры как прозрачность, наложение освещения на предмет, использование теней и т.п. Их использование в целом не объяснено, поэтому лучше брать значения из уже сущестующих материалов.
1.5. Коллизион меши.
Представляют собой простые 3д модели, используются игрой для расчета простейшей физики - столкновений, проходимости или непроходимости объектов, мест нанесения ударов и т.п. Нативные коллизион меши автоматически используются для всех тел, доспехов, оружия, щитов, коней (или используется сама модель - нужно уточнять). Делать собственные необходимо для объектов, размещаемых на сценах - зданий, деревьев и т.п.
Коллизион меши можно найти в BRF-Editore на вкладке Col.
1.6. Скелеты.
На момент написания этой статьи существует всего два скелета - человеческий и конский, добавить новые или изменить существующие невозможно. С ними связаны модели тел, брони, обуви и лошадей.
2. Модели.
Условно используемые игрой модели можно разделить на 4 типа:
- Модели оружия, щитов, шлемов, предметов, строений. Не содержат ничего кроме сведений о геометрии самой модели. Экспортируются в формате OBJ.
- Модели тел, костюмов, обуви, лошадей. Содержат сведения о геометрии, один из двух игровых скелетов и сведения о привязке модели к скелету. Экспортируются в формате SMD.
- Модели рук, перчаток, специфические модели (иконки армий на глобальной карте и т.п.) Содержат анимацию, состоящую из нескольких кадров. Экспортируются в формате MD3 или покадрово как OBJ.
- Модели объектов для сцен - здания, деревья и т.п. Отличаются от других моделей тем, что могут иметь более 1 материала. При импорте в брф, эдитор спросит, надо ли разбить базовую модель. Меш разбивается на n частей, где n - число использованных в модели материалов. Такие модели называются мультимешами. В BRF Editor'е можно переключаться в режим показа модели целиком или по частям нажатием на кнопку Multi Mesh.
2.2. LOD-ы
Модели персонажей, их частей, оружия и одежды, лошадей могут быть представлены в нескольких экземплярах. Один из них является основной моделью, показываемой вблизи. Остальные - низкополигональные модели, заменяющие основную с ростом расстояния до "зрителя" и снижающие таким образом нагрузку на видеокарту. Пример наименования:
sword_1
sword_1.lod1
sword_1.lod2
и т.д. (в игре встречаются до 4 уровня).
Лоды подключаются игрой автоматически . Лоды предметов, привязанных к скелету также должны быть привязаны.
Для лодов можно создать свой материал, который должен отличаться от основного суффиксом .lod. Пример:
sword_material_1
sword_material_1.lod
Таким образом, для всех моделей sword_1.lod будет использоваться материал sword_material_1.lod
3. Текстуры.
Текстуры используемые игрой сжаты c использованием алгоритмов s3tc, что снижает их качество, но также снижает и размеры, позволяя использовать текстуры с меньшей глубиной цвета, но большим разрешением. Алгоритмов несколько типов:
DXT1, DXT3 и DXT5.
Их основные отличия заключаются в разной обработке альфаканала.
- DXT1 - альфаканал белый или его нет.
- DXT3 - альфаканал четкий.
- DXT5 - альфаканал интерполирован.
Если вы не планируете использовать альфаканал, выбирайте DXT1. Если альфаканал содержит резкие переходы, границы, выбирайте DXT3. Если в альфаканале в основном градиенты, выбирайте DXT5.
3.1 Альфаканал.
В сочетании с шейдерами, альфаканал позволяет создавать нужные эффекты, такие как прозрачность или блеск.
3.2. Мип-уровни.
Мип-уровни - текстурный аналог lod-ов. Находятся в самой текстуре.
Увеличивают расход видеопамяти, но также увеличивают общую скорость рендеринга, подменяя основную текстуру по мере удаления от "камеры".
Без мип-уровней не будет работать настройка качества текстур (она определяет, какой из мип уровней считать основным).
Продолжение следует.