Моделей: 32Уроков: 48Видео-уроков: 4Видеороликов: 313D-работ: 15
3D-моделиУрокиСценыТекстурыЧаВоГалереяСправочникГлоссарийПомощь

Создаём анимацию движения объекта по сложной траектории над местностью

Предыдущий урок: Прокладываем траекторию по пересечённой местности

Следующий урок: Простые приёмы, позволяющие добавить реалистичности в изображение и анимацию

Вернуться к списку уроков


К этому уроку прилагается 3D-сцена

Как вы помните, в предыдущих уроках мы с вами учились рисовать извилистую дорогу сплайнами и прокладывать дорогу по уже имеющейся модели пересечённой местности, однако до анимации дело у нас с вами так и не дошло.

И вот теперь наконец-то в данном уроке мы с вами создадим анимацию на основе траектории, проложенной по пересечённой местности. Для начала наш объект будет летающим и пролетит вдоль участка траектории на небольшой высоте над местностью.

Приступим.

Исходные данные: у нас с вами уже имеются в распоряжении макет местности, уложенная на него траектория и некое полигональное мультипликационно-футуристическое транспортное средство (для краткости назовём его «Скорпионом»).

В нашем распоряжении есть некое футуристическое транспортное средство

Для начала определимся, откуда у нас начнётся движение «Скорпиона» и где закончится. Ищем наименование «Скорпиона» в менеджере объектов, щёлкаем на нём правой клавишей мыши, в выпадающем меню выбираем «Cinema 4D Tags» и в выпадающем подменю — пункт «Align To Spline» («Подчинение сплайну»).

Подчиняем летающий объект траектории

Мы видим, что напротив наименования «Скорпиона» в менеджере объектов появился маленький значок. Нажимаем на него, под менеджером объектов появляется окно свойств тега.

Открываем свойства тега «Align To Spline»

Чтобы подчинить «Скорпион» траектории, нам с вами необходимо всё в том же менеджере объектов найти объект траектории и перетащить его в поле «Spline Path» свойств тега «Align To Spline» (к слову говоря, не забудьте отметить также галочкой параметр «Tangential» — без него ориентация объекта в пространстве будет неизменной на всём протяжении анимации, к этому мы ещё вернёмся позже). Как только мы сделаем это, «Скорпион» из рабочего окна. На самом деле, конечно, он никуда не исчезнет — он просто переместится в самое начало сплайна-траектории, ведь мы с вами сделали его подчинённым объектом траектории, и теперь «Скорпион» может размещаться только и исключительно на тех участках, где она пролегает. Самый простой способ найти «Скорпион» в рабочем окне — это выделить его наименование в менеджере объектов и нажать комбинацию клавиш Ctrl+O, после чего обзор немедленно переместится прямо к нему.

Перемещаемся к летающему объекту

Осматривая расположение «Скорпиона» на траектории, мы с вами сталкиваемся сразу с несколькими неожиданными и не вполне приятными сюрпризами.

Во-первых, «Скорпион» расположен перпендикулярно траектории, и явно готов к перемещению боком по направлению к траектории движения.

Во-вторых, его днище увязло в поверхности ландшафта и решительно не желает оттуда вылезать.

В-третьих, «Скорпион» уютно расположился на самом краю ландшафта (откуда начинается траектория), и если он начнёт своё движение именно отсюда, то в первых же кадрах анимации будет виден обрезанный край ландшафта, под которым нет ничего, кроме пустоты.

Движение слева направо мы хотели бы инвертировать

Ну и наконец, в-четвёртых, мы с вами хотели бы, чтобы «Скорпион» начал своё движение с правой части траектории, по мере анимации перемещаясь всё ближе к левой части, между тем как сейчас, судя по всему, всё будет происходить наборот.

Займёмся решением этих проблем — но без соблюдения порядка, в каком они перечислены. Прежде всего, если можно так выразиться, изменим «полярность» траектории так, чтобы начало у неё находилось справа, а не слева.

Находим траекторию в менеджере объектов, выделяем её наименование и переходим в режим редактирования точек.

Переходим в режим редактирования точек и выбираем траекторию

Далее мы с вами можем воспользоваться либо контектстным меню — убедившись, что траектория выделена в менеджере объектов, и щёлкнув правой клавишей мыши в любом месте рабочего окна, — либо верхним меню, выбрав пункт «Structure», затем в выпадающем меню «Edit Spline». И в том и в другом варианте нам необходим один и тот же пункт назначения — а именно функция «Reverse Sequence» («Инвертировать последовательность точек»). Эта функция, как ясно из названия, меняет порядковые номера точек сплайна траектории на диаметрально противоположные, вследствие чего первая точка сплайна становится последней, а последняя — первой. Как видите, если при моделировании очерёдность точек в сплайне не всегда важна, то в анимации она имеет первостепенное значение. Если всё сделано правильно, то «Скорпион» немедленно окажется в крайней правой точке траектории.

Воспользуемся функцией «Reverse Sequence» из контекстного меню

Ищем функцию «Reverse Sequence» через главное меню

Идём дальше. Что нам делать с перпендикулярным по отношению к траектории положением «Скорпиона» и как вытащить его брюхо из поверхности ландшафта? Вторую проблему мы ещё худо-бедно могли бы решить, приподняв траекторию над поверхностью ландшафта, а вот как справиться с первой?

Что же, не будем мелочиться и попробуем убить двух зайцев одним выстрелом. Создаём объект типа «Null», затем ищем его наименование в менеджере объектов и присваиваем ему копию тега «Align To Spline», который присвоен «Скорпиону» (для этого, как вы помните, мы зажимаем клавишу «Ctrl», и не отпуская её, цепляем расположенный напротив наименования «Скорпиона» в менеджере объектов тег, перетаскиваем его на наименование объекта «Null»). Можно, впрочем, поступить ещё проще и обойтись без копирования (другими словами, без клавиши «Ctrl»): ведь тег «Align To Spline», присвоенный «Скорпиону», нам больше не нужен, так как мы с вами решили сделать «ведущим» NULL-объект — именно он будет двигаться вдоль траектории, а уже к нему мы прицепим «Скорпион».

Создаём NULL-объект

Что и выполняем: цепляем наименование «Скорпиона» в менеджере объектов и перетаскиваем его на наименование NULL-объекта — мы видим, что «Скорпион» стал подчинённым объектом NULL-объекта. То есть последовательность событий в нашей анимации будет такова: тег «Align To Spline» NULL-объекта будет определять положение последнего на траектории, а «Скорпион» будет послушно, как привинченный, двигаться вслед за NULL-объектом и повторять все его перемещения и повороты.

Подчиняем NULL-объекту летающее транспортное средство

Ну а теперь, когда «Скорпион» больше не привязан жёстко к траектории, мы можем спокойно корректировать его положение относительно NULL-объекта. Смещаем «Скорпион» немного выше над поверхностью ландшафта и поворачиваем его на 90 градусов.

Корректируем положение летающего транспортного средства

Настало время разобраться с начальным положением «Скорпиона» (или, точнее, теперь уже NULL-объекта, на которого мы возложили обязанности проводника-лоцмана, присвоив ему тег «Align To Spline»). Если открыть свойства тега, то среди других параметром мы найдём параметр «Position» со значением по умолчанию 0% — значение этого параметра обозначает, на протяжении скольких процентов общей длины сплайна от начальной точки сплайна расположен объект, которому назначен тег. Если значение равно 0 — объект будет находиться в начале сплайна, если 100 — в конце, если 50 — в середине.

То есть исходя из сказанного, для смещения «Скорпиона» от края ландшафта нам просто нужно слегка увеличить значение параметра «Position» тега «Align To Spline». Кстати говоря, учтите, что значение не может быть меньше 0 и больше 100, а вот дробным — запросто.

Ура, мы с вами добрались до того самого момента, когда переходим непосредственно к созданию анимации — то есть самого что на есть движения. Начальное значение положения NULL-объекта на траектории мы с вами задали, давайте сохраним это значение. Переходим в режим «Animation» или «Standart», убеждаемся, что анимационный бегунок расположен в начале шкалы и что текущий кадр — самый первый кадр анимации. Щёлкаем правой клавишей мыши на наименовании (именно наименовании, а не значении) параметра «Position», в выпадающем меню выбираем «Animation» и в выпадающем меню — «Add Kyframe» («Добавить ключевой кадр»). Напротив названия параметра появляется красная точка, это означает, что для текущего кадра анимации значение параметра сохранено.

Сохраняем начальное значение параметра «Position»

Переводим анимационный бегунок в конец анимации. Теперь нам необходимо задать конечное значение параметра «Position». Попутно подмечаем, что красная точка напротив параметра превратилась в красный кружок: это означает, что в одном из кадров анимации для этого параметра значение сохранено — но не в текущем. Найти ключевой кадр можно, щёлкнув правой клавишей мыши на названии параметра и в выпадающих меню последовательно выбрав «Animation» и далее «Next Keyframe» («Следующий ключевой кадр») либо «Previous Keyframe» («Предыдущий ключевой кадр»). Вернёмся к теущей задаче: зададим для параметра «Position» значение 100%... стоп! Если мы зададим значение 100%, то «Скорпион» проследует по всей траектории до самого края ландшафта, и съёмочная камера упрётся в бездонную пустоту, что не есть правильно. Укажем значение немного поменьше, чтобы в конце анимации границы ландшафта остались скрытыми за неровностями, скажем, 75%.

Запускаем анимацию в рабочем окне и сразу же обнаруживаем следующий сюрприз: в самом начале анимации «Скорпион» ещё только начинает разгоняться — хотя мы хотим изобразить уже не первый час его полёта, когда он движется с постоянной скоростью, — и затем движется по траектории крайне неравномерно: к примеру, резко сбрасывает скорость на поворотах.

Исправляем проблему посредством двух шагов.

Во-первых, меняем кривую движения NULL-объекта (а стало быть, и «Скорпиона» вместе с ним) на линейный тип: переключаемся в режим работы с анимацией, ищем в нижней части экрана тег «Align To Spline», выделяем, выбираем режим работы с кривыми, выделяем начальную точку кривой и меняем её тип на линейный. Это сразу же избавляет нас с вами от проблемы «разгона» «Скорпиона» в начале анимации и его «торможения» в конце анимации.

Меняем тип кривой движения NULL-объекта на линейный

Во-вторых, проверяем тип самой траектории, выделив её наименование в менеджере объектов и тем самым открыв её свойства. Во вкладке «Object» свойств есть параметр «Intermediate Points» («Промежуточные точки») — от его значения зависит, каким именно образом распределяются промечуточные точки вдоль сплайна. По умолчанию сплайнам присваивается тип «Adaptive» — этот тип распределения предусматривает зависимость количества точек на участке сплайна от крутизны изгиба. При использовании этого типа сплайнов в качестве траектории (как в нашем с вами случае) движение, естественно, будет неравномерным, так как Cinema 4D отводит движению объекта по каждому из отрезков траектории одинаковое время, тогда как длина отрезков различная. Проблема исправляется сменой типа сплайна на «Uniform», при котором промежуточные точки распределяются по сплайну равномерно, вне зависимости от конфигурации последнего.

Сменив тип траектории, однако, не стоит забывать про значение параметра «Number» (собственно количество промежуточных точек сплайна). По умолчанию это значение для типа «Uniform» выставляется равным восьми, что для траектории с большим количеством изгибов явно недостаточно — во время анимации будут хорошо заметны резкие «перескоки» следующего вдоль траектории объекта с одного отрезка сплайна на следующий. Увеличиваем количество промежуточных точек до 32.

Меняем тип кривой движения NULL-объекта на линейный

Основные огрехи исправлены. Для пущего вкуса попробуем добавить ещё несколько ингредиентов в нашу анимацию.

Немного поразмыслив, мы с вами, возможно, придём к выводу, что съёмка одной камерой на протяжении всей анимации — особенно продолжительной — может показаться зрителю скучной и затянутой. Чтобы избежать этого, создадим три камеры и будем переключаться от одной к другой прямо во время анимации. Первую камеру мы жёстко подвесим непосредственно к борту «Скорпиона» (подчинив её, как и сам «Скорпион», NULL-объекту, чтобы она не осталась на месте в тот момент, когда «Скорпион» начнёт движение), вторую — общего плана — разместим в центре трёхмерной сцены и нацелим на «Скорпион», а у третьей, тоже нацеленной на «Скорпион», увеличим фокусное расстояние. Для создания ещё большего впечатления объёмности сцены назначим второй камере тег «Vibrato» (как это сделать, подробно описано в уроке «Заставляем объект вибрировать и пульсировать»), чтобы камера во время съёмки всё время плавно перемещалась над ландшафтом, выявляя разницу в дистанции до неровностей местности, а для большей реалистичности создадим имитацию тряски первой камеры при помощи такого же тега «Vibrato», но с большими значениями частоты.

Теперь реализуем переключение между камерами: в верхней панели инструментов нажимаем на пиктограмму с условным изображением источника света и в выпадающем меню выбираем объект «Stage».

Создаём переключатель съёмочных камер

Ищем его наименование в менеджере объектов, выделяем и переходим к работе со свойствами. Во вкладке «Object» имеются всего пять параметров: «Camera» («камера»), «Sky» («небо»), «Foreground» («передний план»), «Background» («задний план») и «Environment» («окружение»), все эти параметры соответствуют существующим в Cinema 4D типам объектов, и всё это можно переключать прямо по ходу анимации. Интерполяция для этих параметров не предусмотрена, в ключевых кадрах происходит дискретное переключение на текущий объект, если он выбран и сохранён с помощью ключевого кадра как текущий.

Чтобы осуществить переключение с одной камеры на другую, перейдём в начало анимации, выделим объект «Stage», затем найдём в менеджере объектов наименование первой камеры и перетащим его в поле «Camera» вкладки «Object» свойств объекта «Stage», после чего сохраним ключевой кадр для поля «Camera».

Создаём переключатель съёмочных камер

Затем перейдём в кадр анимации, в котором должна произойти смена одной съёмочной камеры на другую, точно так же перетащим в поле «Camera» наименование другой камеры, и точно так же сохраним ключевой кадр для нового значения параметра.

В принципе, нам с вами осталось проверить анимацию в действии, и если всё в порядке, то — отрендерить её. Если вы собираетесь рендерить анимацию с помощью планировщика, то учтите, что для этого вида рендера необходимо выбрать в настройках «Stage» в качестве съёмочной камеры, иначе переключение камер в отрендеренной сцене будет отсутствовать.

Ну и отрендерив анимацию, а затем конвертировав её в финальное видео, в качестве результат получаем нечто примерно нижеследующее:


Автор

Предыдущий урок: Прокладываем траекторию по пересечённой местности

Следующий урок: Простые приёмы, позволяющие добавить реалистичности в изображение и анимацию

Вернуться к началу урока | Вернуться к списку уроков


 
 

© Maxon Cinema 4D — справочное руководство. Запущен 13 августа 2013 г.
Разработчик, автор материалов сайта: М. Ю. Уткин.