Налаштування ригу обличчя та міміки персонажів ігор
Типова ситуація: персонаж усміхається, але куточки губ не піднімаються — замість усмішки гримаса. Причина — неправильно налаштований скіннінг повік або відсутність деформаційних кісток для носогубної складки. Або навпаки: при зведенні брів лоб «пливе», тому що 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% бюджету. Ми гарантуємо сертифіковану якість та підтримку на всіх етапах.






