Анимация в Cinema4D. Листая страницы

Недавно пришло письмо со следующей просьбой:

«Будучи новичком в области 3Д-моделирования, хотел бы попросить вас написать статью (или хотя бы указать мне на основные моменты для дальнейшего "исследования" необходимых для создания книги функций Cinema 4D) о создании модели книги в Cinema 4D, с возможностью перелистывания страниц и размещения конкретной информации на этих страницах. Поиски в Сети привели меня либо к моделям книг в виде единого блока, либо к замудренным туториалам, тянущим за собой бесконечную цепочку дополнительной литературы для их же понимания. Вся надежда на вас :)».

После уточнения было добавлено:

«…мне нужна 3Д-книга, на страницах которой мне нужно разместить видео (благо интегрировать Cimema 4D с After Effects я умею, и АЕ уже более привычная среда, далее все понятно:). То есть нужно, чтобы открылась обложка, и далее энное количество страниц по одной с небольшой паузой (в принципе, длина пауз роли здесь не играет - это все в АЕ).

В общем, задание понятно.

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

Планы реализации анимации

В данном случае можно применить четыре типа реализации анимации, в зависимости от чего и выстраивать моделирование. Перечислим возможные варианты:
1. Запись изменений положения объектов (или их отдельных точек) по ключевым кадрам.
2. Нанизывание объектов на «кости», то есть скелетная анимация.
3. Использование Morph.
4. Использование динамики и панелей с функциональными характеристиками Cloth (тег и все, что с ним связано).

Загрузили панель, создаем скелет из трех звеньев (костей) для него

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

Моделируем обложку

Открываем Cinema4D, запускаем новый проект.

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

Давайте прикинем размеры, где в основном нас интересует ширина. Для примера я взял вариант 200 м (лицевая, задняя) и 50 м корешок. Затем в рабочую область я помещаю панель Panel с размерами 400 м на 450 м (450 в ширину — обязательно), после чего из главного меню Character открываю пункт Soft IK/Bones, где выбираю Bone. Тем самым я добавил кость. По умолчанию ее длина составляет 200 м, что нам подходит, теперь мы ставим этот объект точно к правому краю панели, а острый угол этой кости должен быть направлен в середину панели. ОК.

Теперь лучше перейти в окно просмотра вида спереди Front (или сзади Rear). В нем мы нажимаем на оранжевую точку острого конца имеющейся кости и, удерживая клавишу Ctrl, вытягиваем из нее дочернюю. Подгоняем ее размеры (50 м), а после из этой дочерней вытягиваем еще одну, длиной 200 м. Все три кости должны быть расположены на одной прямой. Причем в менеджере объектов все отобразится в виде иерархии Bone->Bone->Bone. Так и должно быть. Красные крестики, стоящие напротив каждой кости, обозначают, что те не зафиксированы, то есть не связаны с конкретным объектом. Теперь вы уже можете опробовать свой вариант скелетной анимации, для этого в менеджере объектов перенесите указателем мыши нашу тройку костей в подобъект панели Panel, а затем зайдите в свойства главной кости. Там в закладке Fixation нажмите кнопку Fix with Children (зафиксировать вместе с дочерними). Внешне изменения, наступившие после этой операции, можно увидеть, во-первых, в менеджере объектов — красные крестики поменялись на зеленые птички:). Во-вторых, теперь вы можете опробовать работу созданного скелета, для чего просто выберите инструмент вращения и поменяйте положение одной из двух последних костей. Как результат? Не очень. Дело в том, что в данном случае кости работают в режиме воздействия на некоторые области вокруг них, не более того. Нам же нужно, чтобы воздействие происходило целиком на всю обложку.

Распределяем область влияние с использованием Claude Bonet

Для этого переходим к окну просмотра перспективной проекции (там удобнее), переносим точку просмотра над панелью Panel, в менеджере объектов выбираем одну из костей, после чего из главного меню Character открываем пункт Soft IK/Bones, где находим Claude Bonet. Это специальный и очень удобный инструмент, который позволяет рисовать/указывать области воздействия той или иной кости. В нашем случае мы настраиваем параметр Strength как 100%, а Radius указываем как 20%. После этого (внимание!) подносим указатель мыши к границе действия кости и начинаем аккуратно рисовать линии. В ответ на первое нажатие кнопки мыши объект должен интерактивно откликнуться, то есть он закрасится в черный цвет, а то, что вы начали рисовать — отметится салатовым, то есть как область сильного влияния кости. Если вы выделили первую кость, то обводите зеленым всю область задней части обложки, вторую — выделяете корешок, третью — лицевую поверхность. Если не получается, просто смотрите на результаты и переделывайте так, как нужно.

Воспользовавшись настроенным скелетом, меняем панель на кривую, которую после помещаем в Extrude NURBS — объемная открывающаяся обложка

Все, скелет готов, и при желании вы даже можете оставить имеющуюся панель в качестве основной обложки. Я предусмотрел более объемный вариант, поэтому, оставив уже готовый и настроенный скелет, удалил Panel, потом перешел в окно просмотра спереди, и из сплайновых примитивов добавил Rectangle (прямоугольник), сделав его очень тонким (высота 4 м) со скругленными углами (ширина, естественно, 450 м). Затем в местах соединения костей у корешка книги добавил точки. Это можно сделать как вручную Add Point, так и с помощью ножа Knife — оба варианта доступны в контекстном меню по нажатию правой кнопкой мыши над сплайном.

Затем я сделал скелет дочерним к объекту Spline, зафиксировал его, а сам Spline поместил в модификатор Extrude NURBS. В результате получилась прекрасная объемная обложка, которая может красиво и правильно раскрываться. Рекомендую поступить также потому, что некоторые следующие объекты мы будем строить на связке: «кривые, описывающие сечения + скелет».

Вот такие скелеты…

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

Моделирование массивов внутренних страниц

Эти массивы должны открываться вместе с обложкой и раскладывать книжку на две части. Если мы говорим о толстых книгах, то при их открытии страницы раскладываются с изгибом. Это, конечно, сложный случай, но… вполне реализуемый, причем делается он гораздо проще, чем в варианте с обложкой, а именно, мы создаем два прямоугольных по сечению объекта и для каждого из них делаем скелет. При этом стоит помнить, что если вы используете в качестве основы сплайн-примитив Rectangle, то ему нужно добавить точек, что делается обычно с помощью Knife.

Реализация второго метода — страницы формируются из двух кривых, связанных со скелетами

Внутренние перелистываемые страницы

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

«Рабочий» пример. В данном случае еще нужно настраивать сглаживание изгибов

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

Из простых методов мы, наверное, перечислили все.

Анимация

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

Кристофер http://itcs.3dn.ru


Компьютерная газета. Статья была опубликована в номере 16 за 2011 год в рубрике soft

©1997-2024 Компьютерная газета