Скінінг та розвішування вершин (Weight Painting) моделей ігор

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Скінінг та розвішування вершин (Weight Painting) моделей ігор
Середня
~3 робочих дні
Часті питання

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

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

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

  • 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

Скіннінг та розвесовка вершин (Weight Painting) моделей ігор

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

Automatic Weights як стартова точка, не фінал

Automatic Weights у Blender працює алгоритмом Heat Diffusion — кожна вершина отримує вес пропорційно тепловому впливу найближчих костей. Результат прийнятний на 60–70% меша. Залишок — суглоби, краї, зони перетину геометрії — потребує ручної правки.

У Maya Smooth Bind з Closest in Hierarchy дає трохи чистіший стартовий результат для анатомічно правильних мешів. Але на нестандартній геометрії (істоти, механізми) — та ж історія.

Перше, що робимо після Automatic Weights: тест у pose mode по кожному суглобу. Сгинаємо локіть на 90°, коліно на 90°, піднімаємо плечо, обертаємо шию. Фіксуємо всі проблеми до початку ручної правки — переробляти по одній проблемі за раз швидше, ніж після накоплення кількох.

Критичні зони: де автовеса ломаються завжди

Плечо. Між Shoulder-костю та Spine/Chest — зона, де геометрія підпахви належить обом. Автовеса розмазуються на 3–4 кості, та при підйомі руки вище 90° тканина під підпахвою деформується нечитаємо. Потрібно: вершини внутрішньої сторони плеча — лише UpperArm, вершини торса в зоні підпахви — лише Chest. Перехід — по чіткій лінії, не по плавному градієнту.

Запястя та пронація. Обертання кисті передається через Forearm-кість. Без Twist-кості передпліччя меш "скручується" як верв'ю. З Twist-костю: половина ваги передпліччя перерозподіляється на Twist, градієнт від 0 (локіть) до 0.5 (середина) до 0 (запястя). Це дає плавне раскручування по довжині.

Коліно. Помилка: занадто велика зона змішування між UpperLeg та LowerLeg. При сгинанні 90° виникає "пережим" — шкіра на передній частині колін теряє об'єм. Рішення: жорстке розділення по осі суглоба. Вершини вище — лише UpperLeg, нижче — лише LowerLeg. На самому суглобі — рівний вес (0.5/0.5) лише для 2–3 edge loop безпосередньо в місці згину.

Шия. Проблема зворотна — занадто жорстке розділення. Вершини позаду шиї повинні плавно переходити від Spine2 до Neck з невеликим вкладом Chest, інакше при нахилі голови назад з'являється "розрив" геометрії позаду.

Інструменти та техніки Weight Painting

У Blender режим Weight Paint — основний. Важливі нюанси:

Normalize All перед фіналізацією: кожна вершина повинна мати сумарний вес 1.0. Без нормалізації вершини з вагою 0.3 + 0.3 = 0.6 дають неповне влияння костей та меш "провисає".

Limit Total з Max Influences = 4: стандарт для Unity. GPU skinning з 4 костями на вершину — оптимальний баланс якості та продуктивності. На мобайлі іноді знижують до 2–3.

Smooth пензель з низькими значеннями Strength (0.3–0.5) — для згладжування країв зон впливу. Не використовувати на суглобах, лише на плавних переходах.

Vertex Group Lock — блокування груп, які вже готові. Запобігає випадковій зміні при роботі з сусідніми зонами. Maya еквівалент — Lock Influence через Paint Skin Weights Tool → Lock.

У Maya Component Editor дає прямий числовий доступ до ваг вибраних вершин — незамінний для точної правки. Виділяємо проблемні вершини в Vertex Mode, відкриваємо Component Editor, знаходимо потрібні Joint-стовпці, вводимо значення вручну.

Ваги для одежи та окремих мешів

Персонаж з окремими мешами одежи потребує скіннінгу кожного меша незалежно. Принцип: одежа повторює скіннінг тіла під нею, але з поправкою на тканину. Сорочка на торсі — ті ж кості, що й торс, але з меншим впливом кінцевих суглобів (кисті не впливають на рукав у плечі). Плащ додає кості самого плаща з вторинною динамікою.

Transfer Weights у Blender (Data Transfer Modifier) — швидкий перенос ваг з тіла на одежу. Працює коректно, якщо меші приблизно збігаються за формою. Після переносу — ручна правка на краях одежи, де геометрія розходиться з тілом.

Фінальна перевірка перед експортом

Чек-лист:

  • Сумарний вес кожної вершини = 1.0 (Normalize All)
  • Максимум 4 інфлуенса на вершину (Limit Total)
  • Нема вершин без ваг (Select → All by Trait → Without a Group)
  • Тест-пози: T-Pose, A-Pose, згинання всіх суглобів на 90°, крайні пози для боєвики

Терміни

Меш Орієнтовна тривалість
Простий NPC без пальців від 3 до 6 годин
Повний humanoid з пальцями від 1 до 2 днів
Персонаж з одягом (3–5 окремих мешів) від 2 до 3 днів
Істота з нестандартною анатомією від 2 до 4 днів

Вартість визначається після огляду меша, кількості окремих об'єктів та вимог по платформі до максимального числа інфлуенсів.