Вы, наверное, слышали об обратной кинематике. IK - популярный инструмент в Unity и компьютерной графике, но если вы впервые пытаетесь создать или использовать систему Inverse Kinematics, вам может потребоваться больше деталей. Я собираюсь объяснить, что такое IK, определить словарный запас и рассмотреть использование. Каков необходимый словарный запас, чтобы понять IK?
Прежде чем мы углубимся в суть IK, нам нужно определить некоторый словарь, связанный с IK. ИК - это метод, который применяется к сочлененному телу. Что такое сочлененное тело?
Сочлененное тело
Сочлененное тело может представлять большинство анимированных тел, таких как люди и животные со скелетами. Проще говоря, сочлененное тело - это дерево связанных цепей. Связанные цепи состоят из соединений и звеньев, где звено представляет собой жесткий цилиндр.
Типы Суставов
Что касается суставов, есть два типа. Первый тип сустава - это вращающийся сустав. Это связано со ссылкой, которая вращается вокруг него.
Вращающееся соединение очень похоже на центральный штифт часов - со стрелкой часов в качестве звена.
Призматическое соединение представляет собой такое соединение, что соединенное звено перемещается от соединения, чтобы удлинить / укоротить звено.
Призматическое соединение действует так же, как удлинение / убирание длины выдвижной ручки вашего багажа. Если присмотреться, выдвижная ручка для багажа имеет 4 призматических шва. 2 призматических шарнира на полпути вниз по ручке, и еще 2 призматических шарнира на полпути внизу ручки вверху багажа.
Если вас смущают призматические суставы, не волнуйтесь. Они не используются так часто в обратной кинематике, и, как вы могли бы сказать, ни у кого нет призматических суставов - только вращающиеся суставы.
Иерархическая структура
Шарнирное тело имеет корневой сустав. Корневой шов является основой структуры. Корневой сустав у гуманоида обычно является центром бедер. Шарнирное тело формируется из дерева суставов и звеньев, начиная с корневого сустава. Новое соединение и ссылка похожи на новую ветку на дереве. Внутренняя связь / соединение - это связь / соединение, которое находится ближе к корневому соединению в древовидной иерархии сочлененного тела, поскольку оно относится к данному соединению / связи. Внешняя связь / соединение - это связь / соединение, которая находится дальше от корневого соединения в древовидной иерархии сочлененного тела.
Рабочий орган
Конечный эффектор - это позиция в самой внешней позиции самой внешней подвески. Это свободный конец цепи чередующихся соединений и звеньев. Конечный эффектор не является суставом. Конечный эффектор - это просто положение в конце сочлененного тела. Сочлененное тело может иметь несколько конечных эффекторов, как у бинарного дерева может быть несколько листьев.
Конечный эффектор изображён здесь зелёным кружком.
Артикуляции и позы
Артикуляция - это вращение / перемещение сустава, который перемещает связное звено. С другой стороны, поза - это совокупность сочленений суставов, в результате которых устанавливается шарнирное тело. Другими словами, поза представляет собой векторное значение вместо скалярного значения.
Что такое прямая кинематика?
Прежде чем мы сможем понять, что такое обратная кинематика, нам нужно выяснить, что такое прямая кинематика. Функция / алгоритм прямой кинематики принимает позу в качестве входных данных и вычисляет положение конечного эффектора в качестве выходных данных. Прямая кинематика является обратной функцией обратной кинематики. При использовании прямой кинематики вам необходимо определить всю позу сочлененного тела, чтобы обеспечить функцию / алгоритм входной позой. Это означает, что вам нужно определить сочленение каждого сустава в сочлененном теле. Это может быть хорошо, если у вас небольшое количество суставов, но с большим количеством суставов это, как правило, утомительно.
Что такое обратная кинематика?
Теперь представьте, хотите ли вы, чтобы конечный эффектор вашего шарнирного тела достиг определенной заданной позиции. Это означает, что вы знаете конечную эффекторную позицию, на которую хотите нацелиться, но не знаете, какой должна быть поза сочлененного тела, чтобы конечный эффектор достиг этой целевой позиции. Вот где сияет обратная кинематика!
Обратная кинематика - обратная функция / алгоритм прямой кинематики. Функция / алгоритм прямой кинематики принимает целевую позицию в качестве входных данных и вычисляет позу, необходимую для достижения конечным эффектором целевой позиции - поза является выходной.
Как видите, вход и выход переключаются между FK и IK. С помощью Inverse Kinematics вам не нужно определять всю позу сочлененного тела - это рассчитывается для вас по алгоритму IK. С IK вам нужно только определить позицию в качестве входных данных.
Обратная кинематика выполняет всю сложную вычислительную работу по вычислению того, что представляет собой поза. В состоянии «До» есть сочлененное тело с известной позой. Он определяет целевую позицию, которую конечный эффектор пытается достичь. Как только алгоритм IK применен к сочлененному телу, мы достигли состояния после. После состояния показывает, что была вычислена новая поза, так что конечный эффектор теперь находится в целевой позиции.
Каковы виды использования IK?
На данный момент мы знаем, что IK применяется к сочлененному телу, мы знаем, из чего состоит сочлененное тело, и мы знаем разницу между IK и FK. Пока у нас есть хороший обзор IK, но давайте округлим его и некоторыми хорошими примерами использования IK. Как мы уже видели, IK можно использовать для гуманоидной руки, чтобы достичь объекта / цели. IK также может быть использован для степпинга ног, так что мы сообщаем ноге, куда нужно шагать, и IK выясняет, как настроить суставы ног. IK обычно не используется как анимация (для достижения объекта), а скорее как инструмент анимации. Итак, если вы реализуете цикл ходьбы, вы можете расположить некоторые ключевые кадры с помощью инструмента IK.
Другой ключевой момент в IK заключается в том, что ваша цель / цель не ограничивается только позицией - ваша цель может быть определена как ротация. Например, если ваши ноги должны вращаться в зависимости от неровной местности, ваша цель вращения IK может быть определена на основе нормы пола. Таким образом, ваши ноги наклоняются вдоль пола, например, когда вы идете вверх по склону. Обратите внимание, что вы также можете использовать IK, чтобы ваша голова (или даже глаза) смотрела в определенном направлении. Если вы хотите, чтобы ваша голова следовала за объектом, вы можете использовать IK, чтобы голова следовала за объектом вокруг.