3D Studio MAX: первые шаги. Урок 21. Иерархия и прямая кинематика
Управление иерархическими цепочками
Примеры анимации иерархически связанных объектов
Слежение за движущимся объектом
Шевеление щупалец морского обитателя
Примеры анимации иерархически связанных объектов
Кручение колеса
Используем возможность настройки иерархических связей объектов для создания крутящегося деревянного колеса, сформированного из множества отдельных элементов, анимировать которые по отдельности слишком трудоемко. По замыслу у колеса предполагается наличие восьми спиц, каждая из которых имеет сложную фигурную форму и будет получена путем вращения сплайна вокруг произвольной оси. Вначале смоделируем базовую спицу: создайте криволинейный сплайн, конвертируйте его в режим редактируемого сплайна и сделайте все вершины сплайна гладкими. Примените к сплайну модификатор Lathe (Вращение), для настройки варианта вращения в группе Align свитка Parameters щелкните на кнопке Max, в группе Direction выберите вариант Y. Возможный вид полученной спицы (вместе с задействованным сплайном) представлен на рис. 26. Создайте контур колеса из примитива Tube, а для формирования семи оставшихся спиц примените операцию Array (команда Tools=> Array), настроив ее параметры в соответствии с рис. 27. Переключитесь в окно проекции Top и отрегулируйте положение всех спиц. Одновременно с этим для удобства работы проконтролируйте, чтобы полученное колесо оказалось в начале координат (рис. 28).
Рис. 26. Исходный вид спицы (справа) со сплайном (слева)
Рис. 27. Параметры настройки операции Array
Рис. 28. Окончательный вид колеса в проекции Top
Теперь нужно заставить колесо крутиться — реализуем это путем связывания всех элементов колеса с фиктивным объектом, которому и будет назначена соответствующая анимация. Создайте в стороне от колеса (иначе потом неудобно будет связывать объекты) объект Dummy и, не снимая с него выделения, щелкните на кнопке Ayto Key. Перетащите ползунок номера кадра на последний кадр и разверните фиктивный объект на 360°, выйдите из режима автоматической генерации ключей. В редакторе кривых измените номер кадра (то есть первый параметр) для второй ключевой точки на 20 и зациклите анимацию (команда Controller=> Out- of- Range Types=> Relative Repeat). Это приведет к тому, что объект-пустышка будет непрерывно вращаться, совершая полный оборот за 20 кадров. Выделите все элементы колеса и свяжите его с фиктивным объектом (рис. 29). Выделите объект Dummy и выровняйте его по объекту Tube01 относительно всех трех осей (рис. 30). Проиграйте анимацию — колесо будет крутиться, как и запланировано. По окончании текстурируйте элементы сцены и сгенерируйте все кадры анимации — вид крутящегося колеса в двух произвольных кадрах анимации представлен на рис. 31.
Рис. 29. Связывание объектов
Рис. 30. Вид сцены после выравнивания объекта-пустышки
Рис. 31. Крутящееся колесо
Вращение Земли вокруг Солнца
Попробуем воспользоваться иерархической связью для имитации вращения Земли вокруг Солнца, сопровождаемого параллельным вращением Луны вокруг Земли. Создайте исходную сцену с объектом-пустышкой Dummy, шаром (это будет Солнце) и траекторией-окружностью — два последних объекта должны находиться в начале координат (рис. 32). Увеличьте количество кадров анимации до 43 800. Данное число взято из расчета того, что в задуманной анимации Земля должна обернуться вокруг Солнца пять раз — это соответствует пяти годам, а в одном не високосном году содержится 8760 часов (365х24 = 8760).
Рис. 32. Исходный вид сцены
Выберите объект-пустышку и примените к нему команду Animation=>Constraints=>PathConstraint (Анимация=>Ограничения=>Ограничения пути), указав в одном из окон проекций сплайн пути. В свитке PathParameters панели Motion включите флажок Follow (Следовать) — рис. 33. Проиграв анимацию, вы увидите, что пока объект-пустышка совершит лишь один поворот вокруг Солнца. При выделенном объекте Dummy откройте редактор треков в режиме работы с кривыми (команда GraphEditor=>TrackView-CurveEditor), выделите второй ключ, активизируйте инструмент MoveKeys, и в левом поле ввода (то есть для номера кадра) укажите значение 8760. Это приведет к тому, что объект-пустышка совершит полный облет траектории за 8760 кадров. Зациклите созданное движение, воспользовавшись командой Controller=> Out- of- Range Types=>RelativeRepeat (рис. 34). Теперь нужно сделать так, чтобы вращение в начале и в конце пути происходило без ускорения и замедления — для этого выделите обе ключевые точки и щелкните на кнопке SetTangentstoLinear (Установка касательных для линейной анимации). Проиграйте анимацию и убедитесь, что объект-пустышка действительно станет вращаться вокруг шара, проходя полный оборот за 8760 кадров и перемещаясь равномерно.
Рис. 33. Настройка параметров движения объекта Dummy
Рис. 34. Корректировка параметров второй ключевой точки в редакторе кривых
Создайте второй объект Dummy и второй сплайн в виде окружности, разместив их примерно так, как показано на рис. 34. Свяжите второй сплайн с первым Dummy-объектом (рис. 35). Выровняйте второй сплайн по первому объекту-пустышке по всем трем осям и оцените результат — теперь вокруг шара должны вращаться уже два объекта: Dummy01 и Circle02 (рис. 36). Активируйте второй объект-пустышку и назначьте в качестве траектории его движения второй сплайн (команда Animation=>Constraints=>PathConstraint), переключитесь на панель Motion (Движение) и в свитке PathParameters включите флажок Follow. Откройте редактор кривых и для второй ключевой точки объекта Dummy02 в качестве номера кадра установите число 24 — это приведет к тому, что полный оборот данный объект будет совершать за 24 кадра (в нашей трактовке — за 24 часа), — рис. 37.
Рис. 35. Появление второго сплайна и дополнительного объекта-пустышки
Рис. 36. Вид иерархической цепочки после связывания сплайна
Рис. 37. Вид сцены после связывания сплайна
Создайте две новые сферы (Землю и Луну) и свяжите первую из них с первым Dummy-объектом, а вторую — со вторым (рис. 38). Выровняйте сферу Sphere02 по объекту Dummy01, а сферу Sphere03 — по объекту Dummy02, учитывая данные всех трех осей. Теперь при анимации больший из шаров (Земля) будет вращаться вокруг Солнца, а меньший (Луна) — вокруг Земли (рис. 39). По окончании текстурируйте все объекты сцены и сгенерируете ролик — вид визуализированного изображения в одном из кадров анимации представлен на рис. 40.
Рис. 38. Вид иерархической цепочки после связывания объектов Sphere02 и Sphere03
Рис. 39. Вид сцены после связывания шаров
Рис. 40. Вращение Земли с Луной вокруг Солнца