Запікання карт нормалей (Normal Map) для моделей ігор

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1Усі 242 послуг
Запікання карт нормалей (Normal Map) для моделей ігор
Середній
~1 день
Часті запитання

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

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

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1457
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    979
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    605
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    674
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    29

Правильно запекла карта нормалей робить low-poly модель з 3000 полігонів невідмінною від мільйонного high-poly оригіналу. Погана нормал-карта — це темні смуги на гранях, шви на UV-межах та «плоскі» поверхні під боковим світлом. Технічно Normal map запікається за хвилини. Запекти правильно — це вже питання знання конкретних налаштувань, розуміння tangent space та вміння передбачати артефакти до їх появи. Ми займаємось геймдев-пайплайном понад 5 років, запікали асети для 15+ ігор, включаючи мобільні та PC проєкти. Наша експертиза дозволяє гарантувати чистий результат, який пройде QA в будь-якому рушії.

Чому виникають артефакти на нормал-картах?

Tangent space mismatch — запікання карт нормалей

Це, мабуть, найнеочевидніша причина «правильної» нормал-карти, яка виглядає неправильно в рушії. Marmoset Toolbag, xNormal, Substance Painter і кожен рушій використовують свої конвенції tangent space. Unity (Standard та URP/HDRP) — MikkTSpace. Unreal Engine — теж MikkTSpace, але з особливостями обробки hard edges в UE4 vs UE5. Godot — MikkTSpace. Якщо карта запеклася в одному tangent space та імпортована в рушій з іншим, отримаємо некоректне освітлення: замість рельєфу — дивні відблиски не в тих місцях.

Рішення: в Marmoset Toolbag 4 виставляємо Tangent Space → MikkTSpace. В Substance Painter це налаштування при імпорті меша (Compute Tangent Space Per Fragment). Перевіряємо результат в самому рушії, а не тільки в preview інструмента.

Hard edge + UV seam незбіг

Стандартна геометрія hard-surface має hard edges (smoothing group breaks) на конструктивних ребрах. Якщо UV seam не збігається з цими ребрами, baker інтерполюватиме нормалі через seam — результат: темна або світла смуга вздовж ребра. Правило одне: кожен hard edge повинен бути UV seam, кожен UV seam на hard-surface — hard edge. Це не рекомендація, це обов'язкова умова.

У Blender це робиться через Edge → Mark Sharp + Mark Seam на одних і тих самих ребрах. У Maya — через Mesh Display → Soften/Harden Edge і UV Seam на збігаючих ребрах. У 3ds Max — Smoothing Groups + UV seam за тією ж логікою.

Cage та projection misses

Для складної геометрії з увігнутими формами, флоатинг деталями або з великим розходженням між HP та LP в Marmoset Toolbag необхідно працювати з Bake Groups. Кожна флоатинг деталь — окрема група з індивідуальним cage offset. Без цього baker кидає промені через неправильну геометрію та отримує чорні плями або інвертовані нормалі в зонах перетину.

Як правильно налаштувати запікання в Marmoset Toolbag 4?

Marmoset Toolbag 4 — основний інструмент для production bake. Налаштування для фінального запікання:

  • Samples: 512 для 4096 карт, 256 для 2048. Нижче — noise на складних переходах.
  • Dilation: 32px для 4096, 16px для 2048. Критично для mip-map bleeding.
  • Tangent Space: MikkTSpace (для більшості рушіїв).
  • Max Frontal / Rear Distance: індивідуально під кожен асет. Занадто великий rear distance — baker захоплює geometry зі зворотного боку. Занадто малий — misses на деталях з великим offset від LP.

Для флоатинг geometry: окремий Bake Group для кожної групи флоатингу. Max Frontal Distance = трохи більше відстані від LP поверхні до дальньої точки флоатинг об'єкта. Rear Distance = мінімальний.

У xNormal використовуємо той самий підхід, але через .hnmap файл налаштувань cage для кожного асета. xNormal швидший на великих сценах та корисний для batch bake коли потрібно запекти 50+ об'єктів одночасно.

Порівняння інструментів запікання:

Інструмент Швидкість Tangent Space Особливості
Marmoset Toolbag 4 Висока MikkTSpace Найкращий preview, підтримка cages
xNormal Дуже висока Standard (налаштовуваний) Найкращий batch bake, відкритий вихідний код
Substance Painter Середня Per Fragment Інтеграція з текстуруванням

Як перевірити нормал-карту перед передачею?

Запечену карту обов'язково перевіряємо в рушії — не тільки в Marmoset. Причина: preview в Toolbag використовує власний PBR рендер, який може маскувати проблеми, непомітні при стандартному освітленні в рушії.

Приклад артефакту: смуга на hard edgeЯкщо hard edge та UV seam не збігаються, на ребрі з'являється темна або світла смуга. Це перевіряється при grazing angle освітленні в рушії.

Чеклист перевірки:

  • Освітлення з трьох сторін: ключове, бокове, backlight
  • Extreme angles: камера майже паралельно поверхні (grazing angle)
  • Перевірка граней: чи нема темних смуг вздовж hard edges
  • Перевірка seam-ів: чи нема видимих швів по UV boundary

Якщо карта пройшла перевірку в рушії — вона готова. Гарантуємо, що при дотриманні цих кроків ви отримаєте чисту нормал-карту без артефактів.

Що входить в роботу

  • Консультація з підготовки high-poly та low-poly геометрії
  • Налаштування bake-проекту в Marmoset Toolbag 4 / xNormal залежно від завдання
  • Запікання всіх необхідних карт: Normal, Ambient Occlusion, Cavity, Curvature, Thickness, World Space Normal
  • QA у цільовому рушії (Unity, Unreal, Godot)
  • Передача вихідників (.fbx, .tga, project files)
  • Коригування UV при необхідності

Орієнтири по термінах

Асет Карти Терміни
Простий проп (зброя, інструмент) Normal + AO 2–6 годин
Середньоскладний об'єкт (техніка, деталі) Full PBR 4–10 годин
Персонаж (один UV tile) Full PBR 1–3 дні
Складний асет з флоатингом Full PBR 2–4 дні
UDIM персонаж (4–6 тайлів) Full PBR per tile 3–6 днів

Вартість розраховується індивідуально. На вході потрібні: high-poly (FBX/OBJ), low-poly з готовим UV, інформація про цільовий рушій.

Зв'яжіться з нами, щоб обговорити ваш проєкт та отримати консультацію з пайплайну. Замовте оцінку вашого асета за референсами — це займе один день.

3D-моделювання для ігор

Уявіть: художник здає персонажа з 120 000 полігонів, мотивуючи це тим, що «так виглядає краще». На мобільному пристрої сцена з десяти таких персонажів впустить FPS до неіграбельних значень. Ми в студії GameArt щодня вирішуємо такі проблеми: наші моделі проходять суворий полігональний контроль та оптимізацію під цільову платформу. Понад 7 років ми випустили понад 50 ігрових проєктів — від мобільних гіперказуалок до PC-екшенів. Гарантуємо, що кожна модель впишеться в технічні вимоги без втрати візуальної якості. Замовте безкоштовний аудит вашого 3D-асета — оцінимо полігонаж і тексельну щільність за одну годину.

3D-моделювання для ігор — це не просто «зробити гарно». Це розстановка пріоритетів в обмеженому бюджеті трикутників і draw calls. Кожен етап пайплайну впливає на продуктивність у рантаймі. Пропуск ретопології або криві UV обертаються переробками на етапі інтеграції — ми це виключаємо на старті.

У цій статті розберемо ключові аспекти: від high-poly скульпту до фінальної збірки в Unity або Unreal Engine, з акцентом на практичні кейси. Ми проєктуємо моделі під конкретну платформу: для мобільних використовуємо низьку тексельну щільність (512 px/м), для PC — до 2048 px/м. Всі рішення приймаються на основі бенчмарків рушія та профілювання на реальному залізі.

Як оптимізувати 3D-моделі для різних платформ?

Цей аспект найчастіше ігнорується на старті проєкту — і саме він потім коштує переробок.

Стандартний пайплайн виглядає так:

  1. Концепт / референси — перш ніж відкривати ZBrush, потрібно розуміти силует, читаність та цільову платформу.
  2. High-poly sculpt — детальна скульптурна модель без обмежень по полігонах. Робиться в ZBrush або Blender (Sculpt Mode).
  3. Low-poly retopology — чиста ігрова сітка поверх high-poly, вручну або напівавтоматично.
  4. UV-розгортка — підготовка координат для текстур.
  5. Baking — перенесення деталізації з high-poly на карти (normal map, AO, curvature тощо).
  6. Передача в рушій — імпорт в Unity або Unreal з налаштуванням LOD-ланцюжка.

Кожен етап впливає на наступний. Погана ретопологія зламає скіннінг. Криво нарізані UV дадуть артефакти при запіканні. Етапи не можна міняти місцями.

Мобільні платформи (iOS / Android)

Мобайл — найжорсткіше середовище. Орієнтири для персонажів:

Тип персонажа Полігони (тріангульовані)
Головний герой (великий план) 3 000 – 8 000
NPC другого плану 1 000 – 3 000
Масовка, вороги вдалині 300 – 800

Для оточення (один пропс):

Об'єкт Полігони
Великий інтерактивний (скриня, двері) 500 – 1 500
Середній декоративний 100 – 400
Дрібний (камінь, гілка) 20 – 80

Критичніше самого полігонажу — кількість draw calls і батчинг. Модель на 200 трикутників з окремим матеріалом може бути дорожчою за модель на 2 000 трикутників, яка батчиться з усією сценою. Правильний батчинг (SRP Batcher, GPU instancing) знижує draw calls до 40% — це дає запас для більш деталізованих асетів.

PC / Console

Тут бюджети м'якші, але не безмежні:

  • Головний персонаж у шутері від першої особи: 15 000 – 60 000 полігонів (модель противника, яку гравець бачить постійно).
  • Персонаж у RPG від третьої особи: 8 000 – 25 000.
  • Транспортний засіб у гонці: 30 000 – 80 000 (багато дрібних деталей, LOD обов'язковий).

Ключовий інструмент — LOD (Level of Detail). В Unity це LOD Group, в Unreal — автоматичний HLOD + ручні LOD-рівні в Static Mesh Editor. Правило: LOD0 → LOD1 має втрачати ~50-60% полігонів, LOD1 → LOD2 ще ~50%. Додатково налаштовуємо occlusion culling і кластерний рендеринг, щоб знизити навантаження на GPU.

VR

VR — окрема історія. Рендер іде для двох очей, цільовий фреймрейт 90 fps (Quest) або 120 fps (PSVR2). Будь-який фризен відчувається фізично — у гравця паморочиться голова.

Бюджет персонажа у VR: 4 000 – 12 000 (залежить від кількості NPC у сцені одночасно). Оточення агресивно оптимізується: портальна система, occluder culling, кластерний рендеринг — без цього сцена не потягне потрібний fps. Ми використовуємо Frame Debugger і Render Doc для профілювання на цільовому пристрої на ранніх етапах.

Чому ретопологія — художнє завдання?

Ретопологія — створення чистої полігональної сітки поверх sculpt-моделі. Багато хто сприймає її як нудний технічний етап, який можна прискорити авторетопологією (ZRemesher, Instant Meshes, функція Auto Retopology в Maya). Це помилка. Ручна ретопологія в 3 рази точніша за автоматичну на суглобах та обличчі.

Авторетопологія дає поганий результат у трьох ключових зонах:

  1. Суглоби — коліна, лікті, зап'ястя. Там потрібні рівні кільця еджлупів, перпендикулярні осі обертання. Авторетопологія ламає їх хаотичними діагоналями, і при анімації суглоб схлопується негарно.
  2. Обличчя — навколо рота та очей потрібні concentric loops, які слідують м'язовій структурі. Це обов'язкова умова для коректної мімічної анімації через blend shapes / morph targets.
  3. Силуетні ребра — плечі, груди, великі форми. Тут потрібно свідомо розподілити полігони так, щоб силует читався навіть на LOD2.

Інструментарій для ручної ретопології включає Maya (Quad Draw), Blender (BSurfaces + Shrinkwrap), 3ds Max (Graphite Modeling Tools) і ZBrush (ZRemesher з guide curves). Щільність сітки розподіляється нерівномірно: обличчя та кисті — більше полігонів, спина та низ ніг — менше. Це не свавілля, а наслідок того, де камера проводить більше часу.

Як UV-розгортка впливає на якість текстур?

UV — ще один етап, який часто недооцінюють. Тексельна щільність (texel density) повинна бути однаковою по всьому персонажу. Якщо у чобота щільність вдвічі вища, ніж у обличчя — текстура виглядатиме непослідовно. В Maya для цього є UV Toolkit з нормалізацією, в Blender — аддон TexTools.

UDIM (U-Dimension) — технологія, при якій кілька UV-тайлів об'єднуються в один об'єкт. Це дозволяє використовувати текстури 4K–8K без обмежень одного UV-простору. Застосовується для персонажів з високими вимогами до деталізації — cinematic-ігри, hero assets. В pipeline це означає Substance Painter з UDIM-режимом і окремий експорт кожного тайла.

Запікання (baking) — перенесення деталей високополігональної моделі на карти для low-poly. Інструменти:

  • Marmoset Toolbag — галузевий стандарт, cage-based baking з тонким налаштуванням. Зручна візуалізація помилок. Marmoset забезпечує в 2 рази швидше запікання ніж xNormal при однаковій якості.
  • xNormal — безкоштовний, перевірений часом. Менш зручний інтерфейс, але стабільний результат і батч-запікання.
  • Substance Painter — вбудований baker для швидкого результату всередині текстурування, менш гнучкий, ніж Marmoset.
  • Blender — Cycles baker. Повільніший і потребує налаштування, але безкоштовний.

Типовий набір запіканих карт: Normal Map, Ambient Occlusion, Curvature, Thickness, Position, World Space Normal. Curvature і Thickness — генераторні маски в Substance Painter, що автоматично виділяють опуклості та ввігнутості для процедурного текстурування. Згідно з документацією Marmoset Toolbag, batch-baking на кількох об'єктах економить до 30% часу.

Що входить у 3D-моделювання для ігор?

Етап Деталі Формат здачі
High-poly sculpt Створення деталізованої скульптури в ZBrush / Blender .zpr / .blend, скріншоти
Ручна ретопологія Чиста low-poly сітка з правильними еджлупами для анімації .fbx / .ma
UV-розгортка Нормалізована тексельна щільність, опціонально UDIM .fbx з UV-set
Запікання Normal, AO, Curvature, Thickness (Marmoset / xNormal) texture set (PNG/TGA)
LOD-ланцюжок LOD0–LOD3 з порогами по полігонах і відстані .fbx для кожного LOD
Інтеграція Імпорт в Unity / Unreal, перевірка матеріалів і батчингу .unitypackage / .uasset
Документація Іменування асетів, ієрархія, вимоги до трикутників PDF / Notion

Додатково надаємо годинну сесію підтримки після здачі — допомагаємо з налаштуванням LoD Group, колізіями та анімацією. Вихідні файли (.zpr, .blend, .ma, .fbx) передаються в повному обсязі.

Типові помилки при UV-розгортці, які ми запобігаємо:

  • Різні тексельні щільності на сусідніх частинах моделі — текстура виглядає неконсистентно.
  • Перекривні UV (overlap) — артефакти запікання.
  • Недостатній padding між островами — розмиття текстур при міп-маппінгу.
  • Відсутність UDIM для складних персонажів — втрата деталізації.

Для отримання комерційної пропозиції зв'яжіться з нами — ми оцінимо строки та підготуємо рішення під ваші вимоги: від мобільних гіперказуалок до PC-екшенів і VR. Отримайте безкоштовний аудит вашого асета просто зараз.