Перенос баз данных с одного SQL Server на другой Изменения в системе защиты SQL Server Новые средства разработки Новые элементы программирования на языке Visual Basic Редактирование и анализ данных с помощью запросов

Компьютерная анимация Компьютерная анимация


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Дизайн, инженерная и Web графика