Пожалуйста, переверните страницу
Как перевернуть страницу трехмерной книги?
Тема:
Анимация.
Используемые техники и инструменты:
ЕР Curve Tool (Построение кривой по редактируемым точкам), Loft (Построение поверхности по сечениям).
Первый урок, кстати, самый простой в этой книге. Может быть, задача переворачивания страницы трехмерной книги покажется вам банальной и даже скучной. Я думал точно так же, пока не предложил это задание десяти студентам университета в классе 3D анимации. Я дал им 30 минут на то, чтобы смоделировать лист бумаги и перевернуть его справа налево.
Некоторые студенты уже занимались трехмерной анимацией в свободное время, другие подрабатывали Веб-дизайном. Все они были хорошо знакомы с интерфейсом Мауа. Однако через полчаса никто из них не смог сконструировать изгибающуюся в процессе перелистывания страницу книги.
Лучшим результатом была выпуклая страница, которая проникала в корешок книги, поскольку ее кривизна не менялась во время переворачивания. Некоторые студенты пытались решить проблему с помощью Soft Body Dynamics (Динамики Мягкого Тела), один студент даже использовал Maya Cloth (Maya Ткани); они просто не смогли справиться с задачей, используя базовые приемы моделирования.
Поэтому, если вы все еще считаете этот урок простым, возьмите и сконструируйте страницу на вашем компьютере. И не переворачивайте страницу этой книги, пока не перевернете трехмерную страницу в Мауа.
Для выполнения этой задачи вам не нужно иметь дело со скучным и утомительным выделением и перемещением CV (контрольных вершин) кривых. Не потребуется также Soft Body Dynamics (Динамика Мягкого Тела). Существует несколько возможных решений этой задачи, как и любой другой, но только некоторые из них изящно просты. Для нахождения этого решения сделайте шаг назад. Не думайте о моделировании страницы, сконцентрируйтесь на ядре проблемы, которым является анимация, а не моделирование.
Эта анимация заключается в повороте страницы вокруг центральной оси книги, которая соединяет страницы между собой.
Если вы начнете с использования, скажем, обычной NURBS-плоскости (сокр. от non-uniform, rational B-spline - неоднородный рациональный би-сплайн ( геометрический примитив, широко используемый для описания кривых поверхностей) и попробуете повернуть ее вокруг оси, вам придется иметь дело с контрольными вершинами, для получения нужного изгиба страницы. Я не возражаю против такого способа. Однако знайте, что контрольные точки могут быть использованы только на завершающем этапе моделирования, и, как правило, для получения мелких изменений, но не в основных процедурах. Поэтому выполнение задачи необходимо начинать не с плоскости, а с кривых. Раз уж мы имеем дело с поворотом вокруг оси, давайте создадим 3 кривые, параллельные ей.
В виде сверху создайте 3 параллельные кривые с помощью инструмента ЕР Curve Tool (EP Кривая) (рис. 1.1). Третья кривая должна лежать на оси Z. Линия, по которой соединяются страницы книги, является также нашей осью вращения.
Примените инструмент Loft (Построение поверхности по сечениям) ко всем трем кривым (рис. 1.2).
Сделайте невидимой третью кривую (корешок книги).
Задайте длительность анимации 200 кадров.
Заметьте, что опорные точки (pivot) всех кривых должны находиться в центре сцены, который также является центром нашей книги. Вы можете проверить это следующим образом: выделите кривые, затем перейдите в режим вращения или перемещения. Если опорная точка вращения находится не в центре, то, нажав клавишу Insert, переместите ее туда.
Рис. 1.1.
С помощью инструмента ЕР Curve Tool NURBS-кривые можно создать всего лишь двумя щелчками мыши
Рис. 1.2.
Три кривые для одной страницы книги
Протестировать полученную страницу можно путем одновременного вращения первых двух кривых (но не лофтированной поверхности!) вокруг оси Z.
Вернитесь в начало временной шкалы и задайте ключевой кадр для вращения вокруг оси Z для первых двух кривых. Для этого нажмите правой кнопкой
мыши на Rotate Z (Вращение по оси Z) в окне Channel Box (Окно Каналов) и выберите Key Selected (Установить ключевой кадр для выделенных атрибутов) (рис. 1.3).
Рис. 1.3.
Два ключевых кадра для кривых заставляют страницу переворачиваться
Перейдите в конец анимации, поверните обе кривые вокруг оси Z на -180° и установите еще один ключевой кадр.
При воспроизведении анимации движение страницы может показаться немного замедленным, однако результат получен: страница переворачивается (рис. 1.4).
Рис. 1.4.
В перспективном окне мы видим, как переворачивается страница, хотя поворачиваются только кривые
Теперь мы придадим поверхности специфичный изгиб страницы книги. Но здесь есть один нюанс. Обычно мы пользуемся терминами перемещения («Я поднимаю бокал к своему рту» вместо «Я вращаю бокал вокруг оси своего локтя»), поэтому существует соблазн переместить вверх среднюю кривую, вместо того чтобы повернуть ее (рис. 1.5).
Рис. 1.5.
При выполнении поворота перемещение кривых недопустимо
1. Перейдите в начало анимации.
2. Выделите среднюю кривую и поворачивайте ее вокруг оси Z, пока не получите нужного изгиба поверхности.
3. Установите ключевой кадр для Rotate Z (Вращение по оси Z).
4. Идите в конец анимации.
5. Поверните кривую, чтобы получить красивый изгиб в обратном направлении.
6. Установите ключ для Rotate Z (Вращение по оси Z).
Лучше всего поворот и изгиб страницы можно увидеть в окне Вид Перспективы (рис. 1.6).
Таким образом, требуемый переворот страницы мы получили простым вращением нескольких объектов, не переместив ни один из них. Теперь можем добавить . различные детали в анимацию: сначала на уровне вращения кривой и синхронизации (например, пусть внешняя кривая начинает поворот позже, чем средняя), затем на уровне контрольных вершин (можно сделать страницу с загнутым уголком или создать впечатление невидимой руки, сминающей уголок страницы).
Контрольные вершины кривых поворачивать нельзя, их можно только перемещать. Можно, однако, объединить контрольные вершины в Кластеры (команду Create Cluster (Создать Кластер) вы найдете в секции анимации (клавиша F2) в меню Deform (Деформировать).
Кластеры контрольных вершин имеют опорные точки, которые можно перемещать куда угодно.
Рис. 1.6.
Чтобы согнуть бумагу, необходимо повернуть среднюю кривую
Теперь у вас есть страница, но где же сама книга? Начнем с копирования кривых в их начальной и конечной позициях. Создайте пару лофтированных плоских поверхностей - и книга закончена в считанные минуты (рис. 1.7). Если страница будет видна зрителю с обеих сторон, стоит дополнительно приложить усилия для ее текстурирования. Конечно, вы можете стандартным способом наложить одинаковую текстуру сверху и снизу. Но существует также простой способ, которым можно по-разному текстурировать обе стороны NURBS-поверхности. Этот способ можно найти в документации в Интернете, введя для поиска «double-sided shading» (двусторонний шейдинг).
Рис. 1.7.
Две кривые, каждая с двумя ключевыми кадрами... и страница красиво переворачивается
А теперь кое-что новенькое. Приходилось ли вам перетаскивать свет из окна Outliner (Схема сцены) в Окно Перспективы, используя среднюю кнопку мыши?
Живая камера
Как встряхнуть камеру, движущуюся слишком плавно?
Тема:
Анимация.
Используемые техники и материалы:
Create Clip (Создать Клип), Trax Editor (Редактор Дорожек).
Нелинейная анимация - это не более чем смещение по времени, изменение длительности и микширование анимационных данных: точно так же, как мы работаем с видео в любой монтажной системе. Совсем недавно в Мауа была добавлена техника Trax Editor (Редактор Дорожек) - новый великолепный инструмент анимации, который во многом заменяет собой Graph Editor (Редактор Анимационных Кривых) и Dope Sheet (Монтажный стол).
Dope Sheet (Монтажный стол) идеален для перемещения ключевых кадров во времени. Graph Editor (Редактор Анимационных Кривых) незаменим для управления объектами до и после установки ключевых кадров. Но когда предварительно заданные, созданные ключевые кадры нужно передвинуть либо объединить между собой, наилучшей техникой является нелинейная анимация с помощью Редактора Дорожек (Trax Editor).
Представьте, что вы только что создали анимацию плавного движения камеры, провели много времени, скрупулезно настраивая касательные ключевых кадров, для того чтобы камера двигалась быстрее. Затем приходит ваш клиент, говорит, что только что он видел один из тех экспериментальных фильмов «Dogma» из Дании, и просит вас сделать движение камеры немного грубее. Вместо безукоризненно плавного, типичного для трехмерной графики движения ему хочется видеть подрагивающую съемку, которая в целом повторяет путь движения вашей камеры, но выглядит, скажем, немного более импровизированно.
Раньше вам бы пришлось открыть Graph Editor (Редактор Анимационных Кривых) и добавить дополнительные ключевые кадры для встряхивания камеры во время движения (рис. 2.1). Для того чтобы это получилось качественно, вам бы пришлось приложить массу усилий. Кроме того, работа оказалась бы неблагодарной: добавляя новые ключевые кадры в готовую анимацию, вы бы свели на нет плавность движений камеры. А если по окончании всего этого клиент пожаловался бы, что полученный результат чересчур уж в стиле Dogma, вам пришлось бы переделывать все с самого начала.
Если вы начнете с использования, скажем, обычной NURBS-плоскости (сокр. от non-uniform, rational B-spline - неоднородный рациональный би-сплайн ( геометрический примитив, широко используемый для описания кривых поверхностей) и попробуете повернуть ее вокруг оси, вам придется иметь дело с контрольными вершинами, для получения нужного изгиба страницы. Я не возражаю против такого способа. Однако знайте, что контрольные точки могут быть использованы только на завершающем этапе моделирования, и, как правило, для получения мелких изменений, но не в основных процедурах. Поэтому выполнение задачи необходимо начинать не с плоскости, а с кривых. Раз уж мы имеем дело с поворотом вокруг оси, давайте создадим 3 кривые, параллельные ей.
В виде сверху создайте 3 параллельные кривые с помощью инструмента ЕР Curve Tool (EP Кривая) (рис. 1.1). Третья кривая должна лежать на оси Z. Линия, по которой соединяются страницы книги, является также нашей осью вращения.
Примените инструмент Loft (Построение поверхности по сечениям) ко всем трем кривым (рис. 1.2).
Сделайте невидимой третью кривую (корешок книги).
Задайте длительность анимации 200 кадров.
Заметьте, что опорные точки (pivot) всех кривых должны находиться в центре сцены, который также является центром нашей книги. Вы можете проверить это следующим образом: выделите кривые, затем перейдите в режим вращения или перемещения. Если опорная точка вращения находится не в центре, то, нажав клавишу Insert, переместите ее туда.
Рис. 1.1.
С помощью инструмента ЕР Curve Tool NURBS-кривые можно создать всего лишь двумя щелчками мыши
Рис. 1.2.
Три кривые для одной страницы книги
Протестировать полученную страницу можно путем одновременного вращения первых двух кривых (но не лофтированной поверхности!) вокруг оси Z.
Вернитесь в начало временной шкалы и задайте ключевой кадр для вращения вокруг оси Z для первых двух кривых. Для этого нажмите правой кнопкой
мыши на Rotate Z (Вращение по оси Z) в окне Channel Box (Окно Каналов) и выберите Key Selected (Установить ключевой кадр для выделенных атрибутов) (рис. 1.3).
Рис. 1.3.
Два ключевых кадра для кривых заставляют страницу переворачиваться
Перейдите в конец анимации, поверните обе кривые вокруг оси Z на -180° и установите еще один ключевой кадр.
При воспроизведении анимации движение страницы может показаться немного замедленным, однако результат получен: страница переворачивается (рис. 1.4).
Рис. 1.4.
В перспективном окне мы видим, как переворачивается страница, хотя поворачиваются только кривые
Теперь мы придадим поверхности специфичный изгиб страницы книги. Но здесь есть один нюанс. Обычно мы пользуемся терминами перемещения («Я поднимаю бокал к своему рту» вместо «Я вращаю бокал вокруг оси своего локтя»), поэтому существует соблазн переместить вверх среднюю кривую, вместо того чтобы повернуть ее (рис. 1.5).
Рис. 1.5.
При выполнении поворота перемещение кривых недопустимо
1. Перейдите в начало анимации.
2. Выделите среднюю кривую и поворачивайте ее вокруг оси Z, пока не получите нужного изгиба поверхности.
3. Установите ключевой кадр для Rotate Z (Вращение по оси Z).
4. Идите в конец анимации.
5. Поверните кривую, чтобы получить красивый изгиб в обратном направлении.
6. Установите ключ для Rotate Z (Вращение по оси Z).
Лучше всего поворот и изгиб страницы можно увидеть в окне Вид Перспективы (рис. 1.6).
Таким образом, требуемый переворот страницы мы получили простым вращением нескольких объектов, не переместив ни один из них. Теперь можем добавить . различные детали в анимацию: сначала на уровне вращения кривой и синхронизации (например, пусть внешняя кривая начинает поворот позже, чем средняя), затем на уровне контрольных вершин (можно сделать страницу с загнутым уголком или создать впечатление невидимой руки, сминающей уголок страницы).
Контрольные вершины кривых поворачивать нельзя, их можно только перемещать. Можно, однако, объединить контрольные вершины в Кластеры (команду Create Cluster (Создать Кластер) вы найдете в секции анимации (клавиша F2) в меню Deform (Деформировать).
Кластеры контрольных вершин имеют опорные точки, которые можно перемещать куда угодно.
Рис. 1.6.
Чтобы согнуть бумагу, необходимо повернуть среднюю кривую
Теперь у вас есть страница, но где же сама книга? Начнем с копирования кривых в их начальной и конечной позициях. Создайте пару лофтированных плоских поверхностей - и книга закончена в считанные минуты (рис. 1.7). Если страница будет видна зрителю с обеих сторон, стоит дополнительно приложить усилия для ее текстурирования. Конечно, вы можете стандартным способом наложить одинаковую текстуру сверху и снизу. Но существует также простой способ, которым можно по-разному текстурировать обе стороны NURBS-поверхности. Этот способ можно найти в документации в Интернете, введя для поиска «double-sided shading» (двусторонний шейдинг).
Рис. 1.7.
Две кривые, каждая с двумя ключевыми кадрами... и страница красиво переворачивается
А теперь кое-что новенькое. Приходилось ли вам перетаскивать свет из окна Outliner (Схема сцены) в Окно Перспективы, используя среднюю кнопку мыши?
Забавы со скручиванием
Как изменить куб до неузнаваемости?
Тема:
Анимация, моделирование.
Используемые техники и инструменты:
Nonlinear Deformers (Нелинейные Деформаторы) - Bend (Изгиб), Flare (Выпуклость), Sine (Синусоидальная деформация), Squash (Сплющивание), Twist (Скручивание), Wave (Волна).
Примером линейного деформирования может быть Scale (Масштабирование) объекта, например по оси X. В компьютерной анимации эта техника используется постоянно, когда нужно, скажем, сделать дом уже или выше или сферу больше. В нелинейной деформации мы не манипулируем объектом равномерно вдоль одной из осей. Нелинейная деформация может использоваться как в анимации, так и в моделировании. С помощью деформатора Bend (Изгиб) вы можете, к примеру, легко создать анимацию объекта, огибающего угол. Вам не придется прикасаться ни к единой контрольной вершине (CV). Если вам захочется расширить предварительно созданный объект, например в середине, то просто используйте деформатор Squash (Сплющивание).
Все эти ценные инструменты вы найдете в меню анимации (клавиша F2) в секции «Nonlinear» (Нелинейные). В действительности поведение некоторых других деформаторов, таких, как, например, деформатор Sculpt (Формирование . рельефа), тоже нелинейно, но они не включены в данный раздел меню. Мы попробуем лишь некоторые из них, используя шесть основных нелинейных деформаторов, для того чтобы сильно видоизменить обычный полигональный куб. Перед тем как начать, давайте отделим меню нелинейных деформаторов, для того чтобы они всегда были у нас под рукой. Для этого вам потребуется главное меню. Если оно отсутствует на вашем экране, выберите Hotbox Controls / Window Options / Show Main Menubar (Управление инструментом оперативного доступа к элементам интерфейса / Настройки Окна / Показать Главное Меню). Теперь переключитесь на меню анимации (клавиша F2), в меню Deform (Деформировать) отделите выпадающее подменю Create Nonlinear (Создать Нелинейные). Для этого щелкните на их разделительные линии, как показано на рис. 3.1.
Передвиньте маленькое выпадающее окно в угол окна Perspective View (Вид Перспективы). Теперь оно будет поверх этого окна. Окно Main Menubar (Главное Меню) вам больше не нужно, уберите его, если хотите.
Рис. 3.1.
Отделение подменю нелинейных деформаторов
Итак, у вас под рукой шесть инструментов деформации. Сначала мы создадим куб и обогнем его вокруг угла, используя деформатор Bend (Изгиб).
Создайте полигональный куб, увеличьте его размеры до 10 единиц во всех трех направлениях и задайте число разбиений, по 10 в каждом направлении.
Создайте анимацию движения куба таким образом, чтобы в кадре Q он начинал движение с точки Х= -35 слева, а заканчивал через 200 кадров в точке Х= 35 справа.
Идите в кадр 20. Выделите куб и в плавающем меню выберите Bend (Изгиб) (рис. 3.2).
Как и многие инструменты деформации, Изгиб не показывает вначале никаких изменений, но это не значит, что он не действует. Взгляните на его работу в режиме Wireframe mode (режим Каркас). Деформатор находится внутри куба.
В секции Input (Входные Данные) окна Channel Box (Окно Каналов) откройте bend 1 и поменяйте его Curvature (Кривизна) с 0 на 1.
Нажмите клавишу t, и вы увидите 3 маленьких манипулятора для bend 1, как показано на рис. 3.3. Поиграйте с ними.
Поверните bend 1 на 90 градусов вокруг оси Z.
Рис. 3.2.
Куб подвергается воздействию деформатора Bend (Изгиб). Плавающее окошко справа - это меню нелинейных деформаторов
Рис. 3.3.
Три манипулятора заставляют куб изгибаться относительно угла
Когда вы воспроизведете анимацию, куб изогнется по кривой, касательной пути его движения. После того как ваш куб обогнет угол, передвиньте манипулятор bend 1 так, чтобы куб двигался вдоль оси X, покидая область действия деформатора. Для этого вы также можете просто уменьшить значение Low Bound (Нижняя Граница) в окне Channel Box (Окно Каналов) до 0. Давайте попробуем другой деформатор.
Идите в кадр, где ваш куб оставил зону действия bend 1, и примените к нему деформатор Flare (Выпуклость).
Вращайте flare 1 на 90 градусов вокруг оси Z.
Щелкните мышкой на flare 1 в окне Channel Box (Окно Каналов), нажмите клавишу t и подвигайте семью манипуляторами деформатора (рис. 3.4).
Рис. 3.4.
Деформатор Flare (Выпуклость) сужает куб в центре
Как видите, Flare (Выпуклость) делает куб уже или шире на входе или выходе из области влияния (Start and End Flare (Начальное и Конечное Значения Выпуклости). Кроме того, он может добавить вогнутость или выпуклость (Curve (Кривая) в любом месте в пределах этой области. Low and High Bound (Нижняя и Верхняя Границы) отвечают за то, как далеко распространяется влияние деформатора.
Просмотрите полученную анимацию, чтобы увидеть, как куб проходит сначала через bend 1, а потом через flare 1. В окне Channel Box (Окно Каналов) установите значения Start and End Flare (Начальное и Конечное Значения Выпуклости) на 1. Так куб примет первоначальный вид при входе и выходе из деформатора. Задайте для Curve (Кривая) небольшое отрицательное значение, например -0,5, чтобы сузить куб в середине области влияния деформатора Flare (Выпуклость).
После того как куб выйдет из flare 1, прямо перед серединой анимации примените к нему деформатор Sine (Синусоидальная Деформация) (рис. 3.5).
Как и раньше, поверните sinel вокруг оси Z на 90 градусов и увеличьте амплитуду с 0 до 0,5.
Поиграйте с манипуляторами sinel.
Длина волны не только определяет частоту появления .волн, но также и то, каким наш куб входит и выходит из области действия деформатора. Длина волны 0,5 или 3,1 не кратна количеству полных колебаний, а следовательно, изменяет форму куба до и после деформации. Установите Wavelength (Длину Волны) sinel на целое число, например 1 или 2.
Рис. 3.5.
Синусоидальная деформация делает куб волнистым в одной плоскости
После того как куб выйдет из зоны влияния sinel, примените к нему деформатор Squash (Сплющивание).
Поверните деформатор на 90 градусов вокруг оси Z так, чтобы область его влияния оказалась направлена вдоль оси движения куба вдоль всего анимационного пути.
Самый важный параметр эффекта Squash (Сплющивание) - это его сила, или Factor (Множитель). В отличие от Flare (Выпуклость), которое сужает или расширяет определенные области объекта, не затрагивая остальные его .части, Squash (Сплющивание) старается сохранить первоначальный объем. Другими словами, когда Squash (Сплющивание) сжимает середину объекта, он увеличивает в размере внешние области и наоборот. Классическим примером может быть прыгающий мяч, который при соприкосновении с землей сжимается по вертикали и одновременно становится шире в горизонтальной плоскости.
Отрицательный фактор Сжатия влечет эффект утолщения, что делает весь куб короче (рис. 3.6). Если вы выберете фактор сжатия 7, куб сожмется и вытянется одновременно. Start and End Smoothness (Начальное и Конечное Значения Сглаживания) дают вам возможность сделать эффект более или менее мягким. При значении 7 этот параметр позволит эффекту начать более мягко. Когда вас удовляетворят параметры Squash (Сплющивания), продвиньтесь немного вперед по временной шкале, и мы попробуем следующий деформатор.
Рис. З.6.
Сплющивание утолщает и укорачивает куб одновременно
Примените деформатор Twist (Скручивание) к кубу.
Поверните его на 90 градусов вокруг оси Z.
Twist (Скручивание) - это первый деформатор, который вращает непосредственно куб. Главными манипуляторами такого вращения являются желтые окружности, которые позволяют определить величину поворота в начале и конце области влияния деформатора (см. рис. 3.7). Заметьте, что значения Start and End Angle (Начальное и Конечное Значения Угла) влияют на куб до того, как он войдет, и после того, как выйдет из деформатора Twist (Скручивание). Если куб входит со значением угла, отличным от 0 (в нашем случае это значение установлено для End Angle (Конечный Угол), все предыдущие выполненные деформации будут повернуты на этот угол. Low and High Bound (Нижняя и Верхняя Границы), как и раньше, определяют пределы действия эффекта. Высокое значение Envelope (Оболочка) не изменяет значения параметров деформатора, но расширяет его область действия.
Это справедливо для всех деформаторов.
В конце анимации примените к кубу деформатор Wave (Волна).
Деформатор Wave (Волна) не нужно вращать. Его эффект виден сразу, если увеличить значение Amplitude (Амплитуда) wave 1 с 0 до 1 (см. рис. 3.8). Это очень чувствительный параметр, поэтому значение 0,2 может быть гораздо привлекательнее больших значений. Использование манипуляторов здесь также очень удобно. Заметьте разницу между Sine (Синусоидальная Деформация) и Wave (Волна): Sine (Синусоидальная Деформация) - это плоская волна и колебания происходят по одному выбранному направлению, a Wave (Волна) - это концентрические волны и колебания происходят в двух направлениях.
Рис. 3.7.
С помощью манипуляторов деформатора Скручивание вы можете отрегулировать параметры внутреннего вращения куба
Рис. 3.8.
Волна в двух плоскостях и ее деформированная жертва показаны в режиме Х-гау shading mode (Рентгеновское Просвечивание)
Если вы выберете большее разрешение для куба, вы сможете использовать деформаторы при анимации и моделировании на завершающем этапе. Например, Twist (Скручивание) можно использовать для создания винта. С помощью Wave (Волна) можно создавать анимации водных поверхностей, к примеру океана. Заметьте, в работе над одним объектом вы можете применять столько деформаторов, сколько захотите. Попробуйте соединить несколько деформаторов Wave (Волна) для создания ряби на больших волнах. Или примените деформатор Wave (Волна) там, где уже работает Twist (Скручивание), и вы получите сильное скручивание с еле уловимым эффектом волн (рис. 3.9).
Рис. 3.9.
Шесть потрясающих деформаций обычного куба
Кроме того, вместо перемещения куба вы можете создавать анимацию самих деформаторов - не только их позиций, но и других параметров, например затухание деформации при входе и выходе из зоны эффекта. Воспроизведите анимацию и остановите ее на том эффекте, который вам больше всего нравится. Здесь же сдублируйте куб и создайте Blend Shapes (Плавная модификация поверхности) из этих деформаций.С помощью инструмента Blend Shape tool вы можете интерактивно комбинировать различные стадии деформации объекта, используя (и, конечно, задавая ключи) Blend Shape Sliders (Ползунки Blend Shape). Представьте теперь эту процедуру в анимации персонажей!
(Одно из наиболее важных применений Blend Shape - это анимация мимики лица. - Примеч. ред.)
А теперь кое-что новенькое. Знаете ли вы, что получится, если щелкнуть правой кнопкой мыши во временной шкале?
Зззвоним в звонок
Как, нажав кнопку звонка, заставить его звенеть?
Тема:
Анимация.
Используемые техники и инструменты:
NURBS Modeling (NURBS-Моделирование), Random and If-Then Expressions (Случайные и Условные Выражения), Set Driven Key (Установить Управляемый Ключ), Channel Control (Управление Каналами).
Мауа, конечно, не воспроизводит звенящие звуки, но мы можем использовать ее возможности для создания ударника звонка, который будет вибрировать, ударяя по звонку. Мы также можем сконструировать кнопку звонка, нажатие которой заставит ударник вибрировать. Этот урок посвящен анимации и зависимостям.
Он также о работе аниматора в команде, то есть подготовке сцены таким образом, чтобы она была абсолютно понятна коллеге, специализирующемуся на анимации персонажей. Мы также примем меры к сокращению, а именно спрячем все лишнее в сцене, что может отвлечь аниматора, работающего с 3D персонажем, который нажмет кнопку звонка, чтобы войти в дом.
Сначала смоделируем четыре объекта: непосредственно звонок, ударник для звонка, кнопку и рамку для кнопки.
Вы можете использовать NURBS-примитивы, поскольку этот урок не о сложном моделировании. Вся геометрия на рис. 4.1 была создана именно так. Основа звонка - это верхняя часть NURBS-сферы, немного сверху приплюснутая. Ударник состоит из NURBS-цилиндра, поверхность которого создана инструментом Square Tool (Квадрат) и Loft (Построение поверхности по сечениям) для создания объема [Ударник состоит из нескольких поверхностей. Во-первых, «пятачок» - это просто NURBS-цилиндр. Во-вторых, «ножка», которую автор строил следующим образом: сдублирована крайняя изопарма цилиндра, разрезана пополам. Получились две полуокружности. Одна полуокружность отодвинута. Далее концы раздвинутых полуокружностей соединены отрезками. По полученным четырем кривым построена боковая часть «ножки» с помощью Square Tool. Затем все четыре кривые были отдублированы и немного сдвинуты «по толщине». К «новым» четырем кривым вновь применяется Square Tool для получения второй боковой поверхности «ножки».
Затем устраивается Loft между соответствующими парами кривых для получения толщины этой самой «ножки». - Примеч. ред. ]. Все части объекта были сгруппированы, для того чтобы не терять контакта при вращении. Рамка кнопки звонка была создана путем применения инструмента Round Tool (Округление) к NURBS-кубу. Сама кнопка - это отмасштабированная аналогично звонку половина NURBS-сферы. Давайте сначала поработаем над движением ударника.
Рис. 4.1.
Набор объектов: звенящее устройство со звонком, ударником, кнопкой и ее рамкой
Выделите ударник (в действительности группу поверхностей, из которых он состоит) и в режиме Insert mode (Режим редактирования опорной точки) передвиньте его опорную точку назад (см. рис. 4.2).
Рис. 4.2.
Опорная точка ударника сдвинута назад
В окне Channel Box (Окно Каналов) нажмите на Rotate Y (Вращение по оси Y) и, используя контекстное меню, правой кнопкой мыши откройте Expression Editor (Редактор Выражений) (рис. 4.3).
Рис. 4.3.
Выражение со случайной функцией заставляет ударник вращаться между -0,5 и 0,5 градусами
Наберите следующее выражение в пустом поле внизу окна и замените ringerG именем, которое вы выбрали для своего ударника:
ringerG.rotateY = rand(-0,5, 0,5);
Активизируйте выражение, нажав Create (Создать).
Ударник теперь вращается случайным образом между минус полградуса и плюс полградуса относительно своей вертикальной оси. Если вибрация кажется вам слишком слабой, увеличьте значение аргументов случайной функции rand.
Если бы мы могли услышать, звонок звенел бы уже без остановки. Но мы бы хотели, чтобы он звенел только тогда, когда нажимается кнопка. Чтобы достичь этого, мы должны будем создать зависимость между позицией кнопки и включенным / выключенным состоянием случайного выражения. Прежде всего, нам нужен новый атрибут для состояний кнопки звонка on (включена) и off (выключена).
Откройте Attribute Editor (Редактор Атрибутов) для кнопки и выполните команду Attributes / Add Attribute (Атрибуты / Добавить Атрибут).
Так вы откроете окно создания новых атрибутов объекта (рис. 4.4).
Рис. 4.4.
Кнопка приобретает новый атрибут для состояний on / off
Дайте атрибуту имя, например rrringTheBell, установите его Data Type (Тип Данных) на Boolean (Булевские). (Они принимают значения 0 или 1, включено или выключено - третьего не дано.) Data Type (Тип Данных) Integer (Целые) включает все целые числа и, таким образом, дает нам слишком большой выбор. Нажмите ОК для добавления нового атрибута.
Вы найдете новый атрибут прямо под атрибутом Object's Visibility (Видимость Объекта) в окне Channel Box (Окно Каналов). Сейчас его состояние установлено на off (выключено). Но даже если мы изменим его на on (включено), ничего не изменится. Атрибут должен знать, что делать с этим on (включено). Мы поручим инструменту Set Driven Key (Установить Управляемый Ключ) управлять связью между новым атрибутом rrringTheBell и позицией кнопки. Инструмент Set Driven Key (Установить Управляемый Ключ) заставит новый атрибут посылать команду, которая вызовет нажатие кнопки.
Откройте окно Set Driven Key (Установить Управляемый Ключ). Для этого нажмите клавишу F2, выберите Animate / Set Driven Key / Set Option Box (Создать Анимацию / Установить Управляемый Ключ / Установить Окно Настроек).
Загрузите атрибуты кнопки в верхнее и нижнее поля окна (Drivers and Driven (Управляющий и Управляемый) (рис. 4.5).
В верхнем правом поле выделите новый атрибут rrringTheBell.
В нижнем правом поле выделите канал перемещения, который отвечает за движение кнопки в нажатую позицию. В нашем примере это Translate Y (Значение перемещения по оси Y).
Рис. 4.5.
Инструмент Set Driven Key (Установить Управляемый Ключ) создает зависимость между позицией кнопки (в данном случае значение ее перемещения по оси Y (Translate Y) и значениями on / off нового атрибута звонка (rrring The Bell). В отличие от обычных ключевых кадров инструмент Set Driven Key (Установить Управляемый Ключ) создает связь не между атрибутами и временем, а между атрибутами и атрибутами
Убедитесь, что кнопка находится в ненажатом состоянии, а новый атрибут rrringTheBell установлен на off (выключено).
В окне Set Driven Key (Установить Управляемый Ключ) нажмите Key (Ключ). С этого момента всегда, когда вы будете устанавливать значение нового атрибута в off (выключено), кнопка сама примет ненажатое положение.
Приведите кнопку в нажатое положение.
В окне Channel Box (Окно Каналов) наберите слово on в поле нового атрибута.
В окне Set Driven Key (Установить Управляемый Ключ) нажмите Key (Ключ) и закройте окно.
Когда в окне Channel Box (Окно Каналов) вы поменяете атрибут звонка с on на off, кнопка звонка вернется в выключенное положение. Теперь давайте займемся самим ударником.
Откройте Expression Editor (Редактор Выражений) для ударника. Добавьте к перед ранее созданным случайным выражением строки, содержащие условный оператор if (замените имена атрибутов на ваши собственные, если это нужно):
if (button.rringTheBell == 1) ringerG.rotateY = rand (-0,5, 0,5);
Нажмите на Edit (Редактирование) для сохранения изменений.
Вот что новая запись означает: если атрибут rrringTheBell принимает значение on (включено) (1 как противоположность 0), звонок зазвенит. Из этого следует, что, если rrringTheBell принимает значение off (выключено), ничего не произойдет. Новый атрибут не только управляет кнопкой, но и позволяет вам звонить в дверной звонок.
Однако, если вы в таком виде передадите сцену коллеге, который будет создавать персонаж, звонящий в звонок, чтобы попасть в дом, она для него будет слишком сложной. Вашему коллеге придется анализировать внутреннюю структуру сцены, изучать взаимодействие Expressions (Выражений) и инструмента Set Driven Key (Установить Управляемый Ключ) с объектами и их работу и т. д. Мы сделаем так, чтобы следующий аниматор мог сфокусировать внимание только на одном объекте - красной кнопке и ее атрибуте rrringTheBell. Окно для наведения порядка в Channel Box (Окно Каналов) называется Channel Control (Управление Каналами).
Выберите Window / General Editors (Окно / Основные Редакторы), для того чтобы открыть окно Channel Control (Управление Каналами) (рис. 4.6).
Рис. 4.6.
Левая сторона окна Channel Control (Управление Каналами) содержит список всех атрибутов кнопки, на которые могут быть поставлены ключи (keyable attributes). Все атрибуты, кроме одного (нового), выделены и будут перемещены в правую часть окна. Они впоследствии исчезнут из окна Channel Box (Окно Каналов)
В левом поле выделите все входные данные, кроме того, которое относится к управлению звонком.
Нажмите Move (Переместить) для перемещения выделенных атрибутов в секцию Non Keyable окна и таким образом удалите их из окна Channel Box (Окно Каналов).
Вы можете спрятать атрибуты всех остальных объектов сцены тем же способом. Ваш коллега, открыв сцену, выделит кнопку и увидит только один атрибут, на который можно поставить ключ, имеющий значение для персонажа, который нажмет на кнопку своим большим пальцем (рис. 4.7).
Рис. 4.7.
После очищения только один атрибут остался в окне Channel Box (Окно Каналов). Это все, что нужно видеть аниматору, для того чтобы дать возможность персонажу позвонить в звонок
А теперь кое-что новенькое. Приходилось ли вам применять Incremental Save? [Сохранение с автоматическим добавлением возрастающих номеров к имени сохраняемого файла. - Примеч. ред.] Может предотвратить кучу неприятностей!
Куда он делся!
Как заставить персонаж со свистом умчаться, как в мультфильме?
Тема:
Анимация персонажей.
Используемые техники и инструменты:
Jiggle Deformer (Деформатор Покачивание), Graph Editor (Редактор Анимационных Кривых), Motion Blur (Размытость при движении).
Одной из ключевых особенностей анимации персонажей является подготовка действия (anticipation). Каждый шаг в реальной жизни предваряется фазой подготовки к нему: перед тем как занести ногу вперед, мы слегка отводим ее назад - сильно перед тем, как ударить по мячу, слабее, когда прогуливаемся по парку, но все же мы это делаем. Отведение ноги назад, то есть движение в обратном направлении, и есть подготовка действия. У нее есть несколько особенностей, которые мы изучим в этом уроке, используя простой объект. Полученные результаты можно применять даже при изображении самого незаметного движения, для того чтобы обогатить личность сложного трехмерного персонажа. Мультипликаторы всегда знали об этой подготовке действия. Когда Дональд Дак проносится справа налево, мы видим, как он медленно отклоняется назад, перед тем как исчезнуть из виду за доли секунды.
В этом уроке мы используем три очень полезных инструмента для создания эффекта подготовки действия: Jiggle Deformer (Деформатор Покачивание) (новый инструмент Мауа 4), который заставит персонаж слегка покачиваться назад и вперед по инерции движения; Graph Editor (Редактор Анимационных Кривых) позволит нам настраивать касательные ключевых кадров и рендеринг с опцией Motion Blur (Размытость при движении) позволит визуально усилить ощущение скорости.
Создайте NURBS-конус. В окне Channel Box (Окно Каналов) откройте секцию Inputs (Входные Данные) и увеличьте Radius (Радиус) конуса с 1 до 4, а его Spans (Число секций по вертикали) установите на 4.
Выделите три средние секции конуса и слегка сузьте их по направлению к центральной оси (см. рис. 5.1). Не снимайте выделение.
Переключитесь на меню анимации (клавиша F2). Выберите Animate / Create Jiggle Deformer (Создать Анимацию / Создать Деформатор Покачивание), для того чтобы применить деформатор к выделенным сегментам конуса.
Рис. 5.1.
Средние секции конуса сужены
Покачивание деформирует геометрию фигуры в соответствии с данными движения и инерцией. Нет движения, нет и покачивания. Итак, давайте добавим движение нашему конусу.
Задайте длительность анимации 100 кадров.
Идите в кадр 25 и выделите конус.
Задайте ключевой кадр для положения конуса, используя клавиши SHTFT+W.
Идите в кадр 75.
Переместите конус на 100 единиц влево и установите здесь второй ключевой кадр.
Когда вы воспроизведете анимацию, верхняя секция (не самый кончик и не основание, поскольку мягкой мы сделали только середину) наклонится с началом движения конуса (рис. 5.2).
Рис. 5.2.
Начиная с кадра 25 конус движется справа налево. В кадре 25 (крайний правый конус) он стоит прямо, в кадре 26 он резко устремляется влево, а его форма меняется Деформатором Покачивание. Хотя движение заканчивается в кадре 75 (крайний левый конус), верхушка конуса некоторое время слегка покачивается назад и вперед по инерции. Без Деформатора Покачивание эта линейная анимация справа налево была бы весьма неинтересной
Достигнув конечной позиции, верхушка конуса продолжает покачиваться по инерции. Деформатор Покачивание значительно украшает эту простую анимацию с двумя ключевыми кадрами. Однако к подготовке действия это пока не имеет никакого отношения.
Давайте проведем эксперимент.
Возьмите ручку со стола и держите ее прямо перед собой. Затем очень быстро перенесите ее влево. Озвучьте движение свистящим звуком.
Повторите процедуру, немного изменив начало: слегка отведите ручку вправо, перед тем как она умчится влево. Снова озвучьте это свистящим звуком, как в мультфильме.
Обратите внимание на синхронизацию движения: вы интуитивно начинаете с длинного звукового эффекта, когда ваша ручка медленно движется вправо с начальной позиции. Движение ручки немного замедлено еще некоторое время, а затем она мгновенно уносится влево, сопровождаемая коротким свистящим звуком.
Эта последовательность движений содержит важную информацию о подготовке действия, которую мы сейчас используем в создании анимации нашего конуса.
Самый важный момент подготовки действия - это точка разворота конуса, где происходит изменение направления движения и где мы теперь зададим третий ключевой кадр. Эта точка завершает подготовку действия, и останутся лишь доли секунды, прежде чем анимация будет завершена. Подготовка к тому, чтобы умчаться прочь, занимает гораздо больше времени, чем основное движение (во всяком случае, в мультфильме).
Идите к первому ключевому кадру анимации.
На временной шкале нажмите среднюю кнопку мыши и, не отпуская, ведите курсор к кадру 70.
Использование средней кнопки мыши на временной шкале позволяет переносить фиксированное состояние анимации из одной точки во времени в другую. Сцена при этом не обновляется. Таким образом, нам уже не нужно искать конус и перемещать его из далекой позиции в кадре 70.
Переместите конус вправо, в позицию подготовки действия.
Установите ключевой кадр.
Теперь конус, оставляя начальную позицию, медленно движется вправо на протяжении нескольких кадров и молниеносно исчезает из виду в левую сторону всего за пару кадров (см. рис. 5.3).
Рис. 5.3.
Анимация с подготовкой действия, как в мультфильме. В кадре 25 конус начинает медленно двигаться вправо. Это предваряющее движение в противоположном направлении длится около 2 секунд до кадра 70. Затем внезапно наш конус устремляется влево и достигает конечной позиции всего за 5 кадров. Он резко останавливается, а верхушка продолжает еще долго раскачиваться. Самое большое ускорение, а следовательно, и самые большие покачивания происходят тогда, когда конус покидает зону подготовки действия в кадре 71 и после его внезапной остановки в кадре 75
Деформатор Покачивание активнее всего действует в кадре 70, где меняется направление движения. Если эффект покажется вам слишком сильным, откройте секцию Jiggles (Покачивания) в окне Channel Box (Окно Каналов) и увеличьте значения параметров Stiffness (Жесткость) и Damping (Затухание).
Для того чтобы полностью контролировать ключевой кадр 70, мы обратимся к касательным движения нашего конуса - графическому изображению того, как анимация приближается к ключевому кадру и покидает его.
Выделите конус и выберите Window / Animation Editors (Окно / Редакторы Анимации), для того чтобы открыть Graph Editor (Редактор Анимационных Кривых).
Удалите или проигнорируйте все горизонтальные кривые, не имеющие отношения к анимации.
Выделите средний ключевой кадр (кадр 70).
Нажмите на пиктограмму Break tangents (Разделение Касательных) в верху окна, для того чтобы разделить касательные в этом ключе (см. рис. 5.4).
Выделите правую часть касательной и щелкните по пиктограмме Linear (Линейный). Это заставит касательную сильно отклониться в направлении последнего ключевого кадра.
Выделите левую часть касательной и щелкните по пиктограмме Flat (Горизонтальный), для того чтобы расположить ее горизонтально (см. рис. 5.5).
Теперь конус медленно движется вправо, еще больше замедляет движение перед кадром 70, а потом вдруг уносится влево с большой скоростью. Две касательные позволяют весьма эффективно управлять подготовительным действием движения конуса. Если вы зададите тип Flat (Горизонтальный) и для касательной выхода из области подготовки действия, конус с некоторым промедлением будет покидать точку изменения направления.
Рис. 5.4.
В кадре 70 конус слишком плавно проходит область подготовки действия, что делает анимацию скучноватой. Для того чтобы направление движения сменялось быстрее, нам нужно разделить касательные в этом ключевом кадре
Рис. 5.5.
Задав тип Linear (Линейный) для правой касательной - в нашем случае это означает крутой и быстрый, - мы задаем левой касательной тип Flat (Горизонтальный). Теперь конус не спеша движется до точки поворота, а затем неожиданно стремительно покидает ее
Для рендеринга такой анимации нам просто необходим Motion Blur (Размытость при Движении). Motion Blur - это эффект, заимствованный из мира реальной видеосъемки, который легко имитируется в программах по трехмерной графике.
Прежде чем приступить к рендерингу с опцией Motion Blur (Размытость при Движении), создайте для эффекта покачивания кэш диска. Для этого нужно выбрать в меню Deform / Jiggle Disk Cache (Деформация / Кэш Диска для Покачивания).
Это позволит Мауа сохранять на жесткий диск данные деформации, которые Motion Blur (Размытость при Движении) будет использовать в процессе рендеринга.
Откройте окно Render Globals (Глобальные Параметры Рендеринга).
В окне Render Globals (Глобальные Параметры Рендеринга) откройте меню Motion Blur (Размытость при Движении) и отметьте 2D для Motion Blur Type (Тип Размытости при Движении) (рис. 5.6).
Отрендерите кадр 71.
Рис. 5.6.
Активизируйте параметр 2D для Motion Blur Type (Тип Размытости при Движении) в окне Render Globals (Глобальные Параметры Рендеринга). Вы можете уменьшить значение параметра Blur Length (Величина Размытости), для того чтобы сделать эффект менее выраженным
Если эффект получился очень сильным, уменьшите значение параметров Motion Blur ву Frame (Количество Кадров Размытости) и Blur Length (Длина Размытости).
Если вы хотите визуализировать тени, то для Motion Blur Type (Тип Размытости при Движении) выберите параметр 3D. Это потребует более высоких значений сглаживающих параметров и значительно увеличит время визуализации, однако дает потрясающе реалистичный эффект размытости теней во время движения. Модуль рендеринга с опцией 2D Motion Blur не работает с тенями (рис. 5.7).
Рис. 5.7.
Конус, визуализированный с помощью 2D Motion Blur (Размытость при Движении 2D), в начале анимации (справа) и в конце (слева)
А теперь кое-что новенькое. Приходилось ли вам оставлять немного места под окном Мауа для размещения там пиктограмм свернутых окон?
Посемафорим
Как создать анимацию работы семафора?
Тема:
Анимация персонажей.
Используемые техники и инструменты:
Joint Tool (Сустав), Create Character (Создать Персонаж), Create Pose (Создать Позу), Trax Editor (Редактор Дорожек), Create Blend (Создать Плавный Переход).
Более века назад семафорные флаги как систему передачи сигналов заменил электрический телеграф. Тем не менее и в наши дни корабли продолжают использовать семафор для связи на коротких дистанциях, а морские офицеры-связисты в прошлом использовали флаги для передачи сообщений приветствия, вызова или нападения. В системе семафора каждое сочетание двух флажков символизирует число или букву. Весьма интересно наблюдать за парой рук, машущих флажками по определенному шаблону и передающих информацию кому-то, знакомому с этой системой. В этом уроке мы отправим семафорное сообщение: четыре буквы M-A-Y-A. Для этого используем технику нелинейной анимации.
Для начала нам нужен кто-то, держащий флажки. В окне Front View (Вид Спереди) создайте простой скелет, состоящий из торса, двух плеч и двух рук.
Создайте полигональную плоскость и наложите на нее двухцветную текстуру ramp с резко очерченными границами цветов (установите Interpolation (Интерполяция) на None (Отсутствует).
Поверните текстуру, используя Attribute Editor (Редактор Атрибутов) окна place2dTexture. Задайте для Rotate Frame (Поворот Рамки) значение 45 градусов (рис. 6.1).
Рис. 6.1.
Параметры для диагонального расположения цветов текстуры Ramp на флаге
Увеличьте значение Coverage (Покрытие) текстуры до 2x2 и уменьшите значение параметра Translate Frame in V (Перемещение Рамки по оси V) с 1 до 0,5.
Эти установки создают диагональное расположение двух цветов текстуры.
Дублируйте плоскость путем зеркального отражения ее по оси Z.
Сделайте созданные плоскости дочерними (Edit / Parent) для соответствующих рук).
В семафоре руки движутся, как стрелки часов (рис. 6.2). Для того чтобы получатель сообщения понял, что одно слово закончилось и начинается новое, система знаков содержит нейтральную позицию, когда обе руки опущены вниз.
В этом уроке мы изобразим M-A-Y-A как слово, где следует выделить каждую букву. Для этого мы используем нейтральную позицию рук после каждого отдельного символа, а не в конце всего слова. Различные положения рук создаются вращением относительно нейтральной позиции на угол, кратный 45 градусов. Самый лучший инструмент для достижения такой точности - это Rotation Snapping (Привязка Вращения): дважды щелкните мышкой по значку вращения, активизируйте Snapping (Привязка) и введите для нее значение 45.
Рис. 6.2.
Буквы и числа семафорной азбуки
Теперь инструмент вращения будет останавливать движение рук через каждые 45 градусов.
Перед тем как приступить к нелинейной анимации, нам бы пришлось начать анимацию слова M-A-Y-A с изображения нейтральной позиции и установки
здесь ключевого кадра. Затем мы бы вращали все участвующие в движении объекты для приведения их в положение, обозначающее букву М, и снова установили ключевой кадр. Потом опять вернулись бы в нейтральную позицию, задали ключевой кадр, выполнили бы Rotate (Поворот) для буквы А, ключевой кадр и т. д. Конечно, это самый прямой способ анимации слова. Однако, если вы работаете, скажем, над серией сюжетов для научной передачи о системе семафорных знаков и вам нужно было бы изобразить передачу огромного количества слов и предложений, использование процедуры, исключающей установку ключевых кадров, сэкономило бы вам много времени.
Вместо установки ключей мы создадим позы для каждой руки, изображающие все возможные варианты положений рук под углом 45 градусов, то есть целый алфавит. Создание этих поз не займет много времени, однако, когда оно будет завершено, работа над созданием анимации станет весьма приятной. Какое бы слово вам ни пришлось изобразить, просто подберите необходимые позы и соедините их в Trax Editor (Редактор Дорожек).
Для того чтобы использовать позы в Мауа, нам нужно создать персонажей из совокупности участвующих в анимации объектов. Персонаж в данном контексте не имеет ничего общего с трехмерными существами или личностью.
Персонаж в Мауа - это просто набор различных атрибутов всевозможных объектов. Нам нужно создать такой набор, перед тем как использовать его атрибуты в нелинейной анимации. При создании клипа персонаж генерируется автоматически. Позы, однако, еще потребуют немного ручной работы. Итак, мы создадим два простых персонажа: один, состоящий из поворотов левой руки и флажка вокруг оси Z, другой, состоящий из поворотов правой руки и флажка вокруг оси Z.
Выделите правый флажок (левый, если смотреть прямо из окна front) и правую руку. Убедитесь в окне Outliner (Схема сцены), что и рука, и многоугольник выделены.
В окне Channel Box (Окно Каналов) выделите Rotate Z (Вращение вокруг оси Z).
Откройте окно настроек для создания нового персонажа. Для этого нажмите клавишу F2 и выполните команду Character / Create Character Set Option Box (Персонаж / Создать Персонаж Окно Настроек) (см. рис. 6.3).
Включите опцию From Channel Box (Из Окна Каналов), дайте персонажу имя и создайте его, нажав Create (Создать).
Во всплывающем меню в правом нижнем углу экрана вы увидите, что персонаж создан и активизирован. Это все, что вам нужно о нем знать. Теперь вы можете поработать с позами правой руки.
Поверните правую руку так, чтобы она указывала прямо вниз.
Если необходимо, поверните и правый флажок; постарайтесь поместить его в одно из положений семафора.
Для этой нейтральной позиции создайте первую позу, выбрав Animate / Create Pose (Создать Анимацию / Создать Позу) (рис. 6.4). Дайте ей соответствующее имя.
Создайте позы для каждого из поворотов на 45 градусов для правой руки и ее флажка.
Рис. 6.3.
Для преобразования положений рук нашего сигнальщика в позы следует сначала создать новый персонаж - в данном случае для правой руки и флажка
Рис. 6.4.
Первая поза (нейтральная)
Воспользуйтесь иллюстрацией знаков семафора в качестве гида. При этом вам не нужно выделять объекты для создания поз. До тех пор, пока персонаж, содержащий интересующие нас атрибуты, активен, все задаваемые ключи будут ставиться на эти атрибуты Основная цель, а также мощь использования персонажей в Мауа заключается в том, чтобы собрать вместе большое количество параметров различных объектов для упрощения работы с ними.
Откройте окно Visor и просмотрите в нем только что созданные позы. Для этого нажмите на них правой кнопкой мыши и выполните команду Apply Pose (Применить Позу) (рис. 6.5).
Найдите позы правой руки для букв М и Y.
Переименуйте их в М_г и Y_r.
Рис. 6.5.
Мы применяем готовую позу к сцене - и персонаж сигнализирует букву Y
При изображении буквы А положение правой руки будет таким же, как при изображении буквы М.
Создайте второго персонажа, на этот раз для вращения вокруг оси Z левой руки и левого флажка.
Создайте позы для поворотов руки на каждые 45 градусов. Имя, которое вы дадите первой позе, будет учитываться при создании последующих новых поз.
Опробуйте новые позы, используя Visor. Переименуйте позу для буквы М в М_1.
Поза левой руки для буквы А такая же, как в нейтральной позиции, а поза для Y, когда рука с флагом вытянута в сторону, повторяет позу для буквы М.
Теперь у вас есть 2 набора из семи поз - для каждого из двух персонажей. Когда вы активизируете персонаж во всплывающем меню справа снизу, вы увидите его позы в Visor.
Откройте Trax Editor (Редактор Дорожек), выбрав Window / Animation Editors / Trax Editor (Окно / Редакторы Анимации / Редактор Дорожек).
Это окно представляет собой центр управления нелинейной анимацией. Можете назвать его Avid или Media 100 монтажной системой для анимации 3D персонажей. Здесь вы найдете 2 набора входных данных, по одному для каждого из персонажей.
Активизируйте правый персонаж, используя всплывающее меню в нижнем правом углу экрана.
Средней кнопкой мыши перетащите нейтральную позу правой руки из окна Visor в верхнюю дорожку в Trax Editor (Редактор Дорожек) (рис. 6.6).
Рис. 6.6.
Используя среднюю кнопку мыши, вы можете перетащить нейтральную позу правой руки из окна Visor в пять различных позиций на дорожке Trax Editor (Редактор Дорожек)
Вы можете работать в окне Trax Editor (Редактор Дорожек), как в любом другом 2D окне. Особенно полезны клавиши: F - для фокусирования на выделенных объектах; А - для фокусирования на всех объектах.
В Trax Editor ( Редактор Дорожек) передвиньте нейтральную позу в кадр 0 или 1.
Еще четыре раза перетащите нейтральную позу из окна Visor в окно Trax Editor (Редактор Дорожек) в кадры 10, 20, 30 и 40.
В окне Visor найдите позу М_г и перетащите ее в кадр 5 в окно Trax Editor (Редактор Дорожек).
Перетащите эту же позу (которая также используется для буквы А) в кадры 15 и 35.
Перетащите позу правой руки для буквы Y в кадр 25.
Это не заняло много времени. Так же быстро все это получится и при работе со вторым персонажем, левой частью сигнальщика.
Выделите персонаж левой стороны, используя всплывающее меню.
Перетащите нейтральную позу из окна Visor в Trax Editor (Редактор Дорожек) пять раз и расположите панели левого персонажа прямо под нейтральными позами правого персонажа (в кадрах 0, 10, 20, 30 и 40).
Перетащите позу левой руки для М - М_1 (которая идентична позе для Y) в кадры 5 и 25 (рис. 6.7).
Рис. 6.7.
Завершенная анимация передачи слова M-A-Y-A по системе флажков семафора - анимация в Trax Editor (Редактор Дорожек) без единого ключевого кадра
Подвигая указатель текущего кадра по временной шкале, вы увидите, что создали анимацию, ни разу не установив ключевого кадра. На этом этапе анимация перескакивает от одной позы к другой, поскольку Мауа не интерполирует между ними. Но вы можете сгладить переход от одной позы к другой всего одним щелчком мыши.
Выделите две соседние позы в Trax Editor (Редактор Дорожек) и сгладьте переход от одной к другой, нажав на значок Create Blend (Создать Плавный Переход) (рис. 6.8). Повторите эту процедуру для других пар поз.
Рис. 6.8.
Смягчите переход от одной позы к другой, используя инструмент Blend (Плавный Переход)
Теперь анимация воспроизводится плавно. Степень плавности вы можете видеть в Graph Editor (Редактор Анимационных Кривых), который открывается щелчком мыши по его пиктограмме в Trax Editor (Редактор Дорожек) (рис. 6.9). В Graph Editor (Редактор Анимационных Кривых) выделите кривые плавного перехода и задайте их касательным тип Flat (Горизонтальная Касательная), для того чтобы они покидали предыдущие позиции и входили в последующие немного более плавно (см.
рис. 6.10).
Рис. 6.9.
Быстрый способ выхода из Trax Editor (Редактор Дорожек)...
Рис. 6.10.
...в Graph Editor (Редактор Анимационных Кривых), где вы можете отредактировать касательные
В анимации, однако, есть небольшой дефект, который легко исправляется в Trax Editor (Редактор Дорожек): персонаж должен задерживаться в одной позиции на несколько мгновений, прежде чем перейти к другой. Для этого просто растяните вправо соответствующую панель (рис. 6.11). Переместите растянутую панель немного влево - и дефект исправлен. Именно так работают в монтажной программе для цифрового видео.
Рис. 6.11.
Растягиваем длину позы для букв
Рис. 6.12.
M-A-Y-A: наше сообщение для семафора готово
А теперь кое-что новенькое. Заглядывали ли вы в папки particle от предыдущих проектов? А в папки depth? [Автор намекает на то, что в папке particle хранится кэш частиц, а в папке depth - информация о распределении частиц по глубине. Эта информация весьма объемна и занимает на диске много места... Поскольку речь идет о старом проекте, то эти папки можно почистить, сэкономив кучу места на диске. - Примеч. ред. ]
Катись, мяч, катись!
Как сделать так, чтобы сфера скатывалась с холма, а не соскальзывала с него?
Тема:
Анимация.
Используемые техники и инструменты:
Make Live (Сделать Активным), Curve on Surface (Кривая на Поверхности), Arc Measure Tool (Измерение Дуги).
Нет ничего сложного в том, чтобы передвинуть объект слева направо. Довольно просто толкать объект по горизонтальной плоскости. Однако совсем не так легко двигать объект по неровной поверхности, точно соблюдая заданный путь движения (использовать динамическую симуляцию в этом случае вы не можете: результаты могут быть самыми неожиданными). А если объект является сферой, которая должна катиться, а не скользить, - тут есть над чем задуматься. Но давайте отложим размышления на потом и начнем двигать куб по холмистой поверхности.
Рис. 7.1. Вот так выглядит реальный курвиметр для измерения длины кривой линии, например дороги на карте французских Альп
Задайте длительность анимации 400 кадров.
Создайте NURBS-плоскость шириной 20 и плотностью 20x20 патчей в V и U направлениях.
Нажмите клавишу F3, выберите Edit NURBS / Sculpt Surfaces (Редактирование NURBS / Создать Рельеф Поверхности) для деформации поверхности.
Выделите поверхность и преобразуйте ее в «активный» объект. Для этого либо нажмите на пиктограмму с магнитом в верхней части экрана (рис. 7.2), либо выберите Modify / Make Live (Модифицировать / Сделать Активным). С этого момента вы можете работать прямо на поверхности.
Рис. 7.2.
Пиктограмма с магнитом в верху окна Мауа позволяет вам работать непосредственно на поверхности
Выберите один из инструментов Create Curve (Создать Кривую) и постройте кривую. Для этого либо несколько раз щелкните мышкой по поверхности, добавляя к ней точки, либо проведите мышкой по поверхности, удерживая нажатой левую кнопку.
Выйдите из режима Live mode (режим Сделать Активным), нажав снова пиктограмму с магнитом.
Кривая, которую вы только что создали непосредственно на поверхности, и будет путем движения нашего куба.
Создайте полигональный куб.
Нажмите клавишу 4, для того чтобы войти в режим Wireframe mode (режим Каркас). Выделите куб, а затем и кривую на поверхности.
Создайте путь для движения куба. Для этого нажмите F2, выберите Animate / Motion Paths / Attach to Motion Path (Анимация / Пути Движения / Присоединить к Пути Движения) (рис. 7.3).
Рис. 7.3.
Присоединим куб к кривой на поверхности
Когда вы воспроизведете анимацию, то увидите, как куб движется вниз и вверх по холмам. Есть, правда, одна проблема: когда куб скользит по поверхности, он погружается в нее (рис. 7.4).
Рис. 7.4.
Наш куб движется по холмам и по долинам (и проваливается в них)
Это связано с положением опорной точки куба. Мы могли бы передвинуть ее, однако вместо этого удалим куб и создадим NURBS-сферу. Давайте поговорим об опорной точке сферы. Если вы присоедините сферу к пути ее движения, как вы это уже делали с кубом, то ее нижняя часть тоже погрузится в поверхность. Если же вы опустите опорную точку сферы, для того чтобы избавиться от этого погружения, то сфера перестанет вращаться относительно своего центра - а это именно то, что необходимо для ее качения (а не скольжения) по поверхности.
Что нам тут действительно нужно, так это объединить два объекта в одном. Один будет отвечать за движение по заданному пути, а другой возьмет на себя качение сферы. Все это мы осуществим с помощью иерархической анимации - громкое слово для обозначения простой процедуры работы с группами, членами и родительскими объектами, сферу саму с собой и присоединить группу к пути движения. Единственный член группы - сфера - может теперь вращаться вокруг своей центральной точки, в то время как группа будет двигаться вверх и вниз по холмам. Группа несет в себе сферу, а сфера, в свою очередь, заботится об эффекте качения.
Сгруппируйте сферу саму с собой, используя клавиши клавиатуры Ctrl+g либо выбрав Edit / Group (Редактирование / Группа).
Переименуйте группу.
В режиме Insert (Режим редактирования опорной точки) переместите опорную точку группы к южному полюсу сферы (рис. 7.5).
Рис. 7.5.
Перемещаем опорную точку группы сферы после группирования сферы с самой собой. Благодаря этому сфера остается на поверхности во время движения
Присоедините группу сферы - но не саму сферу! - к кривой на холмистой поверхности так же, как вы раньше делали это с кубом. Нажмите F2, выберите Animation / Motion Paths / Attach to Motion Path (Анимация / Пути Движения / Присоединить к Пути Движения).
Сфера движется по поверхности (не погружаясь в нее) (рис. 7.6). В действительности движется не сама сфера, а ее группа, которая, конечно, несет в себе сферу, куда бы ни двигалась. Если сфера склоняется к кривой пути движения, исправьте это, изменив внутреннюю ось пути. Откройте Attribute Editor (Редактор Атрибутов) motionPathl и установите Up Axis (Верхняя Ось) на Y.
Рис. 7.6.
Скользим и съезжаем с холмов - но не катимся
Теперь можно приступить к качению. Как предотвратить скольжение сферы? Мы заставим ее вращаться внутри группы для создания впечатления качения. Если мы поделим длину кривой на длину окружности сферы, то узнаем, сколько раз ей нужно повернуться вокруг своей оси за время движения по поверхности. Радиус сферы равен 1. Формула вычисления длины окружности следующая:
2*Radius*p.
Итак, длина окружности нашей сферы составляет: 2 * 1 * 3.14 = 6.28.
Таким образом, каждый раз, когда сфера преодолеет 6,28 единицы и выполнит один полный оборот, выглядеть это будет так, будто она катится по поверхности, чувствуя трение с ней. Мауа предлагает пару весьма полезных способов для измерения расстояний. Тот, который потребуется нам для измерения длины нерегулярной кривой, называется Arc Length Tool (Длина Дуги).
Выберите Create / Arc Length Tool (Создать / Длина Дуги). В режиме Wireframe mode (Режим Каркас) щелкните мышкой по кривой. Инструмент показывает вам расстояние между началом кривой и точкой, на которую вы укажете курсором (рис. 7.7). Перетащите Arc Length Tool (Длина Дуги) в конец кривой и запомните появившееся значение.
Рис. 7.7.
Инструмент Arc Length Tool (Длина Дуги) измеряет длину дуги между началом кривой и любой точкой на ней
Разделите длину кривой на длину окружности сферы, которая составляет 6,28.
В нашей анимации длина кривой составляет 25,54 единицы. 25 / 6,28 = 4,07.
Следовательно, сфера сделает вокруг своей оси 4 полных оборота.
Умножьте результат на 360.
Теперь вы знаете, на сколько градусов должна повернуться сфера, чтобы прокатиться по всему пути движения.
Идите в начало анимации.
Выделите сферу (не группу!) и выберите направление вращения.
Задайте ключевой кадр для этого параметра вращения.
Идите в конец временной шкалы.
В кадре 400 увеличьте значение вращения на число, которое вы получили в результате вычислений, и задайте еще один ключевой кадр (рис. 7.8).
Рис. 7.8.
После небольших вычислений вращение сферы получает второй ключевой кадр. В нашем случае она поворачивается на -1464 градусов вокруг оси Z
Откройте Graph Editor (Редактор Анимационных Кривых) и задайте для касательных вращения сферы тип Linear (Линейный) (рис. 7.9).
Рис. 7.9.
Для того чтобы получить реалистичное перекатывание, для касательных должен быть задан тип Linear (Линейный), если он еще не задан
Если сфера вращается в противоположном направлении, переустановите ключевой кадр, на этот раз с отрицательным значением. При воспроизведении анимации вы увидите сферу, плавно катящуюся по своему извилистому пути (см. рис. 7.10).
Рис. 7.10.
Сфера реалистично катится по извилистому пути
Этот способ позволяет вам получить за короткое время вполне реалистичное качение сферы, однако он не очень удобен. Если, например, хоть один параметр - радиус сферы или длина пути - меняется, эффект качения пропадет, и вам снова придется производить вычисления и переустанавливать второй ключевой кадр. Для того чтобы полностью контролировать ситуацию, вам придется создать выражения, которые будут использовать значения этих параметров как переменные.
У нашей анимации есть еще одно слабое место: сфера катится слишком монотонно. Например, она не ускоряется при движении вниз с холма. Это можно исправить путем установления большего количества ключевых кадров для U Value (Значения U) пути движения и вращения сферы.После этого вам нужно будет дополнительно настроить две соответствующие анимационные кривые в Graph Editor (Редактор Анимационных Кривых).
А теперь кое-что новенькое. Использовали ли вы когда-нибудь Тот Kluysken's Caustics при рендеринге рубинового колье?
Управляем велосипедом (и отвлекаем внимание)
Как сделать так, чтобы персонаж одной рукой управлял велосипедом, а другой одновременно рисовал в воздухе знак @?
Тема:
Анимация.
Используемые техники и инструменты:
Joint Tool (Сустав), ik Handle (ИК-манипулятор), Point Constraint (Принудительное согласование позиций), Motion Path (Путь Движения).
Анимация персонажей не сводится к цифровому изображению мимики, реалистичной ходьбе и синхронизированной с движениями губ речи. Персонаж также должен взаимодействовать с окружающим миром. Хотя в реальной жизни это предполагает огромное количество различных действий - прикасание, хватание, отпускание, взгляд, приближение, - в компьютерной анимации все это может быть сведено к Constraint (Принудительное согласование). Самое главное согласование - это то, которое связывает персонаж с другими элементами окружающего мира: с другим объектом или персонажем. В этом уроке мы рассмотрим основные процедуры при использовании такого вида ограничений. Мы создадим анимацию персонажа, управляющего велосипедом и одновременно рисующего другой рукой в воздухе знак @.
Создайте руль велосипеда с двумя ручками (см. рис. 8.1). Все, что вам для этого нужно, это три цилиндра соответствующих размеров. Оставьте центр руля в начале координат. Сгруппируйте все три компонента вместе и дайте группе какое-нибудь значащее имя.
С помощью инструмента Joint Tool (Сустав) сконструируйте скелет для плеч и рук, состоящий из шести или семи костей. Начните с шеи, затем добавьте ключицу и вставьте в нее еще две кости рук, ведущие к лучезапястному суставу (см. рис. 8.2).
Теперь выделите верхний сустав руки и создайте зеркальное отражение всей совокупности элементов с другой стороны, используя команду Mirror Joint (Зеркальное Отражение Сустава) (см. рис. 8.3). Создавать отражение шеи вовсе не обязательно.
Для обеих рук добавьте ik Handles (ИК-манипулятор) от плеч к запястьям (см. рис. 8.4).
Рис. 8.1.
Руль велосипеда с ручками состоит из трех NURBS-цилиндров
Рис. 8.2.
Моделируем скелет: несколькими щелчками мыши в соответствующем окне мы создаем левое плечо и руку
Оно может находиться только в промежутке между 1 и -1. Поэтому, когда вы воспроизведете анимацию, руль будет вращаться только между -1 и 1 градусами, что, конечно, едва заметно.
Рис. 8.6.
Математическое равенство заставляет двигаться руль велосипеда
Отредактируйте выражение (для этого, как и раньше, следует вызвать Expression Editor (Редактор Выражений), увеличив амплитуду синуса в 20 раз
= 20 * sine (time);
Сохраните изменения, нажав Edit (Редактирование).
Это выражение позволяет рулю медленно вращаться между -20 и 20 градусами вокруг оси Y, как если бы велосипед двигался по слалому. Поскольку Point Constraint (Принудительное согласование позиций) все еще активно, руки движутся в унисон с ручками руля. Выглядит это так, будто руки (а вовсе не математическое выражение) управляют велосипедом (см. рис. 8.7). Если длины рук недостаточно во время увеличения амплитуды управляющих движений, ни в коем случае не удлиняйте их - помогите им дотянуться до ручек, подвинув плечи или ключицу немного вперед.
Если вы хотите исключить одну руку из управления велосипедом, попробуйте сделать так: щелкните мышкой по ее ik Handle (ИК-манипулятор) и в окне Channel Box (Окно Каналов) в секции Shapes (Форма) установите Node State (Состояние
Узла) с Normal (Нормальное) на Blocking (Блокированное) (рис. 8.8). Эта команда дезактивирует ограничение. Если хотите, можете установить здесь ключ.
Рис. 8.7.
Обе руки, крепко держась за ручки, управляют велосипедом
Рис. 8.8.
Переключите Node State (Состояние Узла) с Normal (Нормальное) на Blocking (Блокированное). Привязка дезактивируется, и рука может снова свободно вращаться
Мы продвинемся еще немного вперед и вместо того, чтобы полностью исключить руку из управления велосипедом, добавим для нее еще одно принудительное согласование - Locator (Локатор). Затем, вместо того чтобы менять Node State (Состояние Узла) принудительного согласования, мы изменим его Weight (вес).
Создайте Locator (Локатор) - объект, который не рендерится.
Его можно найти в меню Create (Создать).
Переместите локатор немного правее правой руки.
Оставляя локатор выделенным, выберите правый ik Handle (ИК-манипулятор) и свяжите его с локатором. Для этого выберите Constrain / Point (Принудительное согласование / Положение).
Запястье моментально реагирует на это изменение и перепрыгивает в точку между ручкой руля и локатором. Если вы передвинете локатор в другую область сцены, ik Handle (ИК-манипулятор) последует за ним. Определяющими параметрами такого поведения являются Weights (Веса) двух принудительных согласований. Их вы найдете в окне Channel Box (Окно Каналов) прямо под полем Node State (Состояние Узла). Первое значение - это вес ручки руля, второе - вес локатора. Поскольку оба значения в данный момент равны, ладошка располагается между ними (рис. 8.9).
Рис. 8.9.
Веса WO (для локатора) и W1 (для ручки руля) равны. Следовательно, запястье руки располагается между ними
Задайте длительность анимации 1000 кадров.
Идите в кадр 300. Установите вес правой ручки руля на 1, а вес локатора на 0.
Рис. 8.10.
Когда вес для ручки руля меняется на WO = 1, а вес для локатора на W1 = 0, запястье руки возвращается к ручке руля
Задайте ключевые кадры для обоих параметров.
Передвиньтесь вперед на 50 кадров, в кадр 350. Измените вес: 0 - для ручки руля и 1 - для локатора.
Снова задайте ключевые кадры для обоих параметров.
Меняя веса для двух принудительных согласований позиции, вы создали анимацию движения руки. Она отпускает руль в кадре 300 и через 50 кадров перемещается к локатору - там и остается все оставшееся время.
Рис. 8.11.
Со значениями WO = 0 и W1 = 1 запястье руки перепрыгивает к локатору
Верните руку к ручке руля между 500 и 600 кадрами, задав еще два ключевых кадра для значений веса ограничения.
Отредактируйте анимацию в Graph Editor (Редактор Анимационных Кривых) на ваш вкус. Задайте касательным тип Flat (Горизонтальная) в точках начала и окончания движения.
Между 350 и 500 кадрами рука находится в статичном положении.
Если вы создадите анимацию локатора в этом промежутке, например придав ему машущее движение, рука повторит его, поскольку она больше не привязана к ручке руля. Мы зададим руке совершенно определенное движение: пусть она нарисует в воздухе знак @. Это мы сможем получить путем установления ограничивающей связи локатора (но не для ik Handle (ИК-манипулятор) и пути рисования знака.
Переключитесь на окно Side View (Вид Сбоку) или Front View (Вид Спереди) и с помощью инструмента Pencil. Curve Tool (Карандаш) нарисуйте знак @ (рис. 8.12).
Передвиньте полученную кривую поближе к локатору.
Выделите локатор и добавьте к выделенному кривую.
Откройте окно настроек команды Motion Path (Путь Движения), выбрав Animate / Motion Paths / Attach to Motion Path Option Box (Анимация / Пути Движения / Присоединить к Пути Движения Окно Настроек).
В окне Option Window (Окно Настроек) команды Attach to Motion Path (Присоединить к Пути Движения) установите Time Range (Временной Диапазон) на Start / End (Начало / Конец). Задайте Start Time (Начальное Время) на 400, a End Time (Конечное Время) на 470. Выполните команду, нажав Attach (Присоединить) (рис. 8.13).
Рис. 8.12.
Пишем знак @ в окне Side View (Вид Сбоку)
Рис. 8.13.
Между кадрами 400 и 470 локатор оказывается «привязанным» к пути рисования знака @
Теперь рука, бросив руль, рисует в воздухе знак @, после чего возвращается к рулю и продолжает управление велосипедом (рис. 8.14). Взгляните на анимационные кривые для Motion Path (Путь Движения) в Graph Editor (Редактор Анимационных Кривых), для того чтобы убедиться, что движение не будет слишком поспешным. Вы также можете задать тип Flat (Горизонтальный) касательным ключевых кадров, используя контекстное меню временной шкалы.
Рис. 8.14.
Персонаж управляет велосипедом только одной рукой. Руль продолжает двигаться. Правая рука рисует в воздухе знак @. После этого она возвращается к ручке руля и продолжает спокойно управлять
Если вы создадите велосипед и велосипедиста, не забудьте объединить локатор в одну группу с другими элементами.Было бы даже неплохо добавить небольшую анимацию знака @ в этой точке. Плечу тоже можно придать небольшое движение. А как насчет функции синус?
А теперь кое-что новенькое. Приходилось ли вам расчесывать мех?
Моток кабеля
Как свернуть кабель вокруг бобины?
Тема:
Моделирование.
Используемые техники и инструменты:
Animation Snapshot (Копии фаз анимированного объекта), Loft (Построение поверхности по сечениям).
В большинстве проектов анимация и моделирование - это два различных процесса. Однако многие объекты гораздо проще моделировать с помощью анимации, нежели классических инструментов моделирования. Например, центральная диафрагма фотокамеры напоминает ракушку улитки. Если вы начнете ее моделирование с профиля (со спирали), это займет слишком много времени. Гораздо быстрее вы получите требуемый результат, если немного подумаете, как создать анимацию закручивания спирали.
В этом уроке мы будем моделировать кое-что похожее: свернутый в моток кабель. Исходить будем из того, что нам нужно создать анимацию поперечного сечения кабеля, то есть окружности, по всей его длине. Мы получим моток кабеля, после того как создадим достаточное количество копий поперечных сечений. К счастью, Мауа предлагает команду, которая выполнит копирование за нас и одновременно позволит анимировать процесс намотки.
Создайте NURBS-окружность.
Передвиньте ее на 5 единиц по оси X и уменьшите наполовину ее радиус (рис. 9.1).
Рис. 9.1.
Опорная точка окружности смещена к началу координат сцены. С помощью новой точки вращения мы сможем подготовить первый виток намотки
В режиме Insert mode (Режим редактирования опорной точки) сместите опорную точку вращения окружности назад, к началу координат сцены.
Если вы повернете окружность вокруг оси Z, она будет двигаться циклически по кольцу. А если переместите маленькую окружность на одну единицу по оси Z . после каждого завершенного цикла, то путь ее вращения опишет первый виток вокруг несуществующей бобины (см. рис. 9.2).
Мы создадим десять витков для нашего кабеля. Для этого нужно будет выполнить вращение на 10 * 360 = 3600° и перемещение на 10 единиц. (Если мы переместим больше чем на 10 единиц, кабель не сможет компактно уложиться на бобине, между его витками мы получим зазоры, которые, правда, иногда являются желаемым эффектом.)
Рис. 9.2.
Если мы повернем маленькую окружность на 360° вокруг оси Z и одновременно передвинем ее на одну единицу по Z, то получим первый виток кабеля вокруг бобины
Задайте длительность анимации 100 кадров.
Идите в начало анимации. Поставьте ключи на перемещение и вращение окружности в ее начальном положении (Translate Z = 0 и Rotate Z = 0).
Идите в конец анимации. В окне Channel Box (Окно Каналов) задайте для Translate Z (Значение перемещения по оси Z) значение -10, а для Rotate Z (Угол поворота по оси Z) значение 3600. Установите ключевые кадры для этих значений параметров (рис. 9.3).
Рис. 9.3.
Каналы перемещения и вращения окружности получают ключевые кадры в кадре 100
Откройте Graph Editor (Редактор Анимационных Кривых). Задайте для кривых анимации тип Linear (Линейные) (рис. 9.4).
Рис. 9.4.
Для получения равномерной намотки нам потребуется линейная анимация, вместо той, которая медленно начинается и заканчивается. Поэтому мы зададим касательным анимационных кривых тип Linear (Линейные)
Линейные касательные необходимы для получения равномерной намотки. Если вы зададите им тип Flat (Горизонтальные), намотка в начале будет ускоряться, а в конце замедляться, что создаст слишком большую плотность размещения окружностей для построения лофтированной поверхности.
Выделите окружность.
Откройте окно настроек (клавиша F3) [Ошибка в исходном тексте. Раздел Animate, о котором пойдет дальше речь, находится в меню анимации, «быстрая клавиша» для которого F2. Скорее всего, там должно быть. Перейдите в меню анимации (клавиша F2). - Примеч. ред.], выберите Animate / Create Animation Snapshot Option Box (Анимация / Создать Копии фаз анимированного объекта окно настроек).
Установите для параметра Time Range (Временной Диапазон) значение Time Slider.
Нажмите кнопку Snapshot для выполнения команды.
Animation Snapshot (Копии фаз анимированного объекта) создаст 100 или 101 окружность - в зависимости от того, где начинается анимация: в нулевом, или первом кадре, - описывающие витки вокруг бобины.
Выделите все окружности с помощью прямоугольного выделения (см. рис. 9.5).
Заметьте, что последняя окружность окрашена в зеленый цвет. Так помечается последний выделенный объект. Для следующего шага - создания лофтированной поверхности по всем окружностям - последовательность выделения очень важна. В нашем случае беспокоиться об этом не нужно, поскольку прямоугольное выделение автоматически предоставляет нам правильную последовательность: окружность 1, окружность 2, окружность 3 и т. д. до последней окружности.
В самом начале мы собирались моделировать, а не анимировать наш кабель. И вот с последней командой мы снова обращаемся к моделированию.
Рис. 9.5.
Большим прямоугольником выделим все окружности, чтобы подготовить лофт через 101 окружность. Желтые стрелки указывают на первую и последнюю окружности, созданные инструментом Animation Snapshot (Копии фаз анимированного объекта)
Нажмите F3, выберите Surfaces / Loft (Поверхности / Построение поверхности по сечениям) (рис. 9.6).
Рис. 9.6.
Лофтированная поверхность, построенная по 101 окружности, представляет собой 10 идеальных витков вокруг еще не существующей бобины
Если лофтированная поверхность выглядит угловатой, а не округлой, нажмите клавишу 3 для получения максимально качественной прорисовки поверхности.
Последняя окружность содержит всю информацию об операции Animation Snapshot (Копии фаз анимированного объекта).
Выделите последнюю окружность.
В окне Channel Box (Окно Каналов) откройте секцию snapshot1 (рис. 9.7).
Рис. 9.7.
Кабель с разными значениями параметра End Time (Конечное Время) лофтированной поверхности
Здесь вы найдете историю создания поверхности. Анимируя параметры Start Time (Начальное Время) и End Time (Конечное Время), вы можете создать анимацию намотки кабеля вокруг бобины. Установив Start Time (Начальное Время) на 0 и ключевые кадры для End Time (Конечное Время) с 0 до 100, вы, наконец,
получите намотку кабеля на бобину. Анимация параметра Start Time (Начальное Время) уменьшает длину кабеля с начала в процессе намотки (рис. 9.8).
Рис. 9.8.
История создания лофтированной поверхности может быть проанимирована. Чем меньше значение End Time (Конечное Время), тем короче кабель
Когда кабель наконец намотается, вы можете добавить последние штрихи.
Обычный цилиндр, возможно немного подмасштабированный с торцов, послужит геометрией для бобины.
Если вам захочется поиграть с деревянной текстурой, вы можете найти ее в секции 3D-texture-Section в окне Hypershader (рис. 9.9).
Рис. 9.9.
Намотайте медный материал вокруг кабеля, а в качестве бобины добавьте цилиндрический блок с деревянной текстурой
А теперь кое-что новенькое. Вы никогда не пробовали «нащелкать» лошадь, используя Bert van Brandes' Skeleton Works?
Узловатый человечек
Как смоделировать фигуру, чья поверхность грубее, чем у обычного трехмерного персонажа?
Тема:
Моделирование, рендеринг.
Используемые техники и инструменты:
Subdivision Surfaces (SDS-поверхности), Split Polygon Tool (Разбиение Многоугольника), Extrude Faces (Экструдировать Грани), Displacement Shader (Шейдер Смещения).
Многие трехмерные объекты имеют безупречно гладкую поверхность, что хорошо не для всех задач. Обычно, для того чтобы сделать поверхность немного грубее и имитировать неровности, используют, так называемые Bump Maps (Карты Рельефа). В действительности же Bump Map (Карта Рельефа) - это свойство не поверхности, а камеры. В большинстве случаев Bump Mapping (Наложение Карты Рельефа) является достаточно эффективной процедурой и не требует много времени при рендеринге. Однако она совершенно неприменима, если вам нужны деформации и выпуклости, отчетливо выделяются на фоне.
Познакомьтесь с Displacement Mapping (Наложение Карты Смещения) - техникой, которая не просто имитирует деформации для камеры, а реально деформирует поверхность, используя полутона процедурной текстуры или растрового изображения. К сожалению, эти деформации нельзя видеть в окнах моделирования. Нам придется их отрендерить.
Этот урок состоит из двух взаимосвязанных частей. Мы начнем с моделирования высокого худого человечка с маленькой головой, используя SDS-поверхности.
Немного практики - и это займет лишь пару минут. (Перед эпохой SDS-поверхностей это стоило разработчику не меньше часа.) Если у вас нет Maya Unlimited, вы можете достичь тех же результатов, используя инструменты разбиения и экструдирования и выполнив после них операцию Polygon / Smooth (Многоугольники / Сглаживание). Если вы хотите пропустить моделирование либо отложить его на потом, просто возьмите любой примитив и приступайте ко второй части урока, посвященной технике Displacement (Смещение).
Создайте полигональный куб.
Выберите Modify / Convert / Polygons to Subdiv (Модифицировать / Преобразовать / Полигоны в SDS-поверхности) для преобразования куба в SDS-поверхность.
Назначьте новый материал SDS-кубу.
Если вы случайно назначили материал полигональному кубу (а это на самом деле внешнее покрытие SDS-поверхности, но не сама поверхность) вместо SDS-поверхности, отмените назначение. Выделите непосредственно SDS-поверхность polyToSubdShapel (например, в окне Hypergraph), перед тем как вновь назначить материал. Для этого щелкните правой кнопкой мыши по SDS-объекту и воспользуйтесь контекстным меню.
Переключитесь на режим Polygon mode (Полигональный режим) (рис. 10.1).
Рис. 10.1.
Полигональный куб, преобразованный в SDS-поверхностъ. Его контекстное меню позволяет сделать видимым исходный полигональный объект
Вы можете моделировать SDS-поверхности в двух основных режимах. В первом вы используете инструменты полигонального моделирования, а во втором - инструменты из мира NURBS-моделирования. Классические инструменты полигонального моделирования незаменимы при получении высокой подробности геометрии (например, в области, где ноги прикрепляются к туловищу). Именно поэтому большую часть моделирования нашего человечка мы будем осуществлять в режиме Polygon mode (Полигональный режим).
Выберите Edit Polygons / Split Polygon Tool (Редактирование Многоугольников / Разбиение Многоугольника), чтобы разделить нижнюю поверхность куба на две грани (см. рис. 10.2). Делайте это на глаз, идеальная точность нам ни к чему - наш персонаж не собирается участвовать в конкурсе красоты. Выполните команду, нажав Enter.
Сделайте грани видимыми, используя контекстное меню. Выделите только что созданные нижние грани куба. Для того чтобы вытянуть новую геометрию из этих граней, выберите Edit Polygons / Extrude Face (Редактирование Многоугольников / Экструдировать Грань) (см. рис. 10.3). Щелкнув по одному из кубиков манипулятора инструмента, вы перейдете в режим масштабирования. Равномерно уменьшите немного в размере экструдированные поверхности и, используя стрелки манипулятора инструмента, передвиньте их вниз.
Рис. 10.2.
Используя Split Polygon Tool (Разбиение Многоугольника), разбейте нижнюю грань куба на две части
Рис. 10.3.
Инструмент Extrude Tool локально увеличивает плотность геометрии. Здесь мы это сделали, для того чтобы начать вытягивать грани для моделирования ног
Не отменяя выделения, нажмите клавишу G для повторного применения команды экструдирования. На этот раз мы применим ее к только что экструдированным граням. Вытяните ноги из туловища, применив команду два или
три раза. Во время последнего экструдирования создайте поверхности такого размера, чтобы из них можно было вытянуть стопы (рис. 10.4).
Рис. 10.4.
Несколько последовательных экструдов (а не экструзий) - и ноги готовы. Не совсем идеальные по форме, но все-таки это ноги. Последнее экструдирование (на этот раз в горизонтальном направлении) создаст стопы
Для более точной работы при экструдировании и масштабировании стоп используйте вид сбоку и сверху (рис. 10.5, 10.6).
Рис. 10.5.
Вид сбоку используется для более точного моделирования носков стоп
Рис. 10.6.
Моделирование нижних конечностей завершено. Немного практики - и это займет лишь пару минут
Примените инструмент Split Polygon Tool (Разбиение Многоугольника) по краям туловища и приступайте к экструдированию рук (и, если хотите, пальцев). Эта операция выполняется симметрично, поэтому вы можете одновременно экструдировать геометрию правой и левой рук (рис. 10.7).
Рис. 10.7.
Работаем над верхней частью тепа. Это первые два экструда для рук
Экструдируйте верхнюю грань SDS-полигона, уменьшите в масштабе поперечное сечение шеи и приступайте к вытягиванию шеи и головы (рис. 10.8).
Рис. 10.8.
Первые два экструда для шеи и головы
Осмотрите всю фигуру и смасштабируйте грани на ваш вкус. Помните, что вы можете не только масштабировать и перемещать, но также и вращать грани (рис. 10.9).
Рис. 10.9.
Последние штрихи: вращение затылка
В окне Channel Box (Окно Каналов) вы увидите, что история создания поверхности содержит слишком много уже ненужной информации. Для того чтобы облегчить сцену, удалите историю: Edit / Delete by Type / History (Редактирование / Удалить в зависимости от типа / История).
Имейте в виду, что при этом вы не сможете удалить «сабдивность» поверхности.
Используя контекстное меню и команды Coarser (Грубый) и Finer (Подробный), вы можете переключаться с одного уровня иерархии на другой для более глобальной или локальной работы как в полигональном, так и в стандартном режиме (рис. 10.10).
Рис. 10.10.
Контекстное меню SDS-поверхности позволяет вам переключаться между различными уровнями иерархии. Более подробные уровни позволяют работать локально
На этом этапе не стоит слишком увлекаться такими деталями, как нос, плечи или пальцы ног. Displacement Shader (Шейдер Смещения) может стереть нос, плечи и другие мелкие элементы.
В Attribute Editor (Редактор Атрибутов) шейдинг-группы поверхности (если вы использовали шейдер Blinn, ее имя будет blinnlSG) щелкните по шахматной пиктограмме рядом с полем Displacement Mat.
Открыто окно Create Render Node (Создать Функциональный Узел Рендеринга) (см. рис. 10.11). Выберите текстуру, которая деформирует поверхность персонажа в соответствии со значением цвета текстуры, например Solid Fractal. В качестве метода отображения выберите «As projection». Проекция гарантирует, что текстура равномерно распределится по всему объекту.
Рис. 10.11. Так создается Displacement Map (Карта Смещения) трехмерной текстуры проекционного типа. Откройте Attribute Editor (Редактор Атрибутов) для Shading Group (Шейдинг-группа), щелкните по шахматной иконке рядом с полем Displacement Mat и в окне Create Render Node (Создать Функциональный Узел Рендеринга) выберите параметр «As projection» для метода и, скажем. Solid Fractal для текстуры
Поскольку в окне моделирования вы не увидите никаких изменений, отрендерите сцену.
Рендеринг не займет много времени, - может, несколько минут, в зависимости от используемой геометрии, материала и, конечно, скорости вашего компьютера. Результаты наглядно демонстрируют разницу между Displacement Mapping (Карта Смещения) и Bump Mapping (Карта Рельефа).
В рис. 10.12 как к персонажу впереди, так и к дальнему персонажу применялась одна и та же текстура Solid Fractal. Однако переднему персонажу текстура была назначена с помощью Bump Map (Карта Рельефа), а не Displacement Map (Карта Смещения) (как дальнему). Поверхность передней фигуры выглядит неровной, однако ее контур остается гладким, что отчетливо видно на фоне фона.
Рис. 10.12.
В основе этих двух персонажей одна и та же геометрия и одинаковая текстура. Разница - в способе наложения текстуры. Неровность поверхности передней фигуры обусловлена применением Bump Map (Карта Рельефа). А метод наложения текстуры дальней фигуры - Displacement Map (Карта Вытеснения). Края передней фигуры выглядят гладкими, a Displacement Map изменяет не только внутренние области, но и контур поверхности. И хотя больше никакие настройки процедуры отображения не менялись, Displacement Map значительно увеличивает толщину персонажа. Bump Map, в свою очередь, в основном сохраняет первоначальную геометрию модели
Displacement Mapping (Карта Смещения) может иметь больший или меньший эффект, в зависимости от размера узловатого человечка.
Есть два способа настройки интенсивности эффекта. Один из них - это изменение плотности наложения текстуры на геометрию. В окнах моделирования вы можете видеть каркасный куб с именем placeSDTexturel. Это именно тот инструмент, с помощью которого мы можем изменять плотность наложения текстуры (рис. 10.13).
На рис. 10.14 слева - отрендеренная сцена. С помощью отмеченной пиктограммы вы можете сохранить отрендеренное изображение в оперативную память. Оно не будет удалено до тех пор, пока вы не выйдете из Мауа (или пока не произойдет фатальный сбой в программе).
Второй способ настройки текстуры смещения - это использование градаций серого текстуры. Displacement Mapping (Карта Смещения), как и Bump Mapping (Наложение Карты Рельефа), использует только яркость (альфа-канал, а не цвет) текстуры в деформации геометрии. Для большинства текстур, таких, как Solid Fractal, вы найдете входные данные для полутонов в секции Color Balance в окне Attribute Editor (Редактор Атрибутов).
Начните с самых темных, почти черных значений цвета и низкого значения для Alpha Gain (Усиление Альфа-канала) (рис. 10.15).
Рис. 10.13.
Каркасный куб вокруг стоп персонажа определяет размер наложенной Displacement Map (Карта Смещения). Чем меньше куб, тем чаще текстура повторяется на объекте
Рис. 10.14.
Объект, отображающий расположение 3d текстуры, теперь охватывает весь персонаж полностью
Рис. 10.15.
Окно Attribute Editor (Редактор Атрибутов) для текстуры. В верхней части располагаются параметры, отвечающие за структуру фрактала, ниже - установки для градаций серого, отвечающие за деформации. Основные параметры для Displacement Map (Карта Смещения) - это Color Gain (Усиление Цвета) и Alpha Gain (Усиление Альфа- канала). Большие значения этих параметров означают более белый цвет, что приводит к увеличению объекта. Если Displacement Map (Карта Смещения) обнаруживает только черный цвет, геометрия остается нетронутой
Вообще-то, персонаж увеличивается в размере, если вы применяете яркую текстуру. Когда Displacement Mapping (Карта Смещения) обнаруживает только черный цвет, размер модели не меняется. Если текстура имеет значительные колебания в яркости, персонаж получится очень «комковатым». Выпуклости соответствуют наиболее ярким областям текстуры.
Вам придется приложить много усилий и совершить много (много... много) ошибок в поисках подходящей комбинации настроек для достижения желаемого результата. К сожалению, инструмент IPR (Интерактивный фотореалистичный рендеринг) не работает с Displacement Map (Карта Смещения). Это значит, что вам придется потратить много времени на тестовый рендеринг.
Используя настройки окна рендеринга, отрендерите либо часть изображения, либо изображение маленького размера.
SDS-моделирование и Displacement Mapping (Карта Смещения) - это два мощных инструмента для эффективного создания сложных персонажей, которые выглядят так, будто их вылепили из глины (рис. 10.16) или выковали из металла (рис. 10.17).
Рис. 10.16.
Персонаж, вылепленный из глины
Рис. 10.17.
Выкованные из металла узловатые человечки
Для создания более мелкой текстуры вы можете добавить Bump Map (Карта Рельефа) к Displacement Mapping (Карта Смещения). Bump mapping добавит мелкие шероховатости к изменениям поверхности, создаваемым техникой Displacement mapping.
При экструдировании UV-координаты текстуры очень неровно распределяются. Это можно видеть, если в качестве метода отображения выбрать Normal (Обычный), а не As Projection (Проекция). Для решения проблемы распределения текстурных координат вам нужно создать новую UV-карту например с помощью команды Automatic Mapping (Автоматическое создание текстурных координат), которую вы найдете в меню Subdiv Surfaces (SDS-поверхности).
Проекционная текстура, как та, с которой мы только что работали, не использует UV-координаты поверхности. Однако, как только вы начнете анимацию персонажа, вам придется зафиксировать проекционную текстуру на его геометрии. В противном случае, как только персонаж начнет двигаться, текстура буквально «поплывет» по его поверхности. Команду для фиксации текстуры на поверхности вы найдете в окне Hypershader. Выберите Edit / Convert to File Texture (Редактирование / Преобразовать в файловую текстуру). Если вы хотите для наложения текстур использовать какие-то изощренные средства из арсенала полигонального моделирования, то сохраните сцену и преобразуйте наше существо из SDS-поверхности в полигоны (выберите Modify / Convert / Subdiv to Polygons (Модифицировать / Преобразование / SDS-поверхности в Полигоны).
Рис. 10.18.
Узловатые человечки, выкованные из золота
А теперь кое-что новенькое. Приходилось .ли вам в последнее время нажимать клавиши А или F?
Изогнутое крыло автомобиля
Как создать крыло автомобиля из нескольких хороших NURBS-кривых?
Тема:
Моделирование.
Используемые техники и инструменты:
Loft (Построение поверхности по сечениям), Square (Квадрат), Birail (Построение поверхности по двум направляющим).
Когда разрабатывается дизайн автомашины, крыло (часть, которая огибает колесо) лишь в очень редких случаях проектируется отдельно. Форма крыла должна соответствовать внешнему виду автомобиля, поэтому обычно включается в процесс разработки дизайна. Тем не менее крыло автомобиля - это хороший пример для упражнения в моделировании весьма специфичных форм с использованием специальных кривых.
В этом уроке мы будем непрерывно создавать и модифицировать кривые, затем строить по ним поверхности, оценивать результат и удалять промежуточные построения. Начнем только с двух кривых, которые образуют Loft (поверхность, построенную по сечениям). Затем будем использовать инструмент Square (Квадрат) и закончим работу инструментом Birail3+ Tool. С помощью этих инструментов будет построена поверхность по двум направляющим кривым (кривым Rail) и нескольким профильным кривым. Это будет та поверхность, которую мы сохраним. Для начала работы вовсе не обязательно использовать сложные инструменты. Начнем с обычного Loft (Построение поверхности по сечениям) - он даст нам отличные кривые для создания более совершенных поверхностей.
В окне Front View (Вид Спереди) с помощью инструмента ЕР Curve Tool (Построение кривой по редактируемым точкам) восемью щелчками мышки создайте прямую линию вдоль оси X.
Сдублируйте кривую и переместите дубликат вверх.
Нажмите F3, выберите Surfaces / Loft (Поверхности / Построение поверхности по сечениям) для создания лофтированной поверхности по двум кривым.
В меню Pick Mask (Выбор Маски) уберите флажок с surfaces. Теперь вы можете применить выделение только к кривым (см. рис. 11.1). Разумеется, выделить поверхность можно в окне Outliner (Схема Сцены).
Выберите Modify / Transformation Tools / Proportional Modification Tool (Модифицировать / Трансформация / Пропорциональная Модификация), для того чтобы переместить вверх средние контрольные вершины нижней кривой.
Они образуют нишу для колеса (см. рис. 11.2).
Рис. 11.1.
Это лофтированная поверхность, построенная между двумя параллельными кривыми. В меню Pick Mask (Маска Выбора) в верхней части экрана дезактивирована пиктограмма с изображением поверхности. В этом режиме работы с кривыми возможность случайного выделения поверхности исключена
Рис. 11.2.
Колесо отлично входит в нишу, созданную инструментом Proportional Modification Tool (Пропорциональная Модификация). Действие Proportional Modification Tool на контрольные вершины пропорционально расстоянию от середины выделенного множества. Чем дальше располагается контрольная вершина от середины, тем эффект модификации меньше выражен
Смасштабируйте контрольные вершины обеих кривых слева и справа ниши колеса внутрь для уменьшения размера этой площади (см. рис. 11.3). При этом помните: нельзя допускать, чтобы контрольные вершины «перепрыгивали» друг через друга.
Рис. 11.3.
Инструмент Proportional Modification Tool (Пропорциональная Модификация) хорош не только для перемещения контрольных вершин, но и для их масштабирования. Мы сделаем нишу для колеса меньше и округлее. Соответствующие контрольные вершины верхних кривых следует масштабировать пропорционально, для того чтобы соблюсти точность геометрии поверхности
Переместите передние контрольные вершины обеих кривых в направлении оси Z, для того чтобы придать крылу небольшое закругление в сторону (несуществующей) решетки на радиаторе на передней части машины (рис. 11.4).
Рис. 11.4.
Обе передние контрольные вершины передвинуты вправо, для того чтобы изобразить изгиб крыла в направлении решетки радиатора
Немного сдвиньте верхние контрольные вершины (кроме тех, которые вы только что передвинули) в направлении оси Z, для того чтобы изогнуть крыло к корпусу машины (рис. 11.5).
Рис. 11.5.
Для того чтобы изогнуть край крыла в направлении корпуса машины, немного сместите оставшиеся верхние контрольные вершины
Переместите передние контрольные вершины верхней кривой немного назад, для того чтобы обозначить наклон передней части машины (рис. 11.6).
Рис. 11.6. Верхние передние контрольные вершины смещены назад для придания передней части машины требуемого наклона
Крыло не выглядит идеально. Имейте, однако, в виду, что вы затратили очень мало времени на его создание! Крыло уже похоже на крыло и ни на что другое. Однако после манипуляций с кривыми вы обнаружите ограничения в использовании лофтированной поверхности (поверхности, полученной лофтом). Горизонтальные кривые дают вам хороший контроль над формой в целом, но у вас нет вертикального контроля. Вам нужны кривые, которые позволят добавить детали, например заостренное ребро ниши колеса. Кроме того, оба вертикальных края поверхности абсолютно прямые, а ведь и они должны быть немного закругленными. Вы могли бы вставить третью кривую между двумя уже существующими и создать новую лофтированную поверхность для получения требуемого закругления. Но это будет очень неудобный способ. Вы можете получить абсолютный вертикальный контроль над поверхностью только с помощью вертикальных кривых.
В следующей части мы используем Square tool (инструмент Квадрат), с помощью которого создадим поверхность по четырем соприкасающимся или пересекающимся граничным кривым. Если этот инструмент отсутствует в вашей версии Мауа, используйте инструмент Birail 2 Tool.
Перед тем как удалить лофтированную поверхность, выделите ее и в последний раз взгляните на ее структуру и параметризацию. Лофтированная поверхность содержит две горизонтальные и несколько почти параллельных вертикальных кривых. Если какие-то из изопарм (кривые, образующие поверхность) пересекаются, то что-то не так с исходными кривыми и их (кривые, по которым строилась поверхность) нужно перестроить (рис. 11.7).
Рис. 11.7.
Базисная форма крыла, состоящая из нескольких вертикальных и двух горизонтальных кривых
Удалите лофтированную поверхность.
С помощью инструмента ЕР Curve Tool (Построение кривой по редактируемым точкам) и всего лишь двух щелчков мыши (для каждой из кривых) создайте две новые кривые, соединяющие две горизонтальные кривые (см.
рис. 11.8).
Рис.11.8.
Две новые кривые двумя щелчками мыши. Они соединяют концевые вершины предыдущих кривых
Очень важно использовать Curve Snapping (Прилипание к Кривой) (нажмите и держите клавишу с) при создании новых вертикальных кривых. Это единственный способ проконтролировать, что кривые действительно будут соприкасаться. По два щелчка мыши на каждую кривую (один вверху, один снизу) вполне достаточно. Обратите внимание на направление кривых. Оно должно быть идентичным.
Выделите четыре кривые по часовой стрелке либо против часовой стрелки и выполните команду Surfaces / Square (Поверхности / Квадрат) для создания новой поверхности. Построение поверхности не получится, если крайние точки кривых не соприкасаются.
Новая поверхность выглядит так же, как удаленная лофтированная поверхность. Однако на этом этапе вы можете управлять формой крыла по вертикали.
Передвиньте обе центральные контрольные вершины боковой кривой (той, которая позади машины) в горизонтальном направлении для закругления края крыла.
Передвиньте обе центральные контрольные вершины передней кривой (той, которая ближе к радиатору) немного вперед, для того чтобы придать уже наклоненной передней части крыла небольшое закругление (см. рис. 11.9).
Рис. 11.9.
Новая поверхность, построенная по четырем кривым. Перемещение двух центральных контрольных вершин передней кривой придает округлую форму передней части машины
Заметьте, насколько могущественны эти крошечные изменения кривизны и как они влияют на всю структуру поверхности. Если вам захочется передвинуть крайние контрольные вершины какой-нибудь из кривых, убедитесь, что вы также выделили и двигаете соответствующую контрольную вершину соприкасающейся кривой. В противном случае Square tool не будет создавать результирующую поверхность. Неплохо было бы одновременно передвигать соответствующие контрольные вершины противоположных кривых, поскольку односторонние изменения могут оказать самый неожиданный эффект на форму изопарм. После удаления нашей поверхности четыре оставшиеся кривые описывают форму крыла гораздо точнее, чем кривые, оставшиеся после лофтированной поверхности (рис. 11.10).
Рис. 11.10.
Завершение второй фазы разработки дизайна крыла: поверхность, построенная инструментом Квадрат, перед удалением
Удалите поверхность, построенную Square tool.
Переключитесь на окно Front View (Вид Спереди).
Создайте две новые вертикальные кривые, берущие начало в нише колеса и направленные к верхней кривой (рис. 11.11). Используйте Curve snapping снова и лишь два щелчка мыши на каждую из кривых.
Рис. 11.11.
Две новые вертикальные кривые, созданные инструментами ЕР Curve Tool (Построение кривой по редактируемым точкам) и Curve Snapping (Прилипание к Кривой)
Переключитесь на окно Perspective View (Вид Перспективы). Передвиньте две центральные контрольные вершины новых кривых по оси Z, для того чтобы выровнять их с другими вертикальными кривыми (рис. 11.12).
Рис. 11.12.
Переместите центральные контрольные вершины в горизонтальном направлении (влево) для придания середине крыла округлой формы
Снимите выделение со всех кривых.
Вызовите инструмент Birail 3+ Tool. Для этого выберите Surfaces / Birail / Birail 3+ Tool (Поверхности / инструмент Birail / инструмент Birail 3+ Tool).
Как вы, вероятно, уже догадались по названию инструмента, он создает поверхность из двух (bi) кривых (Rail). Часть 3+ означает, что мы используем три и более профильных кривых между направляющими. В нашем случае направляющие - это две первые горизонтальные кривые, соединенные четырьмя вертикальными кривыми (профилями). Строка помощи в нижней левой части экрана подсказывает вам порядок действий. Вас попросят сначала выделить профильные кривые.
Выделите четыре вертикальные кривые и нажмите Enter.
Выделите две горизонтальные кривые и нажмите Enter.
Таким образом мы создали новую поверхность - последнюю в этом уроке (рис. 11.13). Она очень отличается от всех предыдущих поверхностей. Рядом с новыми вертикальными кривыми можно увидеть несколько дополнительных изопарм, которые немного портят внешний вид поверхности. Однако вскоре мы это исправим.
Рис. 11.13.
Поверхность, построенная с помощью Birail 3+ Tool, выглядит менее аккуратно, чем предыдущие поверхности, поскольку ей приходится дополнительно учитывать кривые в центре
Мы добавили средние профильные кривые, для того чтобы более детально проработать верхнюю часть ниши колеса. Использования имеющихся контрольных вершин вертикальных кривых на этом этапе явно недостаточно для детализации формы крыла. Если вы откроете Attribute Editor (Редактор Атрибутов) для кривых, вы увидите, что каждая из них состоит только из одного интервала (span), полученного двумя щелчками мыши, с двумя контрольными вершинами в середине. Нам нужно перестроить (команда Rebuild) кривые, для того чтобы
увеличить количество контрольных вершин. Для сохранения аккуратности геометрической формы крыла мы перестроим все четыре вертикальные кривые, используя одинаковые установки операции rebuild.
Выделите все вертикальные кривые.
Выберите Edit Curves / Rebuild Curve Option box (Редактирование Кривых / Перестроить Кривую Окно Настроек), для того чтобы открыть окно настроек. Установите Number of Spans (Количество Интервалов) на 4 (рис. 11.14). Выполните команду, нажав Rebuild (Перестроить).
Рис. 11.14.
Перестроив все профильные кривые, мы теперь можем добавить дополнительные детали на верхнюю часть ниши колеса и получить характерный жесткий излом
Когда все вертикальные кривые перестроены, увеличивается концентрация горизонтальных патчей на поверхности Birail (поверхность, построенная по двум направляющим). Заметьте, что поверхность перестраивать не нужно, она автоматически адаптируется к новым атрибутам кривых.
В режиме Component mode (Компонентный режим (клавиша F8) сделайте видимыми все контрольные вершины обеих средних вертикальных кривых (последних из созданных вами).
В обеих кривых выделите четвертую контрольную вершину, если считать снизу (см. рис. 11.15).
Передвиньте эти контрольные вершины немного вниз.
Волшебный момент: еле заметное перемещение контрольных вершин создает желаемый острый выступ ниши колеса.
Особенность этого выступа заключается в том, что он плавно сходит на нет к концам крыла, прямо как у настоящей машины. Эта плавность обязана взаимодействию между соседними вертикальными кривыми.
Увеличив-плотность геометрии, вы можете добавить детали в верхнюю часть всех вертикальных кривых (см. рис. 11.16). Старайтесь, если это возможно,
двигать соответствующие контрольные вершины вместе. Проверьте - может быть, в другом окне и в другом режиме отображения (Shading mode), - как влияют на расположение изопарм и патчей на поверхности различные манипуляции с кривыми.
Рис. 11.15.
Перемещение выделенных контрольных вершин обеих кривых немного вниз создает характерный выступ над нишей колеса. Этот выступ плавно сходит на нет к концам крыла, поскольку контрольные вершины передней и задней кривых распределены равномерно
Рис. 11.16.
Добавление изопараметрических кривых позволяет добиться более точной формы перестроенной поверхности
Если окажется, что для получения желаемого результата вам все-таки недостаточно контрольных вершин, перестройте кривые снова. Когда результат вас удовлетворит, перестройте всю поверхность. Так вы сможете более равномерно распределить изопармы на поверхности.
Откройте Attribute Editor (Редактор Атрибутов) для поверхности и запомните оба значения (по U и по V) для Number of Spans (Количество Интервалов).
Допустим, это будут значения 17 и 4: 17 - для вертикальных и 4 - для горизонтальных изопарм. Для сложной поверхности 4 - это слишком малое число, и уменьшать его не стоит. Однако 17 - это больше, чем нам требуется на данном этапе моделирования, и его можно уменьшить на половину.
Откройте окно настроек команды перестраивания поверхностей: выберите Edit NURBS / Rebuild Surfaces Option box (Редактирование NURBS / Перестроить Поверхности) (рис. 11.17).
Рис. 11.17.
Окно перестраивания поверхностей идентично окну перестраивания кривых. С установками по умолчанию команда создает более простую и равномерную поверхность
Смените значение Number of Spans (Количество Интервалов) в направлениях U и V. (В нашем случае смените значение U на 8 и оставьте V на 4.)
Завершите команду, нажав Rebuild (Перестроить).
Теперь поверхность перестроена с более простым и равномерным распределением изопараметрических кривых. Если какие-то детали из созданных ранее отсутствуют, отмените предыдущий шаг и перестройте поверхность снова, увеличив значения по U и по V.
Кривые теперь совершенно не нужны, и вы можете удалить их. Если вы хотите продолжить работу с кривыми для внесения каких-либо изменений или добавления деталей, выделите четыре изопармы по краям поверхности и используйте инструмент Square (Квадрат) или Birail 2 Tool для построения новой поверхности по этим четырем кривым. После этого можете удалить старую поверхность. Главная цель этого упражнения - это научиться использовать наименьшее количество возможно более простых кривых для построения выразительных поверхностей.
Прежде чем вы приступите к рендерингу, увеличьте значения Tesselation (Тесселяции) в окне Attribute Editor (Редактор Атрибутов) поверхности для получения действительно гладкой формы крыла. Поищите шейдер металла в библиотеке шейдеров либо создайте собственный многослойный шейдер с полупрозрачным слоем лака сверху.
Рис. 11.18.
Красиво смоделированное крыло автомобиля ждет дверь, корпус и решетку радиатора
А теперь кое-что новенькое. Приходилось ли вам использовать Поиск Меню? [Здесь идет речь о MEL-команде findMenuItem, позволяющей отыскать пункты меню с желаемым названием (если помните, как примерно называется пункт меню, но забыли, где его искать). - Примеч. ред. ]
Нос с бородавкой
Как смоделировать нос с двумя ноздрями, бородавкой и веснушками?
Тема:
Моделирование, рендеринг.
Используемые техники и инструменты:
Subdivision Surfaces (SDS-поверхности), Automatic Texture Mapping (Автоматическое Наложение Текстуры), 3D Paint Tool (Инструмент трехмерного Рисования).
Человеческий нос обладает одной особенностью, которая при трехмерном моделировании просто взывает к NURBS моделированию: это его округлость. Но есть и другая особенность, кошмарная для NURBS моделлера: две дырки! Специалиста по полигонам, в свою очередь, дырки совершенно не беспокоят. Его, однако, весьма озадачивает вопрос получения гладкой округлой поверхности.
Тем не менее проблема носа просто решается путем использования SDS-поверхностей (или сабдивов). MAYA предлагает огромное количество готовых SDS-примитивов в меню Create (Создать). Мы могли бы начать моделирование с классического полигонального куба. В удивительно короткое время мы бы получили нос, не только гладкий и круглый, но еще и имеющий две ноздри и даже бородавку!
В реальной жизни носы очень редко существуют сами по себе, обычно они являются составляющей частью всего лица. Поскольку технология моделирования на базе SDS-поверхностей практически не зависит от исходной топологии поверхности, описанную здесь процедуру можно применять в проектах, где вы, скажем, начинали с создания сферы для головы. В отличие от обычного процесса моделирования с использованием SDS-поверхностей, где - как в главе 10 с узловатым человечком - мы в большинстве случаев использовали инструмент Extrude (Экструдирование), мы выполним всю работу только с помощью серии локальных детализаций поверхности и четко выполненных перемещений. Никакого экструдирования. В завершение мы конвертируем нос в полигональную поверхность и нарисуем на нем веснушки.
Начните с SDS-куба. Выберите Create / Subdiv Primitives / Cube (Создать / SDS-примитив / Куб). Немного увеличьте его размер (см. рис. 12.1).
Щелкните правой кнопкой мыши по кубу и, используя контекстное меню, сделайте исходный полигональный объект видимым (см.
рис. 12.2).
Используя то же контекстное меню, сделайте видимыми вершины полигонов.
Рис. 12.1.
Жил-был обычный SDS-куб
Рис. 12.2.
Переключитесь с режима Standard mode (Стандартный режим) на Polygon mode (Полигональный режим)
Выделите 12 передних вершин и отмасштабируйте их внутрь (см. рис. 12.3).
Отмасштабируйте 6 верхних вершин внутрь, сдвиньте их назад. Перемасштабируйте их вновь (см. рис. 12.4).
Передвиньте нижние передние вершины (кончик носа) вперед (см. рис. 12.5).
Рис. 12.3.
Масштабирование вершин многоугольника придает кубу основу формы носа, а SDS-поверхность плавно следует изменениям
Рис. 12.4.
Дальнейшее масштабирование и перемещения формируют основание носа
Рис. 12.5.
Моделируем острый кончик носа
Выделите четыре задние грани и удалите их (рисунок 12.6).
Рис. 12.6. Удаление четырех тыльных граней полигона открывает нос сзади. Никакая NURBS-поверхность не смирилась бы с такой операцией, а целостность SDS-поверхности остается неповрежденной
За несколько хорошо рассчитанных шагов моделирования вы создали объект, который уже выглядит как нос. Поскольку вам ничего не пришлось экструдировать, вы все еще работаете на одном-единственном уровне SDS-поверхности - 0. Нумерацию уровней можно видеть в окне Channel Box (Окно Каналов) либо с помощью контекстного меню. Для этого нужно переключиться в режим Standard mode (Стандартный режим) и активизировать вершины. В окне моделирования вершины появятся в виде нулей - говоря о том, что вы все еще работаете на нулевом уровне. Если вы попробуете переместить нижние вершины носа вверх для формирования ноздрей, то обнаружите, что плотность геометрии недостаточна для этой операции. Все, что вы можете сделать на данном этапе, - это переместить вверх всю нижнюю поверхность. Существует простой способ увеличить плотность геометрии.
Если вы этого еще не сделали, переключитесь из полигонального режима (Polygon mode) в режим Standard mode (Стандартный режим).
Используя контекстное меню, сделайте Edges (ребра многоугольника) видимыми.
Выделите те ребра, которые обрисовывают дно носовой септы (перегородка между будущими ноздрями).
Используя контекстное меню, примените команду Refine (Детализировать) к выделенным ребрам (рис. 12.7).
Рис. 12.7.
Локальная детализация вокруг центрального нижнего ребра носа готовит поверхность к созданию двух ноздрей
Теперь у вас кроме уровня 0 есть еще два уровня: 1 и 2, которые позволят вам осуществлять более локальные изменения. В большинстве случаев персонажной анимации (и в этом уроке тоже) уровень 2 вполне достаточен для моделирования ноздрей. Вы можете переключаться с одного уровня на другой, либо меняя параметры команды Display Level (Показать Уровень) в окне Channel Box (Окно Каналов), либо используя команды контекстного меню Coarser (Грубый) и Fine (Подробный). Эти команды позволят вам шагать по иерархии уровней вниз и вверх.
Сделайте вершины в уровне 2 видимыми. Выберите два ряда из четырех или пяти вершин, каждый из которых расположен параллельно носовой септе (перегородке) (рис. 12.8).
Рис. 12.8.
Восемь вершин уровня 2 готовят нас к моделированию ноздрей
Выберите Modify / Transformation Tools / Proportional Modification Tool (Модифицировать / Инструменты Трансформации / Пропорциональная Модификация) и переместите выделенные вершины вверх внутрь носа (рис. 12.9).
Рис. 12.9.
Инструмент Proportional Modification Tool (Пропорциональная Модификация) перемещает восемь вершин пропорционально вверх и формирует в носу две красивые дырочки
Используя тот же инструмент, перемасштабируйте вершины так, чтобы они оказались немного выше соседних. Подмасштабируйте и сдвиньте их немного назад.
Применение инструмента Proportional Modification Tool (Пропорциональная Модификация) обусловлено тем, что обычный инструмент перемещения передвинул бы все выделенные вершины вверх на одинаковое расстояние. В этом случае нам пришлось бы сделать еще один шаг и передвинуть вершины так, чтобы средние оказались выше всех других.
Переключитесь на уровень 1 и, опять же используя инструмент Proportional Modification Tool (Пропорциональная Модификация), масштабированием раздвиньте в стороны две вершины для обозначения внешней стороны ноздрей (см.
рис. 12.10).
Вы создали ноздри всего лишь несколькими операциями. В зависимости от того, насколько точной детализации требует ваш проект, вы можете оставить нос в таком виде, либо дополнительно поработать с этими тремя уровнями. Скажем, вы можете попытаться воссоздать какой-нибудь весьма специфический нос - это может быть нос реального человека или с рисунка. Либо, если вы работаете над анатомически правильной анимацией, вы, может быть, захотите поместить камеру внутрь носа. В этом случае вам понадобится более детальная работа над ноздрями для изображения синусоидальных пазух. Наш нос будет закончен, когда мы добавим анатомически несовершенную, но милую маленькую бородавочку на самый его кончик.
Рис. 12.10.
Конструируем ноздри с внешней стороны в уровне 1
Выберите место на носу, где вы хотите разместить бородавку. Переключитесь, скажем, на уровень 1 и выберите любую вершину в этой области.
Детализируйте область в этом месте (команда Refine) (рис. 12.11).
Рис. 12.11.
Локальная детализация вокруг точки первого уровня. Именно здесь мы разместим нашу бородавку
Дважды щелкните мышкой по пиктограмме инструмента перемещения и поменяйте Move Settings (Установки Перемещения) с World (Глобальные) на Normal (Перемещение по нормали (к поверхности).
Если вы просто вытянете среднюю вершину детализированной области наружу, то увидите, что у вас получилась скорее обычная выпуклость, чем аккуратная бородавка (рис. 12.12). Отмените операцию трансформации.
Рис. 12.12.
Перемещение вперед, от поверхности. Плотность геометрии, хотя и детализированная до уровня 2, все еще недостаточна для моделирования маленькой бородавки
Выделите среднюю вершину детализированной области и еще раз произведите ее детализацию. На новом уровне выделите среднюю вершину и вытяните ее наружу. Возможно, вам понадобится еще одна детализация (рис. 12.13). Может быть, вы захотите немного вытащить наружу также и другие вершины вокруг только что вытянутой и немного сдвинуть их масштабированием друг к дружке для укрепления основания бородавки (см.
рис. 12.14). Это сделает вашу бородавку похожей на вишенку.
Рис. 12.13.
Детализация носа на уровне 4. Наконец, мы можем вытянуть очень маленькую область из большой поверхности
Рис. 12.14.
Вершины в основании бородавки сдвинуты масштабированием друг к дружке
Теперь, когда мы удовлетворены формой (см. рис. 12.15), давайте поработаем над цветом. Для того чтобы нарисовать веснушки, преобразуйте смоделированный нос в полигональный объект и приведите в порядок его UV-координаты. Этот шаг важен, поскольку предыдущие трансформации должны были исказить карту распределения UV-координат по поверхности. На этом этапе было бы неплохо сохранить SDS-сцену под другим именем: вдруг вы захотите к ней вернуться. Другой способ возвращения к красивому носу из сабдивов, над которым вы так усердно до настоящего времени работали, отсутствует [Здесь имеется в виду, что после конвертации SDS-поверхности в полигоны нельзя будет вер- гуться обратно к SDS-представлению с сохранением иерархии. Можно будет отконвертиро- вать полигональную поверхность в SDS, но при этом, естественно, уровни иерархии будут потеряны, то есть все точки станут точками нулевого уровня деталировки, и в этом смысле поверхность потеряет элегантность представлени. - примеч. ред. ].
Выделите нос. Выберите Modify / Convert / Subdiv to Polygon (Модифицировать / Преобразовать / Сабдив в Полигон), для того чтобы открыть Option box (Окно Настроек).
Увеличьте значение Subdivisions per Face (Число Разбиений на Грань) с 1 на 2, для того чтобы удвоить количество полигонов.
Завершите команду, нажав Convert (Конвертировать).
Выберите Edit Polygons / Texture / Automatic Mapping (Редактирование Многоугольников / Текстура / Автоматическое Наложение) для наведения порядка в карте распределения текстурных (UV) координат полигонального носа.
Рис. 12.15.
Законченный нос в окнах моделирования. Вверху справа результат рендеринга (визуализации) с двумя источниками света
Нажмите F5. Выберите Texturing / 3D Paint-Tool Option box (Текстурирова- ние/ Инструмент Трехмерного Рисования Окно Настроек), для того чтобы открыть окно инструмента трехмерного Рисования.
Нажмите Assign Texture (Назначить Текстуру) и примите предложенные настройки размера текстуры.
Выберите цвет (или кисть из модуля Paint Effects) для кожи. Используя широкую кисть, нанесите основной цвет кожи на нос. Поменяйте цвет и размер кисти для рисования веснушек. Добавьте немного красного бородавке (рис. 12.16).
Помимо каналов цвета вы можете изменить и другие атрибуты с помощью инструмента 3D Paint Tool (Трехмерного Рисования). Загляните в меню Attribute to Paint (атрибут для рисования). Рисуя с использованием этой техники (техники трехмерного рисования), вы создаете двумерную картинку, которая накладывается на нос в соответствии с ранее созданным распределением текстурных (UV) координат. Вы можете открыть и отредактировать ее в программе Photoshop или в Paint Effects в режиме 2D, который иначе называется режим Canvas mode (режим Холста). (Смотрите урок в главе 28 о текстурировании спасательного круга).
Рис. 12.16.
Разноцветные веснушки, нанесенные Инструментом Трехмерного Рисования
Использование инструмента 3D Paint Tool (Инструмент Трехмерного Рисования) (с или без использования кистей модуля Paint Effects) значительно отличается от рисования в окне модуля Paint Effects (клавиша 8 на клавиатуре). Здесь (в окне Paint Effects) нарисованные вами штрихи представляют собой не пиксели в двумерном текстурном файле, а кривые в трехмерном пространстве. Эти кривые визуализируются как штрихи, которые либо располагаются по поверхности носа, либо торчат из нее, как пучки волос, растущие из ноздрей. Для того чтобы добавить волосы, откройте в окне Visor секцию Hair.
А теперь кое-что новенькое. Приходилось ли вам задавать ключевой кадр для вращения, используя клавиши Ctrl+E?
Чемодан из NURBS-сферы
Использование NURBS-сферы для моделирования прямоугольного чемодана может показаться странным. Однако NURBS-сферы являются очень гибкими в использовании поверхностями.
Создайте NURBS-сферу. Отмасштабируйте ее в пропорциях будущего чемодана.
Выделите угловые контрольные вершины и масштабированием раздвиньте их в стороны (рис 13.9).
Рис. 13.9.
Обычная NURBS-сфера. Она более округлая, чем SDS-чемодан, и очень нуждается в масштабировании угловых контрольных вершин наружу
Переключитесь в окно Top View (Вид Сверху) и отмасштабируйте контрольные вершины так, чтобы они лежали в одной плоскости близко друг к дружке для формирования краев чемодана (см. рис. 13.10).
Масштабированием раздвиньте контрольные вершины вокруг обоих полюсов сферы в стороны горизонтально для придания верхней и нижней поверхности чемодана плоской формы (см. рис. 13.11).
Рис. 13.10.
Масштабируем все угловые контрольные вершины вместе в окне Top View (Вид Сверху)
Рис. 13.11.
Масштабируем контрольные вершины верхнего и нижнего полюсов
Итак, чемодан из NURBS-сферы готов. На его моделирование мы затратили гораздо меньше времени, чем на остальные.
Чемодан из SDS-поверхностей
Этот процесс немного сложнее, чем предыдущий, но с самого начала он дает вам закругленные края.
Создайте SDS-куб. Для этого выберите Create / Subdiv Primitives / Cube (Создать / SDS-примитивы / Куб).
Нажмите клавишу 3 для придания поверхности округлой формы.
Отмасштабируйте куб в пропорциях предыдущего чемодана.
Щелкните правой кнопкой мыши по чемодану и, используя контекстное меню, сделайте вершины видимыми (рис. 13.4).
Рис. 13.4.
SDS-куб на иерархическом уровне 0
Вы увидите нули вокруг чемодана, обозначающие вершины уровня 0. Это низший возможный уровень детализации и единственный, который у нас пока имеется.
В окне Вид Сбоку масштабированием раздвиньте 12 диагональных вершин наружу для придания углам и краям чемодана нужной формы (см. рис. 13.5).
На уровне 0 мы не можем сделать углы такими острыми, как хотелось бы, поэтому нам придется создать второй уровень.
Выделите угловые вершины, которые вы только что масштабировали, и, используя контекстное меню, детализируйте область вокруг них с помощью команды Refine (Детализировать) (см. рис. 13.6).
Рис. 13.5.
Масштабированием раздвигаем диагональные вершины наружу
Рис. 13.6.
Команда Refine (Детализировать) создает геометрию более высокой плотности на углах чемодана
Теперь вы видите единички, расположенные вокруг углов чемодана. Если вам захочется впоследствии поработать на уровне 0, вы всегда можете переключиться, используя команду Coarser (Крупный).
Масштабированием раздвиньте наружу угловые вершины уровня 1 (рис. 13.7).
В целом SDS-чемодан теперь готов (рис. 13.8). Если хотите, можете использовать одну из команд меню Crease (Складка) (которые мы обсудим позже, в главе 15 о моделировании кривой ножки стула). Она создает более или менее острые края, а также может быть использована для моделирования четырех маленьких ножек чемодана.
Рис. 13.7.
Диагональные вершины более подробного уровня тоже масштабируются
Рис. 13.8.
Этапы моделирования чемодана из SDS-куба
Четыре чемодана
...Но какой из них самый удобный и полезный?
Тема:
Моделирование.
Используемые техники и инструменты:
Smooth Polygon (Сглаживание), Subdivision Surfaces (SDS-поверхности), NURBS Primitive (NURBS-примитивы), Round Tool (Округление).
В принципе нет ничего сложного в моделировании чемодана. Однако это прекрасный пример того, как различные подходы к решению задачи дают различные результаты. Мы сконструируем четыре чемодана четырьмя разными способами. Последний будет самым красивым, но мы не сможем его деформировать.
Округленный чемодан
Последний метод основан на NURBS-кубе и во многом базируется на использовании инструмента Round Tool (Округление). Этот инструмент создает систему связанных, взаимозависимых поверхностей и создает по-настоящему красивый чемодан.
Создайте NURBS-куб.
NURBS-куб фактически состоит из шести сгруппированных NURBS-плоскос- тей. Инструмент Round Tool (Округление), который мы будем использовать, работает с ребрами соприкасающихся поверхностей. В нашем случае это будут шесть плоскостей, образующих стороны NURBS-куба.
Перед тем как применить команду, отмасштабируйте чемодан в пропорциях первого полигонального чемодана. Для этого вам нужно выделить именно группу куба, а не каждую плоскость в отдельности. Вы можете найти и выделить эту группу в окне Outliner (Схема Сцены) либо выбрать одну из сторон куба и, используя клавишу Up Arrow (Стрелка Вверх), подняться вверх по иерархии объекта на одну ступень - ею и будет искомая группа.
Масштабируйте размеры куба для придания ему формы чемодана. Задайте, например, X=l,2; Y=3; Z=5.
Нажмите клавишу 4, чтобы увидеть куб в режиме Wireframe mode (режим . Каркас).
Откройте Option Window (Окно Настроек) инструмента Round Tool (Округление). Для этого нажмите F3, выберите Edit NURBS / Round Tool (Редактирование NURBS / Инструмент Округление) (рис. 13.12).
В окне Tool Settings (Настройки Инструмента) задайте радиусу небольшое значение, которое подходит для размера вашего куба (см. рис. 13.13). Если размеры вашего куба те же, что в пункте 2, то оптимальной длиной радиуса будет 0,2.
Закройте окно настроек и выполняйте инструкции, данные в строке помощи.
Выделите пару соприкасающихся поверхностей - щелкнув мышкой по ребру куба, вы фактически выделите два соприкасающихся ребра. Выделите такую пару. Вы можете поиграть с манипуляторами радиуса в окне моделирования для отрегулирования значения радиуса.
Рис. 13.12.
NURBS-куб готов к применению инструмента Round Tool (Округление). Небольшому чемодану требуется маленький радиус округления
Рис. 13.13.
Манипулятор предлагает радиус 0, 2 для первого ребра. Он может быть интерактивно изменен
Строка помощи просит вас выделить остальные пары ребер куба, одну за другой. Продолжайте это занятие, пока не получите маленькие манипуляторы радиуса около каждой из 12 пар ребер (см. рис. 13.14).
Рис. 13.14.
Двенадцать пар ребер выделены. После завершения операции Round Tool (Округление)...
Завершите операцию Round Tool (Округление), нажав Enter.
Инструмент Round Tool (Округление) делает куб округлым там, где он должен быть округлым, и оставляет плоскими те места, которые должны быть плоскими (рис. 13.15).
Рис. 13.15.
...появляются несколько новых полукруглых поверхностей. Окно Channel Box (Окно Каналов) показывает заданные радиусы
Это именно то, благодаря чему чемодан так хорошо выглядит. Крышки на углах чемодана особенно изящны - они являются самостоятельными поверхностями и поэтому могут быть текстурированы отдельно. Значения радиусов скругления можно изменить в окне Channel Box (Окно Каналов). Просто откройте секцию roundConstantRadiusl и введите другие значения для каждого ребра в отдельности или для всех вместе.
Все четыре подхода к моделированию формы чемодана имеют свои плюсы и минусы (рис. 13.16). Последний чемодан состоит из великолепно смоделированных отдельных поверхностей, но, поскольку фактически они являются триммингованными NURBS-поверхностями, мы не можем их адекватно деформировать. Чемодан из NURBS-сферы легок в построении, и его геометрия наименее сложная, но у него нет четких краев. Чемодан из SDS-поверхностей позволяет применить локальную детализацию для добавления деталей, но он требует выполнения специальных действий при текстурировании. Полигональный чемодан нужно несколько раз сглаживать, прежде чем он станет хоть немного круглее, зато его очень просто текстурировать как детально, так и в целом.
Рис. 13.16.
Слева направо: полигоны, сабдивы, NURBS-сфера и округленный чемодан
Всем нашим чемоданам не хватает двух вещей: ручек, для того чтобы их поднять, и способа, позволяющего открыть чемодан (см.
рис. 13.17). Если вы будете моделировать ручки чемодана, начните с половинки NURBS-тора либо с окружности, экструдированной вдоль пути. Открыть чемоданы довольно просто, поскольку у них всех есть либо изопараметрические кривые, либо ребра на линии открывания, по которым можно разделить поверхность на части. Для
того чтобы открыть округленный чемодан, вам нужно разбить поверхности, составляющие «верх» и «низ» чемодана, по двум разным группам.
Рис. 13.17.
Четыре чемодана демонстрируют четыре техники моделирования и четыре техники текстурирования. Второй по порядку чемодан (тот, который когда-то был NURBS- сферой) раскрашен инструментом 3D Paint Tool (Инструмент Трехмерного Рисования). Остальным назначены обычные процедурные текстуры
А теперь кое-что новенькое. Приходилось ли вам визуализировать свои работы с помощью инструмента RenderPal? [Имеется в виду утилита RenderPal - диспетчер bach render - рендера из командной строки. Эта утилита имеет довольно простой интерфейс и позволяет организовывать последовательный обсчет нескольких задач пакетного рендеринга (рендеринга из командной строки). - Примеч. ред.]
Полигональный чемодан
Самый очевидный способ начинается с полигонального куба.
Создайте полигональный куб.
Задайте его Width (Ширина) на 1,2, Height (Высота) на 3 и Depth (Глубина) на 5.
Выделите куб и примените к нему сглаживание. Для этого нажмите F3, выберите Polygons / Smooth (Полигоны / Сгладить).
Эта операция разбивает куб на большее количество граней (рис. 13.1).
Рис. 13.1.
Создайте полигональный чемодан vi примените к нему несколько раз операцию Smooth (Сгладить). Это детализирует его форму
В окне Вид Сбоку выделите все вершины, которые указывают на углы куба. Раздвиньте их наружу масштабированием (рис. 13.2). Проверьте результат в окне Perspective View (Окно Перспективы).
Рис. 13.2.
После каждой операции Smooth (Сгладить) вершины на углах раздвигаются масштабированием... [Нужно использовать именно масштабирование, чтобы не потерять симметричность формы. - Примеч. ред. ]
Детализируйте форму куба еще раз, выбрав Polygons / Smooth (Полигоны / Сгладить), и снова масштабированием раздвиньте наружу диагональные вершины, для того чтобы получить красивые края чемодана (рис. 13.3).
Рис. 13.3.
...для того, чтобы заострить сглаженные края чемодана
После третьего повтора операции сглаживания и перемасштабирования вершин взгляните на боковые стороны чемодана. Отмасштабируйте их так, чтобы они стали плоскими.
На этом завершается моделирование полигонального чемодана.
Два глаза и рот
Как сшить вместе три круглые поверхности, для того чтобы получить лицо?
Тема:
Моделирование.
Используемые техники и инструменты:
Loft (Построение поверхности по сечениям), Stitch Tool. (Сшивание), Global Stitch (Сшивание всех Границ).
В этом уроке мы познакомимся с техникой, удобной для создания NURBS-структуры с более чем двумя отверстиями, - Сшивание. Зачем вам могут понадобиться так много отверстий в NURBS-поверхности? Ну, скажем, вы моделируете человеческую голову. NURBS-моделирование дает вам гладкую криволинейную поверхность, но отверстия в ней можно делать лишь вдоль изопармы. Это означает, что, если вы начнете с создания NURBS-сферы и раскроете два полюса, для того чтобы сконструировать рот и шею, больше вам ничего сделать не удастся - вы даже не сможете добавить ни единой ноздри. Конечно, вы могли бы преобразовать NURBS-голову в полигональную поверхность и продолжить добавлять детали. Полигоны допускают очень мелкую детализацию и не возражают против отверстий. Но тогда вы бы потеряли мягкие радиальные деформации, которые дает вам техника NURBS-моделирования. Даже самый современный способ, предполагающий использование SDS-поверхностей (который, как вы заметили, я очень часто применяю в этой книге), не даст вам точного соблюдения радиальной геометрии вокруг носа и глаз, как этого требует человеческая анатомия.
Сшивание (Stitch) заключается в том, что оно настолько сближает края нескольких NURBS-поверхностей друг с дружкой, что они уже ведут себя как единая поверхность (хотя таковой не являются). К такой структуре деформирование не применяется. Однако для моделирования рта и глаз многие деформации в основном затрагивают внутренние области каждой из поверхностей, а на границах происходят малые деформации, которые не нарушают целостности стича и прекрасно им отрабатываются. Крис Ландрет сшил несколько NURBS-поверхностей вместе для моделирования лица первого персонажа, созданного в MAYA - клоуна Бинго, который впоследствии стал очень популярным.
Создайте NURBS-окружность.
Сдублируйте ее и увеличьте копию в размере.
Придайте внутренней окружности форму, напоминающую рот (рис. 14.1).
Постройте лофтированную поверхность по двум кривым.
Повторите то же самое для обоих глаз.
Рис. 14.1.
Начните с двух окружностей. Внутренняя окружность будет ртом
Удалите все кривые, они вам больше не понадобятся (рис. 14.2).
Рис. 14.2.
Три NURBS-поверхности, все еще не связанные между собой, для рта и глаз
Мы сошьем все три поверхности вместе одной-единственной командой Global Stitch (Сшивание всех Границ). Для того чтобы прочувствовать работу инструмента, вы можете попробовать сшить их вручную, используя неавтоматический вариант инструмента, который находится в меню Edit NURBS / Stitch / Stitch Edges Tool (Редактирование NURBS / Сшивание / Сшивание Границ) (или щелкните мышкой по соответствующей пиктограмме в панели инструментов). Следуйте иллюстрациям для вашей модели.
Строка помощи MAYA попросит вас выделить две граничные изопармы поверхности: в нашем случае выберем для этого внешние изопармы двух поверхностей, созданных для глаз. Когда мы применим команду, MAYA попробует каким-нибудь образом соединить две окружности из изопараметрических кривых. Поскольку это в общем-то невозможно (как можно левую половину окружности левого глаза прикрепить к правой половине окружности правого глаза?), видимого результата вы не получите. Однако мы можем ограничить области, где две окружности фактически будут касаться, передвинув манипуляторы (это маленькие ромбики; рис. 14.3). Результат, вроде бы, неплохой. Но теперь нам нужна вторая пара манипуляторов, для того чтобы вторая окружность решила, с какой частью первой окружности она будет соприкасаться (рис. 14.4).
Рис. 14.3.
Для того чтобы сшить поверхности двух глаз, передвиньте ромбовидный манипулятор к центру лица
Рис. 14.4.
Появляется второй манипулятор (желтый). Передвиньте его, для того чтобы определить, какая часть правой поверхности будет соприкасаться с левой поверхностью
Если вы все делали с нами, отмените операцию сшивания и, перед тем как мы снова осуществим ее, откройте для этого инструмента окно настроек. Здесь мы видим, что один из краев имеет приоритет над другим. Задайте одинаковый Weighting (Вес) для обоих краев (см. рис. 14.5). Две пары ромбиков появятся, для того чтобы мы могли сшить обе поверхности по строго определенным точкам (см. рис. 14.6).
Рис. 14.5.
Окно Настроек инструмента Stitch Tool (Сшивание). Две одинаково важные поверхности и весить должны одинаково
Рис. 14.6.
Появились манипуляторы левой поверхности. Они определяют, какой части левой поверхности может касаться правая поверхность
После эксперимента по ручному сшиванию отмените все, что вы делали, и приготовьтесь к «великому сшиванию».
Выделите все три поверхности. Сшейте их вместе. Для этого нажмите F3, выберите Edit NURBS / Stitch / Global Stitch (Редактирование NURBS / Сшивание / Сшивание всех Границ).
Вы не увидите изменений, пока не поместите поверхности близко друг к дружке. Global Stitch (Сшивание всех Границ) по умолчанию не замечает поверхности, расположенные далеко друг от друга.
Откройте Attribute Editor (Редактор Атрибутов) для Global Stitch (Сшивание всех Границ). Для этого вам нужно открыть Attribute Editor (Редактор Атрибутов) любой из поверхностей и нажать на закладку globalStitch 1 вверху окна (см. рис. 14.7).
Поиграйте с параметрами. Два самых важных параметра для Global Stitch (Сшивание всех Границ) - это Stitch Partial Edges (Сшить Части Границ) и Мах Separation (Максимальное Удаление) (область, в пределах которой инструмент ищет два ближайших края поверхностей).
Поскольку Global Stitch (Сшивание всех Границ) теперь работает, вы можете поработать с каждой из трех поверхностей. Например, вы можете захотеть передвинуть ряд контрольных вершин вдоль одной из изопарм поверхности рта внутрь и наружу для получения формы губ (см. рис. 14.8). Заметьте, что, когда вы изменяете одну поверхность, все соседние с ней тоже стараются следовать новой форме и перестраиваются соответствующим образом.
Но даже если вы деформируете все три поверхности чем-нибудь вроде деформатора Sculpt Deformer (Создать Рельеф), сшивание не нарушается. Если вам захотелось временно взглянуть на поверхность в ее изначальном виде, деактивируйте Global Stitch (Сшивание всех Границ), выбрав Modify / Enable Nodes / Global Stitch (Модифицировать / Активировать Узлы / Сшивание всех Границ).
Рис. 14.7.
Команда Global Stitch (Сшивание всех Границ) автоматически скрепляет между собой несколько поверхностей. Однако инструмент нуждается в некоторых настройках в окне Attribute Editor (Редактор Атрибутов)
Рис. 14.8.
Все три поверхности сшиты вместе (слева). В среднем примере рот сдвинут, а глаза наследуют движение поверхности рта. Под влиянием деформатора Sculpt Deformer (Создать Рельеф) (справа) все три поверхности деформированы единообразно по направлению от центра лица
Теперь вы можете создать отверстия для ушей и носа, не теряя комфорта NURBS-моделирования. Это может положить начало моделированию целой головы с помощью инструмента Stitch (Сшивание).
А теперь кое-что новенькое. Приходилось ли вам пользоваться командой Duplicate With Transform?
Кривой стул
Как сконструировать ножку кривого стула? [Навеяно работами Анны Кубик.]
Тема:
Моделирование.
Используемые техники и инструменты:
SDS-поверхности, Split Polygon Tool (Разбиение Многоугольника), Creasing (Складка).
Стул состоит из пары кубов, масштабированных в длину для создания спинки и ножек, и куба, уплощенного для создания сиденья. Но такие прямые стулья бывают только в воображении заурядных архитекторов и промышленных дизайнеров. Дерево, из которого делается большинство стульев, - это живой материал. Таким же является и деревянный стул.
Рис. 15.1.
Происхождение кривой ножки стула. Справа - вид моделей, слева - отрендеренные фазы конструирования
У меня была возможность заглянуть через плечо польского аниматора Анны Кубик, когда она моделировала трехмерный стул для анимации, которая была ее диссертацией в немецкой школе кино. Около ее клавиатуры лежали эскизы кривого стула с высокой спинкой, выполненные в карандаше. По этим рисункам она сконструировала стул от начала до конца буквально за один-два часа. Анна использовала только три инструмента: Subdivision Surfaces (SDS-поверхности), Split Polygon Tool (Разбиение Многоугольника) и Creasing (Складка), который придает заостренную форму округлым краям. Если ваша версия MAYA не содержит инструмента построения сабдивов, применяйте команду Smooth Polygon (Сглаживание) к выделенным граням. При этом невыделенные части геометрии останутся нетронутыми.
Основная идея Анны заключалась в том, чтобы использовать обычную технику моделирования SDS-поверхностей немного по-другому. Обычно вы преобразуете полигональные поверхности в сабдивы, для того чтобы получить округлые и гладкие края. Она же использует SDS-поверхности, для того чтобы заострить округлые области.
В этом уроке мы смоделируем только одну ножку стула, но вы, может быть, захотите продолжить и создать целый стул, используя ту же процедуру. И не смейтесь над часами, которые Анна провела за моделированием стула. Визуализированное изображение стула в конце этой главы говорит само за себя.
Я был поражен реалистичностью результата ее работы. Теперь у меня не возникает вопроса, почему стул, сконструированный в считанные минуты обычным дублированием и масштабированием, в целом выглядит так холодно и скучно. Не говоря уже о том, что в контексте огромного, занимающего целый месяц анимационного проекта пара часов, проведенных за моделированием стула, который играет центральную роль в законченной работе, - это не так уж много времени.
Создайте полигональный куб.
Удлините его до размера ножки стула.
Преобразуйте его в SDS-поверхность. Для этого выберите Modify / Convert / Polygons to Subdiv (Модифицировать / Преобразовать / Полигоны в Сабдив).
Нажмите клавишу 3, для того чтобы видеть красивую округлую поверхность.
Используя контекстное меню, переключитесь на режим Polygon mode (режим Многоугольников).
Нажмите F3, выберите Edit Polygons / Split Polygon Tool (Редактирование Многоугольников / Разбиение Многоугольника) - инструмент для разбиения граней многоугольника.
Щелкните мышкой по верхней части одного из ребер куба для определения положения начальной точки разбиения (см. рис. 15.2).
Рис. 15.2.
Инструмент Split Polygon Tool (Разбиение Многоугольника) разбивает передний многоугольник ножки стула
Щелкните мышкой по соседнему ребру примерно на той же высоте. Перед тем как вы завершите команду, нажав Enter, вы, может быть, захотите переместить точку разбиения, используя среднюю кнопку мыши.
Повторите процедуру с другой парой ребер. Привяжите инструмент к предыдущей паре ребер.
Разбейте нижнюю часть ножки стула так же, как верхнюю.
Инструмент Split Polygon Tool (Разбиение Многоугольника) ожидает, что вы будете щелкать мышкой по ребрам поверхности. Держите кнопку мышки нажатой после первого щелчка - и вы сможете передвигать зеленую точку вниз и вверх вдоль ребра. Эта точка останавливается (привязывается), когда достигает уже существующей линии разбиения. Вы всегда можете отпустить кнопку и заново отредактировать позицию точки, используя среднюю кнопку мыши.
После разбиения SDS-поверхность старается измениться в соответствии с только что созданными гранями многоугольника.
Переключитесь на режим Standard mode (Стандартный режим) (см. рис. 15.3).
Рис. 15.3.
Снова переключитесь с режима Polygon mode (режим Многоугольников) на Standard
mode (Стандартный режим)
Сделайте ребра видимыми.
Выделите восемь верхних ребер ножки (рис. 15.4).
Рис. 15.4.
Выделяем восемь верхних ребер для применения инструмента Crease (Складка)
Примените к выделенным ребрам команду Subdiv Surfaces / Full Crease Edge / Vertex (SDS-поверхности / Полная Складка Ребра / Вершины) (рис. 15.5).
Рис. 15.5.
Команда Full Crease (Полная Складка) придает ребрам многоугольника заостренную
форму
Выделите восемь ребер нижней части ножки стула.
Вместо применения команды Full Creasing (Полная Складка), на этот раз выполните команду Subdiv Surfaces / Partial Crease Edge / Vertex (SDS-поверхности / Частичная Складка Ребра / Вершины) (рис. 15.6).
Рис. 15.6.
К нижним ребрам применена более мягкая форма складки
При создании складок увеличивается разрешение поверхности вокруг ребер полигональной фигуры. Вы начали работу с нулевого уровня детализации. Теперь у вас есть также уровни 1 и 2, доступные для добавления деталей.
Используйте контекстное меню и команду Finer (Подробный), для того чтобы переключиться на следующий уровень иерархии (рис. 15.7).
Рис. 15.7.
Переключаемся на более подробное представление в режиме Standard mode (Стандартный режим)
На этом уровне выделите нижние ребра ножки стула и примените к ним одну из двух команд Crease (Складка).
Сделайте вершины видимыми.
Раздвиньте в стороны нижние вершины (см. рис. 15.8). С помощью команды Finer (Подробный) переключитесь еще на один уровень выше.
Перемещайте, масштабируйте и вращайте вершины на этом уровне (см. рис. 15.9).
Ножка стула готова. После этого Анна создала второй полигональный куб для следующей ножки и уделила ей столько же внимания. Она также использовала еще несколько трюков SDS-дизайна, но это ее личные MAYA секреты.
Рис. 15.8.
Нижние вершины уровня 1 раздвинуты в стороны
Рис. 15.9.
Уровень 2 предлагает более мелкие манипуляции и деформации ножки стула
Теперь все зависит от вас: последуете ли вы примеру Анны либо продолжите дублирование и масштабирование существующих объектов. В любом случае в итоге у вас будет сконструирован стул, который значительно отличается от идеально прямых стульев, которые предлагают архитектурные программы CAD.
Рис. 15.10.
Процесс работы: несколько видов стула Анны Кубик для ее анимации «Sally Burton»
А теперь кое-что новенькое. Приходилось ли вам щелкать мышкой на кнопку A\W в окне Hotbox (окно оперативного доступа к элементам интерфейса) и смотреть на Север?