Скіннінг моделей персонажів для коректної деформації графіки

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

Від імерсивних застосунків до ігрових світів і 3D-сцен

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

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Скіннінг моделей персонажів для коректної деформації графіки
Середня
~3-5 робочих днів
Часті питання

Наші компетенції

Які етапи розробки гри?

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

Скіннінг моделей персонажів для коректної деформації графіки

Скіннінг – розфарбування ваг: кожній вершині меша призначається вплив (0–1) кожної кості скелета. Звучить просто. На практиці – один із найтрудомісткіших та ітеративних етапів пайплайну, особливо для персонажів із одягом, зачісками та анатомічно складними суглобами.

У VR якість скіннінгу має прямий вплив на presence: коли аватар користувача згинає руку та бачить артефакт деформації – конфлікт реальності миттєвий.

Де автоматичний скіннінг не справляється

Плече. Найскладніший суглоб для скіннінгу. При піднятті руки вверх плече має деформуватися м'яко, без "схлопування" підмишкової зони. Automatic Weights у Blender або Heat-map скіннінг у Maya дають неприйнятний результат: вершини підмишки тягнуться за рукою, втрачаючи об'єм.

Техніка: Volume Preservation через Corrective Blendshapes. Створюється blendshape для пози "рука піднята 90°" із відновленим об'ємом плеча, він привязується через Driver до ротації кості плеча. При піднятті руки blendshape автоматично активується та компенсує втрату об'єму. У Unity це реалізується через SkinnedMeshRenderer.SetBlendShapeWeight().

Пальці. На кистях має бути мінімум 4 кості впливу на вершину (налаштування Unity: Quality Settings → Skin Weights → 4 Bones). Менше – кутаста деформація. Скіннінг суглобів пальців потребує акуратного градієнта: фаланга деформується плавно, без різкої границі впливу.

Шия при повороті голови. Частая помилка – занадто високий вплив кості голови на вершини шиї. При різкому повороті голови в VR (а це відбувається постійно) шия скручується неестетично. Правило: вершини нижної третини шиї мають мати ≤ 20% впливу від Head кості.

Практика скіннінгу під VR-аватар

Починаємо з перенесення ваг через Data Transfer Modifier (Blender) або Copy Skin Weights (Maya) від референсного "голого" меша до мешів одягу. Це прискорює процес: одяг у більшості зон слідує за тілом, тільки краї потребують ручної корекції.

Перевіряємо деформацію на контрольних позах: T-pose → опущені руки, рука піднята вверх, рука за спину, присідання, нахил, поворот голови максимальний. Кожна поза – окремий тест.

Для VR-рук (видні завжди, в упорі зрення) скіннінг кистей робимо двічі: спочатку загальний, потім прогоняємо всі позиції пальців з Hand Tracking – сжатий кулак, відкрита ладонь, щипок, указівний жест. У Meta Hand Tracking SDK є стандартний набір poses, під них та тестуємо.

Вплив платформи на налаштування. На Quest (мобільний VR) рекомендується обмежити Skin Weights до 2 Bones замість 4 – це зменшує GPU-навантаження від скіннінгу. Але це компромісс: на пальцях та плечах будуть помітні угловатості. Рішення – використовувати 4 Bones тільки для hero-персонажів та аватара гравця, для NPC другого-третього плану – 2 Bones.

Normal transfer після скіннінгу – часто упущений крок. Нормали меша одягу мають бути перенесені з нижче розташованого меша тіла, інакше на стиках освітлення рвется. У Blender – Data Transfer Modifier з Face Corner Data → Custom Normals.

Терміни скіннінгу: простий prop – 1–3 години; персонаж без одягу – 4–8 годин; персонаж із багатошаровим одягом – 2–4 робочих дні. Вартість визначається після оцінки складності.