Подготовка к имитации динамики твердого тела
Обычной процедурой при имитации динамики твердых тел является размещение объектов в надлежащих местах, а затем определение их как активных или пассивных. Затем, не снимая выделения с активных тел, принято назначить им поле Gravity (Сила тяжести). После чего можно вводить в сцену другие поля, а также ограничители движения объектов. Редактирование параметров объектов можно осуществлять прямо в процессе воспроизведения анимации. Но имейте в виду, что при создании имитации динамики ползунок таймера анимации должен находиться на отметке нулевого кадра, так как параметры объектов зависят от их собственных значений в предыдущем кадре. После того как вы смоделировали взаимодействия нужным вам образом, можно преобразовать имитацию динамики в набор ключевых кадров. После этого можно будет совершить стандартный набор действий, доступный для обычной анимации.
Упражнение. Имитация динамики твердого тела
Теперь пришло время познакомиться с практической стороной дела. Исследование этих эффектов является весьма интересным занятием, так как программа практически сразу показывает результат редактирования.
СОВЕТ
Не стоит пренебрегать выполнением команды Reset Settings (Сбросить настройки)
меню Edit (Правка) окон диалога с параметрами инструментов и функций. Это особенно
важно при имитации динамики, так как в этих случаях регулярно приходится вносить
изменения в эти параметры.
- Загрузите файл chlStutOlstart.mb. Нажмите клавишу F4, чтобы гарантировать, что вы находитесь в режиме Dynamics (Динамика). Проверьте, загружен ли модуль имитации динамики, выбрав команду Window > Setting/Preferences > Preferences (Окно > Настройки/Параметры > Параметры). В расположенном слева списке Categories (Категории) выделите самую нижнюю строчку Modules (Модули) и проверьте наличие флажка Dynamics (Динамика) в разделе Load on Startup (Загружать при запуске). В сцене присутствуют шесть плоскостей и две сферы, подвешенные в пространстве. Вам предстоит проделать несколько экспериментов, чтобы получить представление о том, как работает модуль динамики.
- Выделите нижнюю плоскость (она имеет имя bottom_plane) и сделайте ее пассивным объектом, выбрав команду Create Passive Rigid Body (Создать пассивное твердое тело) в меню Soft/Rigid Bodies (Упругие/Твердые тела).
- Выделите рамкой все остальные объекты сцены и выберите команду Create Active Rigid Body (Создать активное твердое тело) в меню Soft/Rigid Bodies Упругие/Твердые тела).
- Не снимая выделения с объектов, выберите команду Gravity (Сила тяжести) в меню Fields (Поля) и запустите воспроизведение анимации. Все объекты начнут падать на землю. Некоторые из плоскостей пройдут сквозь опорную плоскость. Как уже упоминалось, объекты отскакивают друг от друга, если они сталкиваются сторонами, нормали которых направлены наружу. Однако в данном случае это не должно вас волновать, поскольку в готовой анимации эти плоскости не будут падать. Остановите воспроизведение анимации и переместите ползунок таймера анимации на нулевой кадр.
ПРИМЕЧАНИЕ
В процессе воспроизведения имитации динамики значения параметров объектов в
каждом кадре зависят от их значений в предыдущем кадре. Поэтому необходимо настроить
анимацию таким образом, чтобы воспроизводился каждый кадр. Нажмите кнопку Animation
Preferences (Параметры анимации), расположенную справа от ползунка диапазона,
и в раскрывающемся списке Playback Speed (Скорость воспроизведения) выберите
вариант Play Every Frame (Воспроизводить каждый кадр), как показано на рис.
13.2.
Рис. 13.2. Выбор правильной скорости воспроизведения
анимации гарантирует корректную работу модуля динамики
- Теперь оптимизируем скорость вычислений, использовав вместо сфер их заменители. Выделите обе сферы рамкой и в окне каналов выберите в раскрывающемся списке Stand In (Заменитель) вариант Sphere (Сфера). Затем, нажав клавишу Shift, выделите рамкой все плоскости и выберите вариант Cube (Куб).
- Выделите правую нижнюю плоскость, которая называется right_swing, и щелкните на квадратике, расположенном справа от команды Create Constraint (Создать ограничитель) меню Soft/Rigid Bodies (Упругие/Твердые тела). Выберите команду Reset Settings (Сбросить настройки) в меню Edit (Правка) появившегося окна диалога, затем в раскрывающемся списке Constraint Type (Тип ограничителя) выберите вариант Nail (Гвоздь), как показано на рис. 13.3, и нажмите кнопку Create (Создать). В центре плоскости появится маленькое зеленое пятно. Перейдите в режим преобразования перемещения и введите в поле Translate Y (Смещение по оси Y) окна каналов значение 8, чтобы переместить ограничитель на две единицы вверх.
Рис. 13.3. Выбор подходящего ограничителя в окне диалога Constraint Options
- Выделите левую нижнюю плоскость, которая называется left_swing, и нажмите клавишу g, чтобы повторить назначение ограничителя Nail (Гвоздь). Также переместите ограничитель на две единицы вверх.
- Выделите центральную плоскость, которая называется center_swing, и назначьте ей ограничитель Hinge (Шарнир) по описанной выше схеме.
- Выделите плоскость nght_spinner и нажмите клавишу g, чтобы назначить ей ограничитель Hinge (Шарнир). Повторите эту операцию для плоскости left_ spinner.
- Выделите расположенную на самом верху плоскость top_paddle и назначьте ей ограничитель Spring (Пружина). Запустите воспроизведение анимации, чтобы посмотреть, как стали двигаться объекты. При этом можно вращать сцену, чтобы понаблюдать происходящее с различных углов. Остановите воспроизведение анимации и верните ползунок на отметку нулевого кадра.
- Щелчками при нажатой клавише Shift выделите обе сферы и назначьте им ограничитель Spring (Пружина). Теперь они соединены упругим стержнем. Снова запустите воспроизведение анимации, чтобы посмотреть, что получилось.
- Остановите воспроизведение анимации, переместите ползунок таймера анимации на отметку нулевого кадра и выделите линию, соединяющую две сферы. В окне каналов появятся ее параметры. Введите в поля Spring Stiffness (Жесткость пружины) и Spring Rest Length (Длина пружины в состоянии покоя) значение 10. Посмотрите, как теперь будут двигаться объекты, остановите анимацию и присвойте этим параметрам значения 2 и 6 соответственно.
- Выделите сферу balll и в окне каналов введите в поле параметра Mass (Масса) значение 3, как показано на рис. 13.4. Теперь в процессе воспроизведения анимации вы увидите очевидную разницу в весе между двумя сферами.
Рис. 13.4. Изменение массы одной из сфер
- Теперь пришло время записать анимацию в память компьютера, чтобы избавиться от необходимости каждый раз при воспроизведении анимации обсчитывать поведение объектов. Выделите все движущиеся объекты сцены, выберите в главном меню команду Solvers > Memory Cache > Enable (Модули просчета > Кэширование памяти У Включить) и запустите воспроизведение анимации. После того как ползунок таймера анимации пройдет через весь диапазон, у вас появится возможность перемещать его вручную, например, чтобы посмотреть, как выглядит движение объектов в обратном направлении.
ПРИМЕЧАНИЕ
Если теперь попытаться отредактировать какой-нибудь из параметров объекта, принимающего
участие во взаимодействии, то обнаружится, что это не оказывает никакого эффекта
на вид анимации. Для возвращения к редактированию необходимо очистить кэш. Это
можно сделать с помощью команды Solvers > Memory Cache > Delete (Модули
просчета > Кэширование памяти > Удалить). Или же можно открыть окно диалога
Attribute Editor (Редактор атрибутов), выбрав в главном меню команду Solvers
V Rigid Body Solver (Модули просчета > Модуль просчета для твердого тела)
и нажав кнопку Delete (Удалить) в разделе Rigid Solver State (Состояние решения).
- Если вас устраивает полученный результат, можно преобразовать его в стандартную анимацию на основе ключевых кадров. Этот метод особенно хорош в тех случаях, когда вычисления поведения объектов происходят очень медленно. Выделите все активные тела в сцене и выберите в главном меню команду Edit > Keys > Bake Simulation (Правка > Ключи > Завершение имитации). После окончания воспроизведения анимации в каждом из кадров появится ключ с параметрами всех активных объектов. Теперь легко можно вручную перемещать ползунок таймера анимации. Также вы можете нажать кнопку Reverse Play (Воспроизведение в обратном направлении), чтобы посмотреть, как выглядит имитация динамики в обратном порядке.