Создание активных и пассивных тел
В твердое тело можно преобразовать любой геометрический объект. После преобразования его поверхность начнет испытывать действие полей и сможет принимать участие в столкновениях. При этом поведение объектов в процессе столкновения вычисляется программой исходя из их массы, скорости и других свойств.
Существует два типа твердых тел – активные и пассивные. Активные тела реагируют на столкновения с другими объектами и действие полей. В отличие от них, пассивные тела никак не реагируют на воздействие полей или удары о них других, тел, хотя могут участвовать в столкновениях. Обычно в роли пассивного тела выступает поверхность, с которой сталкиваются активные тела.
Познакомимся на практике со свойствами этих элементов на примере прыгающего мячика:
- Создайте полигональную плоскость и увеличьте ее размер. Она послужит опорной поверхностью.
- Создайте полигональную сферу и поднимите ее над поверхностью (рис. 12.1).
Рис. 12.1. Поместите полигональную сферу над опорной плоскостью - Нажмите клавишу F4 для перехода в режим Dynamics (Динамика). Выделите сферу и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Active Rigid Body (Создать активное твердое тело). Обратите внимание на то, что атрибуты преобразований перемещения и поворота в окне диалога Channel Box (Окно каналов) теперь выделены желтым цветом. Это означает, что с этого момента значения данных параметров будет устанавливать модуль имитации динамики, и поэтому вы не сможете создавать для них ключи анимации.
- Выделите опорную поверхность и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Passive Rigid Body (Создать пассивное твердое тело). В результате плоскость превратится в пассивное тело, с которым будет сталкиваться наш мячик. Разумеется, активные и пассивные тела имеют различные атрибуты, но пока мы не будем обращать на них внимания и оставим им заданные по умолчанию значения.
- Выделите мяч. Чтобы привести его в движение, вам потребуется поле. В реальном мире тела падают вниз под действием силы тяжести, поэтому в меню Fields (Поля) выберите команду Gravity (Сила тяжести). Выделенная в момент создания поля сфера автоматически подпадает под его действие. Впрочем, установить связь между полем и объектом можно в любой момент. Для этого применяется инструмент Dynamic Relationship (Динамические связи), о котором мы поговорим чуть позже.
Внимание
Если сейчас запустить воспроизведение анимации, движение мячика будет замедленным. Это связано с тем, что модуль динамики рассчитывает его положения в каждый момент времени. Такое поведение будет продолжаться до записи имитации динамики в память. Для корректных расчетов нужно, чтобы воспроизводился каждый кадр. Поэтому откройте окно диалога Preferences (Параметры), выбрав в меню Window (Окно) команду Settings/Preferences › Preferences (Настройки/Параметры › Параметры), выделите в списке Categories (Категории) строчку Timeline (Временная шкала) и в раскрывающемся списке Playback Animation (Скорость воспроизведения) выберите вариант Play Every Frame (Воспроизводить каждый кадр).Перед воспроизведением анимации введите в поле Playback End Time (Время окончания воспроизведения анимации), расположенное справа от ползунка шкалы диапазонов, значение 500. Установите ползунок таймера анимации на отметку кадра №1 и щелкните на кнопке Play Forward (Воспроизведение вперед).
В результате сфера начнет падать вниз, а при столкновении с плоскостью отскочит вверх. Посмотрим, как изменится движение объектов, если превратить плоскость из пассивного тела в активное.
- Выделите плоскость и откройте для нее окно диалога Attribute Editor (Редактор атрибутов).
- Перейдите на вкладку rigidBody2 и установите флажок Active (Активное).
- Теперь при запуске анимации вы обнаружите, что после столкновения мяча с опорной поверхностью последняя начинает падать вниз вместе с мячом. Но так как на нее не распространяется влияние поля Gravity (Сила тяжести), в начальный момент она неподвижна.