главная » уроки анимации

уроки анимации

Уроки анимации

Глава 6.

Скелет и деформация каркаса

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

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

Иерархические цепочки и анимация персонажа

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

Манипулирование иерархическими цепочками

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

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

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

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

Рис. 6.1 Базовая иерархия элементов модели человеческого тела случае, вероятно, проще исключить эти объекты из общей иерархической цепочки.

Опорные точки и вращение сочленений

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

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

В следующем упражнении вы построите модель ^персонажа из сфер и цилиндров. Это задание можно выполнить средствами практически

Рис. 6.2. Вращение руки вокруг ее физического центра

Рис. 6.3. Правильно назначенная опорная точка

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

Упражнение 1. Создание простой сегментированной модели персонажа

1. Начните моделирование с элементарной сферы.

2. Выделите многоугольники на верхушке сферы.

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

4. Переместите опорную точку данного сегмента в центр сферы.

5. Создайте две копии сегмента. Разместите одну над другой, как показано на рисунке, чтобы получить модель позвоночника. Сделайте основание позвоночника предком среднего сегмента, а средний сегмент - предком верхнего.

6. Создайте два цилиндра. Один будет представлять таз и находиться в основании позвоночника. Сделайте этот сегмент предком основания позвоночника. Верхний цилиндр моделмрует плечи и является потомком верхушки позвоночника.

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

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

9. Добавьте элементарную сферу, которая станет головой персонажа.

10. Добавьте две сплющенные сферы в качестве моделей стоп.

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

Скелет и иерархия

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

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

Рис. 6.4. Изображение костей в различных программах

Манипулирование иерархическими цепочками

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

Рис. 6.5. Скелеты, составленные: только из костей; костей и параллелепипедов; только параллелепипедов. Все конструкции позволяют деформировать каркас

Прямая кинематика

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

Рис. 6.6. Исходное положение персонажа

Рис. 6.7. Поворот руки в плече

Рис. 6.8. Поворот руки в локте

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

Инверсная кинематика

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

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

Компьютер не может определить, как должны двигаться части тела. Если какая-либо задача решается путем поворота локтевого сустава назад или вбок, машина произведет расчет этих движений. Однако подобное перемещение руки не соответствует действительности и неприемлемо для аниматора. Локтевые суставы представляют собой шарнирные узлы и допускают только поворот вперед. Не располагая такими данными, компьютер не сможет их правильно расположить. На рис. 6.10-6.12 представлены три варианта поворота локтевого сустава, при которых кисть руки придвигается к чашке. Правильным является лишь первое решение, но компьютер об этом не знает. Необходимо точно указать программе, как должен двигаться сустав.

Рис. 6.9. Пример инверсной кинематики

Рис. 6.10. Правильный вариант поворота

Рис. 6.11. Неправильный вариант

Рис. 6.12. Неправильный вариант

Создание цепочек инверсной кинематики

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

Скелет и деформация каркаса

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

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

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

Манипулирование цепочкой

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

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

Рис. 6.13. Части цепочки инверсной кинематики

Рис. 6.14. Изгиб цепочки, вызванный перемещением эффектора

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

Рис. 6.15. Результат перемещения эффектора за пределы цепочки

Рис. 6.16. Перемещение всей цепочки при изменении положения корня

Ограничители

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

Рис. 6.17. Действие ограничителя

Скелет и деформация каркаса

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

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

Диапазон поворотов сустава

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

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

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

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

Рис. 6.18. Возвращение цепочки в положение покоя

Реальное время и расчет инверсной кинематики

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

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

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

Выбор метода кинематики

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

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

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

Конструирование скелета

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

Конструирование скелета тела

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

Упражнение 2. Создание скелета для готового каркаса

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

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

3. Создайте копию кости первой ноги. Выровняйте полученный объект по каркасу.

4. Создайте две кости, соответствующие бедрам. Сделайте их предками костей ног.

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

6. Создайте три кости, формирующие позвоночник. Кости бедер должны быть предками самого нижнего «позвонка».

7. На вершине позвоночника создайте две кости, соответствующие плечам. Вершина должна быть предком костей плеч.


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

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

10. Добавьте к скелету стопы. Стопа может состоять из одного элемента или из двух, если необходимо более точно воспроизвести ее движения.

11. Если вы используете метод инверсной кинематики, задайте ограничения. Создайте объект-пустышку около правой ступни. При желании можно воспользоваться другими объектами, например, невизуализируемым параллелепипедом. Свяжите кость лодыжки с объектом (показано стрелкой на рисунке).

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

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

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

15. Готовый скелет должен точно соответствовать каркасу.



Уроки анимации

Лучшие брокеры бинарных опционов Обеспечивает надежность трейдеров, и гарантирует качество предоставляемых услуг. Имеет службу поддержки работающую в режиме 24/7. Так же имеет достаточно крупный образовательный центр, который предлагает ряд учебных программ, электронные материалы – книги и видео.