Подготовка
модели к использованию скелетной анимации включает следующие шаги
-
1)
создание и текстурирование модели
2)
создание скелета для данной модели
3)
привязка скелета к текстурированному мешу (Skinned Mesh) при помощи
модификатора Skin и настройка степени влияния костей на вершины
модели
4)
создание анимации
5)
экспорт модели в нужный формат (в нашем случае - X). |
|
Если
Вы новичок в создании и текстурировании моделей в 3Ds Max, то отправляем
Вас изучать базовые уроки посвяшенные 3Ds Max.
А пока не вдаваясь в подробности моделирования и текстурирования персонажа
можете сразу загрузить себе готовые модель и текстуру - nn
(108 Кб). Замечание: все предоставленные модели
в формате 3ds max 7.0! Это значит что в более ранних версиях (6, 5
и ниже) они открываться не будут!!! |
|
|
|
Откройте
модель из 3Ds Max 7 (или выше). Если модель появилась в сцене без
текстуры, то это объясняется просто - 3Ds Max сохраняет абсолютные
пути к файлам текстур. Значит Вам нужно исправить этот путь, т.к.
в Вашей системе он естественно иной. |
|
Проблема
решается следующим образом - откройте редактор материалов Rendering
> Material Editor и в открывшемся окне в группе Blinn Basic Parameters
напротив цвета Diffuse нажмите кнопочку M (на рисунке обведено красным
кружком!) |
|
|
[изображение
"открытие свойств рассеянного света материала в редакторе материалов
3Ds Max7"] |
|
В
открывшемся окне свойств диффузного цвета в группе Bitmap parameters
нажмите кнопку напротив пункта Bitmap и укажите корректный путь к
текстуре в вашей системе - |
|
|
[изображение
"коррекция пути к файлу текстуры"] |
|
|
|
Если
после этих манипуляций изображение текстуры так и не появилось на
поверхности модели, значит оно просто не отображается или не применено.
Исправим это. |
|
Снова
откройте редактор материалов (см. изображение "коррекция пути
к файлу текстуры" выше). В поле Diffuse Color из выпадающего
списка выберите название материала orig_fedja |
|
|
|
Это
вернет Вас к окну свойств материала orig_fedja в целом (см. изображение
"открытие свойств рассеянного света материала в редакторе материалов
3Ds Max7" ). |
|
Нажмите
кнопку Show Map in Viewport - |
|
|
|
И
если это не решило проблему - перетащите материал из своего слота
в редакторе материалов на изображение модели в окне вида (Viewport)
- |
|
|
|
Эту
операцию придется повторить для всех объектов из которых состоит
модель.
Все
эти манипуляции должны привести к появлению изображения текстуры
на поверхности модели. Теперь Вы понимаете как важно использовать
для файлов текстур относительные, а не абсолютные пути! Особенно
это касается файлов в формате X. О том как скорректировать путь
к файлу текстуры в готовом Х файле текстового вида можно прочитать
в статье - Погружение в глубины DirectX8, 9 |
|
Теперь
приступим к коррекции модели для целей экспорта в формат X. Выберите
все объекты модели в сцене, сгруппируйте их в одну группу Group >
Group и выбрав инструмент Select and Move задайте нулевые значения
положения модели относително центра мировой системы координат (world
coordinate system) - X =0,0; Y = 0,0; Z=0,0 |
|
|
|
Эта
особенность является важной, т.к. любые смещения относительно центра
будут неизбежно приводить к некорректному расположению модели в игровых
сценах - она всегда будет смещена. |
|
Коррекция
масштаба изображения - пока модель сгруппирована можете сразу же отмасштабировать
ее до нужных размеров. Это будет необходимо, т.к. приложение SkinnedMesh
рассчитано на другой масштаб модели или придется масштабировать модель
уже в коде - программным путем. В нашем случае модель уже не нуждается
в масштабировании, т.к. размеры были подогнаны, но для пробы можете
все же сделать это. |
|
Экспортируйте
модель в формат X при помощи любого из экспортеров которые были описаны
выше. |
|
Проверьте
результат экспорта в любой из утилит для просмотра мешей или в приложении
SkinnedMesh. |
|
Это
были предварительные шаги для подготовки Вас и Вашей модели к использованию
концепции скелетной анимации. |
|
Следующий
этап - 2 - это создание скелета для модели. |
|
Скелет
- это набор вспомогательных моделей образующих иерархию. Скелет состоит
из костей (Bones). Кости будут в дальнейшем влиять на положение связанных
с ними вершин текстурированной модели (Skinned Mesh). |
|
Скелет
относится к вспомогательным объектам и поэтому в игровой сцене он
будет невидим, поэтому его необходимо расположить внутри модели персонажа.
И хотя кости скелета относятся к отрисовываемым (rendered) объектам
- их можно выводить на rendering в 3ds max, в игровых сценах и приложениях
они отрисовываться не будут! Таким образом скелет в виде видимой модели
нужен только на этапе его разработки и создания анимации. |
|
В
игровом приложении скелет отрисовываться не будет, а будет лишь воздействовать
своими матрицами трансформации на трансформацию связанных с ним вершин
модели персонажа. |
|
Поскольку
мы сейчас будем внедрять скелет внутрь тела персонажа нам нужно чтобы
он был виден, но и не мешал создавать и/или выбирать отдельные кости.
Для этого давайте"заморозим" модель и сделаем "сквозной"
вид обзора (See-Through). |
|
Выделите
модель (или все ее составляющие объекты если Вы ее разгруппировали).
|
|
Щелкните
правой кнопкой по модели и выберите пункт меню Properties, в группе
Display Properties установите флажок See-Through. Нажмите ОК. При
этом модель (все выделенные объекты) станут полупрозрачного серого
цвета. |
|
|
|
Снова
щелкните правой кнопкой и выберите Freeze Selection. Это приведет
к "заморозке". Для разморозки используйте Unfreeze. Для
восстановления нормального вида убирайте флажок See-Through. |
|
Теперь
когда модель видна, но недоступна для выбора нам ничто не будет мешать
и мы свободно можем создавать скелет и размещать его внутри модели. |
|
Выберите
пункт меню Character > Bone Tools. Перед вами откроется панель
создания костей скелета - |
|
|
|
Отдельные
кости мы будем формировать в разных плоскостях, поэтому Вам нужно
будет для их размещения включать соответствующий вид - фронтальный
(Front), боковой слева или справа (Left, Right) и т.д. |
|
Для
этого воспользуйтесь кнопкой Maximize Vieport Toggle в нижнем правом
углу окна 3ds max - |
|
c
последующим выбором окна соответствующей проекции и его максимизацией/минимизацией
этой же кнопкой. |
|
Создадим
кости для левой руки. Выполнять это будем в окне фронтальной проекции
(Front viewport - см. рис. выше). |
|
Левая
рука персонажа будет соответствовать правой стороне на экране (потому
что с точки зрения персонажа его левая рука, а с вашей точки зрения
она расположена в правой части экрана). Т.е. мысленно поставьте себя
спиной к персонажу, тогда поймете о чем я говорю. |
|
Нажав
кнопку Create Bones и щелкая мышью постройте 4 кости идущие от плеча
к кисти как показано на рисунке. В конце щелкните правой кнопкой.
Пятая концевая кость носит вспомогательный характер и должна выходить
за пределы руки персонажа (как и показано на рисунке). Она будет служить
концевой точкой прикрепления Анимационного инструмента инверсной кинематики
(IK Solver - HI Solver). |
|
|
|
[назад]
[далее] |