Создание материала для модели
Стр 1 из 2Следующая ⇒ Сборка модели танка для игры ВТВ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 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|