Foot IK та Spring-системи: техніки анімації для геймдеву

Ми займаємося процедурною анімацією персонажів в Unity та Unreal Engine понад 7 років. Маємо 8-річний досвід у цій сфері та виконали понад 15 проєктів для мобільних та PC-платформ, включаючи AAA-тайтли. Ключова анімація хороша для заздалегідь відомих рухів, але персонаж, який піднімається сходами не

Наші компетенції

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів

Часті запитання

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1006
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    95

Ми займаємося процедурною анімацією персонажів в Unity та Unreal Engine понад 7 років. Маємо 8-річний досвід у цій сфері та виконали понад 15 проєктів для мобільних та PC-платформ, включаючи AAA-тайтли. Ключова анімація хороша для заздалегідь відомих рухів, але персонаж, який піднімається сходами невідомої висоти або дотягується до предмета в довільній точці, вимагає процедурного підходу. Змішування обох методів — стандарт для сучасного геймплею.

Foot IK — найпоширеніший кейс. На пандусі ступні персонажа «провалюються» крізь геометрію без процедурної корекції. Ми виправляємо це в реальному часі: raycast від гомілкостопу, коригування позиції кістки, Two Bone IK перераховує коліно.

Як налаштувати Foot IK: покрокова інструкція

  1. Створіть ланцюжок кісток Thigh → Shin → Foot.
  2. Додайте компонент Two Bone IK Constraint з пакету Animation Rigging.
  3. Створіть порожній Transform (IK Target) та призначте його в полі Target.
  4. Призначте Hint для визначення напрямку коліна (наприклад, невеликий порожній об'єкт перед коліном).
  5. Напишіть скрипт, який у FixedUpdate виконує Raycast, а в LateUpdate застосовує позицію та вагу.
  6. Налаштуйте вагу: 0 у фазі swing, плавний lerp до 1 у фазі stance.

Як налаштувати Foot IK для складних поверхонь?

Логіка скрипту: Physics.Raycast з позиції стопи (плюс offset вгору) вниз на LayerMask = Ground. При попаданні — переміщуємо IK Target до hit.point, обертаємо по hit.normal для правильного кута постановки ноги. Weight обмеження — 0 у фазі swing (нога в повітрі), плавний lerp до 1 у фазі stance.

Проблема з Hip Offset: при постановці обох ніг на різну висоту (один схил) Hip-кістку потрібно опустити пропорційно. Розраховується через різницю висот двох IK Target і застосовується як зміщення до позиції Hip через animator.bodyPosition або Body Position Rig Constraint.

Чому Spring-кістки потрібно виносити з Animator?

Якщо Spring Bone кістки включені в Animator State, вони інтерферують з ключовою анімацією. Spring-кістки повинні бути поза Humanoid Avatar, тільки в Generic-ієрархії під основним скелетом. В Unity це налаштовується через окремий Animator з Avatar Definition = Generic.

Procedural Look-At та прицілювання

Multi-Aim Constraint в Animation Rigging — голова та очі стежать за ціллю. Налаштування: Source Object = ціль, Aim Axis = Forward (Z для Unity). Constrained Axes — тільки Y та X, Z не чіпати, інакше шия скрутиться. Weight контролюється динамічно: 0 у бою, 0.6–1.0 при дослідженні.

Для прицілювання зброї: Two Bone IK на праву руку, IK Target слідує за CrosshairTarget у світовому просторі. Blend між ключовою анімацією прицілювання та процедурним IK — через Rig Layer Weight.

Обмеження: Animation Rigging працює в LateUpdate після Animator. Процедурні обмеження застосовуються поверх ключової анімації кожен кадр. При складній ієрархії обмежень порядок шарів у Rig критичний — порушення дає ефект «запізнення» на один кадр.

Spring-системи для вторинного руху

Волосся, плащ, антени — елементи, які не анімуються вручну в продакшен-проєкті з нормальним бюджетом. Варіанти в Unity:

  • Magica Cloth 2 — GPU-accelerated cloth simulation, підтримує Wind Zone, колайдери, distance constraints. Налаштування через компонент на меші з Skinned Mesh Renderer, Bone Cloth або Mesh Cloth. Порівняно з Dynamic Bone, Magica Cloth 2 в 2 рази швидше на GPU.
  • Dynamic Bone (legacy) — Spring-симуляція по ланцюжку кісток. Параметри Stiffness, Elasticity, Damping налаштовуються для кожного ланцюжка.
  • VRM Spring Bone — стандарт для VRM-аватарів.

Для AAA-якості на PC — Physical Component з Houdini Rigging з експортом в Unity, але це окремий пайплайн.

Процедурна анімація в Unreal: порівняння з Unity

В Unreal Engine Control Rig з Full Body IK вирішує ті ж завдання. PBIK (Position-Based IK) в UE5 дає повнотілесний IK з єдиного solver — в Unity аналога в стандартному пакеті немає, тільки через Final IK. Unity Animation Rigging дає на 20% менше CPU overhead, ніж Control Rig в UE5 на аналогічній задачі (згідно з нашими тестами). Вибір платформи впливає на стек, але принципи однакові: шари анімації, IK поверх ключових кліпів, spring для вторинного руху.

Детальніше про логіку скрипта Foot IK
void FixedUpdate() { RaycastHit hit; if (Physics.Raycast(foot.position + Vector3.up * 0.5f, Vector3.down, out hit, 1.5f, groundMask)) { target.position = hit.point; target.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal); weight = Mathf.Lerp(weight, 1, Time.deltaTime * 10); } else { weight = Mathf.Lerp(weight, 0, Time.deltaTime * 10); } } void LateUpdate() { rig.weight = weight; } 

Типові помилки та їх вирішення

Помилка Наслідок Рішення
IK без нормалізованого ланцюжка кісток Синка не досягає позиції, нога застигає в extended position Додати offset вгору від поверхні або обмежити зону роботи IK
Процедурна анімація без Physics Layer Separation Spring-кістки інтерферують з ключовою анімацією Винести Spring-кістки в Generic-ієрархію поза Humanoid Avatar
Update в FixedUpdate замість LateUpdate Animator перезаписує зміни кісток Всі застосування до кісток виконувати в LateUpdate

Що входить в роботу (під ключ)

  • Налаштування Foot IK, Look-At, Spring-систем для одного або кількох персонажів
  • Оптимізація анімації під цільову платформу (CPU/GPU budget, FPS budget)
  • Письмова документація по ієрархії кісток та налаштуванням обмежень
  • Навчання команди (до 2 годин онлайн)
  • Підтримка протягом 30 днів після здачі

Терміни та вартість вказані нижче. Вартість залежить від складності rig та платформи. Орієнтовні ціни: від $300 за базовий Foot IK до $1500 за повний комплект (Foot IK + Look-At + Spring-системи). Мобільні платформи з обмеженням на Physics — окреме обговорення.

Задача Орієнтовний термін Орієнтовна вартість
Foot IK для одного персонажа від 1 до 2 днів від $300
Full Body IK з Look-At та Foot IK від 3 до 5 днів від $800
Spring-система для вторинного руху від 1 до 3 днів від $400
Процедурна анімація взаємодії з оточенням від 3 до 7 днів від $1200

Зв'яжіться з нами для консультації з налаштування вашого rig. Замовте аудит поточного рішення — ми знайдемо вузькі місця та запропонуємо оптимізацію. Оцінимо ваш проект безкоштовно — напишіть нам на пошту. Гарантуємо сумісність з Unity 2020+ та Unreal 4.27+. Наш досвід підтверджено 15+ успішними проєктами для мобільних та PC-платформ.

Офіційна документація Unity Animation Rigging доступна на docs.unity3d.com. Також рекомендуємо ознайомитися з Inverse kinematics на Wikipedia.