Введение#

Инверсная кинематика (IK) упрощает процесс анимации и позволяет создавать более сложную анимацию с меньшими усилиями.

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

Этих усилий можно избежать, используя инверсную кинематику (IK).

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

Панель ИК скелета#

Ссылка

Режим (mode):

Режим позы (pose mode)

Панель:

Свойства ‣ Скелет ‣ Инверсная кинематика

Эта панель используется для выбора типа IK-решателя для скелета: Стандартный или iTaSC. В большинстве случаев люди будут использовать стандартный IK-решатель.

Стандартный (standard)#

В процессе.

iTaSC#

iTaSC расшифровывается как «instantaneous Task Specification using Constraints» — мгновенное задание спецификации с использованием ограничений.

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

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

Точность (precision)

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

Итераций (iterations)

Верхняя граница количества итераций.

Решатель (solver)

Выбирает решатель обратного якобиана, который будет использовать iTaSC.

SDLS

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

DLS

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

Максимальное демпфирование

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

Эпсилон демпфирования

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

Примечание

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

Примечание

  • Решатель SDLS не работает с ограничением расстояния. Вы должны использовать решатель DLS, если у вас будет сингулярная поза в анимации с ограничением расстояния.

  • Оба решателя работают хорошо, если у вас нет сингулярной позы.

Анимация (animation)#

В режиме анимации iTaSC работает как решатель ИК: он не имеет состояния и использует позу из интерполяции F-кривых в качестве начальной позы перед сходимостью ИК. Целевая скорость игнорируется, и решатель сходится до тех пор, пока не будет достигнута заданная точность. Тем не менее, новый решатель обычно работает быстрее старого и предоставляет функции, присущие iTaSC: несколько целей на кость и несколько типов ограничений.

Симуляция (simulation)#

Режим симуляции — это режим с сохранением состояния решателя: он оценивает скорость цели, работает в контексте «реального времени», игнорирует вращение из ключевых кадров (кроме как через ограничение вращения сустава) и автоматически строит кэш состояния.

Повторная итерация
Никогда

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

Начальная

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

Всегда (always)

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

Автоматический шаг

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

Минимум (min)

Предлагаемая минимальная длительность подшага (в секундах). Алгоритм автоматического выбора шага может дополнительно уменьшить подшаг на основе скорости суставов.

Максимум (max)

Максимальная длительность подшага (в секундах). Алгоритм автоматического выбора шага не допустит, чтобы подшаг был длиннее этого значения.

Шаги (steps)

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

Обратная связь

Коэффициент ошибки положения конечного эффектора для установки корректирующей скорости сустава. Постоянная времени коррекции ошибки является обратной величиной этого значения. Однако этот параметр мало влияет на динамику скелета, поскольку алгоритм в любом случае оценивает скорость цели. Установка этого параметра в 0 означает «размыкание контура»: решатель отслеживает скорость, но не положение; ошибка будет быстро накапливаться. Слишком большое значение этого параметра означает чрезмерную коррекцию и риск нестабильности. Значение должно находиться в диапазоне 20-100. Значение по умолчанию равно 20, что означает, что ошибки отслеживания корректируются за типичное время 100-200 мс. Коэффициент обратной связи является причиной того, что скелет продолжает слегка двигаться в режиме симуляции, даже если цель остановилась: остаточная ошибка постепенно подавляется кадр за кадром.

Максимальная скорость

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

Панель ИК кости#

Ссылка

Режим (mode):

Режим позы (pose mode)

Панель:

Свойства ‣ Кость ‣ Инверсная кинематика

Эта панель используется для управления тем, как кости позы работают в цепочке ИК.

Растяжение ИК

Влияние растяжения на цель ИК.

Замок

Запретить движение вокруг оси.

Жёсткость (stiffness)

Жёсткость вокруг оси. Влияние отключается при использовании Блокировки.

Ограничить

Ограничить движение вокруг оси.

Решатель iTaSC#

Если используется решатель ИК iTaSC, панель ИК кости изменяется, добавляя эти дополнительные параметры.

Управление вращением

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

Вес (weight)

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

Пример рига руки#

Эта рука использует две кости, чтобы преодолеть проблему скручивания для предплечья. Блокировка ИК используется, чтобы предотвратить сгибание предплечья, но предплечье все еще можно скручивать вручную, нажимая R Y Y в Режиме позы, или с помощью других ограничителей.

../../../../../_images/animation_armatures_posing_bone-constraints_inverse-kinematics_introduction_example.png

Пример IK Руки.#

Обратите внимание, что, если используется целевая точка полюса, блокировка ИК не будет работать на корневой кости.