Следование камеры за объектом сцены

Владимир Верстак

В этом небольшом упражнении мы рассмотрим возможность использования контроллеров для анимации вращения колеса, движущегося по пути и следование за ним камеры. Эти простые действия помогут нам в дальнейшем создать более сложную анимацию для танковой гусеницы, которая будет рассматриваться в следующем уроке, а позже я планирую написать развернутый урок по анимации движения автомобиля, максимально приближенного к реальному.

Для выполнения упражнения необходимо создать начальную сцену, состоящую из нескольких параметрических объектов, камеры и вспомогательного объекта-пустышки (рис. 1).

рис. 1

Начнем с того, что анимируем движение вспомогательного объекта Dummy01 по пути, которым является сплайн. Для этого выполните следующие действия:

  1. В главной панели инструментов щелкните на кнопке Select By Name (Выделить по имени) и выберите из списка появившегося окна диалога объект с именем Dummy01 .
  2. Выполните из главного меню команду Animation>Constraints>Path Constraint (Анимация>Ограничения>Ограничения пути) и выберите в одном из окон проекций сплайн пути (у меня этот объект называется wheel path) .
  3. Перейдите к вкладке Motion (Движение) командной панели и в свитке Path Parameters (Параметры пути) установите следующие значения:
    • установите флажок на параметр Follow (Следовать) для того, чтобы объект во время следования по пути поворачивался согласно вектора направления движения;
    • в группе Axis (Оси) установите переключатель на ось Z ;
  4. Проверьте выполненную анимацию щелкнув на кнопке Play Animation (Воспроизвести анимацию) , расположенную в правой нижней части интерфейса. Вспомогательный объект Dummy01 должен перемещаться по сплайну, описывая полный круг.

Сейчас необходимо выполнить привязку колеса (у меня это объект с именем wheel ) к анимированному вспомогательному объекту Dummy01 , для того чтобы колесо двигалось вслед за этим объектом. Сделать это просто, если воспользоваться инструментом Select and Link (Выделить и связать) . Активизируйте этот инструмент на главной панели инструментов, затем щелкните в одном из окон проекций на колесе и, когда курсор примет соответствующий вид, укажите на объект-пустышку Dummy01 . Проверьте анимацию. В данном случае вслед за объектом-пустышкой должно двигаться колесо.

Далее выполним анимацию вращения колеса. Эти знания могут пригодиться вам для анимации автотранспортных колесных средств. Все, что нам необходимо знать для анимации вращения - это длину сплайна пути и радиус колеса. Исходя из этих параметров можно рассчитать количество оборотов, которое сделает колесо, пройдя от начала до конца сплайна пути. Но прежде всего давайте узнаем длину сплайна пути и радиус колеса:

  1. Выделите в одном из окон проекций сплайн пути.
  2. Перейдите к вкладке Utilities (Сервис) командной панели и в одноименном свитке щелкните на кнопке Measure (Линейка).
  3. ПРИМЕЧАНИЕ

    Если вы не видите в свитке Utilities (Сервис) инструмента Measure (Линейка), щелкните на кнопке More (Дополнительно) для открытия окна диалога с полным списком утилит и выберите его из списка.

  4. В группе Shapes (Формы) свитка Measure (Линейка) можно увидеть длину выделенного сплайна. В моем случае она составляет 1126.686 (рис. 2).
  5. рис. 2
  6. Выделите колесо и там же, в свитке Measure (Линейка), но только в группе Dimensions (Размеры), узнайте его высоту (иначе говоря, диаметр колеса). Для моего колеса она составляет величину 13.923 .

Зная диаметр колеса можно рассчитать длину его окружности, для чего необходимо воспользоваться формулой расчета, известной как L=pi*D , где L - это длинна окружности, число pi - константа, равная 3.14 , а D полученный нами диаметр колеса. В результате расчетов окружность колеса будет равна 43.74 .

Осталось высчитать количество оборотов колеса, которое оно пройдет по сплайну, для чего разделим длину сплайна на окружность колеса и получим число 25.76 . Именно столько оборотов сделает колесо, пройдя весь путь.

И последнее, что мы сделаем, это рассчитаем на сколько градусов повернется колесо за расчетные 25.76 оборотов, так как именно в градусах нам необходимо получить значение поворота. Для этого достаточно умножить число оборотов на 360 и получим окончательное значение в градусах - 9273.6 .

Все данные получены - можно анимировать вращение. Но, прежде всего, необходимо «заморозить» трансформацию вращения колеса. Это связано с тем, что если локальные системы координат колеса (wheel) и вспомогательного объекта Dummy01, к которому привязано это колесо, не будут совпадать, колесо станет вращаться в направлении отличном от заданного. Сделать это просто, достаточно выделить колесо и удерживая нажатой клавишу Alt щелкнуть в окне проекции правой кнопкой мыши. В результате этих действий откроется контекстное меню, в котором необходимо выбрать строку Freeze Rotation (Заморозить трансформацию поворота) (рис. 3).

рис. 3

СОВЕТ

Когда вы работаете с контроллерами, особенно в тех случаях, когда параметры одного объекта управляются параметрами другого, возникают ситуации, при которых выполненная анимация не следует заданным осям координат. Основной причиной такой несогласованности может быть различие систем локальных координат объектов (проще говоря, то, в каком окне проекции они строились). В этом случае обычно достаточно «заморозить» трансформацию перемещения или вращения анимируемого объекта. Полезной эта функция может быть и в других случаях, например при построении loft -объектов.

Задайте вращение колеса, для чего выполните следующее:

  • В одном из окон проекций выделите колесо (объект с именем wheel ).
  • Передвиньте ползунок таймера анимации в последний кадр, для чего выполните его перемещение при помощи мыши или щелкните на кнопке Go To End (Перейти в конец) .
  • Активизируйте автоматическую запись ключей анимации, для чего щелкните на кнопке Auto Key (Авто ключ) .
  • В главной панели инструментов щелкните правой кнопкой мыши на кнопке Select and Rotate (Выделить и повернуть) в результате чего появится окно диалога Rotate Transform Type - In (Ввод данных преобразования поворота).
  • В правой части окна диалога, в группе Offset : Screen ( Cмещение: Экранное) в поле значения по оси X впечатайте рассчитанное ранее значение градусов поворота колеса (рис.4) и нажмите ввод для подтверждения внесенных изменений.
рис. 4
  • Отключите автоматическую запись ключей анимации для чего повторно щелкните на кнопке Auto Key (Авто ключ).
  • Проверьте выполненную анимацию. Колесо должно не только следовать за вспомогательным объектом Dummy01, но и вращаться во время движения.

ПРИМЕЧАНИЕ

Мы выполнили простую анимацию вращения колеса, движущегося по сплайну. Более сложная зависимость вращения колеса от пройденного пути будет рассматриваться в уроке «Анимация движения танковой гусеницы»

Сейчас, когда колесо полностью анимировано, можно усилить эффект движения. Дело в том, что на объект в момент движения по кривой действует центробежная сила, которую можно имитировать, установив флажок на Bank (Занос) в свитке Path Parameters (Параметры пути) контроллера Path Constraint (Ограничения пути). После всех настроек этот свиток должен выглядеть как на рисунке 5.

рис. 5

СОВЕТ

Для того чтобы вернуться к свитку Path Parameters (Параметры пути) необходимо выделить вспомогательный объект Dummy01, затем перейти на вкладку Motion (Движение) командной панели и выбрать в свитке Assign Controller (Назначить контроллер) из списка назначенных контроллеров, контроллер положения - Path Constraint (Ограничения по пути). При этом в свитке PRS Parameters (Параметры положения/поворота/масштаба) должна быть активной кнопка Position (Положение) .

Пришло время обратиться к тому, для чего проводилась предварительная анимация объектов, т.е. к анимации камеры, следующей за движущимся колесом. И начнем мы с установки «линии взгляда» камеры, направленной на движущееся колесо. Сделать это достаточно просто с использованием контроллера LookAt Constraint (Ограничение по линии взгляда). Для его назначения выберите в одном из окон проекций камеру и выполните из главного меню команду Animation>Constraints>LookAt Constraint (Анимация>Ограничения>Ограничение по линии взгляда) и в одном из окон проекций укажите на колесо. После этого перейдите на вкладку Motion (Движение) командной панели и в свитке LookAt Constraint (Ограничение по линии взгляда) установите следующие параметры:

  • В группе Select LookAt Axis (Выбор оси направления взгляда) установите переключатель на ось Z и флажок на Flip (Обратить).
  • В группе aligned t o Upnode Axis (Выравнивание оси, направленной вверх) установите переключатель на ось Z (рис. 6).
рис. 6

СОВЕТ

Назначить объекту контроллер можно не только из меню Animation (Анимация), но и из свитка Assign Controller (Назначить контроллер) вкладки Motion (Движение), расположенной на командной панели, а так же окна диалога Track View  - Curve Editor (Редактор треков   - редактор кривых). В некоторых случаях такое назначение имеет свои преимущества, например при автоматической записи выполняемых команд макрорекодером ( MacroRecoder ), о чем пойдет речь в уроке «Анимация движения танковой гусеницы»

Активизируйте вид из камеры, для чего в одном из окон проекций, например в окне Perspective (Перспектива), щелкните правой кнопкой мыши на имени окна, расположенном слева вверху и выберите из списка Views>Camera 01 (Проекции>Camera 01) (рис. 7).

рис. 7

СОВЕТ

Более простым и быстрым переходом к окну вида из камеры, является использование клавиши быстрого доступа « C ». Если в сцене присутствует более одной камеры, появляется окно диалога для выбора камеры из списка либо осуществляется переход к окну вида из активной камеры

Запустите воспроизведение анимации и проверьте, следует ли направление вида из камеры за движущимся колесом. Если все сделано правильно, можно переходить к завершающей части упражнения - привязке камеры к вспомогательному объекту Dummy01.

Воспользуйтесь инструментом Select and Move (Выделить и переместить) для позиционирования камеры относительно колеса, на которое она смотрит, при этом контроль положения необходимо проводить по окну проекции вида из камеры. Когда будет достигнут желаемый результат, свяжите камеру с вспомогательным объектом, аналогично тому, как мы привязывали колесо, для чего воспользуйтесь инструментом Select and Link (Выделить и связать) , расположенном на главной панели инструментов.

Проверьте анимацию. Камера должна следовать за колесом на том расстоянии, которое вы ей указали, настраивая позиционирование. Если что-то в процессе движения камеры вас не устраивает, можно вернуться к настройке положения камеры относительно колеса и внести необходимые изменения. Наконец, выполнив настройку всей анимации можно переходить к визуализации вида из камеры любым доступным способом.

По этой ссылке можно скачать архив (660 kb) с видеороликом к данному уроку.

 


Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5976