Уроки: 3ds Max

3D Studio MAX: настройка обратной кинематики (IK Setup)

Автор: Майкл Комет

Введение

В этом уроке я расскажу, как создать рабочую схему обратной кинематики ноги в 3D Studio MAX r2.5 с помощью системы "New IK". Изложенные в статье принципы можно использовать и в других аналогичных случаях - для создания рук, антенн и вообще всего, чего пожелает ваша душа - хоть летающих такс. Предполагается, что вы достаточно хорошо знакомы с Мах.

Речь пойдет о двух основных схемах.

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

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

Оба эти файла Мах можно загрузить: iktutfiles.zip.

Итак, начнем.

Часть 1. Нога с обратной кинематикой/ступня с прямой кинематикой

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

Несколько важных моментов: кроме верхней и нижней костей, а также костей ступни и большого пальца, есть бедренная кость. Между бедром и верхней частью ноги есть "суставная" кость. Это такая же кость, как и остальные в схеме. Зачем она нужна, мы рассмотрим позже. Сейчас просто учтите, что нам нужно 6 костей.

2. Следующее, что нужно сделать - это снять трансформации ("Reset Transform"). Это важно. Мы делаем это, потому что нам нужно создать кости с обратной кинематикой, но в том же положении, что в начале. Эта операция позволит избежать искривления костей при вращении, что возможно при несоответствии размеров. Кроме того, таким образом легче выравнивать оси и устанавливать границы поворота.

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

Сначала нужно убрать связи между объектами в иерархии. В любом случае, разорвать связь между объектами-родителями и потомками.

Выделите все кости и нажмите "разъединить" (unlink). На панели утилит выберите "ResetXForm" (Сбросить Х-формы) и нажмите кнопку "Reset Selected" (сбросить выделенное). С таким же успехом можно применить Х-образный модификатор к каждой из костей поочередно. Но так будет дольше.

Чтобы свернуть стеки всех костей, примените модификатор Edit Mesh (редактировать сетку), отключите режим подобъектов, нажмите кнопку Edit Stack (редактировать стек) и "Collapse All" (свернуть все).

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

3. Теперь мы создадим вспомогательный объект-пустышку (dummy object). Поскольку схема с прямой кинематикой, не имеет значения, в каком окне ее создавать, поскольку она будет использоваться для ограничения положения. Ступня будет создаваться отдельно и связываться с готовой ногой. Благодаря этому со схемой легче работать и она надежней.

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

4. Теперь нужно связать элементы иерархии. Над ступней мы будем работать позже, поэтому вы можете даже скрыть ее на время.

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

Мы получим вот такую цепочку:
AnkleDummy > Box04-LowerLeg > Box03 > UpperLeg > Box02-HipSocket > Box01-Hips.
Т.е. объект-пустышка - нижняя часть ноги - соединительный элемент - верхняя часть ноги - тазобедренный сустав - основа бедра

5. Теперь займемся встроенным скелетом с обратной кинематикой. В Мах есть отличная функция "auto-boning" (автоматическая обработка скелета), которая создает на основе существующей иерархии скелет с обратной кинематикой и связывает исходные кости с новыми.

Нажмите "Create Panel" (создать панель), выберите "Systems" (система) и в появившемся стандартном списке выберите "Bones" (кости). Оставьте настройки по умолчанию (отмечено все, кроме "Assign to Root" (назначить как основу)) и, наконец, нажмите кнопку "Pick Root" (выбрать основу).

Теперь выберите кость Box02-HipSocket. Это вторая кость в списке. Учтите, что не стоит назначать Box01-Hips в качестве начальной. Новая цепочка с обратной кинематикой начнется со второй кости. Мах автоматически создаст новую цепочку с обратной кинематикой.

6. Чтобы посмотреть, как работает вся система, выберите инструмент "Select and Move" (выбрать и переместить) и передвиньте самую нижнюю желтую кость (bone04). При этом нога будет вращаться довольно непредсказуемо, но все же заметна определенная закономерность. Нас осталось установить правильную иерархию и пределы вращения.

Итак, приступим. Выберите самую верхнюю кость с обратной кинематикой - Bone01 (желтая). Сделайте ее родителем для лилового блока Box02-HipSocket, а его в свою очередь - для красной верхней кости Box01-Hips. Таким образом, можно добиться, что кость "бедра" будет заставлять двигаться торс вашего персонажа.

Теперь разорвите связь AnkleDummy. По умолчанию она является потомком Bone04. Мы делаем это, потому что она будет концевым эффектором и для этого ее нужно отсоединить от иерархии.

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

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

В разделе "Threshholds" (пределы) установите значение параметров Position (положение) и Rotation (вращение) на 0.0. Эти значения определяют, насколько точно Мах будет просчитывать обратную кинематику. Если вы установите большие значения, то программа будет считать быстрее, но результат получится более грубым. Нулевое значение обеспечивает максимальную точность.

В разделе "Solutions" (решения), установите значение "Iterations" (повторение) на 100. Значение 100 - 500 и выше позволяет достичь большой стабильности цепочки с обратной кинематикой. Но, естественно, за это приходится расплачиваться более длительным просчетом.

Значение "End Time" (время окончания) должно значительно превышать то, которое соответствует концу анимации. Я обычно выставляю несколько тысяч. Когда программа дойдет до этого кадра, воспроизведение прекратится. Так что вам не придется волноваться, что ваша анимация слишком длинная.

И, наконец, отметьте "Lock Initial State" (зафиксировать начальное состояние) в разделе "Initial State" (начальное состояние). Теперь Мах будет знать, что текущая ориентация и расстановка элементов является основой иерархии. Это облегчит просчет.

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

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

Выделите кость Bone04 и нажмите кнопку "Link" (связать). Теперь кликните на AnkleDummy. Если вы не можете ее выделить, значит вы забыли разъединить ее с родителем на предыдущем этапе. В таком случае просто отключите кнопку "связать" и разъедините AnkleDummy, а затем попробуйте еще раз.

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

10. На этом этапе мы ограничим движение элементов цепочки в определенных плоскостях. Например, вы вряд ли сможете повернуть голень вперед. Во всяком случае, если вы не птица. Чтобы установить это ограничение, зайдите на панель иерархии и выберите раздел "IK" (обратная кинематика). Появятся параметры ограничений.

В этой довольно большой панели для нас важны два раздела. Первый - "Object Parameters" (параметры объекта). Здесь находятся параметры "положение" и "ориентация". Под ними есть параметр "Weight" (вес), значение которого по умолчанию равно 1,0. Значения этих параметров определяют степень их воздействия и соотношение с другими концевыми эффекторами в иерархии. Большое значение приводит к тому, что эффектор оказывается сильнее, чем другие, которые, может быть, тянут в другом направлении. Поскольку мы работаем с относительными значениями, то их величина не имеет значения - важно их соотношение (например, 100 к 50 аналогично 1 к 0,5 или 4 к 2).

Второй важный раздел - "Rotational Joints" (вращающиеся сочленения). Здесь вы определяете, по каким осям смогут вращаться элементы, и устанавливаете ограничение угла поворота. Так что мы сможем предотвратить неуклюжие и неестественные движения.

11. Идем дальше вверх по цепочке. Убедитесь, что объект Bone04 выделен. Это последняя кость с обратной кинематикой. У нее нет родительского объекта, но поскольку она находится в конце, то определяет, насколько близко нога сможет подойти к ступне. Это довольно важный момент, поэтому установим довольно большое значение. В разделе "позиция" установите значение 200.

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

Поэтому снимите отметки для осей Y и Z. Кроме того, нам нужно поставить ограничение, чтобы нога не поворачивалась вперед. Отметьте пункт "Limited" (ограничение) под осью Х и установите значения From и To соответственно 3 и 170. Диапазон движения будет отображен оранжевой дугой в левом и правом окне проекции. Значения ограничений относительны.

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

В конце концов, под осью Х можно отметить пункт "Spring Back" (отход назад) и выставить значение 5 для него и 0,3 для Spring Tension. Это также позволит предотвратить "запирание".

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

13. Выберите Bone02. Она проходит через "тазобедренный сустав" - блок HipSocket. Нам нужно убрать эффект вращения вдоль продольной оси. Это позволит с помощью элемента Box02-HipSocket намного точнее контролировать движение ноги и положение колена.

Опять же выберите Bone02. Уберите отметку напротив пункта "активный" в разделе оси Z. Теперь нога будет стоять более естественно.

14. Как я уже упоминал, мы воспользуемся блоком Box02-HipSocket для управления вращением верхней части ноги. Нога будет сгибаться под действием обратной кинематики, но мы будем контролировать положение колена. Скажем, если обладатель нашей ноги присядет, то мы сможем сориентировать колени наружу. Чтобы добиться этого, мы будем вращать ось вокруг оси Z.

Но, наверное, вы захотите, чтобы колено не зависело от вращения "бедра", но зависело от других осей. Для этого выберите объект Box02-HipSocket. Затем, в панели иерархии выберите раздел "Link Info" (информация о связывании). На панели, в разделе "Inherit" (передача), отключите оси Z.

Кроме того, мы хотим, чтобы эта кость вращалась только на собственной оси Z.
На той же панели, в разделе "Locks" (блокировки), включите оси X и Y. Теперь разрешено вращение только по оси Z.

15. Мы закончили настройку ноги с обратной кинематикой. Подвигайте элемент Hips. "Лодыжка" зафиксирована возле AnkleDummy. Если вы переместите AnkleDummy, нога согнется, но основа "бедра" останется на месте. Кроме того, вы можете вращать объект KneeDummy (объект-пустышка в районе колена) и поворачивать колено, как вам нужно. Это пригодится, когда бедра и ступни длизко друг от друга и просто для того, чтобы при сгибании ноги можно было поворачивать ее верхнюю часть внутрь и наружу.

Поиграем в ножки-матери

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

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

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

Итак, завершим нашу схему "Нога с обратной кинематикой/ ступня с прямой кинематикой".

16. Первый шаг - установить центр вращения для ступни так, чтобы она опиралась на подушечки пальцев, а не на пятку. Выберите элемент Box05-Foot и поверните его на 180 вокруг локальной оси Z (можете развернуть его в окне верхней проекции). Он сейчас развернут неправильно. Теперь переместите ступня обратно и установите в правильное положение - так, чтобы локальный центр вращения находился в районе пальцев.

17. Теперь создайте объект-пустышку и назовите его FootDummy. Разместите его в районе пятки. Не столь важно, сделаете вы это в окне передней проекции или нет, но стоит сделать это хорошей привычкой. Сделайте этот объект немного большим, чем AnkleDummy.

18. Свяжите кости Box06-Toes (большой палец) и Box05-Foot (ступня) с FootDummy.

19. Теперь выберите AnkleDummy и свяжите его с Box05-Foot.




Как работает схема "Нога с обратной кинематикой/ ступня с прямой кинематикой".

Вы можете выбрать FootDummy, перемещать и вращать его, чтобы настроить и анимировать ногу.

Можете вращать кость Box05-Foot. При этом пальцы будут зафиксированы, а пятки смогут приподыматься.

Можете вращать кость Box06-Toes. При этом стопа будет зафиксирована, а пальцы будут двигаться.

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

В целом цепочка очень стабильна, но если оттянете FootDummy или Hips слишком далеко, они отделятся

Но, несмотря на этот недостаток, это моя любимая схема. Она очень стабильна и, я уверен, ей найдется применение.

"Хватит тягать меня за ногу". Схема вторая - Нога и ступня с обратной кинематикой

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

1. Итак, мы снова начнем со стандартной иерархии с прямой кинематикой. Вы можете загрузить файл с материалами, которые я использовал в этом уроке (iktutfiles.zip). Там находится файл Мах с иерархией - несколько блоков, каждый из которых связан со стоящим выше.

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

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

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

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

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

Выделите все кости и нажмите "разъединить" (unlink). На панели утилит выберите "ResetXForm" (Сбросить Х-формы) и нажмите кнопку "Reset Selected" (сбросить выделенное). С таким же успехом можно применить Х-образный модификатор к каждой из костей поочередно. Но так будет дольше.

Чтобы свернуть стеки всех костей, примените модификатор Edit Mesh (редактировать сетку), отключите режим подобъектов, нажмите кнопку Edit Stack (редактировать стек) и "Collapse All" (свернуть все).

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

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

Первая пустышка - у основания ноги, назовем ее AnkleDummy. Вторая, в районе подушечек пальцев - BallDummy. И последняя, на кончике пальцев -ToeDummy.

4. Теперь мы свяжем элементы иерархии. Это позволит нам воспользоваться функцией "Auto-Bone". Мы соединяем все элементы, кроме BallDummy. Последний НЕ связывайте ни с чем.

Получится вот такая цепочка:
ToeDummy > Toes > Foot > AnkleDummy > LowerLeg > UpperLeg > HipSocket > Hips. Hips является родителем всей цепочки.
Т.е. Пустышка на большом пальце - большой палец - пустышка на лодыжке - нижняя часть ноги - верхняя часть ноги - тазобедренный сустав - основа бедра.

5. Займемся встроенным скелетом с обратной кинематикой. Как вы помните, в Мах есть отличная функция "auto-boning" (автоматическая обработка скелета), которая создает на основе существующей иерархии скелет с обратной кинематикой и связывает исходные кости с новыми.

Нажмите "Create Panel" (создать панель), выберите "Systems" (система) и в появившемся стандартном списке выберите "Bones" (кости). Оставьте настройки по умолчанию (отмечено все, кроме "Assign to Root" (назначить как основу) и, наконец, нажмите кнопку "Pick Root" (выбрать основу).

Теперь выберите кость Box02-HipSocket. Это вторая кость в списке. Учтите, что не стоит назначать Hips в качестве начальной. Новая цепочка с обратной кинематикой начнется со второй кости. Мах автоматически создаст новую цепочку с обратной кинематикой.

6. Следующий шаг - связываем некоторые элементы и пустышки. Это нужно для работы концевых эффекторов и для анимации. Выберите ToeDummy и нажмите Unlink Selection, чтобы разорвать связь. Мы используем его в качестве концевого эффектора для последней кости с обратной кинематикой. Чтобы его связать, нужно сначала разорвать все связи. Также разъедините AnkleDummy.

Выберите Bone01 (это первая кость в новой структуре с обратной кинематикой) и свяжите ее с блоком Box02-HipSocket. Теперь свяжите HipSocket с костью Box01-Hips. Таким образом вы сможете анимировать "бедра" персонажа. Можете даже попробовать - подвигайте блок "бедер". Вы увидите, что объекты движутся по законам обратной кинематики, но она еще не налажена. В частности, нога изгибается неправильно. Нам нужно установить ограничения движения и зафиксировать определенные кости.

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

Сначала выберите Bone04 (или другую желтую кость с обратной кинематикой) и зайдите на панель движения. Пределы положения (Position) и вращения (Rotation) установите на 0, а повторения (Iterations) - на 500.

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

Установите значение "End Time" (время окончания) где-то на 4 тысячи кадров. Тогда вам не придется волноваться, что ваша анимация внезапно закончится.

И, наконец, отметьте "Lock Initial State" (зафиксировать начальное состояние) в разделе "Initial State" (начальное состояние), чтобы Мах использовал текущую ориентацию и расстановку элементов как основу иерархии.

8. Выберите Bone04, которая составляет нижнюю часть ноги. В панели движения мы создадим позиционный концевой эффектор. Внизу панели, в разделе "End Effectors" (концевые эффекторы), нажмите кнопку "создать" (Create) для позиционного эффектора (Position). Затем выберите "связать" (Link) и кликните на AnkleDummy.

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

9. Убедитесь, что Bone04 все еще выделена. Зайдите в панель иерархии и выберите секцию обратной кинематики. Мы установим вес для позиционного ограничителя на 200. Теперь к этой кости с обратной кинематикой будет прикладываться большее усилие, чем к другим костям.

10. Теперь выделите Bone03. К ней присоединена нижняя часть ноги. Все в той же панели иерархии, в секции обратной кинематики, отключите вращение по осям Y и Z. Теперь верхняя часть ноги будет вращаться только вперед-назад. Теперь включите режим ограничения (limited) для оси Х и установите диапазон от 3 до 170. Затем под осью Х нужно отметить пункт "Spring Back" (отход назад) и выставить значение 5 для него и 0,3 для Spring Tension (усилие). Это ограничит движения верхней части ноги, т.е. она не будет поворачиваться под неестественными углами.

Отключите пункты "активный" (active) для осей Y и Z.

11. Выберите Bone02. Эта кость как бы проходит через блок HipSocket. Мы хотим, чтобы она не вращалась вдоль продольной оси и контролировалась движениями блока Box02-HipSocket.

Выберите Bone02. Отключите пункты "активный" для оси Z. Оси Х и Y должны остаться активными.

12. Как я уже говорил, мы будем использовать блок Box02-HipSocket для управления движением верхней части ноги вокруг продольной оси. Она будет поворачиваться вокруг локальной оси Z.

Но, наверное, вы захотите, чтобы колено не зависело от вращения "бедра", но зависело от других осей. Для этого выберите объект Box02-HipSocket. Затем, в панели иерархии выберите раздел "Link Info" (информация о связывании). На панели, в разделе "Inherit" (передача), отключите оси Z.

Кроме того, мы хотим, чтобы эта кость вращалась только на собственной оси Z.
На той же панели, в разделе "Locks" (блокировки), включите оси X и Y. Теперь разрешено вращение только по оси Z. Это облегчит анимирование - схема сама заблокирует некорректные движения.

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

Ступня красная, ступня синяя:

13. Чтобы настроить схему ноги, мы выставим ограничения для всех элементов с обратной кинематикой. Для пальцев мы применим ToeDummy, как конечную цель и BallDummy для управления вращением. Положение и вращение собственно ступни ограничиваются AnkleDummy. Добавим еще несколько связей и несколько новых вспомогательных объектов - и получим ступню, которая будет слушаться нас во всем.

Сначала мы займемся концевыми эффекторами. Свяжем их с пустышками.

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

14. Теперь выберите Bone06. Она связана с костью Box06-Toes. Нажмите кнопку "создать" в разделе "позиционный концевой эффектор" (Position End Effector). Затем нажмите "связать" и установите BallDummy родителем для этого элемента.

15. Выберите Bone05. Это маленькая кость между элементами AnkleDummy и Foot.

Создайте и позиционный, и поворотный концевые эффекторы (это важно - оба типа). Затем нажмите "связать" и выберите в качестве родителя AnkleDummy. Если после этого какой-то элемент начинает неправильно вращаться или дергаться, значит AnkleDummy был создан не в той же ориентации, что остальные элементы с обратной кинематикой (т.е. не в виде сверху). В этом случае вам придется правильно сориентировать AnkleDummy. Но этого не должно произойти, если вы придерживались моих инструкций.

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

Зайдите в панель иерархии и выберите секцию "обратная кинематика" (IK). Выделите Bone06. Эта кость является родителем большого пальца. Поскольку большой палец вращается только на оси Х, отключите пункты "активный" для осей Y и Z на панели "Rotational Constraints" (ограничение поворота), а ось Х оставьте активной.

Установите значение веса для параметра "положение" на 50.

17. Снова выделите Bone05. Это небольшая кость между лодыжкой и ступней. Установите вес для параметров "положение" и вращение" на 100. В принципе, достаточно выставить значение 50, но мы перестрахуемся. Учтите, что параметры веса важны и изменения в них могут нарушить работу схемы.

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

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

Ступня должна быть плоской, как на рисунке.

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

20. Создайте две пустышки в окне вида сверху. Один, побольше, назовите FootDummy. Разместите его в районе AnkleDummy. Второй, HeelDummy, разместите там же, где BallDummy, но сделайте его немного больше.

21. Мы установим ограничения для BallDummy и HeelDummy - они должны вращаться только вокруг оси Х. Затем свяжите HeelDummy и
BallDummy с FootDummy. Мои поздравления, вот и все.

Как работает схема "Нога и ступня с обратной кинематикой"

Эта схема сложнее предыдущей, но во многом работает также, как она.

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

При вращении HeelDummy по оси Х передняя часть ступни останется на неподвижной, а пятка поднимется. Аналогично в первой схеме.

Чтобы повернуть ступню целиком, перемещайте FootDummy.

Вы можете также вращать блок Hips и HipSocket - это определит положение колена и верхней части ноги.

Уходим, уходим, уходим:

Я рассказал вам основы создания схемы ноги с помощью "New IK" в Мах. Те же принципы можно использовать и для руки. Только там будет ограничиваться движение не колена, а локтя (можете попробовать поворотный эффектор, но позиционный работает лучше). Вместо позиционного эффектора лодыжки используйте эффектор для запястья. Кроме того, вы можете добавить еще один сегмент - для плеч.

Лично мне больше нравится схема со ступней (или ладонью) с прямой кинематикой. Она стабильна, сравнительно проста и ею легко управлять при анимации. Но чтобы вы не выбрали - удачи. Счастливо кинематиться!

Об авторе

Майкл Комет - 3D-аниматор и художник на студии "Big Idea" (Ломбард, Иллинойс, США). Сейчас работает над детскими мультфильмами. Раньше работал в компании, специализирующейся на видеоиграх.

Источник: comet-cartoons.com

38577 Автор:
Актуальность: 0
Качество: 0
Суммарный балл: 0
Голосов: 4 оценки
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 713 уникальных посетителей