Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Создание материала для модели




Сборка модели танка для игры ВТВ2 и ВТВ2 БПО

Предисловие

 

Прежде всего, ознакомьтесь с документом для подключаемого модуля экспорта моделей в игру «В тылу врага 2» для пакета моделирования 3DSMAX версий 7 и 8 readme_rus.htm. В нем освещаются ключевые моменты создания моделей, которые не рассматриваются в данном руководстве.

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

 

Кость модели

 

Кость модели bone – составная часть модели. Для модели примерно то же, что и кость в скелете человека. Может иметь полигональный вид или не иметь, может быть вращающейся (revolute) или неподвижной.

 

Базис

 

Basis - корневая кость модели (далее базис). Объект Dummy (пустышка). Является основой модели, через нее проходят оси симметрии. Ее ориентация должна совпадать с основной системой координат. Что очень важно учесть, так это то, что в игре осью вращения является ось Z, поэтому модель должна создаваться таким образом, чтобы вертикальная ось модели совпадала с осью Z базиса, т.к. при повороте танка или другой техники в игре модель вращается относительно именно оси Z.

Для создания базиса выбираем вкладку Create и выбираем объекты-помощники (Helpers) на панели инструментов справа, как показано на рисунке 1.

 

 

Рисунок 1.

 

Выбираем объект Dummy и «растягиваем» его в одном из рабочих окон, превращая в куб. Задаем имя новому объекту – basis. Если ориентация базиса не совпадает с общими осями координат, выделяем базис, идем на вкладку Hierarchy, там выбираем категорию Pivot (точка опоры) и жмем кнопку Affect Pivot Only (применить воздействие только к точке опоры), как это показано на рисунке 2. Далее выбираем инструмент «Вращение» (см. рис.2) и вращаем точку опоры базиса. Оси базиса (зеленая, красная и синяя стрелки на рисунке 2 в центре) должны совпасть с такими же цветными осями в левом нижнем углу рабочего окна общей системы координат. В нашем случае мы должны повернуть точку опоры так, чтобы зеленая ось Y базиса смотрела бы от нас, а синяя Z - вверх. Ось X уже направлена в нужную сторону. Ленивые, в этом случае, могут нажать кнопку Align to World (см. рис. 2).

 

Рисунок 2.

 

Теперь нужно прописать свойства модели в параметрах базиса. Окно параметров можно вызвать выделив нужную кость (базис в данном случае) и нажав правую клавишу мыши. В отрывшемся меню выбираем пункт Properties. Откроется окно Object Properties. В нем активируем вкладку User Defined. Вот в этом большом текстовом окне и записываются параметры и свойства костей, о которых речь идет ниже.

В параметры базиса прописывается тип сущности (type=entity для техники, работоспособной или поврежденной моделей и type=game_entity для разрушенной модели).

 

Обязательно в свойствах базиса указывается местоположение модели, папка, в которую будет положена модель при экспорте, например:

Model=entity/-vehicle/tank_light/pz38t

 

Радиус колес задается параметром Wheelradius. Эта величина определяет скорость вращения колес при движении. Задается для всех колес модели. Для задания радиуса каждому колесу индивидуально используется параметр Radius, который задается в параметрах именно желаемого колеса и действует только для последнего.

 

Также здесь задается общая анимация модели: старта start, остановки stop, выстрела из главного орудия fire, открытия люков open (замкнутая), открытия дополнительных люков (open_driver) и попадания снаряда hit. Параметры анимации можно определить позже, когда будут необходимые для нее кости и возможно будет создать группы анимации для нее (см. п. 1.10). В противном случае при экспорте модели плагин будет ссылаться на невозможность найти ту или иную группу анимации и очень ругаться.

 

Пример набора параметров для модели Pz38t (на момент окончания сборки):

Type=Entity

Model=entity/-vehicle/tank_light/pz38t

Animation=start,body,10-50,60

Animation=stop,body,50-90,50

Animation=hit,body,90-110,80

Animation=fire,fire,120-150

AnimationResume=open,open,160-180,80

AnimationResume=open_driver,open_driver,100-220

Wheelradius=0.43

 

Примечание 1. Обязательно оставляйте после последней строки параметров одну пустую строку (См. документ readme_ rus. htm к официальному плагину).

 

Подробнее о значении параметров рассказывается в документе readme_rus.htm к официальному плагину.

 

Корпус модели

 

Корпус модели носит имя body. Можно создать с нуля, а можно использовать импорт старой модели, например из ВТВ1. При создании полигонального вида с нуля, селдует учесть, что нельзя использовать инструмент масштабирования Scale до того, как объект будет преобразован в объект типа Editable Mesh или Editable Poly. Также здесь в полный рост встает проблема масштаба модели. Для оценки длины/ширины модели используем инструмент «Измерение дистанции», находящегося по адресу Tools/Measure Distance… Один метр в «максе» равен примерно 2,45 метрам реальным. Но все равно, подгонять габариты модели придется опытным путем, сравнивая линейные размеры с уже существующими моделями, путем предварительного экспорта модели с одним единственным корпусом. В противном случае, уже готовую модель со множеством костей будет сложнее правильно отмасштабировать.

 

Примечание 2. При масштабировании нельзя масштабировать (Scale) или использовать отражение (Mirror) для модели целиком, а только лишь сами полигональные виды на уровне полигонов и вертексов.

 

В параметрах корпуса записываем следующие свойства:

Poly – кость будет иметь полигональный вид и будет видна в игре. Если не указать, полигональный вид экспортироваться не будет

ID=body – определяет, к какому компоненту принадлежит кость. В данном случае кость принадлежит корпусу. Если не указать, то в игре, при разрушении компонента «корпус» изменения в виде эту кость не затронут

Animation=repair,body_r,190-220,body_r,60 – определяет кадры анимации, проигрываемой при починке корпуса.

Теперь настало время прилинковать корпус к базису. Нажимаем кнопку  Schematic view вверху справа. Откроется схема иерархии модели, на которой пока будут только две кости: basis и body.

Нажимаем кнопку Connect и линкуем корпус к базису от дочернего объекта к родительскому, т.е. растягиваем связь от body к basis.

 

Создание шасси модели

 

Для начала, пока масштаб модели не определен со всей ясностью, можно ограничиться наброском шасси. Нужно создать две кости по обеим сторонам модели: wheelsR и wheelsL, соответственно с правой и с левой сторон модели. Это будут корневые кости шасси. Они могу представлять собой ту же пустышку (dummy), что и базис, а могут иметь полигональный вид деталей подвески, в зависимости от задумки и возможностей создателя. В нашем случае возьмем пустышку. Задав имена костям, переходим к их параметрам. Соответствующей кости присваиваем компонент ID=trackright или ID=trackleft. В случае полигонального вида подвески не забываем про Poly (не в нашем случае). Линкуем как было указано выше обе кости к базису (именно к базису, т.к. корпус может изменять свое положение в пространстве относительно базиса при проигрывании анимации старта, например, а шасси должно твердо стоять на земле в это время).

Теперь необходимо создать волумы для траков. Идем на вкладку Create, раздел Geometry (см. рис. 3) и выбираем Box (коробка). Создаем продолговатые параллелограммы и выравниваем нижние их грани по нулю координаты Z общей системы координат. Можно создать один волум, а потом применить копирование. Имена волумов должны быть Trackright_vol Trackleft_vol для правого и левого соответственно. В параметрах волумов задать свойство Volume. Прилинковываем волумы к костям wheelsR и wheelsL и размещаем их на соответствующих сторонах.

 

 

Рисунок 3.

 

Теперь остается наложить текстуру на корпус и можно будет экспортировать для сравнения размеров создаваемой модели с уже существующими без боязни вызвать «терминатора» в игре.

 

Создание материала для модели

 

Нажимаем кнопку Material Editor . Появится окно редактора материала. Выбираем свободный слот. Задаем имя материалу (base или material1, к примеру) и нажимаем кнопку, справа от поля имени, как показано на рисунке 4.

 

Рисунок 4.

 

В появившемся списке Material/Map Browser выбираем строку EclipseMtl. В раскрывшемся окне параметров материала выбираем тип прозрачности:

Opaque (None) – для материала не используется альфа-канал на текстурах, т.е. на модели не будет прозрачных мест

1 bit alpha (Test) – для материала, использующего альфа-канал, например, прорези на ведущих колесах танков

8 bit alpha (Blend) – для техники нет смысла использовать, используется для окон зданий и т.п. моделей.

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

Далее, нажимаем кнопку напротив слова «Material:», как показано на рисунке 5.

 

Рисунок 5.

 

Во вновь открывшемся Material/Map Browser на этот раз выбираем строку Standart. Разделе Blinn Basic Parameters материала жмем кнопку, как показано на рисунке 6. В появившемся списке выбираем Bitmap (рисунок). Появляется диалоговое окно, позволяющее указать путь к основной текстуре и выбрать ее.

 

Рисунок 6.

 

Для наложения бликовых текстур (specular) и бампа (bump) необходимо иметь соответствующие изображения. О создании таких изображений речь пойдет ниже в п.2. Для того чтобы добавить их к материалу, возвращаемся к материалу Material #N (который Standart, не EclipseMtl) и переходим в раздел Maps, выставляем галочки напротив Specular Level (не Specular Color!) и Bump. Значение Amount определяет силу эффекта и выставляется произвольно. Далее нажимаем кнопочки напротив материалов (см. рис. 7) и выбираем Bitmap из списка так же, как делали выше, назначаем текстуры бампа и бликов.

Теперь созданный материал нужно применить к корпусу. Есть несколько путей добавления материала объекту, самый простой из которых – простое перетаскивание материала на объект мышкой.

Наложение текстур осуществляется с помощью модификатора Unwrap UVW, который можно добавить объекту во вкладке Modify (Изменение), окно Modifier List (Список модификаторов) как к объекту целиком, так и к отдельным полигонам/поверхностям объекта. Подробнее на наложении текстуры мы останавливаться не будем.

Настало время для первого пробного экспорта.

 

Рисунок 7.

 

Экспорт модели

 

Как настроить плагин при первом экспорте см. в документе readme_rus.htm к официальному плагину. Для последующих операций экспорта используются те же настройки, что и для первой.

Для экспорта модели нажимаем File/Export…, далее выбираем тип файла MDL Scene Export (*.MDL), вводим имя файла и нажимаем OK. Модель будет сохранена в папке по адресу, прописанному в параметрах базиса, например entity/-vehicle/tank_light/pz38t. В этой папке будут находится файлы с расширениями:

.ply – файлы, содержащие полигональные виды костей

.vol – файлы, содержащие сложные виды волумов (простые это боксы, цилиндры и т.д.), если таковой был создан (как правило, создается для башен или корпусов), объемов взаимодействия

.mtl – файлы с параметрами материалов

.mdl – файл, описывающий иерархию и структуру модели. Начинающим особо рекомендуется изучить принцип построения данного файла, используя собственноручно экспортированный, сравнивая с любым, созданным разработчиками игры

.def – файл, определяющий набор свойств сущности (техники, предметов и т.д.) такие как тип шасси, вооружение, скорость передвижения, экипаж, вес и т.д. Также рекомендуется к изучению начинающими

.dds или.bmp – файлы текстур

anim.txt – файл-таблица анимации. Нужен для проверки правильности создания анимации, если возникли какие-то трудности. Может быть удален без каких либо последствий

 

Нас интересует файл имямодели.def. При экспорте создается простая версия файла дэф. Его необходимо отредактировать. Пока модель представляет собой корпус и набросок шасси с волумами траков, в файл дэф можно добавить описание свойств шасси и самой сущности модели. К примеру для танка pz38t дэф файл будет выглядеть так:

 

{Entity           

       (include "/properties/tank.ext")                     

       (include "/properties/shadow/tank.inc" scale(1.0))

       (include "/properties/selection/vehicle.inc" scale(1.2))

 

 

       {mass 9500}

       {Chassis

                   ("tank_trace" fx("tracks_sm") step(0.3) len(0.73))

                   {Locomotion ("locomotion")

                              {MaxSpeed     20}

                   }

       }

       {Extension "pz38t.mdl"}      

}

 

На начальном этапе, пока у модели не имеется ни волумов корпуса, ни башни, ни хелперов прицелов (Foresight) или визоров, все соответствующие параметры (sensor, weapon, armor) необходимо убрать. Иначе при загрузке карты с моделью придет дядя Арни. В последствии, при создании данных костей в файл дэф можно (и нужно) будет добавить параметры брони, оружие, визоры и т.д.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...