Первые шаги в Maya. Урок 11. Анимация вдоль пути
Технология создания анимации вдоль пути
Привязка объекта к готовой кривой-траектории
Формирование траектории по ключевым положениям объекта
Редактирование траектории движения
Определение поведения объекта при его движении по траектории
Искажение формы объекта при его поворотах
Перемещение объекта по поверхности
Практические примеры создания простых анимаций вдоль пути
Ползущая и оставляющая светящийся след морская звезда
Практические примеры создания простых анимаций вдоль пути
Горящий шнур
Воспользуемся анимацией вдоль пути для получения имитации горящего шнура. Шнур построим как Extrude-поверхность, а его горение обеспечим путем перемещения по шнуру подходящим образом текстурированного шара. Создайте NURBS-окружность и поверните ее на 90° относительно оси Z — это будет кривая-профиль. Выберите один из инструментов для создания кривых и постройте NURBS-кривую (ее мы используем в качестве кривой-пути). Данная кривая должна начинаться в начале координат, а две ее первые вершины лежать на оси X (рис. 37). Выделите окружность, затем (при нажатой клавише Shift) — кривую-путь, щелкните на квадратике справа от команды Surfaces=>Extrude (Поверхности=>Выдавить) и в разделе CurveRange включите вариант Partial (рис. 38). Это обеспечит формирование поверхности не с одним, а с двумя узлами, что позволит в дальнейшем изменять длину Extrude-объекта (то есть шнура). При необходимости в режиме редактирования вершин (F9) отрегулируйте положение отдельных управляющих вершин кривой-пути, чтобы добиться нужной формы шнура, и по окончании сгладьте его путем перестройки кривой с добавлением новых вершин (команда EditCurves=>RebuildCurve) — рис. 39.
Рис. 37. Исходные кривые для Extrude-поверхности
Рис. 38. Настройка параметров операции Extrude
Рис. 39. Вид объекта, полученного в ходе операции Extrude
Создайте шар, выделите его, а затем при нажатой клавише Shift в окне Outliner выделите кривую-путь, послужившую основой для операции Extrude, и примените команду Animate=>MotionPaths=>AttachtoMotionPath (Анимация=>Траектории движения=>Привязать к траектории движения). Проиграйте анимацию и убедитесь, что шар движется по шнуру (рис. 40).
Рис. 40. Вид одного из промежуточных кадров с перемещающимся щаром
Теперь нужно сделать так, чтобы шнур по мере движения шара укорачивался. Этого можно добиться анимированием параметра MaxValue для второго узла Extrude-объекта. Активируйте первый кадр и включите режим анимации с автоматическим созданием ключей. В окне Outliner выделите второй узел Extrude-объекта (рис. 41), удостоверьтесь в окне каналов, что значение параметра MaxValue равно 1 и создайте ключ (команда Animate=> Set Key — Анимация=>Создать ключ) — рис. 42. Переключитесь в последний кадр анимации, установите значение параметра MaxValue равным 0 (рис. 43) и отключите режим автоматического создания ключей. Проиграйте анимацию — шар будет двигаться по шнуру, а сам шнур по мере перемещения шара — укорачиваться, правда в направлении, противоположном нужному (рис. 44).
Рис. 41. Выделение второго узла Extrude-объекта
Рис. 42. Создание ключа для первого кадра
Рис. 43. Создание ключа для последнего кадра
Рис. 44. Вид сцены в одном из промежуточных кадров анимации: поведение при анимации шара и шнура несогласованно
Чтобы изменить направление движения шара на противоположное, следует сменить ориентацию кривой, но в этом случае изменится Extrude-объект, чего допустить ни в коем случае нельзя. А значит, без двух одинаковых кривых не обойтись. В окне Outliner выделите кривую-путь и создайте ее копию (команда Edit=>Duplicate — Редактирование=>Дублировать). Выделите полученную копию и смените у нее ориентацию на противоположную, применив команду Edit Curve=> Reverse Curve Direction (Редактировать кривую=>Сменить направление кривой на противоположное). Разорвите связь между шаром и оригинальной кривой через редактор сцен, а затем свяжите шар с новой кривой — теперь укорачивание шнура и движение шара станут согласованными (рис. 45). Скройте первый узел Extrude-объекта. Присвойте объектам подходящие материалы (для шара, учитывая, что с эффектами горения мы еще не знакомились, можно назначить обычный материал с интенсивным свечением) и проведите рендеринг всех кадров. Возможный вид одного из промежуточных, полученных при рендеринге кадров показан на рис. 46.
Рис. 45. Вид сцены в одном из промежуточных кадров анимации: поведение при анимации шара и шнура согласованно
Рис. 46. Горящий шнур
Летящая ракета
Воспользуемся методом анимации вдоль пути для того, чтобы отправить ракету в полет. Начнем с моделирования самой ракеты. Создайте вытянутый по оси Y полигональный цилиндр с достаточным числом разбиений (рис. 47) — это будет основа корпуса ракеты. Назначьте ему пространственную решетку (команда Deform=>CreateLattice — Деформация=>Создать решетку) и деформируйте ее примерно так, как показано на рис. 48. Дополните корпус ракеты вытянутым по оси Y конусом и масштабированным торусом (рис. 49). Создайте еще один вытянутый по оси Y конус и деформируйте его при помощи нелинейного деформатора Bend (команда Deform=>CreateNonlinear=> Bend — Деформировать=>Создать нелинейные=>Изгиб) — рис. 50. В результате получим элемент, который вполне подойдет для формирования крыльев ракеты. Поскольку крыла четыре, то данный элемент придется продублировать. Выделите деформированный конус и примените к нему команду Edit=>Duplicate (Правка=>Дублировать), настроив ее параметры так, чтобы дубликат автоматически разворачивался на 180° относительно оси Y (рис. 51). Затем выделите два деформированных конуса (оригинал и дубликат) и продублируйте их, но уже с поворотом относительно оси Y на 90°. Полученные элементы соедините с корпусом требуемым образом и дополните ракету еще одним торусом в основании корпуса. Полученная в итоге ракета будет напоминать представленную на рис. 52.
Рис. 47. Полигональный цилиндр
Рис. 48. Вид цилиндра после деформирования Lattice-решетки
Рис. 49. Появление новых деталей корпуса
Рис. 50. Bend -деформирование конуса
Рис. 51. Настройка параметров дублирования
Рис. 52. Ракета
Выберите один из инструментов для создания кривых и в окне проекции Front постройте нужную кривую, вытянув ее вверх со смещением по оси Z (рис. 53). В окне Outliner выделите все элементы, относящиеся к ракете, и сгруппируйте их, применив команду Edit=> Group (Правка=>Группировать). Выделите и скройте все вспомогательные элементы ракеты: Bend-деформаторы и Lattice-решетку, чтобы они не мешали работе. Выделите в окне Outliner группу, переключитесь в режим работы с опорными точками (клавиша Insert) и перетащите опорную точку в носовую часть корпуса (рис. 54), так как ракета должна двигаться вперед именно данной частью. По окончании нажмите клавишу Insert для возврата к режиму работы на уровне объектов. При выделенной группе примените команду Display=>ComponentDisplay=>LocalRotationAxes (Отображение=>Компоненты отображения=>Локальные оси вращения) — это приведет к отображению локальных осей ракеты (рис. 55), что поможет правильно настроить параметры привязки к пути, определять которые придется на следующем шаге. Как видно, ракета вытянута вдоль локальной оси Y, а двигаться она будет в направлении локальной оси Z. Выделите в окне Outliner группу с элементами ракеты, а затем при нажатой клавише Shift — кривую-путь и щелкните на квадратике справа от команды Animate=>MotionPaths=>AttachtoMotionPath (Анимация=>Траектории движения=>Привязать к траектории движения). Теперь нужно разобраться с настройками параметров FrontAxis и Up-Axis — ранее мы их не меняли, поскольку в простейших случаях вполне подходят настройки по умолчанию, но сейчас без этого не обойтись. Ракета вытянута вдоль локальной оси Y — значит, ось Y и будет FrontAxis, а сама ракета движется вдоль локальной оси Z, поэтому ось Z станет Up-Axis (рис. 56). Проиграв анимацию, вы увидите, что ракета действительно движется вдоль отведенного ей пути (рис. 57), а значит, ее привязка к пути была сделана правильно. Для полноты картины дополните сцену поверхностью земли и космическим пространством (в простейшем случае в качестве соответствующих объектов могут выступить очень большие сферы). А затем придайте земной поверхности рельефность инструментом SculptSurfacesTool (команда EditNURBS=>SculptSurfaceTool — Редактирование NURBS-поверхностей=>Создание рельефа) и назначьте всем объектам сцены материалы. Визуализируйте все кадры анимации — вид полета ракеты в некоторых из них показан на рис. 58.
Рис. 53. Появление кривой
Рис. 54. Перемещение опорной точки ракеты
Рис. 55. Отображение локальных осей ракеты
Рис. 56. Настройка параметров привязки к пути
Рис. 57. Вид сцены в промежуточных кадрах анимации: ракета движется строго вдоль пути
Рис. 58. Летящая ракета