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

Зацикленная асинхронная анимация в Cinema 4D

Предыдущий урок: Физическое разрушение объекта в Cinema 4D

Следующий урок: Создание волос и меха в Cinema 4D

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


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

— За мое дежурство вы — шестая компания.

— Я один как перст! — возразил журналист Каммерер.

— Компания есть счетное слово, — возразил Александр Б., оживляясь еще более. — Ну, например, как ящик. Ящик консервов. Штука ситца. Или коробка конфет. Ведь может так случиться, что в коробке осталась всего одна конфета.

А. Н. Стругацкий, Б. Н. Стругацкий, «Жук в муравейнике».


Один из самых популярных вопросов в среде начинающих трёхмерщиков, в том числе и тех, чья деятельность тесно связана с Cinema 4D, выглядит следующим образом — как зациклить анимацию?

Пример зацикленной асинхронной анимации

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

Встречаются, однако, и более сложные варианты этого вопроса: например, как анимировать сразу группу объектов и придать асинхроноость этой группе, чтобы её элементы не напоминали своими движениями роту марширующих солдат? Или — как произвести смещение по времени одного и того же интервала анимации для множества одинаковых объектов с минимумом временных затрат на моделирование процесса?

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

Стоп. Вам тоже показался сложным этот способ? Есть способ значительно проще и эффективнее.

В предыдущих уроках мы с вами неоднократно обращались к использованию такого во всех смыслах поистине великолепного инструмента, как MoGraph Cloner (или мультипликатор, как я его называю): к примеру, создавали из одного-единственного автомобиля разноцветный автомобильный трафик. Возможности у этого инструмента впечатляют даже на первый взгляд. Так вот, одна из его возможностей — циклически воспроизводить анимацию трёхмерной модели, если у последней имеется анимированный кусок в сцене.

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

В нашем распоряжении имеется модель подъёмного крана

Создаём объект «MoGraph Cloner»...

Создаём новый мультипликатор

...и подчиняем ему группу элементов, из которых состоит подъёмный кран.

Подчиняем мультипликатору подъёмный кран

Далее отправляемся в настройки мультипликатора — выделяем его наименование в менеджере объектов, ниже видим появление окна свойств, в котором открываем вкладку «Transform» («Преобразования»). В этой вкладке нас интересует всего-навсего один-единственный параметр, ну в крайнем случае два: это, во-первых, «Animation Mode» («Режим анимации») — для циклического безостановочного воспроизведения одного и того же куска анимации модели, которая подчинена мультипликатору, необходимо выбрать для этого параметра значение «Loop» («Цикл»), — и во-вторых, параметр «Time» рядом с ним — это номер кадра, начиная с которого мультипликатор начнёт воспроизводить анимацию.

Открываем свойства мультипликатора

Для полной ясности уточним, как действует мультипликатор, которому подчинена анимированная модель, если у него появляется значение «Loop» параметра «Animation Mode»? После запуска анимации трёхмерной сцены мультипликатор показывает неподвижную модель в течение количества кадров, указанных для параметра «Time», после чего воспроизводит анимацию модели в интервале от первого до последнего заданных для неё ключевых событий. По окончании ключей у модели мультипликатор повторяет анимацию, на сей раз немедленно — параметр «Time» нужден только для задержки первого цикла анимации. Если анимация имеется не только у непосредственно подчинённого мультипликатору элемента, но и у дочерних элементов, они также воспроизводятся полностью. Если анимационный интервал у одного элемента закончился, а у другого ещё продолжается, мультипликатор отрабатывает до конца самый длинный найденный у одного из элементов анимационный интервал — остальные элементы в это время неподвижны — после чего переходит к следующему полному циклу воспроизведения.

На всякий случай добавлю, что активные модификаторы анимации, типа «Wind» («Ветер») или «Vibrato» («Вибрация»), также передаются мультипликатором клонам модели, однако этот вид анимации рассинхронизировать невозможно, так как он не содержит ключей, и все анимимированные с помощью модификаторов клоны будут отрабатывать действия синхронно.

Иначе обстоит дело с ключевыми событиями: достаточно теперь добавить в сцену специализированный модификатор для «MoGraph Cloner» типа «Random»...

Добавляем модификатор «Random»

...и в его свойствах во вкладке «Parameter» («Параметры») указать значение параметра «Time Offset» («Временное смещение»)...

Указываем смещение в кадрах

...чтобы получить множество клонов одной и той же модели, асинхронно отрабатывающих одно и то же действие.

Напоследок не помешает отметить, что модификатор «Random» — отнюдь не единственный модификатор, нарушающий одновременность действий анимированных клонов. К примеру, указание такого же значения того же самого параметра «Time Offset» для «мультипликаторных» модификаторов «Step» («Шаг») или «Time» («Время») приведёт к совершенно иным, хотя и не менее интересным эффектам.

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

Впрочем, вы вправе напомнить мне, с чего мы с вами начали: с вопроса о том, как зациклить анимацию одной-единственной модели. Что же, мне останется лишь посоветовать вам вернуться к началу урока и прочитать эпиграф к нему — цитату из талантливейшего произведения братьев Стругацких. Эта цитата — и есть ответ на ваш вопрос.

Результат рендера, как водится — на нижеприведённом видео.


Автор

Предыдущий урок: Физическое разрушение объекта в Cinema 4D

Следующий урок: Создание волос и меха в Cinema 4D

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


24.03.2015 15:28 Комментирует Игорь:

Спасибо, всегда все понятно и проще, чем у других)

10.04.2015 19:12 Комментирует Алекс:

Все как всегда понятно и доступно!!! вопрос: а нельзя ли сделать урок по сложной развертке и текстурированию в Боди Пайнте и урок по цветной шерсти? спасибо. Ответ автора: взаимно — спасибо, Алекс. Урок-то сделать можно, вот только мне сначала самому надо научиться это делать, вот тогда-то урок и появится. Беру себе на заметку.

08.05.2016 11:26 Комментирует Денис:

Отличный урок. Но у меня с этой страницы загружается сцена для предыдущего урока. Нельзя ли это исправить.

Ответ автора сайта: Денис, прошу принять мои извинения, исправлено.

 
 

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