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

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

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Створення циклів ходьби та бігу персонажів ігор
Середня
від 2 робочих днів до 1 тижня
Часті питання

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

Які етапи розробки гри?

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

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

Walk cycle — перша анімація, яку бачить гравець, та остання, яку хочеться переробляти за тиждень до релізу. Тим не менше переробляють. Причина майже завжди одна: цикл зроблений як завершений ролик, а не як ігровий асет, який буде працювати в Blend Tree, накладатися через Avatar Mask та переходити зі стану Idle в стан Run через Animator Controller.

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

Класична проблема: персонаж візуально ковзає по підлозі, хоча 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.

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

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

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

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

Blend Tree: чому один State Machine — неправильний вибір

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

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

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

Compute ThresholdCompute 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.

Терміни та що входить у роботу

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

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

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