СОЗДАНИЕ
ДОПОЛНЕНИЙ В 3D Studio MAX (автор - Ice Blade)
ЧАСТЬ III
Персонажи.
Создание персонажей по праву считаеется одной из самых сложных
областей 3D графики. И даже низкополигональные персонажи являються
весьма ресурсоёмкими для игровых движков и Невервинтер здесь не
исключение.
Я не буду описывать процесс создания и текстурирования геометрии
- это весьма обьёмный материал, - я лишь попробую обьясьнить некоторую
структуру и правила накладываемые игрой.
И так модель персонажа...
НВН как вы могли видеть использует Part-систему для персонажей(эта
система где каждая часть тела предстовляет отдельный обьект - она
удобна для движка т.к позволяет менять части тела(к примеру брони),
и на их базе состовлять новые модели).
В принцепе персонажем в НВН может быть что угодно состоящее хотябы
из одного обьекта (хоть шкаф, камень и т.д). Но настоящие персонажи
обычно имеют более сложную структуру:
- Связи.
Движок использует систему прямой кинематики. то есть все обьекты
привязываются друг к другу и в конце концов к rootdummy,- который
в свою очередь привязываеться к Helper-у Model.(очень важно для
анимации)
- Имена. Имена обьектов
играют важнейшую роль. В первую очередь это касается анимации,
т.к. НВН обладает возможностью использования анимации из других
файлов.
- Специальные обьекты пустышки.
Они используються для определения движку некоторых вещей.(к примеру
где произходят еффекты колдовства или где прикрепяется оружие)
Начнём...
У нас есть все части модели пехотинца:
Что же, будем соблюдать правила, чтобы использовать в этой модели
стандартную анимацию (в противном случае пришлось бы делать - мнооооооого
кадров анимации (в полный пакет анимации для стандартных персонажей
в НВН входит несколько тысяч кадров)).
Начнём с имён.
Имена нашей модели должны совпадать с именами той модели у которой
будет взята анимация - т.е., если модель называется Head_g (голова)
- то неважно, где она прикреплена, она будет наследовать анимацию
из другой модели (в другом файле) с таким же именем. Модели с несовпадающими
именами просто не будут наследовать анимацию (к примеру, наплечники
- им не требуется анимация, они прикреплены к рукам). У нас в модели
используются такие имена: rbicep_g, lbicep_g,
rforearm_g, lforearm_g, rhand_g, lhand_g, rthigh_g, lthigh_g, rshin_g,
lshin_g, rfoot_g, lfoot_g, pelvis_g, torso_g, neck_g, head_g, ArrenGent_R
(наплечник), ArrenGent_L, pmh0_head001g (лицо).
Специальные обьекты (dummy - обычные максовые
пустышки с особыми именами):
- rhand, lhand - определяют
где на модели крепиться оружие (соответственно, для правой и левой
руки).
- lforearm - где крепиться
щит.
- rootdummy - главная точка
привязки (центр всего персонажа - наиболее важный dummy).
- handconjure - где проходит
эффект колдовства (около рук).
- Impact -
- head -
- headconjure - где проходит
эффект колдовства (над головой).
Связи - так
же очень важно определить правильно!
Соответственно связывать в направлении обратном стрелкам.
И
вот общая концепция:
Теперь перейдем к параметрам самого Helper-a
Model.
1. Учтите что центр Model, а точнее его Pivot Point - является по
сути землёй для модели.
2. Свиток параметры.
Здесь всё просто в качестве Super - указываем на файл, - ссылку
на который мы хотим получить при анимации. В данном случае a_ba
- является "началом ссылок" для стандартной модели мужчины
человека (для женшин рекомендую писать a_fa). Дальше выбераете Character
(хотя выяснилось,- что это ни на что особо не влияет).
Animation Scale - оставляете без изменения.
Дальше идут опции анимации - о них чуть позже...
Закончив с именами и связями, можно спокойно экспортировать модель,
но есть множество ошибок, которые вы могли допустить, а в частности:
- Если вы всё правильно связали и назвали хотя бы с третьего раза,
считайте, что вам повезло! :)
- Хоть
я уже об этом говорил, но скажу ещё раз ;). Наиболее противным
глюком является использование функции Mirror - к примеру после
отражения руки в МАХ-е всё вызлядит нормально, но вот в Невервинтере
эта рука выглядит несколько прозрачной и торчит не оттуда откуда
надо, - это глюк МАХ-а, а не НВН. Дело в том, что при отражении
Макс меняет направление нормалей и Pivot Point-ов обьектов. Лечится
это довольно просто, но нудно: нормали просто выворачиваются с
помощью модификатора Normal, а Pivot Point исправляется в закладке
Hierarchy с помощью функции Reset: Transform.
\
/
\
/
\
/
\
/
\
/
V
Анимация
персонажей.
Для начала разберём свиток animation у Model.
Сверху,
в виде списка, перечислена Animation
персонажа. Под ней 3-и кнопки:
Add - добавить
Delete - удалить
Zoom - приводит шкалу времени в соответствие с началом и
концом анимации.
Properties:
Name - имя анимации (довольно важная вещь, т.к. определяет
константу)
First Frame - первый кадр анимации
Last Frame - последний кадр анимации
Transition - плавность перехода
Events:
А вот тут довольно интересно...
Здесь указываются события движка (некоторые предназначены для скриптов).
Нужно указать лишь событие и кадр, в котором оно произойдёт. К примеру,
событие blur_start, blur_end
- указывает движку, когда использoвать эффект Blur для оружия
(шлейф позади меча во время удара). Cобытие hit,
когда проводится удар и т.д..
Касательно анимации нашего пехотинца, то просто необходимо переделать
стандартную анимацию арбалета, для того что-бы персонаж из него
нормально стрелял и держал его в руках.
Есть несколько способов, как это сделать:
- Добавить анимацию в файл с пехотинцем - тогда эта анимация
не будет доступна никому другому кроме этого пехотинца.
- Изменить базовую анимацию НВН - тогда, у всех персонажей использующих
её(включая игрока), будет изменина анимция связаная с арбалетом.
В нашем случае второй вариант более предпочтителен.
Для этого потребуются несколько файлов с анимацией НВН. Это a_ba_med_weap.mdl
(в нём содержится анимация боевой стойки с арбалетом и выстрела
из него же) и a_ba_non_combat.mdl
(в нем анимация держания арбалета см. скрин).
Начнём со второго в нём изменим аниацию xbowr
(хотя данная анимация и так неплохо подходит к винтовке), если же
вы хотите добавить анимацию к своей модели (1-й способ), то просто
создайте в своём файле анимацию с этим названием.
Приступим...
Прошу обратить внимание, что ноги и голова здесь незадействованы
(это особая анимационая константа описывается, где-то в движке).
Далее экспортируем этот файл и окрываем a_ba_med_weap.mdl,
где изменяем анимации xbowrdy
и xbowshot, затем так же экспортируем.
Поместив экспортированые файлы в HAK или директорию OVERRIDE, вы
сможете увидеть измененую анимацию в игре.
И на последок, несколько скринов персонажей:
Анимация, структура,
некоторые возможности и советы.
Некоторые советы:
- Модель может состоять из любого количества частей (предел мне
пока неизвестен).
- В ваших моделях может быть сколько угодно анимированых элементов
(суставов, конечностей и т.д..)
- Файлы могут быть связаны ссылками друг на друга. Анимация,
которая отсутствует в одном может быть взята из другого.
- В некоторых персонажах незадействованы все анимационные константы
(имена), используйте их, либо приспосабливайте ненужные или малоиспользуемые
константы для введения своих анимаций.
- Персонажем может быть всё что угодно, к примеру в моей модификации
персонажами являются и танки, и пролетающие в небе облака. Размер
так же, не имеет значения - персонаж может быть даже боьше чем
сама карта. Даже рой из множества насекомых (или ГЫ! Кроликов)
может быть одним целым персонажем.
- Если вам трудно определить размеры персонажа, добавьте в ваш
файл другого персонажа из игры или какой нибудь плейсибл (например,
дерево) для сравнения с вашим персонажем.
- Не стесняйтесь использовать уже готовые элементы - делать что-то,
имея хоть какую-то основу, всегда легче чем делать с нуля.
- НВН поддерживает(хоть и ограничено) такие веши как Flex и Skin
(о них я расскажу немного попозже, может быть :))...
------------------------------------------------------------
Пишите в гостевой заявки на продолжение
этих статей и интересующие вас вопросы.
------------------------------------------------------------
Приложения
и скриншоты >>>
Внимание!
Данный
текст является интеллектуальной собственностью. Любое цитирование
материалов допустимо только со ссылкой на наш сайт!
|