Ми займаємося процедурною анімацією персонажів в Unity та Unreal Engine понад 7 років. Маємо 8-річний досвід у цій сфері та виконали понад 15 проєктів для мобільних та PC-платформ, включаючи AAA-тайтли. Ключова анімація хороша для заздалегідь відомих рухів, але персонаж, який піднімається сходами невідомої висоти або дотягується до предмета в довільній точці, вимагає процедурного підходу. Змішування обох методів — стандарт для сучасного геймплею.
Foot IK — найпоширеніший кейс. На пандусі ступні персонажа «провалюються» крізь геометрію без процедурної корекції. Ми виправляємо це в реальному часі: raycast від гомілкостопу, коригування позиції кістки, Two Bone IK перераховує коліно.
Як налаштувати Foot IK: покрокова інструкція
- Створіть ланцюжок кісток Thigh → Shin → Foot.
- Додайте компонент Two Bone IK Constraint з пакету Animation Rigging.
- Створіть порожній Transform (IK Target) та призначте його в полі Target.
- Призначте Hint для визначення напрямку коліна (наприклад, невеликий порожній об'єкт перед коліном).
- Напишіть скрипт, який у FixedUpdate виконує Raycast, а в LateUpdate застосовує позицію та вагу.
- Налаштуйте вагу: 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.






