Скелетна анімація, пряма і інверсна кінематика - світ 3d

Скелетна анімація - це той самий випадок, коли зовсім загальну теорію пояснити дуже просто, а от домогтися реальних результатів, тим більше, результатів серйозних виявляється дуже складно.

Ніхто, однак, не вважає негожим вивчати анімацію роками, натикаючись на кожному розі на справедливість приказки «Вік живи - вік учись».

Якщо в загальному, то скелетна анімація - це анімацію 3D-фігури за допомогою відносно невеликої кількості керуючих елементів, і зовні і за принципом роботи, що нагадують скелет - або будова маріонетки.

Як він «виготовляється», ми розглядали в статті «Ріггінг». Від того, наскільки розумно і правильно ріггінг був виконаний, залежить і результати перших спроб анімувати що-небудь. Якщо ієрархія кісток зроблена як треба, то й поведінка ланцюжка, так само як і прив'язаних до неї вершин, буде «життєподібного». Помилки ж можуть привести до абсолютно безглуздим наслідків: ноги можуть «виїхати» за голову, наприклад.

При вмілому використанні скелетна анімація дозволяє значительнейшим чином економити на зусиллях - природно, набагато простіше рухати кілька «кісток», ніж тягати з місця на місце групи вершин і полігонів.

Існують два основних типи планування руху «скелета» - це пряма кінематика (Forward Kinematics - FK) і інверсна, або зворотна кінематика (Inverse Kinematics - IK). Їх також вибирають на етапі ріггінга, - втім, цей процес від скелетної анімації взагалі невіддільний.

Отже: створимо окремо взяту ланцюжок «кісток» - без додавання м'яса поки що. Всі операції здійснюються в пакеті Blender3D, скріншоти, стало бути, теж звідти.

Скелетна анімація, пряма і інверсна кінематика - світ 3d

Бачимо чотири кістки, де перша - «батьківська», всі наступні - знаходяться в послідовної ієрархічної залежності від попередніх.

У разі якщо ми використовуємо пряму кинематику, то при спробі зрушити будь-які ланки (кістки) нижче рівнем, ніж батьківська, приведуть до того, що рухатися будуть тільки нижчі:

Скелетна анімація, пряма і інверсна кінематика - світ 3d

Повернули кістка 2. разом з нею повернулися (але залишилися на одній прямій) кістки 3 і 4.

Це пряма кінематика: переміщення старших за ієрархією кісток призводять до того, що переміщуються і молодші.

При використанні зворотної кінематики алгоритм виходить рівно протилежний:

Скелетна анімація, пряма і інверсна кінематика - світ 3d

Задавши режим автоматичного вибору інверсної кінематики (Blender вдає, що підбирає оптимальний варіант, і іноді цілком успішно), зрушуємо наймолодшу в ієрархії кістка 4; весь ланцюжок слухняно зігнулася.

Ланка ланцюжка, зміна положення якого призводить до зміни положення інших ланок, називається effector (існує дивовижний переклад «впливовий», але як насправді це слово перекладати.).

Скелетна анімація, пряма і інверсна кінематика - світ 3d

Спонукали кістка 3. Ланки 1-2 поміняли своє становище, а 4 - залишилося на одній прямій з ланкою 3. Кость 3 тепер є effector'ом, і все, що знаходиться нижче його по ієрархії підпорядковується алгоритмам прямий кінематики.

Інверсна кінематика застосовується головним чином там, де потрібне точне розташування кінцевої ланки в потрібній точці (наприклад, щоб при ходьбі ноги персонажа не "прослизали» по поверхні або НЕ потопали в полігонах, що зображують твердь земну).

Самому ж важливе - це грамотна розстановка обмежувачів (constraints) для рухомих елементів на етапі ріггінга. Кінцівки моделі персонажа повинні вести себе «в розумних антропоморфических межах», наприклад, щоб коліна не прогиналися не в ту сторону або пальці рук не загортали за зап'ястя.

Далі починається процес автоматизації рухів - тут все робиться так само, як і при звичайній анімації. Задаються ключові кадри для окремих елементів, що управляють, і вони тягнуть за собою всі інші. При цьому анімаційні пакети цілком можуть реєструвати ключові положення тільки для індивідуальних кісток, для всіх ланок разом або для окремих їх груп. При цьому генеруються криві руху / обертання / масштабу для кожного елемента, який бере участь в анімації. Сучасні пакети, зрозуміло, надають в надлишку кошти, що дозволяють економити на зусиллях - наприклад, «глобалізувати» управління відразу безліччю елементів, групуючи їх більш-менш зручним способом. На скріншоті нижче представлено все робоче вікно Blender з активованими Action Editor і Timeline Editor.

Скелетна анімація, пряма і інверсна кінематика - світ 3d

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

Ну, і наостанок, додамо, що якщо метою варто зробити не "реалістичну» анімацію, а стилізацію під анімацію мальовану, то необхідно мати на увазі горезвісні 12 принципів, закладені диснеївськими аніматорами.

З великим сумом доведеться констатувати, що глибоке розуміння того, як працювати з анімацією в загальному і прямий і зворотній кінематикою зокрема, можна отримати лише з вивчення мінлива (а в керівництві до Blender3D відповідні розділи займають понад півтори сотні сторінок) - і довгих експериментів.

просвіта. анімація. скелетна анімація. інверсна кінематика. пряма кінематика В Мой Мир Tweet Код для вставки в блог: Рейтинг:

Схожі статті