Разработка скелетного рига персонажей игр
Мы знаем, что риг для игры — это не тот же, что для кино. Здесь кости работают в реальном времени, укладываются в бюджет draw calls и не ломаются при импорте через FBX. Художники из кино-пайплайна часто узнают это, когда переделывать поздно. Скажем прямо: типичный киношный скелет на 300+ костей, nCloth и деформеры — гарантированный stutter на мобильной платформе. Наш опыт (более 50 проектов за 9 лет) показывает, что сбалансированный скелет экономит до 30% времени на анимации. Согласно Unity Manual, Humanoid Avatar поддерживает обязательный набор из 15 костей (Body, Head, руки, ноги) и опциональные пальцы.
Как отличить игровой риг от киношного
В кино можно 300+ костей, деформеры и nCloth. В реальном времени это нереалистично. Unity Humanoid Avatar поддерживает обязательный набор из 15 костей (Body, Head, руки, ноги) и опциональные пальцы. Generic риг — без ограничений, но без Humanoid-функций.
Количество костей на платформу:
- Мобильные (GPU skinning): рекомендуем до 75 костей, hard limit зависит от GPU.
- PC/Console (Compute skinning): 100–150 реалистично без потерь.
- VR: из-за Frame Budget не больше 60–80.
Каждая лишняя кость — это кость, которую аниматор вынужден учитывать или исключать через Avatar Mask. Минимальная достаточность — принцип, который экономит деньги на всех этапах.
Сколько костей нужно вашему персонажу?
Оптимальное число зависит от задач. Для NPC — 15–25 костей достаточно. Для главного героя с проработанными пальцами и мимикой — до 100. Мы тестируем на целевой платформе, чтобы избежать просадок FPS. Например, на прошлом проекте сократили число костей с 120 до 70 — stutter исчез, а качество деформации не пострадало. Сравните: Humanoid Avatar в Unity обрабатывает до 100 костей быстрее, чем Generic с тем же числом, благодаря оптимизированному блендингу.
Иерархия и соглашения об именовании
Корневая кость — Root (или Hips в Mixamo). Всё остальное — дочерние. Root стоит на полу под персонажем, не в центре масс. Это критично для Root Motion: Unity считывает перемещение из Root, и если он на уровне таза, персонаж «летит».
Стандарт именования без проблем:
-
Hips,Spine,Spine1,Spine2,Chest,Neck,Head -
LeftShoulder,LeftUpperArm,LeftLowerArm,LeftHand -
LeftUpperLeg,LeftLowerLeg,LeftFoot,LeftToe
Это Mixamo-совместимые имена, которые Unity маппит автоматически. Любое отклонение (L_Thigh, Bip001) требует ручного маппинга при каждом реимпорте.
Почему важна правильная иерархия?
Неправильная иерархия — причина 90% проблем с IK и ретаргетингом. Например, если LeftUpperArm не является дочерним LeftShoulder, Unity не сможет корректно рассчитать поворот плеча. Это приводит к «вывихам» в анимации.
Ориентация осей и Bind Pose
Ориентация осей в Blender (Y вдоль кости) и Maya (X вдоль) — разная. Это учитываем при настройке IK-решателей. Проверка: Edit Mode, Display → Axes. Все оси должны смотреть от родителя к ребёнку. Если хаос — Recalculate Roll через Ctrl+N с опцией Global Positive X.
T-Pose для Bind Pose — стандарт для Humanoid Avatar. A-Pose технически допустима, но при авто-маппинге Unity может ошибиться. Безопаснее: экспорт в T-Pose, затем дополнительный клип с A-Pose для скиннинга.
Как избежать проблем с деформацией?
Используйте Twist-кости. Без них вращение предплечья при пронации/супинации создаёт «скрученную трубку». Unity Humanoid поддерживает Upper Arm Twist и Lower Arm Twist как опциональные. Добавляются между Shoulder → Forearm и Forearm → Hand.
Вес для Twist-кости: 0.5 на среднем участке, 0 у концов. В Maya — Advanced Twist Controls в IK Handle. В Blender — Bone Constraint → Copy Rotation с Factor 0.5.
Сравнение Humanoid и Generic ригов
| Параметр | Humanoid Avatar | Generic |
|---|---|---|
| Поддержка IK | Автоматическая | Ручная настройка |
| Ретаргетинг анимаций | Встроенный | Требует конверсии |
| Макс. число костей | Ограничено (практически до 200) | Не ограничено |
| Производительность | Оптимизирован под Unity | Зависит от реализации |
Процесс разработки рига
Аудит меша и ТЗ → Сборка иерархии → Ориентация осей → Bind Pose проверка → IK setup → Тест-анимация → Экспорт → Проверка в Unity Avatar Configuration.
| Тип персонажа | Ориентировочный срок |
|---|---|
| Humanoid без пальцев (NPC, simple character) | от 3 до 6 часов |
| Полный humanoid с пальцами + Twist bones | от 1 до 1.5 дней |
| Квадрупед или нестандартное существо | от 2 до 4 дней |
| Риг с динамическими элементами (хвост, плащ) | от 3 до 5 дней |
Что входит в работу
- Готовый FBX с корректным скелетом (иерархия, оси, именование).
- Настройка IK и Twist-костей.
- Проверка в Unity: Avatar Configuration без предупреждений.
- Документация по ригу (список костей, веса, ограничения).
- Поддержка после сдачи: исправление багов, адаптация под движок.
Финальный результат: персонаж, который работает в реальном времени без сюрпризов. Закажите разработку рига — свяжитесь с нами для консультации. Наш опыт и сертифицированные специалисты гарантируют качество. Получите консультацию по оптимизации скелета для вашего проекта.






