Аніматор відкриває файл, починає робити walk cycle — і на третій годині роботи виявляє, що root bone зміщений відносно центру мас, skin weights на коліні пофарбовані з артефактами, а IK chain для ніг посилається на кістки з неправильним іменуванням. Усе це вже зафіксовано в десятках ключів. Переробляти — дорого. У нашій практиці це стандартна ситуація, коли риг пішов в анімацію без перевірки. Перевірка ригу коштує від $200 до $800, але економить до $5000 на переробках — у 10 разів більше, ніж вартість аудиту.
Технічний валідаційний аудит ригу — це не «подивитися очима». Це конкретний чекліст, що покриває ієрархію скелета, bind pose, weight distribution, controller naming, space switching і сумісність із цільовим рушієм. Ми проводимо такий аудит уже 5+ років, і за цей час накопичили досвід на 80+ проєктах — від мобільних казуалок до PC-екшенів.
Що реально ламається без перевірки ригу
Найпоширеніша проблема — невідповідність bind pose та rest pose. У Maya або Blender риг виглядає коректно, але при експорті у FBX та імпорті в Unity компонент Animator отримує меш із уже застосованими трансформами, які зсувають вершини відносно bone origins. Це проявляється як «розлітаючі» частини меша при відтворенні анімації через Animator Controller. Фікс після початку анімаційного виробництва вимагає перескладання всього skin binding — втрата 2–3 днів роботи.
Другий клас проблем — naming conventions та ієрархія під конкретний рушій. Unity's Humanoid rig configuration в Mecanim дуже чутлива до іменування: якщо spine chain містить чотири кістки замість очікуваних трьох, або якщо UpperArm/LowerArm не збігаються з мапінгом Humanoid Definition, ретаргетинг анімацій зламається. Avatar Configuration покаже червоні маркери, але не скаже, що саме не так в ієрархії.
Окрема тема — контролери та допоміжні кістки, які не повинні потрапити в експорт. У Maya нерідко залишають locator-based control rig поверх deform skeleton, і якщо артист експортує сцену цілком замість вибраного deform skeleton, у FBX потрапляють сотні зайвих нод. Unity мовчки їх імпортує, Animator починає витрачати ресурси на оновлення transform hierarchy розміром у 300+ об'єктів замість 60.
Проблеми з stretch bones та non-uniform scaling — окрема розмова. Коли контролер використовує scale для ефекту розтягування кінцівок, це часто призводить до shear transformation, яку рушій або інтерпретує неправильно, або повністю ігнорує при імпорті. Animation Rigging package в Unity підтримує stretch через спеціальні constraints, а не через bone scale — і це потрібно прописати в техзавданні до початку робіт.
| Проблема |
Наслідок |
| Non-zero rotation в rest pose |
Розліт меша при анімації |
| Unweighted vertices |
Нерухомі вершини, діри |
| Перевищення ліміту skin influences |
Лаги на мобільних платформах |
| Зайві кістки-контролери в експорті |
Збільшення draw calls, плутанина |
| Неправильна ієрархія spine chain |
Збій Mecanim mapping |
Як проходить технічний аудит ригу? (покроково)
Аудит ригу розбитий на кілька рівнів, які перевіряються послідовно. Пропускати не можна — кожен рівень виявляє помилки, невидимі на попередньому.
-
Структурна перевірка скелета — підрахунок кісток, аналіз ієрархії, перевірка parent-child відносин. Для Humanoid ригу — звірка з Mecanim bone mapping таблицею. Для Generic ригу — перевірка коректності root motion bone та наявності єдиного root.
-
Bind pose та T-pose/A-pose — відновлення bind pose та візуальна перевірка, що всі суглоби знаходяться в нейтральному положенні без залишкових ротацій. Нульові значення rotation в joint transform — стандарт. Будь-які ненульові значення в bind pose → проблема при експорті.
-
Skin weights — аналіз vertex influence counts. Стандарт для мобільних платформ — не більше 2–4 influences на вершину. Для PC/console — до 8. Перевірка на unweighted vertices (вершини без influence = вони не рухаються), на weight normalization (сума influences = 1.0). У Maya використовується Component Editor, у Blender — Weight Paint mode з Vertex Group Weights display.
-
Controller rig vs deform skeleton — перевірка розділення контрольного ригу та деформуючого скелета. Контролери не повинні потрапляти в експорт. Тест: експорт → імпорт в Unity → підрахунок кісток у Hierarchy. Якщо кісток більше, ніж у deform skeleton — є зайві.
-
Naming conventions та символи — пробіли, кирилиця, спецсимволи в іменах кісток — усе це джерела проблем при експорті FBX та імпорті. Перевірка регулярним виразом на допустимі символи.
Після валідації видається звіт із конкретним списком issue за категоріями: критичні (блокують анімацію), значні (погіршують якість), рекомендації (best practice). Аніматор отримує чистий риг і техдокументацію, яка описує, що саме було виправлено.
Що входить у роботу?
- Повна діагностика скелета, skin weights та контролерів
- Виправлення знайдених помилок (за погодженням)
- Налаштування Humanoid Avatar Definition під Mecanim
- Оптимізація кількості skin influences під цільову платформу
- Чищення експортних файлів від зайвих нод
- Фінальний тест імпорту в рушій
- Письмовий звіт із описом кожного фіксу
Замовте аудит ригу до старту анімації — зекономте тижні переробок.
Кейс із нашої практики: риг персонажа для мобільної RPG
Наш клієнт, студія мобільних ігор, звернувся з проєктом — персонаж із готовим ригом, близько 80 кісток, rig зроблений в Blender, планувався імпорт в Unity LTS (актуальна версія) з Humanoid Avatar. Візуально риг виглядав нормально.
Після аудиту виявили: spine chain із 5 кісток замість 3 (Mecanim не може автоматично замапити), non-zero rotation в rest pose у плечових кістках (експортний rotation offset ~15 градусів), два auxiliary bones для volume preservation (не потрібні для мобільного, додають draw cost), і — найнеприємніше — skin на кисті руки з 6 influences при вимозі mobile skinning 2-influence max.
Після фіксів, повторного skin painting на руці з обмеженням до 2 influences та перескладання spine chain аватар сконфігурувався коректно. На підсумковому тесті ретаргетингу Motion Capture анімації з Mixamo спрацював без артефактів.
Без цієї перевірки аніматор втратив би кілька днів, переробляючи bind weights після того, як IK контролери вже зламалися б через rotation offset.
Чому важлива перевірка ригу до анімації?
Будь-яка помилка, знайдена на етапі ригу, обходиться в 10–50 разів дешевше, ніж та сама помилка, виявлена після початку анімаційного виробництва. Ми гарантуємо, що після нашого аудиту аніматор отримає риг, готовий до роботи без сюрпризів. Сертифіковані спеціалісти з досвідом роботи в Unity та Unreal Engine проводять перевірку за єдиним стандартом. Зв'яжіться з нами для отримання консультації.
Орієнтири за термінами
| Масштаб проєкту |
Термін |
| Один персонаж, generic rig, до 80 кісток |
4–8 годин |
| Один персонаж, humanoid rig з контрольним ригом |
1–2 дні |
| Пакет із 5–10 персонажів (загальний стандарт ригу) |
3–5 днів |
| Повний технічний аудит + документація + фікс |
від 1 тижня |
Вартість розраховується індивідуально після отримання файлів ригу та опису цільового рушія і платформи. В середньому аудит одного персонажа коштує $200–$800, при цьому клієнти економлять до $5000 на доробках — це в 10 разів більше інвестицій. Звертаючись до нас, ви отримуєте економію часу та бюджету — середнє скорочення доробок на 40%.
Що потрібно підготувати для аудиту
Для повноцінного аналізу необхідні: вихідний файл ригу (.ma, .blend, .max, .fbx); опис цільового рушія та версії (Unity, Unreal тощо); тип ригу: Humanoid, Generic, Custom з описом; цільова платформа (mobile, PC, console — впливає на ліміти skin influences); наявні анімації, які потрібно зберегти; чи планується ретаргетинг (Mixamo, Mocap library, Mecanim). Чим точніше ТЗ, тим конкретніше і швидше пройде аудит. Риги, зроблені без документації та під невідомий рушій, потребують вдвічі більше часу на зворотну розробку вимог.
Замовте аудит ригу до старту анімації — зекономте тижні переробок. Щоб отримати консультацію, просто напишіть нам. Ми оцінимо ваш проєкт за один робочий день.
Чому ріггінг персонажів для ігор часто ламає анімаційний пайплайн?
Модель готова, текстури на місці — але в Unity вона стоїть дерев'яною лялькою. Кістки виставлені довільно і не мапляться в Humanoid Avatar. Програміст підключає готовий Animator Controller з Asset Store — блендинг анімацій ламає позу, тому що root motion налаштовано невірно. Це типова ситуація, коли ріггінг персонажів для ігор не проєктувався під рушій з самого початку. Помилка на етапі ріггінгу тягне години переробок з боку аніматора та програміста, а бюджет проєкту збільшується на 30–50%.
Ріггінг — це не просто «додати кістки». Це проєктування системи управління, яка повинна працювати всередині конкретного рушія з конкретними вимогами до формату даних. Ми гарантуємо, що після нашої роботи персонаж готовий до анімації без переробок: всі кістки мапляться в Humanoid, ваги розподілені без артефактів, а Animator Controller спроєктований під конкретний геймплей. Наша команда займається ріггінгом персонажів для ігор понад 7 років і виконала роботи для 150+ персонажів у проєктах різних жанрів — від мобільних RPG до PC-екшенів. Ми на ринку геймдев-аутсорсингу 5+ років. Замовте ріггінг у нас — і отримайте скелет, готовий до анімації з першого імпорту.
Які вимоги до скелету для Humanoid Avatar?
Unity працює з двома типами ригу: Generic та Humanoid. Вибір впливає на весь анімаційний пайплайн.
Generic rig — довільна ієрархія кісток. Анімації прив'язані до конкретної моделі, ретаргетинг неможливий. Підходить для неперсонажної анімації (техніка, двері, істоти з нестандартною анатомією).
Humanoid rig — Unity маппить кістки на стандартну схему з 17 обов'язкових кісток (хребет, голова, руки, ноги) та до 32 опціональних. Після цього будь-яка Humanoid-анімація застосовна до будь-якого Humanoid-персонажа. Це основа для ретаргетингу та Animator Controller з Blend Tree. Humanoid-риг прискорює створення анімацій у 2–3 рази порівняно з Generic, оскільки готові анімації з Asset Store працюють без адаптації.
Помилки, які ламають Avatar mapping:
- Неправильна орієнтація кісток. Unity очікує, що вісь X направлена по кістці в бік дочірньої кістки. Якщо рука дивиться по Z або -Y — Avatar згенерується зі спотвореною T-pose.
- Зайві проміжні кістки в ланцюжку хребта. Якщо між Spine та Chest стоїть проміжна кістка без маппінгу — вона втрачається при ретаргетингу, анімація хребта виглядає дерев'яно.
- Roll-кістки (twist bones) — кістки для розподілу скручування передпліччя та стегна. У Humanoid їх потрібно додавати як додаткові (не обов'язкові) кістки та коректно налаштовувати ваги. Без twist-кісток передпліччя при повороті кисті складається некрасиво.
T-pose vs A-pose
Unity рекомендує T-pose як біндингову. A-pose (руки опущені під ~45°) технічно працює, але ретаргетовані анімації будуть давати невеликі помилки в плечовому суглобі — до 5° відхилення. Для персонажів з бронею або широкими плечима A-pose іноді кращий: менше розтягнення мешу при ретаргетингу. Рішення приймається на етапі ріггінгу, переробити потім дорого.
Avatar Mask
Avatar Mask — інструмент для часткового застосування анімацій. Наприклад: нижня частина тіла грає анімацію бігу, верхня — анімацію стрільби. Без Avatar Mask ці стани конфліктують. Правильна структура Animator Controller для шутера:
Base Layer (Full Body weight: 1.0)
└── Locomotion Blend Tree (idle / walk / run / sprint)
Upper Body Layer (Avatar Mask: верхня частина, weight: 1.0)
├── Idle_upper
├── Shoot
├── Reload
└── Aim_offset (2D Blend Tree по pitch/yaw)
Additive Layer (Avatar Mask: spine, weight: по параметру)
└── Lean_left / Lean_right
Приклад налаштування Avatar Mask: в інспекторі Unity виберіть Animator Controller, відкрийте Layer -> Add Layer -> виберіть Avatar Mask. Для Upper Body створіть маску, що дозволяє кістки плечового поясу, рук та голови. Для Additive — лише хребет. Зніміть галочки з ніг.
Additive layer для нахилу — типова оптимізація: замість 8 окремих анімацій (run_left, run_right, walk_left...) один additive lean застосовується поверх будь-якого стану. Економія часу на створення кліпів — до 40%. Для складних проєктів це знижує бюджет анімацій на 15–20%.
Як налаштувати Blend Tree для локомоції?
Blend Tree — система змішування анімацій за одним або двома параметрами. Для локомоції персонажа стандарт — 2D Freeform Directional з параметрами velocityX та velocityZ.
Мінімальний набір кліпів для базової локомоції:
| Анімація |
velocityX |
velocityZ |
| Idle |
0 |
0 |
| Walk Forward |
0 |
0.5 |
| Run Forward |
0 |
1.0 |
| Walk Backward |
0 |
-0.5 |
| Run Backward |
0 |
-1.0 |
| Strafe Left |
-0.5 |
0 |
| Strafe Right |
0.5 |
0 |
Freeform Directional інтерполює між кліпами за кутом та магнітудою вектора швидкості. При velocity (0.35, 0.35) змішуються Walk Forward та Strafe Right з вагами, обчисленими за відстанню до кожної точки в 2D-просторі.
Root Motion vs. In-Place анімації
Root Motion — рух персонажа керується зміщенням рут-кістки в анімаційному кліпі. Аніматор «вшиває» швидкість руху в анімацію. Unity читає це зміщення і рухає Transform персонажа. Плюс: анімація та рух завжди синхронізовані (кроки збігаються з переміщенням). Мінус: складніше керувати швидкістю через код, вимагає коректного налаштування в Animator (Apply Root Motion: true).
In-Place — кістка тазу залишається на місці, переміщення керується кодом (CharacterController або Rigidbody). Простіше інтегрувати у фізичну систему, але ризик розсинхронізації кроків зі швидкістю руху (slipping feet).
In-Place анімації з Foot IK через Animation Rigging пакет (Unity) краще підходять для ігор зі складним ландшафтом, оскільки забезпечують точне приземлення стоп на нерівній поверхні, економлячи 15–20% часу на коригування анімацій вручну.
Чому виникають проблеми зі скінінгом і як їх вирішити?
Скінінг (прив'язка мешу до кісток через ваги) — найбільш трудомісткий етап ріггінгу органічних персонажів.
Інструменти: Maya (Weight Paint tool + Component Editor), Blender (Weight Paint mode + Vertex Group Editor), 3ds Max (Skin modifier + Weight Table).
Проблемні зони та рішення:
| Проблема |
Причина |
Рішення |
Економія бюджету |
| «Цукерковий» артефакт у пахвах |
Стандартне скінінг-рішення |
Додавання corrective shape keys (blend shapes), що спрацьовують при куті плеча |
Зниження артефактів на 90% |
| Скручування колін/ліктів |
Відсутність twist-кісток |
Twist-кістки розподіляють деформацію на три суглоби (shoulder twist, elbow, forearm twist) |
Усунення «скручування циліндра» |
| Спотворення при ретаргетингу |
Неправильна орієнтація кісток у T-pose |
Перевірка через Unity Avatar Tester |
Економія 60% часу на доробки анімацій |
Правильний скінінг з першого разу економить до 60% бюджету на доробки анімації. Wikipedia: Rigging — і ми додаємо до цього математику ваг та blendshapes, щоб рухи виглядали природно. Щоб уникнути подібних проблем на вашому проєкті, отримайте консультацію з ріггінгу прямо зараз.
Бойові анімації та стани
Бойова анімаційна система — це не просто набір кліпів. Це граф станів з транзішн-умовами та interrupt priorities.
Типова помилка: транзішн з Idle → Attack з Has Exit Time: true та Exit Time: 0.9. Це означає, що атака почнеться тільки коли idle відіграє 90% (0.5 секунди). Гравець натиснув кнопку атаки і чекає півсекунди. Рішення: Has Exit Time: false, транзішн по trigger, Interruption Source: Current State з пріоритетом.
Структура бойових станів:
Any State → Hit Reaction (trigger: onHit, interrupts current)
Any State → Death (trigger: onDeath, interrupts all)
Attack Layer:
Idle → Attack1 (trigger: attack)
Attack1 → Attack2 (trigger: attack, exit time: 0.6)
Attack2 → Attack3 (trigger: attack, exit time: 0.6)
Attack1/2/3 → Idle (no trigger, exit time: 1.0)
Combo-window відкривається на ~40% довжини анімації і закривається на ~80%. Це створює відчуття responsiveness без руйнування анімації.
Коли варто використовувати Spine 2D?
Spine — стандарт для 2D-анімації в mobile RPG, idle games, action-platformers. Меш персонажа розбивається на частини, прив'язані до 2D-скелету. Анімація — трансформації кісток, mesh deformation через weighted vertices.
Переваги перед frame-by-frame:
- Файл анімації важить кілобайти замість мегабайт (спрайтлісти). Типова економія — 80–90% місця в збірці.
- Ретаргетинг: одні анімації атаки працюють на різних персонажах з ідентичною скелетною структурою.
- Змішування анімацій та IK — ті ж концепції, що в 3D.
Інтеграція в Unity: офіційний Spine Runtime для Unity. Компонент SkeletonAnimation керує відтворенням, SkeletonMecanim дозволяє використовувати Animator Controller поверх Spine-скелету. Для програмної анімації — пряме управління через API: skeletonAnimation.AnimationState.SetAnimation(0, "walk", true).
DOTween часто використовується в зв'язці з Spine для управління не-скелетними анімаціями UI-елементів, прив'язаних до персонажа (health bar, damage numbers) — не для самого скелету, а для синхронізації UI з ігровими подіями.
Як ми працюємо
- Аналітика — розбираємо геймплей, визначаємо список анімацій, тип ригу (Humanoid/Generic), вимоги до IK та шарів.
- Проєктування скелету — створюємо ієрархію кісток у Maya/Blender з урахуванням Humanoid Avatar, додаємо twist-кістки, corrective shapes.
- Скінінг — ручне доведення ваг у проблемних зонах, перевірка через Unity Avatar Tester.
- Створення анімацій — локомоція, бойові, реакції, сінематики. Налаштування Animator Controller з Blend Tree та Avatar Mask.
- Тестування та оптимізація — перевірка в цільовій сцені, профілювання draw calls, усунення stutter, налаштування asset streaming.
- Деплой — передача проєкту з документацією та підтримкою.
Що входить у роботу
- Скелетна модель з коректним Humanoid Avatar (або Generic) – файл FBX/glTF.
- Набір анімаційних кліпів – FBX з AnimationClips.
- Animator Controller з налаштованими шарами, Blend Tree та транзішнами.
- Документація за структурою контролера та використанням у коді.
- Доступи до репозиторію проєкту (Git), консультації по інтеграції — відповідаємо на питання, виправляємо неточності.
- Гарантія на коректну роботу анімацій протягом 30 днів після передачі — якщо виникають артефакти, правимо безкоштовно.
Орієнтовний строк: від 5 до 15 робочих днів залежно від складності (кількість анімацій, тип ригу, наявність Spine 2D). Вартість розраховується індивідуально після оцінки обсягу. Зв'яжіться з нами для консультації та приблизного кошторису. Замовте ріггінг персонажів для ігор — і ваші персонажі оживуть без багів анімації.