Створення циклів руху (ходьба, біг, стрибок) для ігор
Ми розробляємо анімаційні мережі locomotion — від простих idle/run до складних сетів з blend tree, foot IK та root motion. Наш досвід: понад 10 років у геймдеві, десятки проєктів під Unity та Unreal Engine. Погано зроблений locomotion set змушує персонажа ковзати, «плисти» або смикатися на переходах — і це помітно з першої секунди геймплею. Ми гарантуємо, що ваша анімація працюватиме бездоганно.
Чому Blend Tree кращий за State Machine для locomotion?
Стандартна помилка — будувати locomotion через окремі анімаційні стани в State Machine з перехресними переходами. Це виглядає нормально в Animator вікні, але на практиці при переході idle → walk → run потрібно керувати трьома transition threshold та часом crossfade, і будь-яка зміна параметра швидкості створює помітний blending артефакт.
1D Blend Tree за параметром Speed вирішує це елегантно: Unity інтерполює між idle, walk, run та sprint як по одній осі, нормалізуючи ваги автоматично. Поріг 0 — idle, 0.5 — walk, 1.0 — run, 2.0 — sprint. Threshold виставляються через Compute Thresholds → Velocity Z, що автоматично розраховує значення на основі root motion velocity в кожному кліпі.
2D Blend Tree (Simple Directional або Freeform Directional) додає другу вісь — Strafe. Це потрібно для шутерів та екшн-ігор, де персонаж рухається в 8 напрямках. Тут важливо правильно виставити центральну точку (0, 0) — вона повинна посилатися на idle кліп з нульовим рухом, інакше blending при діагональному русі дає некоректну вагу.
Root motion — окрема тема. Якщо анімації зроблені з root motion (переміщення персонажа закодовано в русі root bone), потрібно дотримати: однаковий крок циклу між walk та run (інакше foot sliding при blend), правильний bake axes в Unity (Apply Root Motion → Bake Into Pose для вертикальної та горизонтальної осі в залежності від проєкту). Для walk cycle довжина одного циклу в Unity рахується через Loop Pose + Cycle Offset — і якщо кліп не зациклений ідеально, буде видимий «підскок» в кінці циклу.
Як налаштувати Foot IK для ідеального контакту з поверхнею?
Без Foot IK персонаж буде провалюватися ступнями в нерівний terrain або парити над ним. Unity Animation Rigging package надає Two Bone IK Constraint для ніг — це рекомендований підхід в Unity 2022+. Старий підхід через OnAnimatorIK + animator.SetIKPosition працює, але менш гнучкий при перемиканні між кількома ригами.
Правильне налаштування Two Bone IK: Effector target — це transform, який Raycast підтягує до поверхні terrain. Hint target — позиція коліна. Weight керується по кривій в залежності від фази кроку (при відриві ноги від землі weight → 0, при контакті → 1). Без цієї кривої IK буде смикати ногу при підйомі.
Foot contact frame в walk cycle важливий: саме в той кадр, коли ступня повинна торкатися землі, вона повинна бути в точці з нульовою вертикальною швидкістю. Це називається foot plant frame, і його потрібно виставити через Loop Pose curves або вручну в анімаційному редакторі.
Що входить в locomotion set для типової гри?
Мінімальний набір для третьособового екшн-персонажа:
- Idle (2–3 варіанти з additive breathing layer)
- Walk forward / backward
- Run forward
- Sprint
- Strafe left / right (walk і run)
- Jump start / in-air / land (важке та легке приземлення)
- Turn in place (45°, 90°, 180° — потрібні для Foot IK коректності)
Для мобільних проєктів набір часто скорочують до 6–8 кліпів з агресивним blending. Для AAA проєктів додають: crouch locomotion, prone, climb transitions, root motion для поворотів.
Окремо — jump. Це не один кліп, це три або п'ять станів: anticipation → take-off → peak → descent → land (+ heavy land при високій швидкості). Переходи між ними керуються через параметри IsGrounded та VerticalVelocity, які розраховує CharacterController або Rigidbody. Якщо transition з in-air в land має фіксований duration замість Exit Time = 0 + умовний trigger, приземлення буде запізнюватися або перериватися.
Як скоротити час на відлагодження анімацій?
Деякі проблеми типові і їх можна уникнути заздалегідь. Ось чек-лист наших інженерів:
- Перевірте, що всі кліпи зациклені (Loop Pose) з нульовим зміщенням.
- Переконайтеся, що root motion однаково направлений по осі Z для всіх кліпів.
- Виставте threshold Blend Tree на основі реальної швидкості, а не вручну.
- Для Foot IK використовуйте криві ваги, а не константне значення.
Поширені помилки при розробці locomotion
- Переходи з фіксованою тривалістю замість Exit Time з умовами.
- Відсутність foot plant frame — ступня «плаває» в момент дотику.
- Різний темп (BPM) між walk та run — призводить до розсинхронізації кроків.
- Ігнорування IK на нерівному terrain — персонаж виглядає відірваним від землі.
Процес роботи
Спочатку — аналіз референсів та узгодження ключових параметрів: швидкість ходьби та бігу (одиниці на секунду), висота стрибка, стиль руху (важкий солдат vs легкий ніндзя). Потім блокінг ключових поз у Maya або Blender з експортом тестового FBX для перевірки мапінгу в Unity.
Після затвердження блокінгу — spline interpolation та тонка робота з вторинними рухами: swing рук, bob голови, rotation торса. Фінальний етап — інтеграція в Animator Controller, налаштування Blend Tree параметрів, тест foot IK, перевірка loop points та transition timing.
| Масштаб | Термін |
|---|---|
| Мінімальний locomotion set (6–8 кліпів) | 3–7 днів |
| Повний set для екшн-гри (15–20 кліпів) | 2–4 тижні |
| З інтеграцією в Animator + налаштуванням IK | +3–5 днів |
| Locomotion для нелюдиноподібного персонажа | від 3 тижнів |
Зв'яжіться з нами для оцінки вашого проєкту. Ми підберемо оптимальний склад анімацій під ваш бюджет та терміни. Отримайте консультацію — наші інженери готові відповісти на питання та запропонувати рішення під ключ.
Детальніше про Blend Tree читайте в офіційній документації Unity.






