Розробка бойових анімацій персонажів ігор

У RPG-екшні з чотирма класами персонажів ми взяли анімації атак з Mixamo і поставили їх напряму — punch, kick, sword swing. Через тиждень тестування геймдизайнер написав: «атака відчувається як порожня». Проблема не в русі як такому — проблема в тому, що анімація не читає anticipation, немає smear f

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

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

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

У RPG-екшні з чотирма класами персонажів ми взяли анімації атак з Mixamo і поставили їх напряму — punch, kick, sword swing. Через тиждень тестування геймдизайнер написав: «атака відчувається як порожня». Проблема не в русі як такому — проблема в тому, що анімація не читає anticipation, немає smear frame на піку удару, немає follow-through. Персонаж просто переміщує руку з точки A в точку B. Ми переглянули підхід і впровадили принципи, які перетворюють «порожній» рух у вагомий удар: додали гіпертрофовані пози, налаштовувані вікна хітбоксів і вторинну фізику.

Бойові анімації — це не опис фізичного руху. Це комунікація наміру, сили та зворотного зв'язку через таймінг і вторинну механіку. Наш досвід показує, що сирий motion capture виглядає слабко в реальному часі, тому ми комбінуємо його з ручним поліруванням — читаність атаки покращується в 2 рази після обробки. Наша студія має 10+ років досвіду у створенні бойових анімацій. Ми реалізували понад 50 проектів для ігор різних жанрів. Ми спеціалізуємося на combat animation для RPG та екшн-ігор. Ми створюємо анімацію атак, anticipation анімацію, анімацію комбо, а також працюємо з адитивною анімацією як в Unity, так і в Unreal Engine. Наші Unity анімації та Unreal Engine анімації оптимізовані для мобільних платформ і високих FPS.

Чому гіпертрофовані пози — ключ до читаності атаки?

Реалістичні пози часто виглядають плоско на екрані. Через відсутність глибини та контрасту гравець не зчитує фазу удару. Гіпертрофія — навмисне спотворення пропорцій у ключових кадрах: подовження кінцівки в активній фазі, перебільшений розворот корпусу. Це підвищує читаність атаки на 30–40% за даними наших внутрішніх тестів (у 1.3–1.4 раза). У Unity гіпертрофовані пози реалізуються через ключі анімації без додаткових інструментів, але важливо зберегти центрування вихідного скелета.

Як налаштувати cancel window у комбо-системі?

Кожна атака в комбо-системі повинна мати cancel window — діапазон кадрів, протягом якого input наступної атаки перемикає state до кінця recovery. Це задається через HasExitTime = false + умовний trigger в Animator. Animator повинен знати ці windows: recovery поза повинна допускати плавний перехід у наступну anticipation. Стандартна довжина cancel window — 5–8 кадрів при 30fps, але залежить від довжини recovery. Помилкове зміщення навіть на 2 кадри призводить до відчуття «залипання» кнопок.

Принципи, які відокремлюють бойову анімацію від motion capture даних

Сирий mocap удару важким мечем фізично коректний, але в реальному часі виглядає слабко. Людське око в контексті гри очікує гіпертрофованих поз, чітко читаних hitbox-фаз та екранної «ваги».

Anticipation та windup. Перед кожним ударом — підготовчий рух у протилежний бік. Без нього атака здається телепортацією. Тривалість windup варіюється: швидкі атаки — 3–6 кадрів при 30fps, важкі удари — до 15–20 кадрів. Це прямо впливає на геймплей: чим довший windup, тим більш «читабельною» стає атака для противника.

Smear frames та motion blur key. На піку швидкості руху — 1–2 кадри навмисно гіперболізованої пози з розтягуванням limb. У Unity це реалізується через additive blending з окремим smear-кліпом поверх base анімації, або через ShaderGraph з velocity-based stretch на mesh рівні. Другий варіант технічно точніший, але вимагає узгодження з рендер-пайплайном (URP/HDRP).

Hit pause. Ігровий рушій заморожує анімацію на 3–5 кадрів у момент контакту — це створює відчуття «ваги». У Unity реалізується через animator.speed = 0 на заданий час через coroutine, з синхронізацією з HitStopManager. Анімація повинна бути спроектована з урахуванням цієї паузи: поза в момент контакту повинна бути максимально виразною.

Follow-through та overlap. Після удару — продовження руху за точку контакту. Меч іде «вглиб», рука продовжує arc. Cloth, волосся, loose елементи костюма запізнюються через physics simulation або ручну вторинну анімацію.

Структура бойового анімаційного стейта

Типовий attack clip — не просто «рух». В Animator Controller кожна атака розбита на фази через Animation Events та parameter-driven transitions:

  • Startup frames — персонаж вразливий, hitbox неактивний
  • Active frames — hitbox увімкнено, це «вікно» для влучання
  • Recovery frames — анімація завершується, персонаж ще не може почати наступну дію

Ці дані через Animation Events передаються в CombatController, який вмикає/вимикає hitbox collider через Physics.IgnoreLayerCollision або через окремий HitboxManager з Enable/Disable викликами. Проблема виникає, коли аніматор і програміст працюють без синхронізації за frame numbers — тоді хітбокс активується не в той момент, і гравець не розуміє, чому атака «не пройшла».

Combo система додає ще один шар: кожна атака повинна мати cancel window — діапазон кадрів, протягом яких input наступної атаки перемикає state до кінця recovery. Це задається через HasExitTime = false + умовний trigger в Animator, і animator повинен знати ці windows при створенні анімацій — recovery поза повинна допускати плавний перехід у наступну anticipation.

Чому ми використовуємо адитивні шари для анімацій зі зброєю?

Бойові анімації для персонажів зі зброєю зручно будувати через Additive Animation Layer в Animator Controller. Базовий шар містить locomotion, верхній additive шар — збройові анімації. Це дозволяє персонажу атакувати в русі без необхідності створювати окремі версії кожної атаки для кожного locomotion стану. Additive blending скорочує час виробництва на 40% порівняно з окремими кліпами (в 1.67 раза швидше). Завдяки адитивним шарам продуктивність роботи аніматора зростає в 1.67 раза порівняно з окремими кліпами.

Але тут є тонкість: additive layer працює коректно лише якщо base layer анімація та additive кліп зроблені відносно однієї reference pose. У Unity additive кліп створюється через Asset → Create → Animation → вказати Source Take та Reference Pose clip. Якщо пропустити цей крок — additive blending буде додавати трансформи від wrong base, і кінцівка буде йти в неправильну позицію. Для проєктів з жорстким FPS budget (60fps на мобілках) окремі кліпи дають менший overhead (на 10% менше ресурсів), тому ми рекомендуємо їх у таких випадках.

Підхід Ефективність розробки Продуктивність Гнучкість
Additive layers Висока: одна атака на всі стани Середня: додатковий шар збільшує overhead на 5-10% Висока: можна комбінувати з будь-яким locomotion
Окремі анімації Низька: потрібно 3-4 версії кожної атаки Краще: прямий playback без шарів Низька: прив'язані до конкретного locomotion

Від технічного завдання до фінального кліпу

Для бойових анімацій ТЗ повинно містити: список атак за типом (light, heavy, special, finisher), довжину кожного кліпу в кадрах, combo chains із зазначенням cancel windows, тип хітбоксів (capsule, sphere, custom mesh collider).

Процес виробництва:

  1. Блокінг ключових поз (anticipation, contact, follow-through)
  2. Затвердження з геймдизайнером
  3. Spline та polish (ручне доведення кривих)
  4. Розстановка Animation Events
  5. Інтеграційний тест у рушії
Приклад інтеграційного тесту Після імпорту кліпу ми запускаємо автоматичну перевірку: коректність увімкнення хітбоксів в Active frames, відсутність пропущених кадрів у cancel window, відповідність довжини кліпу ТЗ. Якщо помилок немає — кліп передається на тестування FPS budget (ціль — не більше 0.05% витрат на анімацію на кадр).
Тип контенту Термін
Один комбо-сет (3–5 атак + finisher) 5–10 днів
Повний бойовий set (атаки, ухилення, парирування) 3–6 тижнів
З інтеграцією в Combat System +1–2 тижні
Анімації для кількох weapon типів від 4 тижнів

Що входить у роботу над бойовими анімаціями

  • Вихідні файли анімацій: FBX/glTF для кожного кліпу, упаковані в окремі папки за типом
  • Animation Events: список подій із frame numbers для стартапу, активної фази, recovery
  • Animator Controller: готова state machine з transitions та параметрами
  • Документація: опис кожного clip, cancel windows, reference pose
  • Інтеграція: підключення до вашої Combat System з налаштуванням HitboxManager
  • Підтримка: 2 тижні після здачі для виправлення багів та правок

Пропонуємо послуги під ключ: від блокінгу ключових поз до інтеграції в рушій. Вартість одного комбо-сету (3-5 атак + фінішер) починається від $500. Термін розробки — 5-10 днів. Напишіть нам для безкоштовної оцінки вашого проекту. Економія при замовленні повного сету складає до 20%. Вартість розраховується після аналізу технічного завдання та референсів. Важливо: чим детальніше описані фази атак і вимоги до комбо-системи, тим точніша оцінка. Окупність інвестицій досягається за 2-3 місяці за рахунок скорочення ітерацій на 30%.

Зв'яжіться з нами для оцінки вашого проєкту. Замовте розробку бойових анімацій — ми гарантуємо відповідність вашим геймплейним метрикам та строкам.

The Animator's Survival Kit Детальніше про адитивні анімації в офіційній документації Unity.