Создание циклов движения (ходьба, бег, прыжок) для игр
Locomotion — это не просто «персонаж идёт». Это набор анимационных состояний, которые работают вместе через Blend Tree в Animator Controller, синхронизируются с root motion, обрабатывают foot contact через IK и переключаются без резких артефактов при изменении скорости. Плохо сделанный 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 — и если клип не зациклен идеально, будет видимый «подпрыг» в конце цикла.
Что входит в 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, приземление будет запаздывать или прерываться.
Foot IK и contact points
Без 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 или вручную в анимационном редакторе.
Процесс работы
Сначала — анализ референсов и согласование ключевых параметров: скорость ходьбы и бега (единицы в секунду), высота прыжка, стиль движения (тяжёлый солдат 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 недель |
Стоимость определяется после уточнения количества клипов, стиля персонажа и требований к интеграции.





