Следование камеры за объектом сцены
Владимир Верстак
В этом небольшом упражнении мы рассмотрим возможность использования контроллеров для анимации вращения колеса, движущегося по пути и следование за ним камеры. Эти простые действия помогут нам в дальнейшем создать более сложную анимацию для танковой гусеницы, которая будет рассматриваться в следующем уроке, а позже я планирую написать развернутый урок по анимации движения автомобиля, максимально приближенного к реальному. Для выполнения упражнения необходимо создать начальную сцену, состоящую из нескольких параметрических объектов, камеры и вспомогательного объекта-пустышки (рис. 1). рис. 1
Начнем с того, что анимируем движение вспомогательного объекта Dummy01 по пути, которым является сплайн. Для этого выполните следующие действия:
Сейчас необходимо выполнить привязку колеса (у меня это объект с именем wheel ) к анимированному вспомогательному объекту Dummy01 , для того чтобы колесо двигалось вслед за этим объектом. Сделать это просто, если воспользоваться инструментом Select and Link (Выделить и связать) . Активизируйте этот инструмент на главной панели инструментов, затем щелкните в одном из окон проекций на колесе и, когда курсор примет соответствующий вид, укажите на объект-пустышку Dummy01 . Проверьте анимацию. В данном случае вслед за объектом-пустышкой должно двигаться колесо. Далее выполним анимацию вращения колеса. Эти знания могут пригодиться вам для анимации автотранспортных колесных средств. Все, что нам необходимо знать для анимации вращения - это длину сплайна пути и радиус колеса. Исходя из этих параметров можно рассчитать количество оборотов, которое сделает колесо, пройдя от начала до конца сплайна пути. Но прежде всего давайте узнаем длину сплайна пути и радиус колеса:
ПРИМЕЧАНИЕ Если вы не видите в свитке Utilities (Сервис) инструмента Measure (Линейка), щелкните на кнопке More (Дополнительно) для открытия окна диалога с полным списком утилит и выберите его из списка. рис. 2
Зная диаметр колеса можно рассчитать длину его окружности, для чего необходимо воспользоваться формулой расчета, известной как 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 -объектов. Задайте вращение колеса, для чего выполните следующее:
рис. 4
ПРИМЕЧАНИЕ Мы выполнили простую анимацию вращения колеса, движущегося по сплайну. Более сложная зависимость вращения колеса от пройденного пути будет рассматриваться в уроке «Анимация движения танковой гусеницы» Сейчас, когда колесо полностью анимировано, можно усилить эффект движения. Дело в том, что на объект в момент движения по кривой действует центробежная сила, которую можно имитировать, установив флажок на 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 (Ограничение по линии взгляда) установите следующие параметры:
рис. 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 |