Ви, напевно, чули про зворотну кінематику. IK - популярний інструмент в Unity та комп’ютерній графіці, але якщо ви вперше спробували створити або використовувати систему Inverse Kinematics, то, можливо, ви захочете отримати більше деталей. Я збираюся пояснити, що таке ІК, визначити словниковий запас та переглянути використання. Який необхідний словник, щоб зрозуміти ІК?
Перш ніж потрапити до серця ІК, нам потрібно визначити деяку лексику, пов’язану з ІК. ІК - метод, який застосовується до шарнірного тіла. Що таке шарнірне тіло?
Зчленований корпус
Зчленоване тіло може представляти більшість анімованих тіл, таких як люди та тварини зі скелетами. Простіше кажучи, шарнірне тіло - це дерево зв'язаних ланцюгів. Зв’язані ланцюги складаються з з'єднань і ланок, де ланка - це жорсткий циліндр.
Види з'єднань
Що стосується суглобів, то існує два типи. Перший тип суглоба - це зворотний шарнір. Він з'єднаний із ланкою, що обертається навколо нього.
Револьверний шарнір дуже схожий на центральний штифт годинника - рукою годинника як ланкою.
Призматичний суглоб - це такий шарнір, що з'єднана ланка перекладається з з'єднання на розширення / скорочення ланки.
Призматичний шарнір подібний до подовження / відтягування довжини висувної ручки вашого багажу. Якщо придивитися уважно, висувна ручка багажу має 4 призматичні стики. 2 призматичні суглоби наполовину ручки, а ще 2 призматичні суглоби до упору ручки вгорі багажу.
Якщо вас плутають призматичні суглоби, не хвилюйтеся. Вони не часто використовуються у зворотній кінематиці, і, як ви могли б сказати, жодна людина не має призматичних суглобів - лише суглоби, що обертаються.
Ієрархічна структура
Суглобове тіло має кореневий суглоб. Кореневий суглоб є основою структури. Кореневий суглоб для гуманоїда зазвичай є центром стегон. Суглобове тіло формується з дерева суглобів і ланок, починаючи від кореневого суглоба. Нова спілка і ланка схожа на нову гілку на дереві. Внутрішня ланка / суглоб - це ланка / стик, який знаходиться ближче до кореневого суглоба всередині ієрархії дерева зчленованого тіла, так як це стосується заданого стику / ланки. Підвісна ланка / суглоб - це ланка / стик, що знаходиться далі від кореневого суглоба в межах ієрархії дерев яного тіла.
Кінцевий ефект
Кінцевий ефектор - це позиція в самій позаборговій позиції найбільш зовнішньої ланки. Це вільний кінець ланцюга змінних з'єднань і ланок. Кінцевий ефектор не є з'єднанням. Кінцевим ефектором є лише положення на кінці шарнірного тіла. Зчленоване тіло може мати кілька кінцевих ефекторів, подібно як двійкове дерево може мати кілька листків.
Кінцевий ефект зображений тут зеленим колом.
Артикуляції та пози
Артикуляція - це обертання / переклад суглоба, який переміщує з'єднану ланку. З іншого боку, поза - це сукупність суглобів, що призводять до позиціонування шарнірного тіла. Іншими словами, поза - це векторне значення замість скалярного значення.
Що таке форвардна кінематика?
Перш ніж ми зможемо розібратися в тому, що таке зворотна кінематика, нам потрібно розібратися, що таке форвардна кінематика. Функція / алгоритм Forward Kinematics приймає позицію як вхід і обчислює позицію кінцевого ефектора як вихід. Форвардна кінематика - це зворотна функція зворотної кінематики. За допомогою форвардної кінематики вам потрібно визначити всю позу шарнірного тіла, щоб забезпечити функцію / алгоритм введенням пози. Це означає, що потрібно визначити зчленування кожного суглоба в шарнірному тілі. Це може бути добре, якщо у вас невелика кількість суглобів, але при великій кількості суглобів це, як правило, стомлює.
Що таке зворотна кінематика?
А тепер уявіть, чи хочете ви, щоб кінцевий ефектор вашого шарнірного тіла досяг конкретного цільового положення. Це означає, що ви знаєте кінцеве положення ефектора, на яке ви хочете націлитись, але ви не знаєте, якою повинна бути позиція шарнірного тіла, щоб кінцевий ефектор досяг цього цільового положення. Ось де світить зворотна кінематика!
Зворотна кінематика - це зворотна функція / алгоритм Forward Kinematics. Функція / алгоритм Forward Kinematics приймає цільове положення як вхід і обчислює пози, необхідні для досягнення кінцевим ефектором цільового положення - пози є вихід.
Як бачите, вхід і вихід перемикаються між FK і IK. За допомогою зворотної кінематики вам не потрібно визначати всю позу зчленованого тіла - це обчислюється для вашого алгоритму IK. З ІК вам потрібно лише визначити позицію як вхідний.
Зворотна кінематика виконує всю складну обчислювальну роботу обчислення того, що таке поза. У "Перед державою" є шарнірне тіло з деякою відомою позою. Він визначає цільове положення для кінцевого ефектора, який намагається досягти. Після того, як алгоритм ІК застосований до шарнірного тіла, ми дійшли до Позаштатного стану. Після держави показує, що була розрахована нова позиція, така що кінцевий ефектор зараз знаходиться в цільовій позиції.
У чому полягає використання ІК?
У цей момент ми знаємо, що ІК застосовується до шарнірного тіла, ми знаємо, з чого складається шарнірне тіло, і ми знаємо різницю між ІК і ФК. Наразі ми маємо хороший огляд IK, але давайте заощадимо його кількома корисними випадками використання IK. ІК може використовуватися для гуманоїдної руки, щоб досягти об'єкта / цілі, як ми бачили. IK також можна використовувати для крокування стопи, таким чином, щоб ми говорили стопі, куди слід крокувати, а IK визначає, як налаштувати суглоби ніг. IK зазвичай не використовується як сама анімація (тягнеться до об'єкта), а більше як інструмент анімації. Отже, якщо ви реалізуєте цикл прогулянок, ви можете розташувати деякі ключові кадри за допомогою інструмента IK.
Ще одним ключовим моментом щодо ІК є те, що ваша мета / мета не обмежується лише позицією - ваша мета може бути визначена як поворот. Наприклад, якщо ваші ноги повинні обертатися на нерівній місцевості, ваша мета обертання IK може бути визначена, виходячи з норми підлоги. Таким чином ваші ноги нахилені уздовж підлоги, наприклад, коли ви піднімаєтесь по схилу. Зауважте, що ви також можете використовувати IK, щоб ваша голова (або навіть очі) дивилися у певному напрямку. Якщо ви хочете, щоб ваша голова слідувала за об’єктом, ви можете використовувати IK, щоб голова стежила за об'єктом навколо.