Как создавать анимацию в cinema 4d

  • 24.06.2019

Высокополигональная анимация напоминает ситуацию с профессиональным звуком в начале-середине 90-х. Тогда из-за малых компьютерных мощностей и сложности расчетов каждое действие нужно было обдумывать заранее. Создать законченный продукт за одни сутки было фактически нереально. Сейчас все проще: раз-два, там посмотрел, там переставил и т.п., да и многие музыкальные творения стали напоминать пятиминутки. То есть удешевление и осовременивание производства снизило качество продукции. И… обленило специалистов. У представителей молодого поколения я заметил одну интересную тенденцию, а именно, они не могут освоить даже стандартные технологии. Хотя, вроде бы, нате вам все на тарелочке… Поэтому те, кто в начале- середине 90-х ждал по несколько часов(!) завершения расчетов, сегодня имеют преимущества.

В высокополигональной анимации мы сейчас сталкиваемся с подобным, то есть времязатратным процессом. Вычисления освещения, отражений, теней, движения камер, сложных текстур и форм, различных ноу-хау в виде анимации частиц (море, облака, взрывы, дым), создания меха и волосяного покрова, реализация физики - все это дело далеко не пяти минут. Впрочем, Maxon Cinema4D по праву занимает первенство среди самых быстросчитающих программ в 3D. Именно за это он любим специалистами. Особые преимущества мы имеем в области расчета теней, где, как многим известно, у Cinema4D используется собственный уникальный алгоритм.

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

Правило

Если вы занимаетесь анимацией в 2D, то вы должны уметь красиво и быстро рисовать. Если в 3D - моделировать. То есть заниматься трехмерной анимацией, не имея опыта моделирования, пожалуй, рановато. Причем под моделированием в данном случае понимаются не только конкретные навыки создания сложных и простых полигональных и сплайн-конструкций и владение соответствующим инструментарием. Нужно качественно освоить мэппинг (нанесение текстурных координат), текстурирование. В рамках Cinema4D также есть уникальный режим BodyPaint, который позволяет рисовать на объемных моделях, его нужно знать.

Если речь идет об анимации персонажей, то для нее производится специальная подготовка. Поэтому необходимо освоить базовые принципы (скелетная анимация и т.п.). Плюс к этому в последнее время очень большое внимание уделяется движению частиц, из чего формируются облака, дым, взрывы, волны и так далее.

В рамках 3D-профессий обычно принято разделять моделера, текстурщика, аниматора, специалиста по визуальным спецэффектам.

Продолжим…

В последнее время у нас бум на геймдев (разработку компьютерных игр), поэтому многие, кто садится за изучение трехмерного моделирования, думает только об этой нише. На самом деле, это не совсем так, потому как 3D активно используется в:

Геймдеве;
. архитектурном дизайне;
. дизайне интерьеров;
. инженерии и производстве;
. создании полиграфической продукции, логотипов и т.п.;
. телевидении;
. кино;
. видео;
. мультипликации.

Если говорить об архитектурном дизайне, дизайне интерьеров, инженерии и производстве, телевидении, кино, видео и мультипликации, то Cinema4D в этих отраслях нет равных. Если кто со мною начнет спорить, значит, он никогда не работал с Maxon Cinema4D. При этом не секрет, что лучшей программой по работе с частицами является Maya, по интеграции с видео - Lightwave3D. Что касается 3ds max он просто стоит на стыке всего и вся, к тому же к нему привыкли.

Геймдев - это практически единственная отрасль, где существует явная потребность в lo-poly (низкополигональном) моделировании, во всех остальных мы работаем в hi-poly. Но при этом следует понимать, что за качество нужно расплачиваться аппаратными ресурсами и временем расчетов. Поэтому… Самым главным моментом в hi-poly является структуризация рабочих процессов. Приведу простейший пример из жизни. Не так давно меня попросили сделать 3D-макет бара с мебелью и т.п. Я сделал полностью чистый макет и без текстурирования отдал его на сверку заказчику, потому как после возвращаться к моделированию будет сложновато. Он все принял, но потом ему не понравилось, как выглядят диваны. Заменять объекты в готовой сцене, когда расставлен свет, загружены текстуры, используется «волшебная палочка» HyperNURBS и все оптимизировано под расчеты данной конкретной сцены, не то что затруднительно, а на самом деле все приходится перебирать заново. Но некоторые заказчики обычно этого не понимают, для них 3D- моделирование ассоциируется с работой в фотошопе. То есть, «нравится – не нравится», «а тут бы я поменял». В итоге «а тут бы я поменял» от заказчика вылилось еще в четыре часа моей работы (при этом считаю, что в Cinema4D я работаю быстро, а сколько бы это заняло у менее опытного специалиста, представить сложно). То есть, hi-poly моделирование - это не фотошоп.

Поэтому все делается поэтапно. Как вы поняли, лично я при создании сцены/анимации со сложной композиционной структурой изначально создаю сцену с ключевыми объектами без текстур, также исключая мелкие детали. После того как все выверено, модели расставлены, сделаны траектории движения (если речь идет об анимации), я приступаю непосредственно к самому текстурированию. Хотя иногда встречаются и сложные задачи, например, если в процессе движения у объекта меняется текстура.
После всего расставляется свет.

На самом деле описано условная структуризация работы, потому как обычно все пляшет от задачи.

Задание со скачущим мячом

Приступим к практике. Пример с мячом может многим показаться классическим, но сделав его полноценно, вы научитесь очень многому.

Итак, опишем наше задание, причем выполнять его будете вы. Для этого хватит знаний, которые были изложены в предыдущих материалах по Maxon Cinema4D. Само задание схематично отображено на рисунке. Не знаю как кто, а ваш покорный слуга привык все изначально описывать на бумаге. . Мяч летит, сталкивается с поверхностью, деформируется, отскакивает от нее и так далее. В процессе движения он вращается вокруг своей оси. . Изначально нам нужно посчитать все на бумаге. То есть, примерное время длительности сцены. Допустим, она будет длиться три секунды. . Создаем новый проект. В его настройках (Edit -> Project Settings) указываем количество кадров. Итак, три секунды… при fps равном 30 мы получаем 90 кадров, которые собственно и указаны по умолчанию.

Создаем объект мяч (подойдет обычная сфера). По умолчанию стоит разбиение на 24 сегмента, подойдет ли это нам? В принципе, нужно отталкиваться от размеров самого объекта. Поскольку, работая с деформацией, мы возможно (!) будем переходить на полигональный уровень (дело в том, что вариантов решения задачи - масса), то чем меньше точек для редактирования, тем удобнее. С другой стороны, чем меньше сегментов, тем больше наш мяч будет похож на многогранник. Более опытный специалист Cinema4D скажет, что потом для сглаживания мы сможем использовать HyperNURBS, но все равно, сглаживание этого модификатора будет распространяться уже на многогранник. Поэтому количество сегментов определяйте исходя из того, что сфера должна оставаться похожей на сферу. Определились. Пока не делаем объект редактируемым Make Editable, то есть не переходим к полигональному представлению.

Переходим в режим интерфейса Animation либо просто в контекстном меню вызываем окно Timeline. Теперь заставим наш мяч вращаться вокруг своей оси. Ставим движок транспортной панели анимации на нулевом кадре. Нажимаем кнопку Record. Этим самым мы запомнили изначальное состояние. После этого переводим движок на 90-й кадр. Высчитываем… допустим, за всю сцену он перекрутится вокруг себя пять раз, а это угол 1800 градусов. Нажимаем инструмент вращения. Обратите внимание на то, что в окне свойств появится управление настройками Modeling Axis/Snap Settings. Для удобства использования инструмента вращения в Snap Settings делаем активным флажок Enable напротив надписи Rotate, указываем количество градусов - это шаг, с которым будут вводиться изменения. По умолчанию стоит 5. Подходит. Теперь, находясь в 90-м кадре, «накручиваем» угол поворота 1800. Нажимаем Record, то есть запоминаем это состояние. Включаем анимацию на воспроизведение - мяч вращается.

Рисуем траекторию движения. Возвращаемся в режим интерфейса Standart. Рисовать траекторию лучше в одном из окон проекций вида слева или справа (Right, Left). Для рисования траектории используйте сплайны (естественно, вы их и будете использовать).

Хотя вы можете использовать вариант с ключевыми кадрами, как это было описано в прошлой части материала, то есть покажете ключевые точки движения, и промежуточные кадры будут рассчитываться автоматически. Но в этом случае вы столкнетесь со сглаживанием кривых (в данном случае самой траектории), в результате чего сформируется нечто, подобное затухающей синусоиде. А нам нужно четко реализовать отскоки. Имея под руками сплайн, все получается гораздо удобнее. Отредактируйте все и вся. Причем в качестве основы сплайна можно использовать обычную прямую линию (не Акима и не Безье), расставив несколько промежуточных точек, чтобы создать ощущение криволинейности (также в контекстном меню есть управление интерполяцией, чем можно воспользоваться). Дело в том, что даже при угловатой траектории движение будет сглаживаться.

Нарисовав траекторию, переходим в режим интерфейса Animation либо просто в контекстном меню вызываем окно Timeline. Там мы увидим два объекта: Sphere и Spline. Выделив Sphere в меню Timeline Objects, выбираем пункт Spline To Position Track (см. прошлый материал). В отрывшемся окне набираем Spline, нажимаем OK. В результате автоматически сформируется движение объекта Sphere по траектории Spline. Смотрим анимацию - объект скачет по траектории и вращается вокруг свой оси. Все хорошо, движемся дальше. Хотя… нет, нужно отрегулировать время. То есть траектория у вас дробится на опорные точки, и само движение идет по ним равномерно. Но при этом полет мяча перед столкновением можно чуть замедлить по времени и т.п. То есть все опорные точки можно перерасставить в Timeline курсором мыши.

Провозившись с траекторией и реализовав правдоподобность движения, приступаем к реализации деформации.

Еще Уолт Дисней описал физику анимации с применением деформаций. Тогда все смотрится более естественно. Причем на самом деле в анимации, как и в кино, приветствуется усиление эффекта. То есть если в обычной жизни объект просто упадет, то в анимации он должен грохнуться, деформироваться, отскочить, разлететься в клочья. Вот тогда будет красивый визуальный эффект. Кстати, иногда я читаю обзоры по играм, в которых авторы требуют от последних реализма, максимально приближенного к жизни. На самом деле, если так произойдет, то играть станет скучно. В играх, анимации и кино действуют единые правила.

Деформацию мы сделаем автоматизированной, переведя нашу сферу в режим редактирования. Но… есть один нюанс. Вернее,отличие. Дело в том, что наш мяч вращается, то есть вращаются и его оси. Если бы он не вращался, то все было бы очень примитивно. То есть, в первой точке приземления нам нужно сплюснуть мяч. В нашем варианте с вращением это не так просто, как может показаться на первый взгляд, ведь оси будут повернуты под определенным углом, а параметр Scale работает только по ним. Поэтому настал черед кропотливой работы. Мы будем изменять месторасположение вершин. Принцип действия такой же, как и с анимацией обычных объектов, только для того, чтобы запоминать движения вершин, граней или полигонов, необходимо включить соответствующий режим. Делается это с помощью кнопки Turn On/Off Point Level Animation for Record (кнопка с точками, расположенная на транспортной панели анимации).

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

Конечно, опытные специалисты скажут: зачем так все усложнять, ведь есть модуль Cloth, а также другие варианты, например, даже без вынесения проекта на редактирование можно использовать модификаторы деформаций, вынеся их параметры в Timeline. Это тоже вариант. Но когда в следующей части мы будем обсуждать анимацию персонажей, реализацию мимики и движения губ, то практика работы с анимацией вершин, полигонов и граней окажется очень полезной. Провозившись с мячом, на таком простом примере вы научитесь в первую очередь пользоваться функциональными возможностями интерфейса, например, по выделению групп и так далее.
Итак, львиную долю работы мы уже проделали. Теперь текстурируем наш мяч.

Дополнительное задание:

Допустим, наш мяч падает в грязную лужу. Соответственно, на нем должно появиться пятно после первого падения, еще одно после второго и так далее. Делается это за счет изменения текстур. Реализуйте.

Камера и свет

Установите естественное освещение (объект Light как Omni). Теперь нам нужно все эффективно показать с движением камеры, нацеленной камеры (объект Camera with Target, см. прошлый материал). Цель… куда ее поместить? Если мы ее совместим с мячом, то камера у нас будет скакать вместе с ним, это неинтересно. Поэтому создаем нулевой объект, который будет прямолинейно двигаться за мячом. В качестве оного может использоваться вообще любой объект, например, сфера или куб, только в его свойствах мы отключаем видимость в рамках визуализации (Basic -> Visible in Renederer -> Off).

Рисуем траектории движения камеры и нулевого объекта цели, как показано на рисунке. Анимируем действия. Сверяемся, а именно, смотрим, чтобы мяч был в центре внимания, при этом камера сначала догоняла его, потом обгоняла и объезжала вокруг. Получается очень красивый эффект.

Но нам нужен дополнительный свет. Ключевой мы можем сделать с помощью объекта Light with Target, и двигаться он будет вместе с камерой по ее же траектории. При этом, если вы хотите сделать динамичную игру света, то источник света может отставать или опережать камеру, а также для нее можно предусмотреть собственную движущуюся цель (по аналогии с той, что мы делали для камеры).

Что касается заполняющего света, который располагается перед объектом, его можно сделать отдельно, и также движущимся.

Контровой свет именно для подсветки объекта сзади (а не для освещения фоновых декораций) в нашем случае может не очень понадобиться, хотя вы можете сделать и его, используя Light with Target, который движется по траектории, например, цели камеры, а цель самого источника - мяч. В общем, вам нужно получить максимально динамичную и понятную анимацию. Не переусердствуйте со светом - каждое действие должно себя оправдывать. Если эффективность применения чего-либо невысока, то это лучше не использовать.

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

Вот такой простой пример с мячом:).

P.S. Изначально я, конечно, хотел вам показать скриншот для иллюстрации примера с дизайном интерьера, но потом подумал, что, возможно, нарушу авторские права на еще нереализованный дизайн. В общем, hi-poly 3D-моделирование - это не фотошоп, и согласования выполнения работы идут по опорным точкам по водопадному принципу работы согласно утвержденному заданию. То есть, если моделирование утверждено на определенном этапе, то его потом нельзя так просто поменять в рамках готовой сцены. К сожалению, некоторые наши дизайнеры, многие из которых страдают «синдромом Бога», непрофессиональны, а уж о том, что они сами могут освоить 3D-пакеты либо представить себе, что это такое вообще - речи не идет.

Кристофер [email protected]

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

Откройте файл со следующим названием „Affe_Animation-Ebene_start.c4d“. Мы снова видим знакомую модель головы, но в этот раз не имеющей анимации в окне редактора программы. На этом занятии мы также произведём назначение необходимых движений для нашей модели. Установите активной компоновку анимации в программе (верхний значок на вертикальной шкале, расположенной на левой половине интерфейса программы). Произведите выделение Ноль объекта „Monkey“ в менеджере объектов, и кликните в основном меню на функцию „Анимация / Добавить слой анимации “. Наш Ноль объект, при этом получит тег движения. При клике на этом теге, в менеджере атрибутов вам будут предоставлены все параметры этого тега, с назначенными слоями анимации (или без них).

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

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

„Добавить“. Если кнопка отсутствует, причиной этого может являться отсутствие выделения для тега движения или Ноль объекта. Измените это посредством клика на объект „Monkey“ в менеджере объектов, или выделите, справа расположенный светло-голубой тег, который выглядит как „M“ из 3 штрихов.

Если вы всё сделали правильно, после клика на кнопке „Добавить“ должен быть добавлен слой „1 “. Он будет автоматически установлен как активный. Вы видите, что ключевые кадры, которые мы назначили предварительно, отсутствуют. Но голова персонажа при воспроизведении анимации перемещается согласно ключевого кадра, который был установлен как последний. Это происходит в связи с тем, что для системы слоёв анимации (в отличие от системы движения), будут добавлены новые ключи для вновь созданного слоя, без удаления при этом назначенных ранее ключей. Они являются не видимыми, так как они принадлежат к стандартному слою 0 , и он является на данном этапе отключенным. Создайте пару новых движений, установите необходимые ключи и воспроизведите анимацию.

Оба слоя будут сейчас смешаны. Вы можете производить добавление любого количества слоёв, и каждый раз при этом будут созданы ключи, для слоя который является на данном этапе актуально активным. После установки ключей для трёх различных слоёв, мы получим три различные анимации, которые будут взаимно смешаны. Если бы вы для слоёв произведи следующее: для слоя 0 назначили бы ключи для движений влево \ вправо; для слоя „1“ движение вверх \ вниз; и для слоя „2 “, движение головы с наклоном вправо \ влево; то результирующая анимация при этом могла бы выглядеть следующим образом.

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

Вы видите, сколько преимуществ имеет система слоёв анимации. Ключевые кадры при этом существуют собранными не в одном „большом слое“, при просмотре которого вы определённо потеряете общий обзор (при наличии комплексной и сложной анимации вполне возможно). В заключении вашей анимации вы можете посредством простого отключения \ включения слоёв, производить редакцию анимации или смешивание (в данном случае модуль HAIR мог быть использован наиболее оптимально).

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

Просто немного экспериментов, терпения и скоро вы определенно заметите, что этот инструмент станет одним из необходимых для вас. Программа CINEMA 4D R11 не устанавливает для ваших идей дополнительных границ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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