Настройка рига лица и мимики персонажей игр
Типичная ситуация: персонаж улыбается, но уголки губ не поднимаются — вместо улыбки гримаса. Причина — неправильно настроенный скиннинг век или отсутствие деформационных костей для носогубной складки. Или наоборот: при сведении бровей лоб «плывёт», потому что blend shapes конфликтуют друг с другом. Лицевой риг — одна из самых ответственных задач в пайплайне геймдева. Ошибки на этом этапе не исправляются простым переключением анимации. Мы делаем фейс-риги для проектов любого масштаба — от инди до AAA. В статье разберём, какие технические решения работают на практике и что влияет на реалистичность мимики.
Два подхода: кости против Blend Shapes
| Аспект | Joint-based rig | Blend Shapes (morph targets) |
|---|---|---|
| Принцип | Вращение костей с весовым скиннингом | Линейные смещения вершин mesh |
| Производительность | Один draw call на скиннинг | Дополнительные вычисления CPU/GPU на каждый морф |
| Детализация | Угловатость на тонких областях (веки, губы) | Органичные складки, морщины |
| Совместимость | Любой движок (Unity, Unreal, Godot) | Зависит от движка (в Godot — Shape Keys) |
Unity поддерживает Blend Shapes через SkinnedMeshRenderer.SetBlendShapeWeight(). Unreal Engine — через Morph Target в скелетном меше. Для выразительных персонажей оптимальна комбинация: кости для глаз, бровей и челюсти (точные вращения), blend shapes — для сложных деформаций щёк, носогубных складок. Такой гибрид даёт максимальную детализацию без потери производительности.
Как настроить базовый фейс-риг на костях?
Минимальный набор для выразительного персонажа включает 16–20 костей:
- Jaw — нижняя челюсть, вращение по X 0–20° для речи, до 30° для крика.
- 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 — центры губ для поцелуя и удивления.
Для детальной lip sync понадобится до 30–40 костей. Каждая кость должна иметь ограничения вращения и корректные веса скиннинга. Особые зоны:
Уголки глаз. Вес на Eye-кость = 0, на UpperLid = 0.5, на LowerLid = 0.5 — веко должно деформироваться вместе с глазом, но не следовать за его вращением.
Носогубная складка. При улыбке через LipCorner-кость складка углубляется. Лучше реализовать через Blend Shape, но если их нет — можно использовать отдельную Cheek-кость со Stretch To.
Лоб. Скиннинг на Head-кость, деформация только через Blend Shapes или Brow-кости.
Почему важен стандарт ARKit для blend shapes?
ARKit standard — де-факто стандарт именования Blend Shapes для фейс-трекинга, включающий 52 именованных морфа: eyeBlinkLeft, jawOpen, mouthSmileLeft, browInnerUp и другие. Если планируется live face tracking или импорт готовых анимаций — использование ARKit-именования обязательно, иначе маппинг придётся делать вручную. Подробнее о стандарте можно узнать в ARKit.
Для VRM-аватаров (VTuber, VRChat) используется свой набор: A, I, U, E, O для гласных, Joy, Angry, Sorrow, Fun, Blink. Если проект ориентирован на эти платформы — следует придерживаться VRM-именования.
В Unity анимация Blend Shapes может быть задана через Animation Clip или C# скрипт. Экспортируя модель из Blender, включите Shape Keys и убедитесь, что выбраны Relative Shape Keys.
Что входит в работу по настройке фейс-рига?
- Анализ исходной геометрии — проверка топологии лица (edge loop вокруг рта и глаз), исправление ошибок скиннинга.
- Проектирование рига — выбор баланса между костями и blend shapes, создание контрольных костей.
- Реализация — настройка joint-based rig, создание blend shapes (ARKit-совместимых), привязка к скелету.
- Интеграция lip sync — подключение Oculus OVR LipSync SDK или SALSA, настройка маппинга визем.
- Тестирование — анимация ключевых выражений (удивление, гнев, радость), проверка в сцене с разными режимами освещения.
- Документация и обучение — передача контроллеров, описание маппинга blend shapes, инструкция для аниматоров.
Пошаговая настройка lip sync
- Импортируйте модель с blend shapes в Unity.
- Создайте
SkinnedMeshRenderer, убедитесь что Blend Shapes видны в инспекторе. - Добавьте компонент
OVRLipSyncContext(при использовании Oculus SDK). - Настройте маппинг viseme → blend shape веса через скрипт или вручную.
- Проверьте синхронизацию на тестовом аудиофайле. Подстройте gain и smoothing.
Сроки и стоимость
| Задача | Ориентировочный срок |
|---|---|
| Базовый фейс-риг на костях (16–20 костей) | от 1 до 2 дней |
| Blend Shapes набор (30–52 морфа) | от 2 до 4 дней |
| Комбинированный риг кости + Blend Shapes | от 3 до 5 дней |
| Интеграция Lip Sync SDK в Unity | от 1 до 2 дней |
Фейс-риг сильнее всего зависит от качества исходной геометрии лица — топология с edge loop вокруг рта и глаз упрощает работу. Стоимость рассчитывается индивидуально после оценки меша и требований к мимике. Свяжитесь с нами, чтобы обсудить ваш проект. Получите консультацию и точную оценку.
Экономия на переделках анимаций благодаря правильно настроенному ригу может достигать 30% бюджета. Мы гарантируем сертифицированное качество и поддержку на всех этапах.






