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

Ещё один способ правдоподобно разнести на куски объект в Cinema 4D

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

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

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


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

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

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

Пуля разбивает стекло

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

Для начала создаём новую плоскость («Plane») — заготовку будущего стекла, которое нам (вернее, пуле) предстоит разбить вдребезги.

Создаём плоскость («Plane») — заготовку стекла

Предваряя почти наверняка сразу же возникший у вас вопрос «зачем нам не имеющая объёма плоскость, когда можно сразу же создать готовое стекло из куба с нужной толщиной?» — отвечу: немного терпения! Главная хитрость заключается именно в создании стекла, именно с неё мы начинаем, именно её мы сейчас и разберём по шагам подробнейшим образом. На всё остальное в нашей трёхмерной сцене у нас с вами уйдут считанные минуты.

Итак, мы создали плоскость. Задаём в её свойствах «Width Segments» и «Height Segments» значение 1: большее значение этих параметров рассечёт нашу плоскость набором строго перпендикулярных рёбер, что для нашей с вами задачи не подходит — для пущего правдоподобия стекло должно разбиваться на хаотичной формы осколки, а не на аккуратные, идентичные друг другу по форме и размеру параллелепипеды.

Отлично, никаких внутренних рёбер на поверхности плоскости не видно.

Задаём значение 1 для свойств плоскости «Width Segments» и «Height Segments»

Теперь переводим плоскость в редактируемый полигональный объект, переходим в режим редактирования полигонов и выбираем инструмент «Нож». На иллюстрации ниже все три действия для наглядности совмещены — в реальности же инструмент «Нож» становится доступен только после превращения плоскости в полигональный объект.

Превращаем плоскость в полигональный объект и выбираем инструмент «Нож»

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

Режем плоскость на множество неровных полигонов

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

А вот теперь начинаются отличия от предыдущего способа.

Выделяем в режиме редактирования полигонов все сегменты плоскости (быстрее всего сделать это при помощи классической комбинации клавиш Ctrl+A), после чего обращаем взгляд на верхнее меню Cinema 4D, где ищем пункт «Functions», и в выпадающем их этого пункта меню выбираем «Disconnect» («Отделить») — эта функция разъединит между собой выделенные нами сегменты плоскости.

Разъединяем между собой полигоны плоскости

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

Добавляем тег динамики для модели помещения, где будет разбиваться стекло

Однако вернёмся к работе над стеклом.

Как вы помните, наше стекло — всё ещё не имеющая объёма плоскость с нулевой толщиной. Исправим этот недочёт. Нажимаем в верхней панели инструментов кнопку динамических модификаторов и в выпадающем меню выбираем создание объекта «Explosion FX» (проще говоря, модификатора «взрыв»), затем подчиняем модификатор разрезанной на сегменты плоскости.

Добавляем в трёхмерную сцену объект «Explosion FX» для создания объёма стекла

Ага, скажете вы, и в предыдущем уроке мы делали то же самое!

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

Указываем значение 0 для параметра «Time» модификатора «Explosion FX»

А теперь — внимание! — «изюминка» разбираемого способа, его главный секрет.

Верхнее меню Cinema 4D, пункт «MoGraph», в выпадающем меню — пункт «Fracture» («Разломать»).

Создаём объект «Fracture»

Назначение объекта «Fracture» — передавать некоторым функциям Cinema 4D (модификаторам клонов, динамике и т. д.) возможность манипуляции отдельными составляющими одной модели так же, как если бы это были клоны — в том числе полигонами и создаваемыми при помощи модификаторов подобъектами.

Плоскость, изображающая стекло, у нас сейчас состоит из отдельных, не связанных друг с другом полигонов. А толщину этим полигонам придаёт модификатор «Explosion FX». Осталось превратить куски стекла в отдельные объекты. Сделать это несложно — достаточно подчинить объекту «Fracture» созданную нами плоскость с подчинённым ей модификатором «Explosion FX». В завершение присваиваем объекту «Fracture» тег динамики и переходим к настройке параметров.

Подчиняем объекту «Fracture» созданную нами плоскость и присваиваем объекту тег динамики

Перво-наперво выделяем объект «Fracture» в менеджере объектов — чтобы открыть ниже окно его свойств — и во вкладке «Object» указываем для параметра «Mode» («Режим») значение «Explode Segments» («Взорвать сегменты»).

Выбираем режим разделения сегментов объектом «Fracture»

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

Значение «Enabled» во вкладке «Dynamics», разумеется, должно быть активировано (то есть рядом должна стоять галочка). Динамика также должна быть включена — у параметра «Dynamic» должно быть значение «On». Значение параметра «Trigger» («Активация») в этой же вкладке должно выглядеть как «On Collision» («При взаимодействии») — это принципиальное отличие динамики стекла в сцене от динамики пули и помещения, у которых аналогичный параметр должен иметь значение «Immediately» («Немедленно, сразу же»). Во вкладке «Collision» («Пересечение») у параметра «Inherit Tag» («Тэг наследования») должно быть значение «Apply Tag To Children» («Применять к дочерним элементам»). Параметр «Individual Elements» не должен иметь значение «Off» — выберите уровень наследования, если у вас иная глубина иерархии, нежели у автора, а ещё лучше и проще выбрать пункт «All» («Всё»). Для параметра «Shape» («Геометрия») рекомендую выбрать значение «Moving Mesh» — это значение позволяет рассчитать взаимодействие стекла с пулей наиболее точно и корректно для анимации.

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

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

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

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

Однако, несмотря на плотное взаимодействие между собой осколков стекла, всё же возможна ситуация, при которой один из них, если можно так выразиться, не получит свою порцию взаимодействия от соседей — не забывайте, что по законам физики ударная волна распространяется с затуханием, это соблюдено и в Cinema 4D, — и в этом случае осколок повиснет в воздухе.

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

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

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

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

Вместе с тем у модификатора «Fracture» есть и иные применения, которые мы с вами рассмотрим, возможно, в следующих уроках.


Автор

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

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

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


 
 

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