Добро пожаловать на форумы Боевого Народа (бывший форум Live.CNews.ru)!

ВАЖНЫЕ ТЕМЫ: FAQ по переезду и восстановлению учеток | Ошибки и глюки форума.
О проблемах с учетными записями писать СЮДА.
Сборка модели танка в 3DSMAX - Форумы Боевого Народа
IPB

Здравствуйте, гость ( Вход | Регистрация )

9 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
Сборка модели танка в 3DSMAX, Краткое руководство сборки модели танка в 3DSMAX
сообщение 18.2.2008, 22:20
Сообщение #1





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



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


1.1 Предисловие

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

1.2 Кость модели

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

1.3 Базис

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

[attachment=16932:attachment]
Рисунок 1.

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

[attachment=16933:attachment]
Рисунок 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 к официальному плагину.

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

Корпус модели носит имя 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.

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

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

[attachment=16934:attachment]
Рисунок 3.

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

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

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

[attachment=16935:attachment]
Рисунок 4.

В появившемся списке Material/Map Browser выбираем строку EclipseMtl. В раскрывшемся окне параметров материала выбираем тип прозрачности:
Opaque (None) – для материала не используется альфа-канал на текстурах, т.е. на модели не будет прозрачных мест
1 bit alpha (Test) – для материала, использующего альфа-канал, например, прорези на ведущих колесах танков
8 bit alpha (Blend) – для техники нет смысла использовать, используется для окон зданий и т.п. моделей.
Для создания техники лучше создать два материала, использующих одну текстуру, но один с альфа-каналом, другой без такового.
Далее, нажимаем кнопку напротив слова «Material:», как показано на рисунке 5.

[attachment=16936:attachment]
Рисунок 5.

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

[attachment=16937:attachment]
Рисунок 6.

Для наложения бликовых текстур (specular) и бампа (bump) необходимо иметь соответствующие изображения. О создании таких изображений речь пойдет ниже в п.2. Для того чтобы добавить их к материалу, возвращаемся к материалу Material #N (который Standart, не EclipseMtl) и переходим в раздел Maps, выставляем галочки напротив Specular Level (не Specular Color!) и Bump. Значение Amount определяет силу эффекта и выставляется произвольно. Далее нажимаем кнопочки напротив материалов (см. рис. 7) и выбираем Bitmap из списка так же, как делали выше, назначаем текстуры бампа и бликов.
Теперь созданный материал нужно применить к корпусу. Есть несколько путей добавления материала объекту, самый простой из которых – простое перетаскивание материала на объект мышкой.
Наложение текстур осуществляется с помощью модификатора Unwrap UVW, который можно добавить объекту во вкладке Modify (Изменение), окно Modifier List (Список модификаторов) как к объекту целиком, так и к отдельным полигонам/поверхностям объекта. Подробнее на наложении текстуры мы останавливаться не будем.
Настало время для первого пробного экспорта.

[attachment=16938:attachment]
Рисунок 7.

1.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) необходимо убрать. Иначе при загрузке карты с моделью придет дядя Арни. В последствии, при создании данных костей в файл дэф можно (и нужно) будет добавить параметры брони, оружие, визоры и т.д.

1.8 Создание вращающихся костей

Когда с масштабом модели определились, можно приступать к основной работе.
При создании башни танка, нужно таким образом ориентировать pivot башни, чтобы ось Z башни была направлена вверх от корпуса. В параметрах башни указываем:
Poly
ID=turret – компонент turret (башня)
Animation=repair,turret_r,155-180,turret_r,60 – анимация при починке башни
IKSpeed=0.01 – скорость вращения кости, т.е. башни
Чтобы сделать башню вращающейся, переходим на уже знакомую вкладку Hierarchy, нажимаем кнопку IK (инверсная кинематика). Выставляем галочки в разделе Object Parameters как показано на рисунке 8, тем самым, давая понять плагину, что кость будет вращаться. При экспорте эта кость будет записана в .mdl файле не просто как кость bone, а как bone revolute. Рекомендуется проверять визуально после экспорта в .mdl файле те кости, что должны вращаться, на предмет корректного объявления кости как bone revolute. В случае несоответствия – проверяем в 3DSMAX правильность выставленных галочек.

[attachment=16939:attachment]
Рисунок 8.

Прилинковываем башню к корпусу.
Теперь создаем маску пушки. Имя для этой кости используется обычно gun_rot. Ориентируется кость таким образом, чтобы ось Z находилась в горизонтальной плоскости, параллельно оси Y общей системы координат, что обеспечит пушке подвижность в вертикальной плоскости, т.е. подъем/опускание. Делаем кость вращающейся, как было указано выше. В параметрах прописываем:
Poly
ID=gun – компонент gun (орудие)
IKSpeed=0.01
IKMin=-10 – минимальный угол отклонения
IKMax=25 – максимальный угол отклонения
Минимальный и максимальный углы определяют сектор вращения кости.
Прилинковываем маску пушки к башне.
Создаем саму пушку. Ее делать вращающейся не надо. В параметрах прописываем:
Poly
ID=gun
Прилинковываем пушку к маске пушки. Обратите внимание на иерархию модели.
Теперь, для того, чтобы можно было прописать танку оружие и пушка могла стрелять в игре необходимо добавить кость прицела (Foresight). Идем на вкладку Create, в раздел Helpers и выбираем объект Point (точка). Выставляем в параметрах объекта в меню справа галочку напротив Cross (крест) и задаем размер креста. Обычно хватает 0.2-0.3 метра. Хелпер типа крест проще ориентировать, т.к. сразу видно его расположение. Создаем напротив дульного среза пушки кость с именем Foresight1 и ориентируем таким образом, чтобы ось X хелпера была направлена от пушки.

Примечание 3. Для остальных подобных хелперов ось X означает направление выпуска эффекта, такого, как вылет снаряда, выпуск дыма, направление света или огня, прорисовка следов от траков и т.д.

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

Примечание 4. Рекомендуется самостоятельное ознакомление читателя с принципами действия инверсной кинематики с целью прояснения вышеприведенного эффекта.

В таком случае нужно проверить правильность задания параметров орудия, а также имени прицела. Для основного орудия имя должно быть обязательно Foresight1 (Foresight3, Foresight4… – это для дополнительного оружия типа пулеметов, Foresight2 для техники не используется). Если прицел есть, а вращения башни нет – нужно проверить правильность параметров вращения башни. То же и для маски пушки. Орудие должно наводиться по горизонтали поворотом башни, а по вертикали подъемом/склонением маски пушки.

Теперь можно вернуться к шасси танка. Ведущие колеса и ленивцы танка, а также опорные катки делаются вращающимися так же, как и башня танка или маска пушки. Разница заключается в том, что для колес не нужно прописывать в параметрах скорость и пределы вращения. Скорость вращения колес задается параметром Wheelradius в базисе модели или параметром Radius индивидуально для каждого колеса, если его радиус существенно отличается от остальных. В случае, если после экспорта модели при проверке ее в игре колеса вертятся в сторону обратную от запланированной, необходимо поменять ориентацию pivot (см. п. 1.3) таким образом, чтобы ось Z, как ось вращения, изменила направление на противоположное первоначальному.
Ведущие колеса и ленивцы линкуются к корпусу, опорные катки к костям подвески wheelR и wheelL. Параметры для всех колес Poly и ID=trackright или ID=trackleft, в зависимости от стороны и не зависимо от кости, к которой линуются.

1.9 Создание траков

Самый простой способ изготовления траков, это создание лофт (loft) объекта. С принципами создания и использования лофт объекта можно ознакомиться здесь.

Для начала нужно создать путь. Он же будет являться контуром будущего трака. Идем на вкладку Create в раздел Shapes (см. рис. 9). Из списка сплайнов выбираем Line (линию). Далее тыкая в рабочем окне, расставляем ключевые точки трака по контуру. Замыкаем контур, тыкая в самую первую точку в фигуре и на запрос о Вашем желании замкнуть контур, отвечаем «Да». Теперь очередь за сечением трака. Выбираем объект Rectangle (прямоугольник) и создаем прямоугольник сечения. Теперь создаем лофт объект.

[attachment=16940:attachment]
Рисунок 9.

Выделяем линию-путь и идем на вкладку Create в раздел Geometry. Из списка классов объектов выбираем Compound Objects (см. рис.10).

[attachment=16941:attachment]
Рисунок 10.

Создаем объект Loft. В свитке Creation Method нажимаем кнопку Get Shape (см. рис. 11) и щелкаем на том прямоугольнике, что был за сечение. Созданный объект будет похож на трак.

[attachment=16942:attachment]
Рисунок 11.

Остается во вкладке Modify поиграть с параметрами прямоугольника сечения для получения желаемой формы. Для этого в окне модификатора нужно войти в режим редактирования лофт объекта, далее войти в подпункт Shape и щелкнуть на одном из прямоугольников сечения в лофт объекте. В окне параметров появятся пункты Length, Width и Corner Radius, соответственно длина, ширина и радиус угла (для закругления). Выйти из режима редактирования Shape до уровня Loft. В свитке Skin Parameters выставить параметры Shape Step (шаг формы) и Path Step (шаг пути) в нуль. Тем самым добивается единичная сегментированность объекта.
Создаем материал для траков, аналогичный созданному ранее для корпуса и остальных деталей, называем его track#1. Материал должен использовать 1 битную альфу и не иметь текстур бликов и бампа. Накладываем полученный материал на трак. Теперь, НЕ применяя модификаторов наложения текстур (типа Unwrap UVW), с помощью счетчика Tiling меню Coordinates в Material Editor для материала траков, добиваемся нужного шага текстуры на траке, чтобы длина и ширина отдельного элемента трака были нужного размера. Альтернативный способ настройки текстуры трака – изменение аналогичных параметров в свитке Surface Parameters (см. рис. 11) в секции Mapping самого лофт объекта, счетчиками Length Repeat и Width Repeat. В данном случае мы подстраиваем параметры маппинга под текстуру, а не наоборот, как предыдущим способом, что даже лучше.
Только после этого к объекту можно применять модификатор наложения текстур. Также можно использовать модификатор типа Editable Mesh для создания штырей траков. Это можно сделать скопировав боковую поверхность трака. Лофт объект конвертировать не надо, т.к. он прекрасно воспринимается движком игры и в дальнейшем очень легко редактируется (параметры Line и Shape).
Готовой объект копируем на другую сторону танка и получившимся тракам присваиваем имена trackR и trackL, не забываем про параметры Poly и ID=trackright и ID=trackleft. Линкуем к костям wheelsR и wheelsL.

Теперь на готовый трак накладываем модификатор Skin. Видео
Заходим в режим редактирования Skin-> Envelope. Нажимаем кнопку Add, позволяющую добавить контрольную кость, с перемещением которой будет двигаться и модель трака. Из предоставленного списка выбираем body.
В свитке Parameters в секции Select ставим галку напротив слова Vertices (вершины). Теперь нужно выделить вершины трака (точки, проще говоря), что находятся в нижней его части, которая касается земли (уровень земли - ноль по оси Z). Не снимая выделения с вершин, нажимаем правую клавишу мыши и в появившемся окне выбора опций жмем в пункт Weight Table Dialog. Появится таблица распределения весов. В левой нижней части устанавливаем фильтр Selected vertices, как показано на рисунке 12, в результате чего в таблице останутся только выделенные вершины трака.

[attachment=16943:attachment]
Рисунок 12.

Далее для всех строк в таблице ставим крестик в столбце M, который на рисунке 12 помечен стрелкой. Закрываем диалоговое окно, выходим из режимов редактирования Envelope и Skin. Выделяем корпус (body – контрольная кость для модификатора Skin) и пробуем его немного подвигать. Если все было сделано правильно, то вместе с корпусом в пространстве будут двигаться ведущие колеса и ленивцы, а также верхние части траков, как бы растягиваясь вслед за ведущими колесами. Получился эффект, будто трак действительно лежит на ведущем колесе и ленивце (хотя траки прилинкованы в шасси), а опорные катки как бы прижимают нижнюю часть трака к земле.
Остается посмотреть результат в игре. Если траки при движении будут вращаться в обратную сторону, идем в Material Editor в материал траков, в те же параметры, где изменяли Tiling материала траков, и меняем по очереди параметры U, V и W с 0 на 180 (обычно нужная координата U). Если параметр был изменен верный, то трак должен будет начать крутиться в правильную же сторону. При этом не должно быть перекоса текстуры.
На этом изготовление траков закончено.

1.10 Создание анимации

Рассмотрим создание анимации на примере анимации старта Start. Для начала обратим наш взор в правый нижний угол редактора. Нажимаем кнопку Time Configuration, что отмечена на рисунке 13.

[attachment=16944:attachment]
Рисунок 13.

Поскольку 30 стандартных кадров для анимации, выставленных по-умолчанию, может не хватить, в открывшемся окне счетчиком выставляем количество кадров с запасом, как показано на рисунке 14. Нажимаем ОК.

[attachment=16945:attachment]
Рисунок 14.

Теперь выделяем базис и заходим в его параметры. Находим строку, определяющую отрезок кадров для анимации старта: Animation=start,body,10-50,60. Т.е. для анимации старта будут использоваться кадры анимации с 10-го по 50-й для группы анимации body. Нужно определить эту самую группу body. Идем в пункт Edit менюбара и жмем на пункте Edit Named Selection Sets. Появляется окно редактора групп. Остается создать там группу body и добавить к ней кость body. Аналогично создаются остальные группы (см. рис. 15).

[attachment=16946:attachment]
Рисунок 15.

В нижней части редактора можно увидеть ползунок и шкалу кадров анимации. Нас интересует 10 кадр, т.к. он является начальным в анимации старта. Выставляем ползунок на 10-й кадр, как это показано на рисунке 16.

[attachment=16947:attachment]
Выделяем кость корпуса (если не выделена или выделение сбросилось). Нажимаем кнопку Set Keys , которая создаст первый кадр анимации и зафиксирует начальное положение кости корпуса. Затем переводим ползунок на 50-й кадр и опять нажимаем кнопку Set Keys, тем самым, создавая конечный кадр. Можно воспользоваться копированием (зажав Shift просто перетащить копию кадра на нужное место).

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

Теперь перемещаем ползунок в промежуток между 10-м и 50-м кадрами в любое место в передней части отрезка, например на 20-й кадр. Нажимаем переключатель Auto Key справа от кнопки Set Keys. При активации режима автозаписи кадра, полоска под ползунком станет красной. Теперь кадр будет записываться на отрезке каждый раз, как нами будет меняться положение кости. Выбираем инструмент перемещения и смещаем немного корпус вниз по оси Z. Затем инструментом поворота слегка наклоняем корпус назад, имитируя наклон корпуса при старте танка. При изменении положения корпуса на шкале анимации под ползунком должна появиться отметка. Кадр записан. Перемещаем ползунок вперед на несколько кадров. Теперь переместим корпус слегка вверх, как бы реакция подвески на стартовое проседание – выталкивание танка вверх. Кадр записался. Переместив ползунок еще вперед, опять перемещаем корпус слегка вниз. И так несколько раз, создавая эффект затухающих покачиваний после старта танка. Далее выходим из режима автозаписи кадров и, прокручивая ползунок вперед-назад, смотрим результат работы. При необходимости ключевые кадры анимации можно перемещать вдоль шкалы, пытаясь добиться максимально реалистичного результата. Записывать каждый кадр вручную нет необходимости. Достаточно лишь указать ключевые точки, «точки перегиба». Редактор сам сгенерирует положения костей в промежуточных кадрах, сделав это максимально плавно. Если не устраивает скорость изменения положения, можно самому задать амплитуду и кривую движения кости в редакторе кривых Mini Curve Editor.
В конечном итоге должно получиться что-то вроде картинки, показанной на рисунке 17.

[attachment=16948:attachment]
Рисунок 17.

Теперь экспортируем и смотрим в игре результаты. Если все правильно, танк при начале движения начнет наклоняться.
Последняя цифра в параметрах анимации Animation=start,body,10-50,60 означает скорость проигрывания анимации. Подбираем оптимальную скорость (определяется опытным путем, изменяется от 0 до 100%).
Остальная анимация создается аналогично.
Вид мэшевой анимации (анимация вершин) создается примерно также. В параметрах кости вместо Poly прописывается CommonMesh, далее выделяются нужные вершины и так же изменяется их положение в пространстве с запись этого положения в кадр.

1.11 Дополнительные кости

Дополнительные кости – кости визоров, прицелов, дымовых эффектов. Как правило являются простейшими объектами пойнтами. При создании пойнтов ознакомьтесь с примечанием 3 пункта 1.8.
Список минимально необходимых для модели дополнительных костей:
Foresight3, Foresight4 и т.д. – пойнты прицелов, для каждого дополнительного вооружения должен быть свой прицел, линкуются к кости оружия;
visor1 – главный визор танка, линкуется к башне либо к маске пушки;
visor2 – визор механика-водителя, линкуется к корпусу;
fxsmoke1 и fxsmoke2 – эффекты выхлопа двигателя, линкуются к корпусу;
fxfire1 и fxfire2 – эффекты огня при возгорании танка, линкуются к корпусу, один у мотора, другой под башней;
fxfire3 – эффект пламени из люка, линкуется в башне под основным люком;
FXtraceR1 и FXtraceL1 – эффекты следов колес или траков, линкуются к шасси;
FXtraceR2 и FXtraceL2 – эффекты выброса грязи с траков или колес, линкуются к шасси.

1.12 Создание волумов

Волум – объект взаимодействия в игре. Определяет физическую область занимаемого моделью пространства и ее физическую форму. Для создания волумов нужно исходить из нескольких простых правил.
1) Волум не обязательно должен точно повторять компонента модели, к которому прилинкован. Достаточно более-менее приблизительного совпадения граней. Слишком подробный волум будет съедать большое количество машиноресурсов, а слишком грубый не будет правильно отображать геометрические параметры объекта.
2) Волум должен быть выпуклым. Т.е. любой отрезок, проведенный между двумя любыми точками волума, должен лежать ВНУТРИ волума (если отрезок в плоскости грани – это тоже считается как внутри). Объясняя на пальцах, можно сказать, что в волуме, если взять два любых соседних граничащих треугольника, угол между этими треугольниками по границе не должен быть обращен внутрь волума. При создании волумов часто возникает ситуация, когда угол между треугольниками почти равен нулю. Можно попробовать удалить спорный участок (прилежащие треугольники), а затем произвести экспорт модели. Если при экспорте плагин не выдал ошибок выпуклости волума (Non convex), тогда причина была именно в этом участке. Далее можно пробовать разные варианты создания спорной грани (треугольников) до получения правильного результата.
После создания правильной формы волума, конвертируем его в объект типа Editable Poly, заходим в режим редактирования полигонов Polygon, выделяем все грани, которые относятся, например, к лобовой части, и назначаем в свитке Polygon Properties счетчиком Set ID индекс 1. Таким образом, игра будет понимать, что данная область является лобовой частью модели и, при назначении параметров бронирования, присвоит значение именно как для лобовой поверхности. Остальные грани индексируются согласно схеме, приведенной на рисунке 18.

[attachment=16949:attachment]
Рисунок 18.


2 Создание изображений бликов и бампа


2.1 Создание изображения бликов

Создается для материала Specular level. Обычно присваивается имя как и у основной текстуры модели, но с добавлением суффикса _sp. Создается следующим образом. Берем копию оригинальной текстуры. Делаем ее черно-белой, выбрав в менюбар программы Photoshop пункт:

Image => Adjustments => Desaturate (Shift+Ctrl+U).

Далее выставляем в нужных пропорциях яркость и контраст:

Image => Adjustments => Brightness/Contrast...

Сохраняем в формате .dds с настройками:

DXT1 RGB (No alpha), Generate MIP maps.

2.2 Создание изображения бампа

Создается для материала Bump. Присваивается имя с суффиксом _bp. Берем копию оригинальной текстуры. Задача - сделать изображение выпуклых или вдавленных частей на модели (текстуре). При этом считается, что более темный цвет означает углубление, а более светлый выпуклость относительно общего уровня. Чем больше контраст цветов, тем эффект объема будет ярче выражен. Можно использовать схему белый-серый-черный. Таким образом, раскрашиваем оригинальную текстуру в основном в серый цвет, где выпуклости будут нарисованы белым точно по границе объекта, а углубления – черным. После окончания работы делаем полные копии в два других слоя (Layers), называем один слой alpha, другой bump, чтобы потом не было путаницы. Выделяем слой bump. Переходим на вкладку каналов (Chanels). Выбираем канал Red и закрашиваем полностью черным цветом.
В канале Blue нужно добиться серых контуров нужных деталей на белом фоне. Этого можно достичь с помощью инструмента инверсии цвета, к примеру:

Image => Adjustments => Invert

При необходимости, можно использовать инструмент яркость/Контраст:

Image => Adjustments => Brightness/Contrast...


Теперь выбираем канал Green, картинка на котором должна быть серого цвета, поэтому к изображению канала применяем фильтр:

Filter => Stylize => Emboss...

Настройки фильтра следующие:

Angle = 90 - угол падения света

Height = 2 pixels, меньше будет меньше рельефность, больше - тоже не очень хорошо

Amount = 100...130%, в зависимости от желаемого результата

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

Filter => Stylize => Emboss...

Настройки на этот раз немного отличаются:

Angle = 180

Height = 2 pixels

Amount = 100...160%

Далее альфу на время делаем невидимой.

Бамп-слою применяем тот же фильтр:

Filter => Stylize => Emboss...

Должно получится такое же изображение, как и для канала Green слоя bump, только свет падает как бы справа от изображения.
Далее делаем невидимым слой bump, а alpha слой, наоборот, видимым. Копируем изображение слоя alpha в буфер обмена и опять идем на вкладку каналов. Переходим на канал alpha и вставляем изображение из буфера обмена.
Возвращаемся во вкладку слоев, делаем невидимым слой альфа и видимым готовый слой бампа и сохраняем картинку с настройками:

DXT3 RGB (Explicit Alpha), Generate MIP maps.


3. Послесловие


При создании данного руководства использовались материалы и помощь разработчиков серии игр «В тылу врага 2» и «В тылу врага 2 Братья по оружию» Skael и Трудяга.

Данный материал не претендует на «истину в последней инстанции». Как говаривали древние: «Errare humanum est».

Полная версия руководства в формате doc в архиве:
[attachment=16951:attachment]
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 18.2.2008, 22:32
Сообщение #2





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Надо попробовать! :+:
Помоги пожалуйста... с модель экспортирую сос стадартного примера идущего в комплекте с плагином... меняю только название с pz4g на test после экспорта меняю в def файле имя test.def запускаю редактор и АРНИ... приходит... в чем проблема?
Техника тут...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 18.2.2008, 22:36
Сообщение #3





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



спс. попробую сотворить сие чудо devil.gif
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 18.2.2008, 22:49
Сообщение #4





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Спасибо за туториал, особенно в подготовке текстур.
Да, какой-то порядок построения модели есть или кто как хочет, так и моделит? Спрашиваю, так как делаю первую модель и опыта естественно никакого. Сам я сперва сделал саму модель, сейчас занимаюсь текстурами, анимацию оставил на последнее.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 18.2.2008, 22:54
Сообщение #5





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(Aront @ Понедельник, 18 Февраля 2008, 22:49:20) *
Да, какой-то порядок построения модели есть или кто как хочет, так и моделит? Спрашиваю, так как делаю первую модель и опыта естественно никакого. Сам я сперва сделал саму модель, сейчас занимаюсь текстурами, анимацию оставил на последнее.


Как я понял, никаких таких ограничений нет. Просто у уже полной модели сложней правильно прилинковать все кости. Плюс, масштабирование имеет ограничения. На последнее на мой взгляд лучше оставить создание волумов, анимацию на предпоследнее smile.gif
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 19.2.2008, 9:47
Сообщение #6





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



igetfer , отлично! теперь я могу приняться за конвертирование су122 сделать ее по полигонистее но не сильно и вставить в БПО, как раз этого мне и не хватало! Спасибо! :+:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 19.2.2008, 11:41
Сообщение #7





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Слушай, может ты еще сделаешь тутор, про то какие ошибки могут возникать во время конвертации и как их исправлять,
а то постоянно какая та ошибка вылазит про body, после того как прописал что это энтити и удалил надписи о том что это poly, он начал коекак конвертить, но всеравно начал ругаться на волюмы, которые про гусеницы.(
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 19.2.2008, 17:41
Сообщение #8





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Как исправить проблемы с обьемами волюмов ?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 19.2.2008, 19:53
Сообщение #9





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Итог, за сутки, я почти что новичок в моделировании сумел частично сконвертировать модель су-122 в игру, даже в редакторе модель доступна без терминаторов, но. я не могу сконвертить катки из-за ошибки в текстурах, как удалить наложенные текстуры с объекта? далее, проблемы с волюмами, не могу их правильно прикрутить к модели, постоянно ссылается на не ортогональность матрицы, потом, осталось подредактировать деф и нарисовать качественные текстуры.
Довольно много уходит времени на создание танка smirk.gif
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 19.2.2008, 20:51
Сообщение #10





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(SniyLSD @ Вторник, 19 Февраля 2008, 19:53:47) *
Итог, за сутки, я почти что новичок в моделировании сумел частично сконвертировать модель су-122 в игру, даже в редакторе модель доступна без терминаторов, но. я не могу сконвертить катки из-за ошибки в текстурах, как удалить наложенные текстуры с объекта? далее, проблемы с волюмами, не могу их правильно прикрутить к модели, постоянно ссылается на не ортогональность матрицы, потом, осталось подредактировать деф и нарисовать качественные текстуры.
Довольно много уходит времени на создание танка smirk.gif


С ошибками, к счастью, я пока сталкивался мало. Основная при экспорте модели - ссылка на волум какой-либо кости с пометкой non convex, что значит не выпуклый. Можно попробовать удалить некоторые грани, после чего попробовать экспортировать модель. Если снова выдает ошибки - вновь удалять подозрительные (на глаз) грани. И так до тех пор, пока не перестанет выдавать ошибку. При этом не забывайте сделать резервную копию до экспериментов. Потом можно постепенно наращивать грани, пробуя комбинации расположения треугольников, пока плагин не даст добро при экспорте. Одну за другой. Должно получиться.
Что касается снятия текстуры с объекта - увы мне. Мне проще сделать новый объект. Для наложения используется модификатор Unwrap UVW.
"Неортогональность матрицы" - с таким пока не сталкивался. Не было ли трансформаций кости уже прилинкованной? Или масштабирования?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 20.2.2008, 12:17
Сообщение #11





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
"Неортогональность матрицы" - с таким пока не сталкивался. Не было ли трансформаций кости уже прилинкованной? Или масштабирования?

В смысле? Я взял компонент бокс, растянул его, скопировал, установил по профилю гусениц, дал им свойство волюм,
дал название волюмам, прилинковал к кости whellsL и whellsR. и он начинает вопить про неортогональность.

Кста, а как изменить положение модели в пространстве? а то он у меня боком стоит по отношению к оси х в редакторе,
и на половину в земле утоп.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 20.2.2008, 12:57
Сообщение #12





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Как исправить ошибку "Dublicate materials name su122_09/su122_11/su122_01"? (через слэш у меня вариация ошибок, то есть сначала 1 вариант потом 2 а потом 3),

Сообщение отредактировал SniyLSD - 20.2.2008, 12:59
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 20.2.2008, 21:16
Сообщение #13





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(SniyLSD @ Среда, 20 Февраля 2008, 12:17:41) *
В смысле? Я взял компонент бокс, растянул его, скопировал, установил по профилю гусениц, дал им свойство волюм,
дал название волюмам, прилинковал к кости whellsL и whellsR. и он начинает вопить про неортогональность.

Кста, а как изменить положение модели в пространстве? а то он у меня боком стоит по отношению к оси х в редакторе,
и на половину в земле утоп.


1) Как изменял размеры бокса?

2) Вверху экрана есть инструменты: Select and Move, Select and Rotate и Select and Uniform Scale, т.е. Выделить и двигать, Выделить и вращать и Выделить и масштабировать. Нужно выделить кость, зайти в режим редактирования вершин, выделить рамкой все вершины, выбрать нужный инструмент (двигать/вращать/масштабировать) и, собственно, произвести действия.

3) Попробуй провести ревизию материалов в редакторе материалов и переназначить материал объектам
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 20.2.2008, 21:29
Сообщение #14





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



1) просто выделил бокс и выбрал скале, вытянул на нужную длину.
3) это наверно от того, что я разобрал модель перед экспортом на составные части, поэтому и глючило, счас попробую сконвертить уже полную модель, сразу назначить кости, волюмы и поинты.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 20.2.2008, 23:11
Сообщение #15





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(SniyLSD @ Среда, 20 Февраля 2008, 21:29:02) *
1) просто выделил бокс и выбрал скале, вытянул на нужную длину.
3) это наверно от того, что я разобрал модель перед экспортом на составные части, поэтому и глючило, счас попробую сконвертить уже полную модель, сразу назначить кости, волюмы и поинты.


Тогда делай заново волумы. В руководстве я указывал, что нельзя масштабировать боксы, пока они не были сконвертированы в Editable Mesh Editable Poly Изменять их до того момента можно только опциями самого бокса, как то длина, ширина и высота.

Вполне возможно. Попробуй ;)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 21.2.2008, 8:32
Сообщение #16





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



е-мое, блин, создал компонент бокс, указал начальные размеры, конвертировал в меш, дал свойство волюм, дал названия, прилинковал, разместил. всеравно глючит! cry.gif
ну что ему еще надо? макс у меня 7, мож от этого?

Сообщение отредактировал SniyLSD - 21.2.2008, 8:43
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 21.2.2008, 9:21
Сообщение #17





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



так,начад делать заново, теперь такая проблема)) :D :lol:
короче, сделал базис, сделал корпус, в базисе указал все, как ты написал в руководстве, в боди тоже все сделал, но теперь скачет вот это при попытке конвертирования: Error: No 'Type parameter set for node "basis"!'
И что дальше? smirk.gif
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 21.2.2008, 17:42
Сообщение #18





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Ну вОть, разобрался с волюмами, с предыдущей ошибкой тож разобрался, сконвертил сушку в редактор но не доконца, осталось гусеницы и колеса воткнуть.Но колеса не втыкаются, конверятся, но на модели не появляются smirk.gif
скрин: [attachment=17043:attachment]
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 21.2.2008, 18:09
Сообщение #19





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(SniyLSD @ Четверг, 21 Февраля 2008, 17:42:15) *
Ну вОть, разобрался с волюмами, с предыдущей ошибкой тож разобрался, сконвертил сушку в редактор но не доконца, осталось гусеницы и колеса воткнуть.Но колеса не втыкаются, конверятся, но на модели не появляются smirk.gif


Параметр Poly не забыл ли? Внимательней нужно и спешить не надо.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 21.2.2008, 18:23
Сообщение #20





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
Параметр Poly не забыл ли? Внимательней нужно и спешить не надо.

Параметр поли вроде не забыл.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

9 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 17.4.2024, 1:07
Консультации адвоката по уголовным делам. Бесплатно. По всей России