Коректна деформація персонажів: скінінг для VR-ігор
При експорті ригінгу в Unity ви помічали, що плече персонажа «ламається» при підйомі руки? Це типовий артефакт некоректного скінінгу. Кожній вершині меша призначається вплив (0–1) кожної кістки скелета. На практиці — одна з найтрудомісткіших стадій пайплайну, особливо для персонажів з одягом, зачісками та анатомічно складними суглобами. За понад 5 років роботи ми відригіли більше 50 персонажів — від інді-ігор до AAA-ексклюзивів. Наш підхід гарантує відсутність артефактів деформації у VR, де якість скінінгу безпосередньо впливає на presence.
Гарантія якості досягається за рахунок комбінації автоматичних та ручних інструментів. Automatic Weights у Blender або Heat-map скінінг у Maya працюють у більшості випадків, але на складних суглобах їх результат потребує доопрацювання. Ми використовуємо еталонні контрольні пози та corrective blendshapes для усунення типових проблем.
Як скінінг впливає на продуктивність у VR?
Кількість кісток, що впливають на вершину, — ключовий фактор GPU-навантаження. Згідно з документацією Unity, для мобільних платформ, таких як Quest, рекомендується 2 кістки, для PC VR — 4. Ми оптимізуємо скінінг під цільове залізо, не жертвуючи якістю для ключових персонажів.
| Платформа | Рекомендована кількість кісток | Примітка |
|---|---|---|
| Quest (мобільний VR) | 2 | Для NPC та фонових об'єктів |
| PC VR (SteamVR, Oculus PC) | 4 | Для головних персонажів та аватара гравця |
| Консолі (PS5, Xbox Series) | 4 | Оптимізація під Vulkan/Metal |
Чому автоматичний скінінг не підходить для VR?
Плече — найскладніший суглоб. Automatic Weights дають неприйнятний результат: вершини пахви тягнуться за рукою, втрачаючи об'єм. Техніка: Volume Preservation через Corrective Blendshapes. Створюється blendshape для пози «рука піднята 90°» з відновленим об'ємом, він прив'язується через Driver до ротації кістки плеча. У Unity це реалізується через SkinnedMeshRenderer.SetBlendShapeWeight(). Такий підхід дає на 30% кращу деформацію, ніж чистий скінінг.
Пальці — на кистях повинно бути мінімум 4 кістки впливу на вершину. Менше — кутовата деформація. Скінінг суглобів пальців вимагає акуратного градієнта, інакше фаланги ламаються при стисканні кулака.
Шия при повороті голови — часта помилка: занадто високий вплив кістки голови на вершини шиї. При різкому повороті голови у VR шия скручується неприродно. Правило: вершини нижньої третини шиї повинні мати ≤ 20% впливу від Head кістки.
Чому тестування на контрольних позах обов'язкове?
Ми перевіряємо деформацію на наборі з 6 поз: T-pose, опущені руки, рука піднята вгору, рука за спину, присідання, нахил, поворот голови максимальний. Кожна поза виявляє конкретні проблеми. Для рук додатково проганяємо всі стандартні позиції з Meta Hand Tracking SDK: стиснутий кулак, відкрита долоня, щипок, вказівний жест. Це займає 1–2 години, але запобігає багам у білді.
Практика скінінгу під VR-аватар
Починаємо з перенесення ваг через Data Transfer Modifier (Blender) або Copy Skin Weights (Maya) від референсного «голого» меша до мешів одягу. Це прискорює процес: одяг у більшості зон слідує за тілом, лише краї потребують ручної коректури.
Вплив платформи на налаштування. Для Quest (мобільний VR) обмежуємо Skin Weights до 2 Bones — це знижує GPU-навантаження. Для hero-персонажів та аватара гравця залишаємо 4 Bones, для NPC другого-третього плану — 2. Така стратегія балансує якість та продуктивність.
Normal transfer — часто упущений крок. Нормалі меша одягу повинні бути перенесені з нижчого меша тіла, інакше на стиках освітлення рветься. У Blender використовуємо Data Transfer Modifier з Face Corner Data → Custom Normals.
Що входить у роботу
- Скінінг усіх мешів (тіло, одяг, аксесуари).
- Налаштування Skin Weights під цільову платформу (Quest/PC).
- Створення corrective blendshapes для плечей, пальців, шиї.
- Перевірка на 6+ контрольних позах.
- Normal transfer для всіх накладених мешів.
- Підсумкова перевірка в рушії (Unity/Unreal) з тестовою анімацією.
- Передача вихідників з коментарями для аніматора.
| Тип персонажа | Терміни | Особливості |
|---|---|---|
| Простий prop (зброя, предмет) | 1–3 години | Мінімум суглобів, один матеріал |
| Персонаж без одягу | 4–8 годин | Анатомія, corrective blendshapes |
| Персонаж з багатошаровим одягом | 2–4 дні | Перенесення ваг, нормал трансфер |
| VR-аватар (руки + голова) | 1–2 дні | Пріоритет на кисті, тест під Hand Tracking |
Типові помилки при скінінгу
- Занадто багато кісток впливу на одну вершину — підвищує GPU-навантаження.
- Відсутність прогону контрольних поз — артефакти виявляються лише в білді.
- Некоректний нормал трансфер — світлові заломи на стиках одягу.
Терміни вказані орієнтовно. Вартість розраховується індивідуально після оцінки моделі та вимог. Зв'яжіться з нами — ми оцінимо ваш проект і запропонуємо оптимальне рішення. Отримайте консультацію зі скінінгу для вашого VR-проекту. Сертифіковані спеціалісти з Unity та Unreal Engine гарантують якість, підтверджену відгуками замовників. Понад 5 років досвіду в геймдеві. Ми використовуємо актуальні версії інструментів: Unity LTS, Unreal Engine 5, Blender 4.0+.






