Skip to content
Narrow screen resolution Wide screen resolution Increase font size Decrease font size Default font size default color green color orange color
Главная arrow Книги arrow Иллюстрированный самоучитель по Maya для начинающих
Иллюстрированный самоучитель по Maya для начинающих Печать E-mail
14.12.2007 г.
Оглавление
Иллюстрированный самоучитель по Maya для начинающих
Предисловие
Введение
Анимация
Моделирование
Динамика
Рендеринг

Пожалуйста, переверните страницу

Как перевернуть страницу трехмерной книги?

Тема:

Анимация.

Используемые техники и инструменты:

ЕР Curve Tool (Построение кривой по редактируемым точкам), Loft (Построение поверхности по сечениям).

Первый урок, кстати, самый простой в этой книге. Может быть, задача переворачивания страницы трехмерной книги покажется вам банальной и даже скучной. Я думал точно так же, пока не предложил это задание десяти студентам университета в классе 3D анимации. Я дал им 30 минут на то, чтобы смоделировать лист бумаги и перевернуть его справа налево.

Некоторые студенты уже занимались трехмерной анимацией в свободное время, другие подрабатывали Веб-дизайном. Все они были хорошо знакомы с интерфейсом Мауа. Однако через полчаса никто из них не смог сконструировать изгибающуюся в процессе перелистывания страницу книги.

Лучшим результатом была выпуклая страница, которая проникала в корешок книги, поскольку ее кривизна не менялась во время переворачивания. Некоторые студенты пытались решить проблему с помощью Soft Body Dynamics (Динамики Мягкого Тела), один студент даже использовал Maya Cloth (Maya Ткани); они просто не смогли справиться с задачей, используя базовые приемы моделирования.

Поэтому, если вы все еще считаете этот урок простым, возьмите и сконструируйте страницу на вашем компьютере. И не переворачивайте страницу этой книги, пока не перевернете трехмерную страницу в Мауа.

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

Эта анимация заключается в повороте страницы вокруг центральной оси книги, которая соединяет страницы между собой. Если вы начнете с использования, скажем, обычной NURBS-плоскости (сокр. от non-uniform, rational B-spline - неоднородный рациональный би-сплайн (геометрический примитив, широко используемый для описания кривых поверхностей) и попробуете повернуть ее вокруг оси, вам придется иметь дело с контрольными вершинами, для получения нужного изгиба страницы. Я не возражаю против такого способа. Однако знайте, что контрольные точки могут быть использованы только на завершающем этапе моделирования, и, как правило, для получения мелких изменений, но не в основных процедурах. Поэтому выполнение задачи необходимо начинать не с плоскости, а с кривых. Раз уж мы имеем дело с поворотом вокруг оси, давайте создадим 3 кривые, параллельные ей.

  1. В виде сверху создайте 3 параллельные кривые с помощью инструмента ЕР Curve Tool (EP Кривая) (рис. 1.1). Третья кривая должна лежать на оси Z. Линия, по которой соединяются страницы книги, является также нашей осью вращения.
  2. Примените инструмент Loft (Построение поверхности по сечениям) ко всем трем кривым (рис. 1.2).
  3. Сделайте невидимой третью кривую (корешок книги).
  4. Задайте длительность анимации 200 кадров.

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

1.1.gif

Рис. 1.1. С помощью инструмента ЕР Curve Tool NURBS-кривые можно создать всего лишь двумя щелчками мыши

1.2.gif

Рис. 1.2. Три кривые для одной страницы книги

  1. Протестировать полученную страницу можно путем одновременного вращения первых двух кривых (но не лофтированной поверхности!) вокруг оси Z.
  2. Вернитесь в начало временной шкалы и задайте ключевой кадр для вращения вокруг оси Z для первых двух кривых. Для этого нажмите правой кнопкой мыши на Rotate Z (Вращение по оси Z) в окне Channel Box (Окно Каналов) и выберите Key Selected (Установить ключевой кадр для выделенных атрибутов) (рис. 1.3).
1.3.gif

Рис. 1.3. Два ключевых кадра для кривых заставляют страницу переворачиваться

  1. Перейдите в конец анимации, поверните обе кривые вокруг оси Z на -180° и установите еще один ключевой кадр.

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

1.4.gif

Рис. 1.4. В перспективном окне мы видим, как переворачивается страница, хотя поворачиваются только кривые

Теперь мы придадим поверхности специфичный изгиб страницы книги. Но здесь есть один нюанс. Обычно мы пользуемся терминами перемещения («Я поднимаю бокал к своему рту» вместо «Я вращаю бокал вокруг оси своего локтя»), поэтому существует соблазн переместить вверх среднюю кривую, вместо того чтобы повернуть ее (рис. 1.5).

1.5.gif

Рис. 1.5. При выполнении поворота перемещение кривых недопустимо

1. Перейдите в начало анимации.

2. Выделите среднюю кривую и поворачивайте ее вокруг оси Z, пока не получите нужного изгиба поверхности.

3. Установите ключевой кадр для Rotate Z (Вращение по оси Z).

4. Идите в конец анимации.

5. Поверните кривую, чтобы получить красивый изгиб в обратном направлении.

6. Установите ключ для Rotate Z (Вращение по оси Z).

Лучше всего поворот и изгиб страницы можно увидеть в окне Вид Перспективы (рис. 1.6).

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

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

1.6.gif

Рис. 1.6. Чтобы согнуть бумагу, необходимо повернуть среднюю кривую

Теперь у вас есть страница, но где же сама книга? Начнем с копирования кривых в их начальной и конечной позициях. Создайте пару лофтированных плоских поверхностей - и книга закончена в считанные минуты (рис. 1.7). Если страница будет видна зрителю с обеих сторон, стоит дополнительно приложить усилия для ее текстурирования. Конечно, вы можете стандартным способом наложить одинаковую текстуру сверху и снизу. Но существует также простой способ, которым можно по-разному текстурировать обе стороны NURBS-поверхности. Этот способ можно найти в документации в Интернете, введя для поиска «double-sided shading» (двусторонний шейдинг).

1.7.gif

Рис. 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, вам пришлось бы переделывать все с самого начала.

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

2.1.gif

Рис. 2.1. Плавное движение камеры к конусу. Я использовал команду Create Motion Trail (Создать След Движения), для того чтобы получить графическое представление пути движения с пронумерованными ключевыми кадрами

  1. Задайте длительность анимации 200 кадров.
  2. Создайте камеру и объект, с которым она будет работать.
  3. Анимируйте движение камеры к объекту с двумя или тремя ключевыми кадрами (для начала, середины и окончания движения). Пусть путь движения будет слегка криволинейным.
  4. Удалите все каналы анимации, в которых ничего не происходит, выбрав Edit / Delete by Type / Static Channels (Редактирование / Уничтожать в зависимости от типа / Статичные Каналы).
  5. Отредактируйте оставшиеся ключевые кадры в Graph Editor (Редакторе Анимационных Кривых). Например, задайте горизонтальный тип касательным ключевых кадров начала и конца анимации и преобразуйте касательную среднего ключевого кадра в «сплайн».
  6. Откройте окно Create Clip Option Box (Создать Клип Окно Настроек). Нажмите для этого клавишу F2 и выберите Animate / Create Clip (Создать анимацию / Создать Клип Окно Настроек). В этом окне вы переходите от классической анимации по ключевым кадрам к нелинейной анимации. Введите здесь имя для анимации плавного движения камеры.
  7. Нажмите кнопку Create Clip (Создать Клип). Поскольку вы не меняли параметров создания клипа, ключевые кадры исчезают из временной шкалы. Камера тем не менее продолжает двигаться, а все данные анимации теперь сохранены в Trax Editor (Редактор Дорожек).
  8. Откройте Trax Editor (Редактор Дорожек): выберите Window / Animation Editors / Trax Editor (Окно / Редакторы Анимации / Редактор Дорожек) (рис. 2.2).
2.2.gif

Рис. 2.2. Каналы анимации плавного движения камеры представлены в виде клипа в Trax Editor (Редактор Дорожек)

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

Давайте дезактивируем данные о движении камеры в Trax Editor (Редактор Дорожек), убрав флажок с Enable Clip (Активировать Клип) в контекстном меню правой кнопкой мыши. Теперь камера будет находиться там, где вы ее оставили, что позволит вам заняться другими вещами. Данные анимации при этом не пропадут. Мы создадим короткую анимационную последовательность, в которой камера будет вздрагивать.

  1. Переключитесь на Perspective View (Вид Перспективы).
  2. Идите в начало анимации. Камера неподвижна и находится там, где вы ее оставили, когда дезактивировали клип.
  3. В окне Channel Box (Окно Каналов) задайте для трех каналов Translate (Перемещение) и Rotate (Поворот) значение 0. Камера перепрыгнет в начало координат сцены.
  4. Установите ключевой кадр для каналов перемещения и поворота камеры.
  5. Установите ключевой кадр в кадре 20 для тех же параметров.
  6. Идите в кадр 5, слегка подвигайте и повращайте камеру. Поставьте ключ.
  7. Создайте еще несколько ключевых кадров для небольших изменений каналов перемещения и поворота в кадрах 10 и 15.

При воспроизведении анимации может показаться, что камера остается неподвижной в начале координат. На самом деле она довольно основательно трясется и поворачивается меньше чем за 1 секунду. Теперь мы преобразуем эти каналы в новый клип.

  1. Выберите Animation / Create Clip (Создать Анимацию / Создать Клип Окно Настроек). В окне Create Clip Options Box (Создать Клип Окно Настроек) создайте клип для новой анимации и дайте ему имя «Shake» (рис. 2.3).
2.3.gif

Рис. 2.3. Создайте клип подрагивающего движения камеры, используя окно Create Clip Option Box (Создать Клип Окно Настроек)

И снова маркеры ключевых кадров исчезают из временной шкалы. Однако их все еще можно найти в Trax Editor (Редакторе Дорожек). Клип Shake расположен прямо под клипом плавного движения камеры. Поскольку мы обработали только 20 кадров, полоска, изображающая вздрагивающую камеру, гораздо короче, чем полоска первоначального движения камеры длиной анимации в 200 кадров.

  1. Щелкните правой кнопкой мыши по клипу плавного движения камеры и выберите Enable Clip (Активировать Клип), чтобы вновь активировать первоначальный клип (рис. 2.4).
  2. Посмотрите сквозь камеру.

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

2.4.gif

Рис. 2.4. Клип Shake из 20 кадров теперь в Trax Editor (Редактор Дорожек). Предыдущий неактивный клип теперь активирован

Теперь камера начнет дрожать немного позже на пути к конусу. Скорее всего, эффект подрагивания получился слишком сильным. Давайте немного его смягчим. Для этого щелкните дважды по клипу Shake для появления его настроек в окне Channel Box (Окно Каналов). Попробуйте уменьшить значение Weight (Вес) с 1 до 0,2 (рис. 2.5).

2.5.gif

Рис. 2.5. Эффект подрагивания будет мягче, если уменьшить его Weight (Вес)

Если вы захотите левой кнопкой мыши увеличить длину клипа на всю анимацию, она не растянется. Она зациклится [Здесь странная неточность: если подвести курсор мыши к правому нижнему углу клипа и попытаться потянуть за этот угол, то курсор превратится в «круговую стрелку» и анимация действительно будет повторяться, однако если попробовать потянуть за правый верхний угол клипа, то анимация как раз растянется да и курсор будет отображаться в виде правой стрелки. - Примеч. ред. ]. Кроме того, камера Dogma, о которой мечтает ваш клиент, не трясется все время на пути к желаемому объекту - у нее есть периоды плавного движения.

В Trax Editor (Редакторе Дорожек) скопируйте клип Shake, используя правую кнопку мыши и команду Copy Clip (Копировать Клип). Для того чтобы вставить его, выберите Edit / Paste (Редактирование / Вставить). Вы увидите скопированный клип в новой, третьей дорожке. Передвиньте его на вторую дорожку, в ее середину.

Дважды щелкните мышкой по клипу и, если его Вес все еще установлен на 1, смените это значение на ваш вкус.

Вы можете увеличить продолжительность клипов Shake, изменив значение Scale (Масштаб) в окне Channel Box (Окно Каналов). Попробуйте значение 3 для одного из клипов. Это сделает его втрое длиннее первоначальной версии без повторов. Периоды подрагивания камеры, таким образом, не будут следовать немедленно один за другим.

Скопируйте клип Shake в конец анимации. Теперь камера будет вздрагивать и после достижения конечной позиции.

Когда вы воспроизведете анимацию, то увидите, что после 200-го кадра информация о плавном движении камеры больше не считывается. Зато последний клип подрагивания продолжает действовать, отсылая камеру в начало координат, то есть в то место, где он был создан. Этот скачок связан с абсолютными и относительными значениями перемещений. В Relative mode (Относительный режим) параметры трясущейся камеры не обрабатываются как таковые, а прибавляются к данным другого клипа. Щелкните правой кнопкой мыши в конце анимации и поставьте флажок на Relative Clip (Клип с относительными значениями перемещения) (рис. 2.6).

2.6.gif

Рис. 2.6. После кадра 200 камера считывает информацию только с клипов подрагивания, которые были созданы в начале координат, поэтому она отправляется прямо туда. Остановите ее путем установки Relative Clip (Клип с относительным значением перемещения) в параметрах трясущегося клипа. Теперь камера, достигнув конечной позиции, продолжает там же немного вздрагивать

Вы можете применить эту команду и к другим клипам. Однако, если движение вздрагивания камеры было создано не в начале координат, а где-либо еще, вам придется установить для каждого из клипов на дорожке режим Relative mode (Относительный режим).

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

Так же как в видеоредактировании, вы можете использовать микширование клипов (см. главу 6).

А теперь кое-что новенькое. Приходилось ли вам делать кости тоньше?

Забавы со скручиванием

Как изменить куб до неузнаваемости?

Тема:

Анимация, моделирование.

Используемые техники и инструменты:

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.gif

Рис. 3.1. Отделение подменю нелинейных деформаторов

Итак, у вас под рукой шесть инструментов деформации. Сначала мы создадим куб и обогнем его вокруг угла, используя деформатор Bend (Изгиб).

  1. Создайте полигональный куб, увеличьте его размеры до 10 единиц во всех трех направлениях и задайте число разбиений, по 10 в каждом направлении.
  2. Создайте анимацию движения куба таким образом, чтобы в кадре Q он начинал движение с точки Х= -35 слева, а заканчивал через 200 кадров в точке Х= 35 справа.
  3. Идите в кадр 20. Выделите куб и в плавающем меню выберите Bend (Изгиб) (рис. 3.2).

Как и многие инструменты деформации, Изгиб не показывает вначале никаких изменений, но это не значит, что он не действует. Взгляните на его работу в режиме Wireframe mode (режим Каркас). Деформатор находится внутри куба.

  1. В секции Input (Входные Данные) окна Channel Box (Окно Каналов) откройте bend 1 и поменяйте его Curvature (Кривизна) с 0 на 1.
  2. Нажмите клавишу t, и вы увидите 3 маленьких манипулятора для bend 1, как показано на рис. 3.3. Поиграйте с ними.
  3. Поверните bend 1 на 90 градусов вокруг оси Z.
3.2.gif

Рис. 3.2. Куб подвергается воздействию деформатора Bend (Изгиб). Плавающее окошко справа - это меню нелинейных деформаторов

3.3.gif

Рис. 3.3. Три манипулятора заставляют куб изгибаться относительно угла

Когда вы воспроизведете анимацию, куб изогнется по кривой, касательной пути его движения. После того как ваш куб обогнет угол, передвиньте манипулятор bend 1 так, чтобы куб двигался вдоль оси X, покидая область действия деформатора. Для этого вы также можете просто уменьшить значение Low Bound (Нижняя Граница) в окне Channel Box (Окно Каналов) до 0. Давайте попробуем другой деформатор.

  1. Идите в кадр, где ваш куб оставил зону действия bend 1, и примените к нему деформатор Flare (Выпуклость).
  2. Вращайте flare 1 на 90 градусов вокруг оси Z.
  3. Щелкните мышкой на flare 1 в окне Channel Box (Окно Каналов), нажмите клавишу t и подвигайте семью манипуляторами деформатора (рис. 3.4).
3.4.gif

Рис. 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 (Выпуклость).

  1. После того как куб выйдет из flare 1, прямо перед серединой анимации примените к нему деформатор Sine (Синусоидальная Деформация) (рис. 3.5).
  2. Как и раньше, поверните sinel вокруг оси Z на 90 градусов и увеличьте амплитуду с 0 до 0,5.
  3. Поиграйте с манипуляторами sinel.

Длина волны не только определяет частоту появления .волн, но также и то, каким наш куб входит и выходит из области действия деформатора. Длина волны 0,5 или 3,1 не кратна количеству полных колебаний, а следовательно, изменяет форму куба до и после деформации. Установите Wavelength (Длину Волны) sinel на целое число, например 1 или 2.

3.5.gif

Рис. 3.5. Синусоидальная деформация делает куб волнистым в одной плоскости

  1. После того как куб выйдет из зоны влияния sinel, примените к нему деформатор Squash (Сплющивание).
  2. Поверните деформатор на 90 градусов вокруг оси Z так, чтобы область его влияния оказалась направлена вдоль оси движения куба вдоль всего анимационного пути.

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

Отрицательный фактор Сжатия влечет эффект утолщения, что делает весь куб короче (рис. 3.6). Если вы выберете фактор сжатия 7, куб сожмется и вытянется одновременно. Start and End Smoothness (Начальное и Конечное Значения Сглаживания) дают вам возможность сделать эффект более или менее мягким. При значении 7 этот параметр позволит эффекту начать более мягко. Когда вас удовляетворят параметры Squash (Сплющивания), продвиньтесь немного вперед по временной шкале, и мы попробуем следующий деформатор.

3.6.gif

Рис. З.6. Сплющивание утолщает и укорачивает куб одновременно

  1. Примените деформатор Twist (Скручивание) к кубу.
  2. Поверните его на 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.gif

Рис. 3.7. С помощью манипуляторов деформатора Скручивание вы можете отрегулировать параметры внутреннего вращения куба

3.8.gif

Рис. 3.8. Волна в двух плоскостях и ее деформированная жертва показаны в режиме Х-гау shading mode (Рентгеновское Просвечивание)

Если вы выберете большее разрешение для куба, вы сможете использовать деформаторы при анимации и моделировании на завершающем этапе. Например, Twist (Скручивание) можно использовать для создания винта. С помощью Wave (Волна) можно создавать анимации водных поверхностей, к примеру океана. Заметьте, в работе над одним объектом вы можете применять столько деформаторов, сколько захотите. Попробуйте соединить несколько деформаторов Wave (Волна) для создания ряби на больших волнах. Или примените деформатор Wave (Волна) там, где уже работает Twist (Скручивание), и вы получите сильное скручивание с еле уловимым эффектом волн (рис. 3.9).

3.9.gif

Рис. 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.gif

Рис. 4.1. Набор объектов: звенящее устройство со звонком, ударником, кнопкой и ее рамкой

  1. Выделите ударник (в действительности группу поверхностей, из которых он состоит) и в режиме Insert mode (Режим редактирования опорной точки) передвиньте его опорную точку назад (см. рис. 4.2).
4.2.gif

Рис. 4.2. Опорная точка ударника сдвинута назад

  1. В окне Channel Box (Окно Каналов) нажмите на Rotate Y (Вращение по оси Y) и, используя контекстное меню, правой кнопкой мыши откройте Expression Editor (Редактор Выражений) (рис. 4.3).
4.3.gif

Рис. 4.3. Выражение со случайной функцией заставляет ударник вращаться между -0,5 и 0,5 градусами

  1. Наберите следующее выражение в пустом поле внизу окна и замените ringerG именем, которое вы выбрали для своего ударника:

ringerG.rotateY = rand(-0,5, 0,5);

  1. Активизируйте выражение, нажав Create (Создать).

Ударник теперь вращается случайным образом между минус полградуса и плюс полградуса относительно своей вертикальной оси. Если вибрация кажется вам слишком слабой, увеличьте значение аргументов случайной функции rand.

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

  1. Откройте Attribute Editor (Редактор Атрибутов) для кнопки и выполните команду Attributes / Add Attribute (Атрибуты / Добавить Атрибут). Так вы откроете окно создания новых атрибутов объекта (рис. 4.4).
4.4.gif

Рис. 4.4. Кнопка приобретает новый атрибут для состояний on / off

  1. Дайте атрибуту имя, например rrringTheBell, установите его Data Type (Тип Данных) на Boolean (Булевские). (Они принимают значения 0 или 1, включено или выключено - третьего не дано.) Data Type (Тип Данных) Integer (Целые) включает все целые числа и, таким образом, дает нам слишком большой выбор. Нажмите ОК для добавления нового атрибута.

Вы найдете новый атрибут прямо под атрибутом Object's Visibility (Видимость Объекта) в окне Channel Box (Окно Каналов). Сейчас его состояние установлено на off (выключено). Но даже если мы изменим его на on (включено), ничего не изменится. Атрибут должен знать, что делать с этим on (включено). Мы поручим инструменту Set Driven Key (Установить Управляемый Ключ) управлять связью между новым атрибутом rrringTheBell и позицией кнопки. Инструмент Set Driven Key (Установить Управляемый Ключ) заставит новый атрибут посылать команду, которая вызовет нажатие кнопки.

  1. Откройте окно Set Driven Key (Установить Управляемый Ключ). Для этого нажмите клавишу F2, выберите Animate / Set Driven Key / Set Option Box (Создать Анимацию / Установить Управляемый Ключ / Установить Окно Настроек).
  2. Загрузите атрибуты кнопки в верхнее и нижнее поля окна (Drivers and Driven (Управляющий и Управляемый) (рис. 4.5).
  3. В верхнем правом поле выделите новый атрибут rrringTheBell.
  4. В нижнем правом поле выделите канал перемещения, который отвечает за движение кнопки в нажатую позицию. В нашем примере это Translate Y (Значение перемещения по оси Y).
4.5.gif

Рис. 4.5. Инструмент Set Driven Key (Установить Управляемый Ключ) создает зависимость между позицией кнопки (в данном случае значение ее перемещения по оси Y (Translate Y) и значениями on / off нового атрибута звонка (rrring The Bell). В отличие от обычных ключевых кадров инструмент Set Driven Key (Установить Управляемый Ключ) создает связь не между атрибутами и временем, а между атрибутами и атрибутами

  1. Убедитесь, что кнопка находится в ненажатом состоянии, а новый атрибут rrringTheBell установлен на off (выключено).
  2. В окне Set Driven Key (Установить Управляемый Ключ) нажмите Key (Ключ). С этого момента всегда, когда вы будете устанавливать значение нового атрибута в off (выключено), кнопка сама примет ненажатое положение.
  3. Приведите кнопку в нажатое положение.
  4. В окне Channel Box (Окно Каналов) наберите слово on в поле нового атрибута.
4.6.gif
  1. В окне Set Driven Key (Установить Управляемый Ключ) нажмите Key (Ключ) и закройте окно.

Когда в окне Channel Box (Окно Каналов) вы поменяете атрибут звонка с on на off, кнопка звонка вернется в выключенное положение. Теперь давайте займемся самим ударником.

  1. Откройте Expression Editor (Редактор Выражений) для ударника. Добавьте к перед ранее созданным случайным выражением строки, содержащие условный оператор if (замените имена атрибутов на ваши собственные, если это нужно):

if (button.rringTheBell == 1) ringerG.rotateY = rand (-0,5, 0,5);

  1. Нажмите на Edit (Редактирование) для сохранения изменений.

Вот что новая запись означает: если атрибут rrringTheBell принимает значение on (включено) (1 как противоположность 0), звонок зазвенит. Из этого следует, что, если rrringTheBell принимает значение off (выключено), ничего не произойдет. Новый атрибут не только управляет кнопкой, но и позволяет вам звонить в дверной звонок.

Однако, если вы в таком виде передадите сцену коллеге, который будет создавать персонаж, звонящий в звонок, чтобы попасть в дом, она для него будет слишком сложной. Вашему коллеге придется анализировать внутреннюю структуру сцены, изучать взаимодействие Expressions (Выражений) и инструмента Set Driven Key (Установить Управляемый Ключ) с объектами и их работу и т. д. Мы сделаем так, чтобы следующий аниматор мог сфокусировать внимание только на одном объекте - красной кнопке и ее атрибуте rrringTheBell. Окно для наведения порядка в Channel Box (Окно Каналов) называется Channel Control (Управление Каналами).

  1. Выберите Window / General Editors (Окно / Основные Редакторы), для того чтобы открыть окно Channel Control (Управление Каналами) (рис. 4.6).
4.7.gif

Рис. 4.6. Левая сторона окна Channel Control (Управление Каналами) содержит список всех атрибутов кнопки, на которые могут быть поставлены ключи (keyable attributes). Все атрибуты, кроме одного (нового), выделены и будут перемещены в правую часть окна. Они впоследствии исчезнут из окна Channel Box (Окно Каналов)

  1. В левом поле выделите все входные данные, кроме того, которое относится к управлению звонком.
  2. Нажмите Move (Переместить) для перемещения выделенных атрибутов в секцию Non Keyable окна и таким образом удалите их из окна Channel Box (Окно Каналов).

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

4.8.gif

Рис. 4.7. После очищения только один атрибут остался в окне Channel Box (Окно Каналов). Это все, что нужно видеть аниматору, для того чтобы дать возможность персонажу позвонить в звонок

А теперь кое-что новенькое. Приходилось ли вам применять Incremental Save? [Сохранение с автоматическим добавлением возрастающих номеров к имени сохраняемого файла. - Примеч. ред.] Может предотвратить кучу неприятностей

Куда он делся!

Как заставить персонаж со свистом умчаться, как в мультфильме?

Тема:

Анимация персонажей.

Используемые техники и инструменты:

Jiggle Deformer (Деформатор Покачивание), Graph Editor (Редактор Анимационных Кривых), Motion Blur (Размытость при движении).

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

В этом уроке мы используем три очень полезных инструмента для создания эффекта подготовки действия: Jiggle Deformer (Деформатор Покачивание) (новый инструмент Мауа 4), который заставит персонаж слегка покачиваться назад и вперед по инерции движения; Graph Editor (Редактор Анимационных Кривых) позволит нам настраивать касательные ключевых кадров и рендеринг с опцией Motion Blur (Размытость при движении) позволит визуально усилить ощущение скорости.

  1. Создайте NURBS-конус. В окне Channel Box (Окно Каналов) откройте секцию Inputs (Входные Данные) и увеличьте Radius (Радиус) конуса с 1 до 4, а его Spans (Число секций по вертикали) установите на 4.
  2. Выделите три средние секции конуса и слегка сузьте их по направлению к центральной оси (см. рис. 5.1). Не снимайте выделение.
  3. Переключитесь на меню анимации (клавиша F2). Выберите Animate / Create Jiggle Deformer (Создать Анимацию / Создать Деформатор Покачивание), для того чтобы применить деформатор к выделенным сегментам конуса.
5.1.gif

Рис. 5.1. Средние секции конуса сужены

Покачивание деформирует геометрию фигуры в соответствии с данными движения и инерцией. Нет движения, нет и покачивания. Итак, давайте добавим движение нашему конусу.

  1. Задайте длительность анимации 100 кадров.
  2. Идите в кадр 25 и выделите конус.
  3. Задайте ключевой кадр для положения конуса, используя клавиши SHTFT+W.
  4. Идите в кадр 75.
  5. Переместите конус на 100 единиц влево и установите здесь второй ключевой кадр.

Когда вы воспроизведете анимацию, верхняя секция (не самый кончик и не основание, поскольку мягкой мы сделали только середину) наклонится с началом движения конуса (рис. 5.2).

5.2.gif

Рис. 5.2. Начиная с кадра 25 конус движется справа налево. В кадре 25 (крайний правый конус) он стоит прямо, в кадре 26 он резко устремляется влево, а его форма меняется Деформатором Покачивание. Хотя движение заканчивается в кадре 75 (крайний левый конус), верхушка конуса некоторое время слегка покачивается назад и вперед по инерции. Без Деформатора Покачивание эта линейная анимация справа налево была бы весьма неинтересной

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

Давайте проведем эксперимент.

  1. Возьмите ручку со стола и держите ее прямо перед собой. Затем очень быстро перенесите ее влево. Озвучьте движение свистящим звуком.
  2. Повторите процедуру, немного изменив начало: слегка отведите ручку вправо, перед тем как она умчится влево. Снова озвучьте это свистящим звуком, как в мультфильме.
  3. Обратите внимание на синхронизацию движения: вы интуитивно начинаете с длинного звукового эффекта, когда ваша ручка медленно движется вправо с начальной позиции. Движение ручки немного замедлено еще некоторое время, а затем она мгновенно уносится влево, сопровождаемая коротким свистящим звуком.

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

  1. Идите к первому ключевому кадру анимации.
  2. На временной шкале нажмите среднюю кнопку мыши и, не отпуская, ведите курсор к кадру 70.

Использование средней кнопки мыши на временной шкале позволяет переносить фиксированное состояние анимации из одной точки во времени в другую. Сцена при этом не обновляется. Таким образом, нам уже не нужно искать конус и перемещать его из далекой позиции в кадре 70.

  1. Переместите конус вправо, в позицию подготовки действия.
  2. Установите ключевой кадр.

Теперь конус, оставляя начальную позицию, медленно движется вправо на протяжении нескольких кадров и молниеносно исчезает из виду в левую сторону всего за пару кадров (см. рис. 5.3).

5.3.gif

Рис. 5.3. Анимация с подготовкой действия, как в мультфильме. В кадре 25 конус начинает медленно двигаться вправо. Это предваряющее движение в противоположном направлении длится около 2 секунд до кадра 70. Затем внезапно наш конус устремляется влево и достигает конечной позиции всего за 5 кадров. Он резко останавливается, а верхушка продолжает еще долго раскачиваться. Самое большое ускорение, а следовательно, и самые большие покачивания происходят тогда, когда конус покидает зону подготовки действия в кадре 71 и после его внезапной остановки в кадре 75

Деформатор Покачивание активнее всего действует в кадре 70, где меняется направление движения. Если эффект покажется вам слишком сильным, откройте секцию Jiggles (Покачивания) в окне Channel Box (Окно Каналов) и увеличьте значения параметров Stiffness (Жесткость) и Damping (Затухание).

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

  1. Выделите конус и выберите Window / Animation Editors (Окно / Редакторы Анимации), для того чтобы открыть Graph Editor (Редактор Анимационных Кривых).
  2. Удалите или проигнорируйте все горизонтальные кривые, не имеющие отношения к анимации.
  3. Выделите средний ключевой кадр (кадр 70).
  4. Нажмите на пиктограмму Break tangents (Разделение Касательных) в верху окна, для того чтобы разделить касательные в этом ключе (см. рис. 5.4).
  5. Выделите правую часть касательной и щелкните по пиктограмме Linear (Линейный). Это заставит касательную сильно отклониться в направлении последнего ключевого кадра.
  6. Выделите левую часть касательной и щелкните по пиктограмме Flat (Горизонтальный), для того чтобы расположить ее горизонтально (см. рис. 5.5).

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

5.4.gif

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

5.5.gif

Рис. 5.5. Задав тип Linear (Линейный) для правой касательной - в нашем случае это означает крутой и быстрый, - мы задаем левой касательной тип Flat (Горизонтальный). Теперь конус не спеша движется до точки поворота, а затем неожиданно стремительно покидает ее

Для рендеринга такой анимации нам просто необходим Motion Blur (Размытость при Движении). Motion Blur - это эффект, заимствованный из мира реальной видеосъемки, который легко имитируется в программах по трехмерной графике.

Прежде чем приступить к рендерингу с опцией Motion Blur (Размытость при Движении), создайте для эффекта покачивания кэш диска. Для этого нужно выбрать в меню Deform / Jiggle Disk Cache (Деформация / Кэш Диска для Покачивания). Это позволит Мауа сохранять на жесткий диск данные деформации, которые Motion Blur (Размытость при Движении) будет использовать в процессе рендеринга.

  1. Откройте окно Render Globals (Глобальные Параметры Рендеринга).
  2. В окне Render Globals (Глобальные Параметры Рендеринга) откройте меню Motion Blur (Размытость при Движении) и отметьте 2D для Motion Blur Type (Тип Размытости при Движении) (рис. 5.6).
  3. Отрендерите кадр 71.
5.6.gif

Рис. 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.gif

Рис. 5.7. Конус, визуализированный с помощью 2D Motion Blur (Размытость при Движении 2D), в начале анимации (справа) и в конце (слева)

А теперь кое-что новенькое. Приходилось ли вам оставлять немного места под окном Мауа для размещения там пиктограмм свернутых окон?

Посемафорим

Как создать анимацию работы семафора?

Тема:

Анимация персонажей.

Используемые техники и инструменты:

Joint Tool (Сустав), Create Character (Создать Персонаж), Create Pose (Создать Позу), Trax Editor (Редактор Дорожек), Create Blend (Создать Плавный Переход).

Более века назад семафорные флаги как систему передачи сигналов заменил электрический телеграф. Тем не менее и в наши дни корабли продолжают использовать семафор для связи на коротких дистанциях, а морские офицеры-связисты в прошлом использовали флаги для передачи сообщений приветствия, вызова или нападения. В системе семафора каждое сочетание двух флажков символизирует число или букву. Весьма интересно наблюдать за парой рук, машущих флажками по определенному шаблону и передающих информацию кому-то, знакомому с этой системой. В этом уроке мы отправим семафорное сообщение: четыре буквы M-A-Y-A. Для этого используем технику нелинейной анимации.

Для начала нам нужен кто-то, держащий флажки. В окне Front View (Вид Спереди) создайте простой скелет, состоящий из торса, двух плеч и двух рук.

  1. Создайте полигональную плоскость и наложите на нее двухцветную текстуру ramp с резко очерченными границами цветов (установите Interpolation (Интерполяция) на None (Отсутствует).
  2. Поверните текстуру, используя Attribute Editor (Редактор Атрибутов) окна place2dTexture. Задайте для Rotate Frame (Поворот Рамки) значение 45 градусов (рис. 6.1).
6.1.gif

Рис. 6.1. Параметры для диагонального расположения цветов текстуры Ramp на флаге

  1. Увеличьте значение Coverage (Покрытие) текстуры до 2x2 и уменьшите значение параметра Translate Frame in V (Перемещение Рамки по оси V) с 1 до 0,5.

Эти установки создают диагональное расположение двух цветов текстуры.

  1. Дублируйте плоскость путем зеркального отражения ее по оси Z.
  2. Сделайте созданные плоскости дочерними (Edit / Parent) для соответствующих рук).

В семафоре руки движутся, как стрелки часов (рис. 6.2). Для того чтобы получатель сообщения понял, что одно слово закончилось и начинается новое, система знаков содержит нейтральную позицию, когда обе руки опущены вниз. В этом уроке мы изобразим M-A-Y-A как слово, где следует выделить каждую букву. Для этого мы используем нейтральную позицию рук после каждого отдельного символа, а не в конце всего слова. Различные положения рук создаются вращением относительно нейтральной позиции на угол, кратный 45 градусов. Самый лучший инструмент для достижения такой точности - это Rotation Snapping (Привязка Вращения): дважды щелкните мышкой по значку вращения, активизируйте Snapping (Привязка) и введите для нее значение 45.

6.2.gif

Рис. 6.2. Буквы и числа семафорной азбуки

Теперь инструмент вращения будет останавливать движение рук через каждые 45 градусов.

Перед тем как приступить к нелинейной анимации, нам бы пришлось начать анимацию слова M-A-Y-A с изображения нейтральной позиции и установки здесь ключевого кадра. Затем мы бы вращали все участвующие в движении объекты для приведения их в положение, обозначающее букву М, и снова установили ключевой кадр. Потом опять вернулись бы в нейтральную позицию, задали ключевой кадр, выполнили бы Rotate (Поворот) для буквы А, ключевой кадр и т. д. Конечно, это самый прямой способ анимации слова. Однако, если вы работаете, скажем, над серией сюжетов для научной передачи о системе семафорных знаков и вам нужно было бы изобразить передачу огромного количества слов и предложений, использование процедуры, исключающей установку ключевых кадров, сэкономило бы вам много времени.

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

Для того чтобы использовать позы в Мауа, нам нужно создать персонажей из совокупности участвующих в анимации объектов. Персонаж в данном контексте не имеет ничего общего с трехмерными существами или личностью. Персонаж в Мауа - это просто набор различных атрибутов всевозможных объектов. Нам нужно создать такой набор, перед тем как использовать его атрибуты в нелинейной анимации. При создании клипа персонаж генерируется автоматически. Позы, однако, еще потребуют немного ручной работы. Итак, мы создадим два простых персонажа: один, состоящий из поворотов левой руки и флажка вокруг оси Z, другой, состоящий из поворотов правой руки и флажка вокруг оси Z.

  1. Выделите правый флажок (левый, если смотреть прямо из окна front) и правую руку. Убедитесь в окне Outliner (Схема сцены), что и рука, и многоугольник выделены.
  2. В окне Channel Box (Окно Каналов) выделите Rotate Z (Вращение вокруг оси Z).
  3. Откройте окно настроек для создания нового персонажа. Для этого нажмите клавишу F2 и выполните команду Character / Create Character Set Option Box (Персонаж / Создать Персонаж Окно Настроек) (см. рис. 6.3).
  4. Включите опцию From Channel Box (Из Окна Каналов), дайте персонажу имя и создайте его, нажав Create (Создать).

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

  1. Поверните правую руку так, чтобы она указывала прямо вниз.
  2. Если необходимо, поверните и правый флажок; постарайтесь поместить его в одно из положений семафора.
  3. Для этой нейтральной позиции создайте первую позу, выбрав Animate / Create Pose (Создать Анимацию / Создать Позу) (рис. 6.4). Дайте ей соответствующее имя.
  4. Создайте позы для каждого из поворотов на 45 градусов для правой руки и ее флажка.
6.3.gif

Рис. 6.3. Для преобразования положений рук нашего сигнальщика в позы следует сначала создать новый персонаж - в данном случае для правой руки и флажка

6.4.gif

Рис. 6.4. Первая поза (нейтральная)

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

  1. Откройте окно Visor и просмотрите в нем только что созданные позы. Для этого нажмите на них правой кнопкой мыши и выполните команду Apply Pose (Применить Позу) (рис. 6.5).
  2. Найдите позы правой руки для букв М и Y.
  3. Переименуйте их в М_г и Y_r.
6.5.gif

Рис. 6.5. Мы применяем готовую позу к сцене - и персонаж сигнализирует букву Y

При изображении буквы А положение правой руки будет таким же, как при изображении буквы М.

  1. Создайте второго персонажа, на этот раз для вращения вокруг оси Z левой руки и левого флажка.
  2. Создайте позы для поворотов руки на каждые 45 градусов. Имя, которое вы дадите первой позе, будет учитываться при создании последующих новых поз.
  3. Опробуйте новые позы, используя Visor. Переименуйте позу для буквы М в М_1.

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

Теперь у вас есть 2 набора из семи поз - для каждого из двух персонажей. Когда вы активизируете персонаж во всплывающем меню справа снизу, вы увидите его позы в Visor.

  1. Откройте Trax Editor (Редактор Дорожек), выбрав Window / Animation Editors / Trax Editor (Окно / Редакторы Анимации / Редактор Дорожек).

Это окно представляет собой центр управления нелинейной анимацией. Можете назвать его Avid или Media 100 монтажной системой для анимации 3D персонажей. Здесь вы найдете 2 набора входных данных, по одному для каждого из персонажей.

  1. Активизируйте правый персонаж, используя всплывающее меню в нижнем правом углу экрана.
  2. Средней кнопкой мыши перетащите нейтральную позу правой руки из окна Visor в верхнюю дорожку в Trax Editor (Редактор Дорожек) (рис. 6.6).
6.6.gif

Рис. 6.6. Используя среднюю кнопку мыши, вы можете перетащить нейтральную позу правой руки из окна Visor в пять различных позиций на дорожке Trax Editor (Редактор Дорожек)

Вы можете работать в окне Trax Editor (Редактор Дорожек), как в любом другом 2D окне. Особенно полезны клавиши: F - для фокусирования на выделенных объектах; А - для фокусирования на всех объектах.

  1. В Trax Editor (Редактор Дорожек) передвиньте нейтральную позу в кадр 0 или 1.
  2. Еще четыре раза перетащите нейтральную позу из окна Visor в окно Trax Editor (Редактор Дорожек) в кадры 10, 20, 30 и 40.
  3. В окне Visor найдите позу М_г и перетащите ее в кадр 5 в окно Trax Editor (Редактор Дорожек).
  4. Перетащите эту же позу (которая также используется для буквы А) в кадры 15 и 35.
  5. Перетащите позу правой руки для буквы Y в кадр 25.

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

  1. Выделите персонаж левой стороны, используя всплывающее меню.
  2. Перетащите нейтральную позу из окна Visor в Trax Editor (Редактор Дорожек) пять раз и расположите панели левого персонажа прямо под нейтральными позами правого персонажа (в кадрах 0, 10, 20, 30 и 40).
  3. Перетащите позу левой руки для М - М_1 (которая идентична позе для Y) в кадры 5 и 25 (рис. 6.7).
6.7.gif

Рис. 6.7. Завершенная анимация передачи слова M-A-Y-A по системе флажков семафора - анимация в Trax Editor (Редактор Дорожек) без единого ключевого кадра

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

Выделите две соседние позы в Trax Editor (Редактор Дорожек) и сгладьте переход от одной к другой, нажав на значок Create Blend (Создать Плавный Переход) (рис. 6.8). Повторите эту процедуру для других пар поз.

6.8.gif

Рис. 6.8. Смягчите переход от одной позы к другой, используя инструмент Blend (Плавный Переход)

Теперь анимация воспроизводится плавно. Степень плавности вы можете видеть в Graph Editor (Редактор Анимационных Кривых), который открывается щелчком мыши по его пиктограмме в Trax Editor (Редактор Дорожек) (рис. 6.9). В Graph Editor (Редактор Анимационных Кривых) выделите кривые плавного перехода и задайте их касательным тип Flat (Горизонтальная Касательная), для того чтобы они покидали предыдущие позиции и входили в последующие немного более плавно (см. рис. 6.10).

6.9.gif

Рис. 6.9. Быстрый способ выхода из Trax Editor (Редактор Дорожек)...

6.10.gif

Рис. 6.10. ...в Graph Editor (Редактор Анимационных Кривых), где вы можете отредактировать касательные

В анимации, однако, есть небольшой дефект, который легко исправляется в Trax Editor (Редактор Дорожек): персонаж должен задерживаться в одной позиции на несколько мгновений, прежде чем перейти к другой. Для этого просто растяните вправо соответствующую панель (рис. 6.11). Переместите растянутую панель немного влево - и дефект исправлен. Именно так работают в монтажной программе для цифрового видео.

6.11.gif

Рис. 6.11. Растягиваем длину позы для букв

6.12.gif

Рис. 6.12. M-A-Y-A: наше сообщение для семафора готово

А теперь кое-что новенькое. Заглядывали ли вы в папки particle от предыдущих проектов? А в папки depth? [Автор намекает на то, что в папке particle хранится кэш частиц, а в папке depth - информация о распределении частиц по глубине. Эта информация весьма объемна и занимает на диске много места... Поскольку речь идет о старом проекте, то эти папки можно почистить, сэкономив кучу места на диске. - Примеч. ред. ]

Катись, мяч, катись!

Как сделать так, чтобы сфера скатывалась с холма, а не соскальзывала с него?

Тема:

Анимация.

Используемые техники и инструменты:

Make Live (Сделать Активным), Curve on Surface (Кривая на Поверхности), Arc Measure Tool (Измерение Дуги).

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

7.1.gif

Рис. 7.1. Вот так выглядит реальный курвиметр для измерения длины кривой линии, например дороги на карте французских Альп

  1. Задайте длительность анимации 400 кадров.
  2. Создайте NURBS-плоскость шириной 20 и плотностью 20x20 патчей в V и U направлениях.
  3. Нажмите клавишу F3, выберите Edit NURBS / Sculpt Surfaces (Редактирование NURBS / Создать Рельеф Поверхности) для деформации поверхности.
  4. Выделите поверхность и преобразуйте ее в «активный» объект. Для этого либо нажмите на пиктограмму с магнитом в верхней части экрана (рис. 7.2), либо выберите Modify / Make Live (Модифицировать / Сделать Активным). С этого момента вы можете работать прямо на поверхности.
7.2.gif

Рис. 7.2. Пиктограмма с магнитом в верху окна Мауа позволяет вам работать непосредственно на поверхности

  1. Выберите один из инструментов Create Curve (Создать Кривую) и постройте кривую. Для этого либо несколько раз щелкните мышкой по поверхности, добавляя к ней точки, либо проведите мышкой по поверхности, удерживая нажатой левую кнопку.
  2. Выйдите из режима Live mode (режим Сделать Активным), нажав снова пиктограмму с магнитом.

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

  1. Создайте полигональный куб.
  2. Нажмите клавишу 4, для того чтобы войти в режим Wireframe mode (режим Каркас). Выделите куб, а затем и кривую на поверхности.
  3. Создайте путь для движения куба. Для этого нажмите F2, выберите Animate / Motion Paths / Attach to Motion Path (Анимация / Пути Движения / Присоединить к Пути Движения) (рис. 7.3).
7.3.gif

Рис. 7.3. Присоединим куб к кривой на поверхности

Когда вы воспроизведете анимацию, то увидите, как куб движется вниз и вверх по холмам. Есть, правда, одна проблема: когда куб скользит по поверхности, он погружается в нее (рис. 7.4).

7.4.gif

Рис. 7.4. Наш куб движется по холмам и по долинам (и проваливается в них)

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

Что нам тут действительно нужно, так это объединить два объекта в одном. Один будет отвечать за движение по заданному пути, а другой возьмет на себя качение сферы. Все это мы осуществим с помощью иерархической анимации - громкое слово для обозначения простой процедуры работы с группами, членами и родительскими объектами, сферу саму с собой и присоединить группу к пути движения. Единственный член группы - сфера - может теперь вращаться вокруг своей центральной точки, в то время как группа будет двигаться вверх и вниз по холмам. Группа несет в себе сферу, а сфера, в свою очередь, заботится об эффекте качения.

  1. Сгруппируйте сферу саму с собой, используя клавиши клавиатуры Ctrl+g либо выбрав Edit / Group (Редактирование / Группа).
  2. Переименуйте группу.
  3. В режиме Insert (Режим редактирования опорной точки) переместите опорную точку группы к южному полюсу сферы (рис. 7.5).
7.5.gif

Рис. 7.5. Перемещаем опорную точку группы сферы после группирования сферы с самой собой. Благодаря этому сфера остается на поверхности во время движения

  1. Присоедините группу сферы - но не саму сферу! - к кривой на холмистой поверхности так же, как вы раньше делали это с кубом. Нажмите F2, выберите Animation / Motion Paths / Attach to Motion Path (Анимация / Пути Движения / Присоединить к Пути Движения).

Сфера движется по поверхности (не погружаясь в нее) (рис. 7.6). В действительности движется не сама сфера, а ее группа, которая, конечно, несет в себе сферу, куда бы ни двигалась. Если сфера склоняется к кривой пути движения, исправьте это, изменив внутреннюю ось пути. Откройте Attribute Editor (Редактор Атрибутов) motionPathl и установите Up Axis (Верхняя Ось) на Y.

7.6.gif

Рис. 7.6. Скользим и съезжаем с холмов - но не катимся

Теперь можно приступить к качению. Как предотвратить скольжение сферы? Мы заставим ее вращаться внутри группы для создания впечатления качения. Если мы поделим длину кривой на длину окружности сферы, то узнаем, сколько раз ей нужно повернуться вокруг своей оси за время движения по поверхности. Радиус сферы равен 1. Формула вычисления длины окружности следующая:

2*Radius*p.

Итак, длина окружности нашей сферы составляет: 2 * 1 * 3.14 = 6.28.

Таким образом, каждый раз, когда сфера преодолеет 6,28 единицы и выполнит один полный оборот, выглядеть это будет так, будто она катится по поверхности, чувствуя трение с ней. Мауа предлагает пару весьма полезных способов для измерения расстояний. Тот, который потребуется нам для измерения длины нерегулярной кривой, называется Arc Length Tool (Длина Дуги).

  1. Выберите Create / Arc Length Tool (Создать / Длина Дуги). В режиме Wireframe mode (Режим Каркас) щелкните мышкой по кривой. Инструмент показывает вам расстояние между началом кривой и точкой, на которую вы укажете курсором (рис. 7.7). Перетащите Arc Length Tool (Длина Дуги) в конец кривой и запомните появившееся значение.
7.7.gif

Рис. 7.7. Инструмент Arc Length Tool (Длина Дуги) измеряет длину дуги между началом кривой и любой точкой на ней

  1. Разделите длину кривой на длину окружности сферы, которая составляет 6,28.

В нашей анимации длина кривой составляет 25,54 единицы. 25 / 6,28 = 4,07.

Следовательно, сфера сделает вокруг своей оси 4 полных оборота.

  1. Умножьте результат на 360.

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

  1. Идите в начало анимации.
  2. Выделите сферу (не группу!) и выберите направление вращения.
  3. Задайте ключевой кадр для этого параметра вращения.
  4. Идите в конец временной шкалы.
  5. В кадре 400 увеличьте значение вращения на число, которое вы получили в результате вычислений, и задайте еще один ключевой кадр (рис. 7.8).
7.8.gif

Рис. 7.8. После небольших вычислений вращение сферы получает второй ключевой кадр. В нашем случае она поворачивается на -1464 градусов вокруг оси Z

  1. Откройте Graph Editor (Редактор Анимационных Кривых) и задайте для касательных вращения сферы тип Linear (Линейный) (рис. 7.9).
7.9.gif

Рис. 7.9. Для того чтобы получить реалистичное перекатывание, для касательных должен быть задан тип Linear (Линейный), если он еще не задан

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

7.10.gif

Рис. 7.10. Сфера реалистично катится по извилистому пути

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

У нашей анимации есть еще одно слабое место: сфера катится слишком монотонно. Например, она не ускоряется при движении вниз с холма. Это можно исправить путем установления большего количества ключевых кадров для U Value (Значения U) пути движения и вращения сферы. После этого вам нужно будет дополнительно настроить две соответствующие анимационные кривые в Graph Editor (Редактор Анимационных Кривых).

А теперь кое-что новенькое. Использовали ли вы когда-нибудь Тот Kluysken's Caustics при рендеринге рубинового колье?

Управляем велосипедом (и отвлекаем внимание)

Как сделать так, чтобы персонаж одной рукой управлял велосипедом, а другой одновременно рисовал в воздухе знак @?

Тема:

Анимация.

Используемые техники и инструменты:

Joint Tool (Сустав), ik Handle (ИК-манипулятор), Point Constraint (Принудительное согласование позиций), Motion Path (Путь Движения).

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

  1. Создайте руль велосипеда с двумя ручками (см. рис. 8.1). Все, что вам для этого нужно, это три цилиндра соответствующих размеров. Оставьте центр руля в начале координат. Сгруппируйте все три компонента вместе и дайте группе какое-нибудь значащее имя.
  2. С помощью инструмента Joint Tool (Сустав) сконструируйте скелет для плеч и рук, состоящий из шести или семи костей. Начните с шеи, затем добавьте ключицу и вставьте в нее еще две кости рук, ведущие к лучезапястному суставу (см. рис. 8.2).
  3. Теперь выделите верхний сустав руки и создайте зеркальное отражение всей совокупности элементов с другой стороны, используя команду Mirror Joint (Зеркальное Отражение Сустава) (см. рис. 8.3). Создавать отражение шеи вовсе не обязательно.
  4. Для обеих рук добавьте ik Handles (ИК-манипулятор) от плеч к запястьям (см. рис. 8.4).
8.1.gif

Рис. 8.1. Руль велосипеда с ручками состоит из трех NURBS-цилиндров

8.2.gif

Рис. 8.2. Моделируем скелет: несколькими щелчками мыши в соответствующем окне мы создаем левое плечо и руку

8.3.gif

Рис. 8.3. Теперь создадим зеркальное отражение руки и плеча для другой половины (здесь относительно плоскости YZ)

8.4.gif

Рис. 8.4. Два ik Handles (ИК-манипулятор) упрощают анимацию рук

Используя два ik Handles (ИК-манипулятор), вы сможете управлять движением рук в соответствии с законами инверсной кинематики. Вам только нужно взять ik Handle (ИК-манипулятор) и перемещать его туда, куда вам нужно: две кости руки будут вращаться соответственно перемещению ik Handle (ИК-манипулятор). Мы прикрепим ik Handles к ручкам руля.

  1. Выберите правую ручку руля и добавьте к выделенному объекту (с нажатой клавишей shift) правый IK Handle (ИК-манипулятор). Нажмите F2, выберите Constrain / Point (Принудительное согласование / Положение), для того чтобы принудительно связать ik Handle (ИК-манипулятор) с ручкой руля.

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

  1. Используя Point Constraint (Принудительное согласование позиций), свяжите левую ладошку с левой ручкой руля.
  2. Выберите обе ручки руля и в режиме Insert mode (Режим редактирования опорных точек) переместите их опорные точки вверх так, чтобы лучезапястные суставы находились немного выше ручек руля (рис. 8.5).
8.5.gif

Рис. 8.5. Перемещение опорных точек ручек руля вверх поднимает и запястья персонажа

Теперь давайте немного подвигаем рулем.

  1. Выделите группу руля (в которую входят и обе ручки). В окне Outliner (Схема сцены) выделите Rotate Z (Угол поворота по оси Z) и, используя контекстное меню, вызовите окно Expression Editor (Редактор Выражений).
  2. С помощью средней кнопки мыши скопируйте имя из поля Selected Obj & Attr и вставьте его в пустое поле для выражений (см. рис. 8.6). Завершите ввод функцией

= sin (time) ;

  1. Создайте новое выражение, нажав Create (Создать).

В качестве аргумента функции синус можно использовать любое число, в нашем случае это будет количество секунд времени анимации. Однако значение функции синус ограничено. Оно может находиться только в промежутке между 1 и -1. Поэтому, когда вы воспроизведете анимацию, руль будет вращаться только между -1 и 1 градусами, что, конечно, едва заметно.

8.6.gif

Рис. 8.6. Математическое равенство заставляет двигаться руль велосипеда

  1. Отредактируйте выражение (для этого, как и раньше, следует вызвать Expression Editor (Редактор Выражений), увеличив амплитуду синуса в 20 раз

= 20 * sine (time);

  1. Сохраните изменения, нажав Edit (Редактирование).

Это выражение позволяет рулю медленно вращаться между -20 и 20 градусами вокруг оси Y, как если бы велосипед двигался по слалому. Поскольку Point Constraint (Принудительное согласование позиций) все еще активно, руки движутся в унисон с ручками руля. Выглядит это так, будто руки (а вовсе не математическое выражение) управляют велосипедом (см. рис. 8.7). Если длины рук недостаточно во время увеличения амплитуды управляющих движений, ни в коем случае не удлиняйте их - помогите им дотянуться до ручек, подвинув плечи или ключицу немного вперед.

Если вы хотите исключить одну руку из управления велосипедом, попробуйте сделать так: щелкните мышкой по ее ik Handle (ИК-манипулятор) и в окне Channel Box (Окно Каналов) в секции Shapes (Форма) установите Node State (Состояние Узла) с Normal (Нормальное) на Blocking (Блокированное) (рис. 8.8). Эта команда дезактивирует ограничение. Если хотите, можете установить здесь ключ.

8.7.gif

Рис. 8.7. Обе руки, крепко держась за ручки, управляют велосипедом

8.8.gif

Рис. 8.8. Переключите Node State (Состояние Узла) с Normal (Нормальное) на Blocking (Блокированное). Привязка дезактивируется, и рука может снова свободно вращаться

Мы продвинемся еще немного вперед и вместо того, чтобы полностью исключить руку из управления велосипедом, добавим для нее еще одно принудительное согласование - Locator (Локатор). Затем, вместо того чтобы менять Node State (Состояние Узла) принудительного согласования, мы изменим его Weight (вес).

  1. Создайте Locator (Локатор) - объект, который не рендерится. Его можно найти в меню Create (Создать).
  2. Переместите локатор немного правее правой руки.
  3. Оставляя локатор выделенным, выберите правый ik Handle (ИК-манипулятор) и свяжите его с локатором. Для этого выберите Constrain / Point (Принудительное согласование / Положение).

Запястье моментально реагирует на это изменение и перепрыгивает в точку между ручкой руля и локатором. Если вы передвинете локатор в другую область сцены, ik Handle (ИК-манипулятор) последует за ним. Определяющими параметрами такого поведения являются Weights (Веса) двух принудительных согласований. Их вы найдете в окне Channel Box (Окно Каналов) прямо под полем Node State (Состояние Узла). Первое значение - это вес ручки руля, второе - вес локатора. Поскольку оба значения в данный момент равны, ладошка располагается между ними (рис. 8.9).

8.9.gif

Рис. 8.9. Веса WO (для локатора) и W1 (для ручки руля) равны. Следовательно, запястье руки располагается между ними

  1. Задайте длительность анимации 1000 кадров.
  2. Идите в кадр 300. Установите вес правой ручки руля на 1, а вес локатора на 0.
8.10.gif

Рис. 8.10. Когда вес для ручки руля меняется на WO = 1, а вес для локатора на W1 = 0, запястье руки возвращается к ручке руля

  1. Задайте ключевые кадры для обоих параметров.
  2. Передвиньтесь вперед на 50 кадров, в кадр 350. Измените вес: 0 - для ручки руля и 1 - для локатора.
  3. Снова задайте ключевые кадры для обоих параметров.

Меняя веса для двух принудительных согласований позиции, вы создали анимацию движения руки. Она отпускает руль в кадре 300 и через 50 кадров перемещается к локатору - там и остается все оставшееся время.

8.11.gif

Рис. 8.11. Со значениями WO = 0 и W1 = 1 запястье руки перепрыгивает к локатору

  1. Верните руку к ручке руля между 500 и 600 кадрами, задав еще два ключевых кадра для значений веса ограничения.
  2. Отредактируйте анимацию в Graph Editor (Редактор Анимационных Кривых) на ваш вкус. Задайте касательным тип Flat (Горизонтальная) в точках начала и окончания движения.

Между 350 и 500 кадрами рука находится в статичном положении. Если вы создадите анимацию локатора в этом промежутке, например придав ему машущее движение, рука повторит его, поскольку она больше не привязана к ручке руля. Мы зададим руке совершенно определенное движение: пусть она нарисует в воздухе знак @. Это мы сможем получить путем установления ограничивающей связи локатора (но не для ik Handle (ИК-манипулятор) и пути рисования знака.

  1. Переключитесь на окно Side View (Вид Сбоку) или Front View (Вид Спереди) и с помощью инструмента Pencil. Curve Tool (Карандаш) нарисуйте знак @ (рис. 8.12).
  2. Передвиньте полученную кривую поближе к локатору.
  3. Выделите локатор и добавьте к выделенному кривую.
  4. Откройте окно настроек команды Motion Path (Путь Движения), выбрав Animate / Motion Paths / Attach to Motion Path Option Box (Анимация / Пути Движения / Присоединить к Пути Движения Окно Настроек).
  5. В окне Option Window (Окно Настроек) команды Attach to Motion Path (Присоединить к Пути Движения) установите Time Range (Временной Диапазон) на Start / End (Начало / Конец). Задайте Start Time (Начальное Время) на 400, a End Time (Конечное Время) на 470. Выполните команду, нажав Attach (Присоединить) (рис. 8.13).
8.12.gif

Рис. 8.12. Пишем знак @ в окне Side View (Вид Сбоку)

8.13.gif

Рис. 8.13. Между кадрами 400 и 470 локатор оказывается «привязанным» к пути рисования знака @

Теперь рука, бросив руль, рисует в воздухе знак @, после чего возвращается к рулю и продолжает управление велосипедом (рис. 8.14). Взгляните на анимационные кривые для Motion Path (Путь Движения) в Graph Editor (Редактор Анимационных Кривых), для того чтобы убедиться, что движение не будет слишком поспешным. Вы также можете задать тип Flat (Горизонтальный) касательным ключевых кадров, используя контекстное меню временной шкалы.

8.14.gif

Рис. 8.14. Персонаж управляет велосипедом только одной рукой. Руль продолжает двигаться. Правая рука рисует в воздухе знак @. После этого она возвращается к ручке руля и продолжает спокойно управлять

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

А теперь кое-что новенькое. Приходилось ли вам расчесывать мех?



Последнее обновление ( 14.12.2007 г. )
 
« Пред.

Top