Настройка рига лица и мимики персонажей игр

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

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

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

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Настройка рига лица и мимики персонажей игр
Сложная
~5 рабочих дней
Часто задаваемые вопросы
Наши компетенции
Какие этапы разработки игры?
Последние работы
  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    671
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    860
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

Настройка рига лица и мимики персонажей игр

Лицо — место, где игрок читает эмоцию. Неточная мимика разрушает погружение быстрее, чем любой другой технический недостаток. При этом фейс-риг — одна из самых сложных задач в пайплайне: здесь пересекаются скелетная анимация, blend shapes, процедурные Constraints и требования движка к производительности.

Два подхода: кости против Blend Shapes

В игровом контексте выбор между костями и morph targets (Blend Shapes / Shape Keys) определяется движком и платформой.

Кости (Joint-based rig) — работают в любом движке через стандартный skinned mesh. Поддерживают любой Avatar тип, интегрируются в Animator Controller, управляются через Animation Rigging. Минус: на тонких деформациях вокруг глаз и губ кости дают угловатость — нужно много костей для органического движения.

Blend Shapes (Morph Targets) — каждая поза лица хранится как отдельный mesh offset. Деформация линейная, легко предсказуемая, отлично подходит для facial expressions и lip sync. Unity поддерживает Blend Shapes через SkinnedMeshRenderer.SetBlendShapeWeight(index, weight). Ограничение: Linear blend между крайними позами может давать «тающий» эффект при сложных комбинациях (улыбка + прищуривание + приподнятая бровь).

Правильный ответ для AAA персонажей: комбинация обоих. Кости для глаз, бровей, челюсти (точные вращения с чётким контролем). Blend Shapes для сложных деформаций щёк, носогубных складок, морщин при улыбке.

Структура фейс-рига на костях

Минимальный набор для выразительного персонажа:

  • Jaw — нижняя челюсть, 1 кость с Limit Rotation. Вращение вниз по X: 0–20° для разговора, до 30° для крика. Также контролирует небольшое смещение нижней губы через Constraint
  • UpperLid_L/R, LowerLid_L/R — веки. 4 кости с ограниченным диапазоном. Copy Rotation с минимальным вкладом от Eye-кости (при движении глаза веко немного следует — Corneal Bulge эффект)
  • Eye_L/R — глазные яблоки. Track To к Eye_Target — общей цели, которую аниматор двигает вместо отдельных глаз. Ограничение: ±30° по X и Y
  • Brow_Inner_L/R, Brow_Mid_L/R, Brow_Outer_L/R — брови. 6 костей для контроля формы. FK-управление через контрольные кости
  • LipCorner_L/R — уголки губ. Ключевые точки для улыбки/гримасы
  • UpperLip_C, LowerLip_C — центры губ для поцелуя и удивления

Итого: 16–20 костей для базового фейс-рига. Для диалоговой игры с детальной lip sync — 30–40.

Blend Shapes для мимики: именование и ARKit

ARKit standard — де-факто стандарт именования Blend Shapes для фейс-трекинга. 52 именованных морфа: eyeBlinkLeft, jawOpen, mouthSmileLeft, browInnerUp и т.д. Если планируется live face tracking или импорт готовых анимаций — именование по ARKit-стандарту обязательно, иначе маппинг придётся делать вручную.

VRM-формат для аватаров использует свой набор: A, I, U, E, O для гласных, Joy, Angry, Sorrow, Fun, Blink, BlinkLeft, BlinkRight. Если проект ориентирован на VTuber-платформы или VRChat — VRM-именование стандартно.

Для Unity c Animator: Blend Shape веса обновляются через C# скрипт или через Animation Clip. Анимированные Blend Shapes в FBX — стандартный путь. В FBX экспорте из Blender: включить Shape Keys в экспорте, убедиться что Relative Shape Keys, не Absolute.

Lip Sync: инструменты и интеграция

Для автоматического lip sync два основных варианта:

Oculus OVR LipSync SDK — фонемная система, работает на аудио потоке в реальном времени. Выводит веса для 15 визем (viseme), маппинг на Blend Shapes через OVRLipSyncContext компонент. Поддерживает Unity.

SALSA LipSync Suite (Asset Store) — более широкий маппинг, поддержка timeline для кат-сцен, возможность offline-обработки аудио. Работает как с Blend Shapes, так и с Joint-ригом.

Ручной lip sync по ключевым кадрам — для кат-сцен и важных диалоговых сцен, где автоматика не даёт нужного качества. Процесс: Waveform в Timeline, ключевые кадры Blend Shape Weight по фонемам в нужных позициях.

Веса скиннинга для лица

Лицо скиннингуется отдельно от тела — с исключительно мелкими весами и большим количеством контрольных точек. Особые зоны:

Уголки глаз. Должны деформироваться вместе с веком и не следовать за Eye-костью. Вес на Eye-кость — 0, вес на UpperLid = 0.5, LowerLid = 0.5.

Носогубная складка. При улыбке через LipCorner-кость складка должна углубляться — это лучше через Blend Shape, не через кости. Если нет Blend Shapes — отдельная Cheek-кость со Stretch To.

Лоб. Обычно скиннингуется полностью на Head-кость без вторичных инфлуенсов, деформируется только через Blend Shapes или Brow-кости.

Сроки

Задача Ориентировочный срок
Базовый фейс-риг на костях (16–20 костей) от 1 до 2 дней
Blend Shapes набор (30–52 морфа) от 2 до 4 дней
Комбинированный риг кости + Blend Shapes от 3 до 5 дней
Интеграция Lip Sync SDK в Unity от 1 до 2 дней

Фейс-риг сильнее всего зависит от качества исходной геометрии лица — топология с edge loop вокруг рта и глаз упрощает работу. Стоимость рассчитывается после оценки меша и требований к мимике.