Подготовка к имитации динамики твердого тела. Упражнение.
- Теперь оптимизируем скорость вычислений, использовав вместо сфер их заменители. Выделите обе сферы рамкой и в окне каналов выберите в раскрывающемся списке 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 (Воспроизведение в обратном направлении), чтобы посмотреть, как выглядит имитация динамики в обратном порядке.