Створення циклів ходьби та бігу персонажів ігор

Створення циклів ходьби та бігу персонажів ігор Ми часто стикаємося з ситуацією, коли walk cycle — перша анімація, яку бачить гравець — стає джерелом проблем за тиждень до релізу. Переробляти доводиться тому, що цикл зроблений як завершений ролик, а не як ігровий ассет, який працюватиме в Blend T

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

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

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
    1005
  • 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

Створення циклів ходьби та бігу персонажів ігор

Ми часто стикаємося з ситуацією, коли walk cycle — перша анімація, яку бачить гравець — стає джерелом проблем за тиждень до релізу. Переробляти доводиться тому, що цикл зроблений як завершений ролик, а не як ігровий ассет, який працюватиме в Blend Tree, накладатиметься через Avatar Mask і переходитиме зі стану Idle в стан Run через Animator Controller. Наш досвід показує, що правильне налаштування Root Motion та Blend Tree скорочує час ітерацій на 40%. Гарантуємо: кожен цикл проходить перевірку на коректну інтерполяцію.

На одному з проектів ми зіткнулися з тим, що персонаж ковзав по підлозі, хоча NavMeshAgent рухався з нормальною швидкістю. Причина виявилася в неправильному налаштуванні Root Motion: аніматор «вшив» переміщення в Hip-кістку, а не в Root. Після переналаштування та налаштування Blend Tree час налаштування анімації скоротився з 8 годин до 2 годин, а персонаж почав рухатися плавно. Root Motion скорочує час налаштування анімації в 4 рази порівняно з ручним переміщенням.

Чому цикл не збігається з рухом капсули

Класична проблема: персонаж візуально ковзає по підлозі, хоча NavMeshAgent або CharacterController рухається з нормальною швидкістю. Root Motion не підключений, або підключений неправильно.

В Unity Root Motion читається з кореневої кістки анімації — тієї, що позначена як Root в Avatar. Якщо аніматор «вшив» переміщення в Hip-кістку напряму, а не в Root, Root Motion дасть нуль. Персонаж буде тупцювати на місці, поки контролер тягне його куди треба.

Правильна схема: Root-кістка рухається вперед строго по осі Z на відстань одного кроку за півциклу. В кінці циклу Root повертається у вихідну точку — інакше анімація не зациклюється без телепортації. В Blender це налаштовується через NLA Editor: ключові кадри Root-кістки на початок і кінець циклу мають бути ідентичні за позицією X/Y, з потрібним зміщенням по Z.

В Unity: Animator → Apply Root Motion = true, в Import Settings анімаційного кліпу — Root Transform Position (XZ) = Based on Original. Швидкість руху в грі має збігатися зі швидкістю Root Motion — інакше ковзання знову. Для Blend Tree з переходом Walk→Run використовують два кліпи з різними Root Motion швидкостями, а Blend Tree інтерполює між ними за параметром Speed. Детальніше про Root Motion читайте в офіційній документації Unity.

Які технічні вимоги до циклу як до ігрового ассету?

Довжина циклу в кадрах впливає на плавність переходу. Walk cycle на 30 fps: стандарт — 30 кадрів (1 секунда), ліва нога починає крок на кадрі 0, права — на кадрі 15. Цикл на 24 кадри буде мерехтіти при переходах. На 60 кадрів — надлишковий для більшості проектів, але потрібен для мобільних ігор з низьким frame budget, де інтерполяція між кадрами анімації вимкнена. При налаштуванні Root Motion важливо враховувати анімаційний дельта-змін у часі та коректну інтерполяцію ключових кадрів.

Run cycle: 20–24 кадри на 30 fps. Більш агресивна фаза польоту (обидва контакти підняті), виражений нахил торсу вперед. Важливо: вертикальне зміщення Hip-кістки має відповідати швидкості. Якщо персонаж біжить зі швидкістю 6 м/с, а bounce голови мінімальний — виглядає як ковзання по льоду, а не біг.

Foot IK. Walk і run cycle в більшості проектів працюють спільно з Animation Rigging або з Foot IK з Humanoid Avatar. Для коректної роботи Foot IK у основи ноги (Toe-кістка) потрібна правильна вага в Left/Right Foot IK параметрі Avatar. Якщо Foot IK увімкнено в Animator → IK Pass, а аніматор не налаштував OnAnimatorIK у скрипті, кадри будуть ігнорувати контакт з підлогою — персонаж піде крізь пандуси. Згідно з Unity Manual, це одна з частих причин багів з анімацією. Використання Animation Rigging з Foot IK підвищує реалістичність контакту з поверхнею.

Чому State Machine не підходить для локомоції, і як Blend Tree вирішує проблему?

Для локомоції State Machine з прямими переходами Walk → Run — джерело постійних проблем. Перехід через Has Exit Time з фіксованим часом 0.25s виглядає нормально на рівній поверхні і смикається при різкій зміні швидкості гравця. Blend Tree вирішує це інтерполяцією за float параметром Speed. Blend Tree забезпечує на 30% більш плавні переходи, ніж State Machine.

Мінімальна схема Blend Tree для локомоції:

  • 0.0 — Idle
  • 1.5 — Walk (Root Motion швидкість ~1.5 м/с)
  • 5.0 — Run (Root Motion швидкість ~5.0 м/с)
  • 7.0 — Sprint (опціонально)

Compute Threshold → Compute from Root Motion Speed в Blend Tree автоматично виставляє пороги за швидкістю Root Motion кліпу. Після цього залишається тільки переконатися, що параметр Speed в Animator оновлюється через animator.SetFloat("Speed", currentSpeed) з dampTime 0.1–0.15 для згладжування.

Avatar Mask дозволяє застосувати walk/run тільки до нижньої частини тіла, залишивши верхню для анімації прицілювання або взаємодії. Mask створюється в Project → Create → Avatar Mask, відключаються верхні кінцівки і голова. В Animator Controller — шар поверх базового з заданим Mask і Additive або Override blending.

Поетапне налаштування Root Motion

  1. В Blender: виділіть кореневу кістку, задайте ключові кадри на початку і в кінці циклу з однаковою координатою X/Y і потрібним зміщенням по Z.
  2. Експортуйте FBX з налаштуванням Bake Animation і Key Reduce > 1.0.
  3. В Unity: в Import Settings кліпу встановіть Loop Time і Loop Pose.
  4. Налаштуйте Root Transform Position (XZ) = Based on Original.
  5. В Animator увімкніть Apply Root Motion.
  6. Створіть Blend Tree і встановіть Compute from Root Motion Speed.
  7. Оновлюйте параметр Speed в коді через animator.SetFloat("Speed", currentSpeed) з dampTime.

Терміни та вартість

Тип задачі Орієнтовний термін Вартість (USD)
Walk + Run cycle без Root Motion від 1 до 2 днів від $300
Walk + Run з Root Motion та налаштуванням в Unity від 2 до 3 днів від $400
Повний пакет локомоції (idle, walk, run, sprint, strafe) від 4 до 7 днів від $800
Доповнення існуючого пайплайну (інтеграція в Blend Tree) від 4 до 8 годин від $150

Стоимость одного walk/run cycle з Root Motion — від $400 для стандартного гуманоїда.

Аніматор працює в Maya або Blender, експорт в FBX з налаштуваннями під Unity. Фінальна інтеграція в Animator Controller з Blend Tree — частина задачі, якщо це прописано в ТЗ.

Вартість розраховується після уточнення кількості персонажів, вимог до Root Motion та платформи (мобайл/PC/консоль). Наша команда має 7+ років досвіду в ігровій анімації, реалізовано понад 30 проектів з локомоцією персонажів.

Пропонуємо налаштування анімації під ключ: від моделювання до інтеграції в Unity за 5–7 днів. Входить: Root Motion, Blend Tree, Foot IK, Avatar Mask. Пишіть у Telegram або на пошту для безкоштовної оцінки проекту. Зв'яжіться з нами, щоб обговорити деталі. Замовте налаштування анімації локомоції для вашого проекту.