Создание циклов походки и бега персонажей игр

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

Наши компетенции

Другие услуги студии

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 или 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, где interpolation между кадрами анимации отключена.

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, это одна из частых причин багов с анимацией.

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

Для локомоции 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.

Сроки и что входит в работу

Тип задачи Ориентировочный срок
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/консоль).

Свяжитесь с нами, чтобы обсудить детали. Закажите настройку анимации локомоции для вашего проекта.