Иллюстрированный самоучитель по Maya 6

         

Создание активных и пассивных тел


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

Существует два типа твердых тел — активные и пассивные. Активные тела реагируют на столкновения с другими объектами и действие полей. В отличие от них, пассивные тела никак не реагируют на воздействие полей или удары о них других, тел, хотя могут участвовать в столкновениях. Обычно в роли пассивного тела выступает поверхность, с которой сталкиваются активные тела.

Познакомимся на практике со свойствами этих элементов на примере прыгающего мячика:

1. Создайте полигональную плоскость и увеличьте ее размер. Она послужит опорной поверхностью.

2. Создайте полигональную сферу и поднимите ее над поверхностью (рис. 12.1).


Рис. 12.1. Поместите полигональную сферу над опорной плоскостью

3. Нажмите клавишу F4 для перехода в режим Dynamics (Динамика). Выделите сферу и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Active Rigid Body (Создать активное твердое тело). Обратите внимание на то, что атрибуты преобразований перемещения и поворота в окне диалога Channel Box (Окно каналов) теперь выделены желтым цветом. Это означает, что с этого момента значения данных параметров будет устанавливать модуль имитации динамики, и поэтому вы не сможете создавать для них ключи анимации.

4. Выделите опорную поверхность и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Passive Rigid Body (Создать пассивное твердое тело). В результате плоскость превратится в пассивное тело, с которым будет сталкиваться наш мячик. Разумеется, активные и пассивные тела имеют различные атрибуты, но пока мы не будем обращать на них внимания и оставим им заданные по умолчанию значения.

5. Выделите мяч. Чтобы привести его в движение, вам потребуется поле. В реальном мире тела падают вниз под действием силы тяжести, поэтому в меню Fields (Поля) выберите команду Gravity (Сила тяжести). Выделенная в момент создания поля сфера автоматически подпадает под его действие. Впрочем, установить связь между полем и объектом можно в любой момент. Для этого применяется инструмент Dynamic Relationship (Динамические связи), о котором мы поговорим чуть позже.

ВНИМАНИЕ

Если сейчас запустить воспроизведение анимации, движение мячика будет замедленным. Это связано с тем, что модуль динамики рассчитывает его положения в каждый момент времени. Такое поведение будет продолжаться до записи имитации динамики в память. Для корректных расчетов нужно, чтобы воспроизводился каждый кадр. Поэтому откройте окно диалога Preferences (Параметры), выбрав в меню Window (Окно) команду Settings/Preferences > Preferences (Настройки/Параметры > Параметры), выделите в списке Categories (Категории) строчку Timeline (Временная шкала) и в раскрывающемся списке Playback Animation (Скорость воспроизведения) выберите вариант Play Every Frame (Воспроизводить каждый кадр).

Перед воспроизведением анимации введите в поле Playback End Time (Время окончания воспроизведения анимации), расположенное справа от ползунка шкалы диапазонов, значение 500. Установите ползунок таймера анимации на отметку кадра № 1 и щелкните на кнопке Play Forward (Воспроизведение вперед).

В результате сфера начнет падать вниз, а при столкновении с плоскостью отскочит вверх. Посмотрим, как изменится движение объектов, если превратить плоскость из пассивного тела в активное.

6. Выделите плоскость и откройте для нее окно диалога Attribute Editor (Редактор атрибутов).



7. Перейдите на вкладку rigidBody2 и установите флажок Active (Активное).

8. Теперь при запуске анимации вы обнаружите, что после столкновения мяча с опорной поверхностью последняя начинает падать вниз вместе с мячом. Но так как на нее не распространяется влияние поля Gravity (Сила тяжести), в начальный момент она неподвижна.

Чтобы заставить поле Gravity (Сила тяжести) влиять на плоскость, откройте окно диалога Dynamic Relationship (Динамические связи) (рис. 12.2). Это можно сделать с помощью команды Relationship Editors > Dynamic Relationship (Редакторы связей > Динамические связи) из меню Window (Окно).


Рис. 12.2. Окно диалога Dynamic Relationship

Слева располагается окно, содержащее список объектов сцены. Справа по умолчанию перечислены все созданные в сцене поля, но с помощью находящегося сверху переключателя вы можете открыть также список столкновений, список генераторов или же список всех упомянутых элементов. Для создания связи достаточно выделить строчку с именем плоскости (pPlanel) в окне слева, а затем — строчку с именем поля (gravityFieldl) в окне справа.

Теперь при воспроизведении анимации вы увидите, что плоскость тоже начинает падать вниз с первого же кадра. И так как два объекта перемещаются в одном направлении под действием одного и того же поля, столкновения между ними не произойдет. Для прекращения воздействия поля на плоскость достаточно снять выделение со строчки gravityFieldl в правой части окна диалога Dynamic Relationship (Динамические связи).

Окно диалога Dynamic Relationship

Редакторы связей, к которым относится и окно диалога Dynamic Relationship (Динамические связи), предназначены для соединения друг с другом различных узлов. Рассматриваемое здесь окно диалога используется для соединения динамических атрибутов, благодаря чему в процессе имитации динамики поля, частицы и твердые тела начинают взаимодействовать друг с другом. Другим примером редактора связей может послужить окно диалога Light Linking (Связывание источников света), позволяющее в явном виде указать, какие объекты сцены должен освещать тот или иной источник света. Впрочем, работа с этими редакторами относится к продвинутому уровню владения Maya, поэтому мы не будем заострять на них внимание.

Для преобразования активного тела в пассивное нужно вернуть ползунок таймера анимации на отметку первого кадра, а затем снять флажок Active (Активное) в окне диалога Attribute Editor (Редактор атрибутов). После этого плоскость снова превратится в неподвижный пол, от которого при ударе будет отскакивать мяч.



Содержание раздела