на главную страницу -|- к архиву статей
Территория
Файлы
Статьи и дополнительная информация
Гостевая книга
Команда

СОЗДАНИЕ ДОПОЛНЕНИЙ В 3D Studio MAX (автор - Ice Blade)

ЧАСТЬ III

Персонажи.

Создание персонажей по праву считаеется одной из самых сложных областей 3D графики. И даже низкополигональные персонажи являються весьма ресурсоёмкими для игровых движков и Невервинтер здесь не исключение.

Я не буду описывать процесс создания и текстурирования геометрии - это весьма обьёмный материал, - я лишь попробую обьясьнить некоторую структуру и правила накладываемые игрой.

И так модель персонажа...

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

  1. Связи. Движок использует систему прямой кинематики. то есть все обьекты привязываются друг к другу и в конце концов к rootdummy,- который в свою очередь привязываеться к Helper-у Model.(очень важно для анимации)
  2. Имена. Имена обьектов играют важнейшую роль. В первую очередь это касается анимации, т.к. НВН обладает возможностью использования анимации из других файлов.
  3. Специальные обьекты пустышки. Они используються для определения движку некоторых вещей.(к примеру где произходят еффекты колдовства или где прикрепяется оружие)

Начнём...
У нас есть все части модели пехотинца:

Что же, будем соблюдать правила, чтобы использовать в этой модели стандартную анимацию (в противном случае пришлось бы делать - мнооооооого кадров анимации (в полный пакет анимации для стандартных персонажей в НВН входит несколько тысяч кадров)).

Начнём с имён.

Имена нашей модели должны совпадать с именами той модели у которой будет взята анимация - т.е., если модель называется 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, когда проводится удар и т.д..

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

Есть несколько способов, как это сделать:

  1. Добавить анимацию в файл с пехотинцем - тогда эта анимация не будет доступна никому другому кроме этого пехотинца.
  2. Изменить базовую анимацию НВН - тогда, у всех персонажей использующих её(включая игрока), будет изменина анимция связаная с арбалетом.

В нашем случае второй вариант более предпочтителен.

Для этого потребуются несколько файлов с анимацией НВН. Это a_ba_med_weap.mdl (в нём содержится анимация боевой стойки с арбалетом и выстрела из него же) и a_ba_non_combat.mdl (в нем анимация держания арбалета см. скрин).

Начнём со второго в нём изменим аниацию xbowr (хотя данная анимация и так неплохо подходит к винтовке), если же вы хотите добавить анимацию к своей модели (1-й способ), то просто создайте в своём файле анимацию с этим названием.

Приступим...

Прошу обратить внимание, что ноги и голова здесь незадействованы (это особая анимационая константа описывается, где-то в движке).
Далее экспортируем этот файл и окрываем a_ba_med_weap.mdl, где изменяем анимации xbowrdy и xbowshot, затем так же экспортируем.
Поместив экспортированые файлы в HAK или директорию OVERRIDE, вы сможете увидеть измененую анимацию в игре.

И на последок, несколько скринов персонажей:

Анимация, структура, некоторые возможности и советы.

Некоторые советы:

  • Модель может состоять из любого количества частей (предел мне пока неизвестен).
  • В ваших моделях может быть сколько угодно анимированых элементов (суставов, конечностей и т.д..)
  • Файлы могут быть связаны ссылками друг на друга. Анимация, которая отсутствует в одном может быть взята из другого.
  • В некоторых персонажах незадействованы все анимационные константы (имена), используйте их, либо приспосабливайте ненужные или малоиспользуемые константы для введения своих анимаций.
  • Персонажем может быть всё что угодно, к примеру в моей модификации персонажами являются и танки, и пролетающие в небе облака. Размер так же, не имеет значения - персонаж может быть даже боьше чем сама карта. Даже рой из множества насекомых (или ГЫ! Кроликов) может быть одним целым персонажем.
  • Если вам трудно определить размеры персонажа, добавьте в ваш файл другого персонажа из игры или какой нибудь плейсибл (например, дерево) для сравнения с вашим персонажем.
  • Не стесняйтесь использовать уже готовые элементы - делать что-то, имея хоть какую-то основу, всегда легче чем делать с нуля.
  • НВН поддерживает(хоть и ограничено) такие веши как Flex и Skin (о них я расскажу немного попозже, может быть :))...

------------------------------------------------------------
Пишите в гостевой заявки на продолжение этих статей и интересующие вас вопросы.
------------------------------------------------------------

Приложения и скриншоты >>>

 

Внимание!
Данный текст является интеллектуальной собственностью. Любое цитирование материалов допустимо только со ссылкой на наш сайт!

 


Design by DBColl - 2003 -
Hosted by uCoz