Які необхідні ноу-хау для написання бібліотеки анімації (IK & FK)? [зачинено]


9

Я не можу знайти жодної хорошої бібліотеки для анімації, ті, що я знайшов, просто справді старі і припинені, але я помітив, що бібліотеки порівняно невеликі, тому я замислююся про те, щоб кодувати одну самостійно: з чого мені почати ? Які основи для цього? Про це є книга?

Деякі подальші зауваження про хороший формат файлу для анімації також високо оцінені.

Я використовую C ++.

Відповіді:


8

Не намагайтеся нічого писати з нуля. Зверніться до існуючого коду та дістаньте його звідти.

А якщо ви хочете прочитати матеріал:


7

Кінематика вперед - це лише необхідна умова для зворотної кінематики загалом.

Для кінематики вперед потрібно мати певні знання про ланцюги перетворень (наприклад, що означає сцена-графік). Як приклад, хороший момент для початку - це конвенція Денавіт-Гартенберг. Для зворотної кінематики вивчайте циклічний координатний спуск (CCD), якобійський зворотний, якобійський транспоніст та псевдо-зворотні рішення . Ці поняття та алгоритми пропонують вам гідний огляд того, що стосується математики та частково фізики цього поля. Бібліотека, мова програмування або формати файлів ніколи не є ключовим елементом, якщо ви також хочете зрозуміти, що відбувається за магією.

Якщо вам потрібне швидке рішення або компонент для якоїсь програми, над якою ви працюєте, перегляньте деякі бібліотеки, надані в інших відповідях тут. Якщо ви займаєтесь робототехнікою, то OpenRAVE - чудовисько, яке варто згадати. Крім того, є Matlab Robotics Toolbox (за умови, що ви займаєтесь такою інженерною стороною).

Усі концепції дають вагомий результат у вашій улюбленій пошуковій системі, тому вибачте, що не розмістили багато посилань на приємні матеріали.


1

Оригінальна стаття: Що мені потрібно знати про зворотну кінематику?

Ви, напевно, чули про зворотну кінематику. 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, щоб голова стежила за об'єктом навколо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.