Перед тем как начать делать анимацию, полезно продумать сколько уровней иерархии вам понадобится для результирующего движения. Например, ваш космический корабль несется по крутой траектории, при этом его изрядно трясет, и в какой-то момент он начинает бешено вращаться. В этом случае имеет смысл сгруппировать транспорт два раза с самим собой и получить две дополнительные группы (а следовательно две новых ноды transform) для «послойной» анимации. Самую верхнюю группу запускаете по пути (один вид анимации), следующую группу трясете с помощью expression (процедурная анимация), а с нужного момента начинаете вращать сам корабль обычными ключами на атрибутах rotate. С этого же момента можете выключить тряску, проанимировав атрибут Node State у созданного expression. Иногда имеет смысл создать пару «лишних» групп «про запас», на случай, если понадобится дополнительная вторичная анимации.
Проделаем небольшой пример иерархической анимации. Нет, это не будет планетарная система. Это будет анимация юлы.
Анимация юлы
Перейдите в камеру front и нарисуйте профиль юлы с помощью Create=>CV Curve Tool.
Проследите за тем, чтобы последняя контрольная точка попала на вертикальную ось координат, а первая точка находилась в начале координат.
Выберите кривую и выполните Surface=>Revolve. Любители кубизма могут установить в Channel Box для ноды revolvel значения degree=Linear и sections=6.
При необходимости отредактируйте юлу, чтобы ее высота примерно равнялась 5 единицам.
Переименуйте поверхность в spin.
«Обнулите» текущее положение, а точнее говоря, задайте значения трансформационных атрибутов «по умолчанию»: Modify=> Freeze transformation.
Теперь все вращения и перемещения равны 0, а размер равен 1.
После окончания редактирования избавьтесь от истории.
Edit=>Delete All by Type=>History
Эта поверхность будет отвечать за вращение юлы вокруг вертикальной оси. Поэтому сначала заблокируем все атрибуты, кроме rotateY, чтобы застраховаться от их непредвиденного изменения.
Выделите все атрибуты, кроме rotateY, и из контекстного меню Channel Box (выпадающего по правой кнопке) выполните Lock Selected.
Кроме того, спрячьте все только что заблокированные атрибуты: Channel Box=>Hide Selected.
Проверьте настройки анимации.
Задайте диапазон проигрывания от 0 до 25, а глобальный диапазон анимации от 0 до 200. Задайте скорость проигрывания как Real-time (25 fps).
Выберите spin и поставьте два ключа на атрибут rotateY. Для этих целей хорошо подойдет горячая клавиша «s».
В нулевом кадре задайте rotateY=0 и поставьте ключ.
В десятом кадре rotateY=360 и поставьте ключ.
Чтобы юла вращалась не только в течение десяти кадров, зададим ей бесконечное продолжение анимационной кривой.
Откройте Graph Editor.
Нажмите «f».
Выберите анимационную кривую.
Выполните в меню Graph Editor операцию Curves=>Post lnfinity=>Linear.
Чтобы увидеть, как кривая будет продолжаться после второго ключа выполните View=> Infinity.
Теперь юла будет вращаться бесконечно. Самое время проанимировать наклон оси юлы. Для этого проще всего сгруппировать юлу саму с собой и проанимировать верхнюю группу. Выберите юлу. Сгруппируйте: Edit=>Group. Переименуйте получившуюся группу в axis. Заблокируйте и спрячьте все атрибуты axis, кроме rotateX и rotateZ.