Разработка скелетного рига для игровых персонажей

Наша компания по разработке видеоигр ведет независимые проекты, совместно с клиентом создает игры и оказывает дополнительные операционные услуги. Опыт нашей команды позволяет нам охватить все игровые платформы и разработать потрясающий продукт, соответствующий видению клиента и предпочтениям игроков.

От иммерсивных приложений до игровых миров и 3D-сцен

Наша выделенная команда для VR/AR/MR-разработки, Unity-продакшна и 3D-моделирования и анимации с собственными кейсами и презентациями.

Посетить персонализированный сайт
Показано 1 из 1Все 242 услуг
Разработка скелетного рига для игровых персонажей
Сложный
~5 дней
Часто задаваемые вопросы

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

Какие этапы разработки игры?

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1421
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    954
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    577
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    637

Разработка скелетного рига персонажей игр

Мы знаем, что риг для игры — это не тот же, что для кино. Здесь кости работают в реальном времени, укладываются в бюджет 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 без предупреждений.
  • Документация по ригу (список костей, веса, ограничения).
  • Поддержка после сдачи: исправление багов, адаптация под движок.

Финальный результат: персонаж, который работает в реальном времени без сюрпризов. Закажите разработку рига — свяжитесь с нами для консультации. Наш опыт и сертифицированные специалисты гарантируют качество. Получите консультацию по оптимизации скелета для вашего проекта.

Почему риггинг персонажей для игр часто ломает анимационный пайплайн?

Модель готова, текстуры на месте — но в Unity она стоит деревянной куклой. Кости выставлены произвольно и не маппятся в Humanoid Avatar. Программист подключает готовый Animator Controller из Asset Store — блендинг анимаций ломает позу, потому что root motion настроен неверно. Это типичная ситуация, когда риггинг персонажей для игр не проектировался под движок с самого начала. Ошибка на этапе риггинга влечёт часы переделок со стороны аниматора и программиста, а бюджет проекта увеличивается на 30–50%.

Риггинг — это не просто «добавить кости». Это проектирование системы управления, которая должна работать внутри конкретного движка с конкретными требованиями к формату данных. Мы гарантируем, что после нашей работы персонаж готов к анимации без переделок: все кости маппятся в Humanoid, веса распределены без артефактов, а Animator Controller спроектирован под конкретный геймплей. Наша команда занимается риггингом персонажей для игр более 7 лет и выполнила работы для 150+ персонажей в проектах разных жанров — от мобильных RPG до PC-экшенов. Закажите риггинг у нас — и получите скелет, готовый к анимации с первого импорта.

Какие требования к скелету для 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 с игровыми событиями.

Как мы работаем

  1. Аналитика — разбираем геймплей, определяем список анимаций, тип рига (Humanoid/Generic), требования к IK и слоям.
  2. Проектирование скелета — создаём иерархию костей в Maya/Blender с учётом Humanoid Avatar, добавляем twist-кости, corrective shapes.
  3. Скиннинг — ручная доводка весов в проблемных зонах, проверка через Unity Avatar Tester.
  4. Создание анимаций — локомоция, боевые, реакции, синематики. Настройка Animator Controller с Blend Tree и Avatar Mask.
  5. Тестирование и оптимизация — проверка в целевой сцене, профилирование draw calls, устранение stutter, настройка asset streaming.
  6. Деплой — передача проекта с документацией и поддержкой.

Что вы получаете

  • Скелетную модель с корректным Humanoid Avatar (или Generic) – файл FBX/glTF.
  • Набор анимационных клипов – FBX с AnimationClips.
  • Animator Controller с настроенными слоями, Blend Tree и транзишнами.
  • Документацию по структуре контроллера и использованию в коде.
  • Поддержку на этапе интеграции – отвечаем на вопросы, правим неточности.

Ориентировочный срок: от 5 до 15 рабочих дней в зависимости от сложности (количество анимаций, тип рига, наличие Spine 2D). Стоимость рассчитывается индивидуально после оценки объёма – свяжитесь с нами для консультации и примерной сметы. Закажите риггинг персонажей для игр — и ваши персонажи оживут без багов анимации.