Риггинг скелетной структуры персонажей для игр под Unity и Unreal

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

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

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

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

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

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

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

  • 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
    575
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    637

Риггинг скелетной структуры персонажей игр

Мы знаем, как больно, когда после двадцати записанных анимаций вдруг выясняется, что ноги при переходе между состояниями ведут себя неожиданно. Скелет персонажа — не просто набор костей для анимации, а архитектурное решение, от которого напрямую зависит бюджет каждой анимации и время аниматора. Неправильно настроенный риг вылезает не сразу, а на этапе, когда правка обходится дороже, чем сделать с нуля.

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

Какой тип Avatar выбрать: Humanoid или Generic?

В Unity выбор определяется не предпочтениями, а требованиями пайплайна. Humanoid открывает доступ к Avatar Mask, Animator Controller с ретаргетингом и Animation Rigging пакету. Цена — принудительная привязка к 15 обязательным костям, ограничения на вращения, а также проблемы с нестандартными пропорциями (четырёхрукие персонажи, существа с хвостом как частью тела).

Generic риг в этих случаях гибче: нет требований к иерархии, произвольная топология скелета, можно анимировать любую кость напрямую. Но теряется ретаргетинг. Для проекта с 50+ уникальными существами потеря ретаргетинга съедает до 40% времени аниматора — сравнение в пользу Humanoid для гуманоидов.

Сводная таблица сравнения Humanoid и Generic
Параметр Humanoid Generic
Количество обязательных костей 15 0
Ретаргетинг анимаций Да Нет
Поддержка Animation Rigging Да Да (ограниченная)
Гибкость для нестандартных форм Низкая Высокая
Производительность на мобильных Хорошая (оптимизация) Зависит от реализации

На практике: humanoid для основных игровых персонажей (игрок, НПС-гуманоиды), generic для монстров, транспорта, механизмов.

Что закладывается в скелет до первой анимации

Количество костей — не тот параметр, который стоит максимизировать. Мобильный тайтл с GPU skinning держит 75 костей на персонажа без просадок. На PC с compute skinning — больше. Но каждая лишняя кость в хвосте или плаще — это кость, которую аниматор обязан учитывать при создании каждой анимации. Либо Physics Bone в Unity (через Animation Rigging + Bone Renderer), либо вторичная динамика через Jiggle — это отдельные системы поверх основного рига.

Ориентир для humanoid-персонажа среднего качества: spine 3–5 костей, шея 1–2, пальцы по 3 фаланги если нужна анимация захвата, иначе можно обойтись одной. Пальцы ног — только если есть анимация боса или ходьба по неровной поверхности с IK.

Имена костей — стандарт с первого дня. Unity Humanoid автоматически маппит кости по именам. Несоответствие именования (Bip001_L_Thigh вместо LeftUpLeg) ломает авто-маппинг и каждый раз требует ручной правки в Avatar Configuration. Если в проекте используется Mixamo, его именование берут за основу как де-факто стандарт. Изучить стандарт можно в документации Unity Humanoid.

Почему ориентация осей костей критична для IK?

Самая неочевидная часть для начинающих: ориентация осей костей в bind pose. В Blender кость направлена по Y-оси локального пространства. В Maya — X-ось. В Unity runtime оси читаются иначе. Ошибка в ориентации выявляется при первой попытке поставить IK-цель: рука тянется не туда, или колено сгибается в обратную сторону.

Правило: все кости конечностей ориентируются так, чтобы основная ось (обычно X в Maya, Y в Blender) смотрела вдоль кости от корня к кончику. Ось изгиба (pole axis) перпендикулярна плоскости конечности. Если pole axis задана неправильно, IK-решатель выбирает произвольное направление изгиба колена — и это невозможно исправить без переориентации скелета.

T-Pose vs A-Pose для bind pose: T-Pose даёт чистый маппинг в Unity Humanoid Avatar. A-Pose естественнее для скиннинга — меньше растяжения весов в области подмышки. Компромисс: T-Pose для автоматического маппинга, потом Reset Pose на A-Pose через Avatar Configuration.

Что входит в работу по риггингу

  • Настройка скелета с корректными именами и ориентацией осей.
  • Исходный файл проекта (Blender, Maya — по согласованию).
  • Тестовая анимация walk cycle для проверки деформаций.
  • FBX-экспорт с конфигурацией под Unity (Scale Factor, Smoothing Groups, Tangents).
  • Настроенный Avatar Configuration в Unity (Mapping, Muscle Setup).
  • Документация по структуре костей и ограничениям.
  • Консультация при интеграции в готовый пайплайн.

Процесс работы

Начинаем с технического задания и референсов. Нужно понять тип аватара, платформу, количество персонажей, наличие ретаргетинга и требования к динамическим элементам.

Масштаб задачи Ориентировочный срок
Базовый humanoid риг без пальцев от 4 до 8 часов
Полный humanoid с пальцами и IK-setup от 1 до 2 дней
Нестандартный персонаж (квадрупед, существо) от 2 до 4 дней
Риг с вторичной динамикой (плащ, хвост) от 3 до 5 дней

После сборки скелета — тест-анимация: простой walk cycle руками в Blender или Maya, чтобы проверить деформации до скиннинга. Экспорт в FBX с настройками под Unity: Smoothing Groups, Tangents, Scale Factor 0.01 если работаем в сантиметрах.

Финальная проверка — импорт в Unity, Avatar Configuration, тест с любым Humanoid Motion Clip из стандартных ассетов. Если Avatar зелёный и нет предупреждений — скелет готов к скиннингу.

Стоимость работы по ригу рассчитывается индивидуально: влияет количество персонажей, наличие общего пайплайна и требования к ретаргетингу. Чтобы узнать точную оценку для вашего проекта, свяжитесь с нами — мы подготовим предложение за 1 день.

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

Модель готова, текстуры на месте — но в 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). Стоимость рассчитывается индивидуально после оценки объёма – свяжитесь с нами для консультации и примерной сметы. Закажите риггинг персонажей для игр — и ваши персонажи оживут без багов анимации.