Создание цепочек инверсной кинематики
Чтобы компьютер смог правильно расположить суставы, ему необходима некоторая информация, прежде всего о количестве и длине костей или суставов. Эти сведения обычно вводятся при создании элементов. Как только суставы определены, программа автоматически формирует иерархию (рис. 6.13).
Первый сустав в цепочке называется корневым, или корнем иерархии. В некоторых программах с ним связываются данные, описывающие движение цепочки. При его перемещении движется вся иерархическая цепочка. Создавая ее, всегда начинайте с самого верхнего сустава иерархии. Например, если вы конструируете ногу, начинайте с бедра, а затем переходите к лодыжке и стопе. В конце последнего фрагмента цепочки находится исполнительный элемент - эффектор. Он управляет положением конца иерархической цепочки инверсной кинематики. Программа всегда стремится расположить элементы цепочки таким образом, чтобы они находились между корнем и эффектором. Между корнем и эффектором находятся кости, соединенные суставами. Суставы являются связующими элементами цепочки. Рука имеет один сустав - локтевой, а позвоночник может состоять из нескольких суставов. Манипулирование цепочкой Манипулирование цепочкой осуществляется с помощью эффектора. При его перемещении соответственно поворачиваются суставы. Данное свойство позволяет легко придавать различные позы персонажу и выполнять его анимацию, поскольку разработчик должен следить только за положением эффектора (рис. 6.14). Возможности по управлению, в сравнении с методом прямой кинематики, уменьшаются, но зато упрощается процесс анимации, который теперь напоминает работу с марионетками. Некоторые разработчики даже называют вариант скелета, имеющего низкое разрешение, марионеткой.
Что происходит, если вытянуть эффектор за пределы сустава? Во многих программах элементы цепочки имеют фиксированный размер, поэтому полностью распрямленная цепочка указывает в сторону эффектора (рис. 6.15). Однако в некоторых пакетах ее элементы можно растягивать таким образом, что конец цепочки касается эффектора. Это способствует имитации эффекта сплющивания и растяжения, которые в свою очередь позволяют, например, перемещать большую стопу под невысоким персонажем за счет растяжения ноги после того, как стопа покажется из-под туловища. Рис. 6.13. Части цепочки инверсной кинематики Рис. 6.14. Изгиб цепочки, вызванный перемещением эффектора Перемещение корня на другом конце цепочки обычно приводит к движению всей иерархии, включая эффектор как потомок корня (рис. 6.16). Например, если цепочка инверсной кинематики представляет собой модель ноги персонажа, корнем является бедро, а эффектором - стопа. При перемещении верхушки двигается вся нога. Если необходимо, чтобы в подобной ситуации стопа оставалась неподвижно стоящей на полу, скелет следует строить иначе. Рис. 6.15. Результат перемещения эффектора за пределы цепочки Рис. 6.16. Перемещение всей цепочки при изменении положения корня Ограничители Чтобы обойти данную проблему, многие программы используют ограничитель. Ограничение предписывает одному объекту учитывать расположение другого. Например, если мяч заключен в параллелепипед (ограничен им), в результате перемещения последнего будет перемещаться и мяч. На первый взгляд, ограничение выглядит так же, как и иерархическая связь. Можно было бы просто сделать параллелепипед предком мяча, чтобы получить аналогичный результат, - движение родителя (параллелепипеда) привело бы к перемещению дочернего объекта (мяча). Отличие заключается в том, что ограничение действует независимо от
Рис. 6.17. Действие ограничителя
Чтобы локтевой (или коленный) сустав не поворачивался назад, необходимо сообщить программе допустимые пределы поворота. В некоторых пакетах для этого существуют параметры настройки. В других системах тип сустава задается при создании - можно выбрать либо шарнирный узел (допускающий вращение в двух измерениях), либо шаровой шарнир (допускающий вращение в трех измерениях). Положение покоя Во многих пакетах для последовательно расположенных суставов вводится понятие подразумеваемого положения (положения по умолчанию), или положения покоя. Цепочка находится в нем, если эффектор занимает подразумеваемую позицию (рис. 6.18). Обычно это положение, заданное при создании компонентов скелета, однако в некоторых программах разрешено его изменять в любой момент времени. Данная возможность делает поведение скелета полностью предсказуемым. Особенно выручает она при работе с цепочками, имеющими много суставов, например, при моделировании движений хвоста животного. Рис. 6.18. Возвращение цепочки в положение покоя
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|