Створення процедурних матеріалів для графіки

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Створення процедурних матеріалів для графіки
Складна
~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

Створення процедурних матеріалів для графіки

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

Саме це робить процедурні матеріали незамінними для проектів з великою кількістю варіацій оточення.

Substance Designer: граф як виробничий інструмент

Substance Designer — стандартний інструмент для створення процедурних тайлових матеріалів. Логіка роботи: замість шарів у Photoshop — граф нодів, де кожен нод виконує математичну операцію над зображенням. Shape → Transform → Blend → Warp → Level — це базова цепочка для будь-якого структурного матеріалу (цегла, плитка, метал з паттерном).

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

Tile Generator — основа для регулярних структур. Параметри: кількість елементів по X/Y, offset між рядами, random rotation, size variation. Саме через ці параметри керується щільність цегли в кладці або гравію на дорозі.

Flood Fill + Flood Fill to Random Color/Grayscale — ізоляція окремих елементів для незалежної модифікації. Наприклад, кожна цегла отримує випадковий варіант Normal Map з набору заготовок. Це розбиває ідеальну повторюваність без втрати бесшовності.

Directional Warp та Warp — деформація для органічних поверхонь: дерево, кора, шкіра, скала. Без Warp процедурні матеріали виглядають математично, а не природно.

Histogram Scan — критично важливий нод для калібровки діапазонів. Всі PBR-значення повинні потрапляти у фізично коректні діапазони: albedo 30–240, roughness 0–1, metallic 0 або 1 (практично бінарно). Histogram Scan з параметром Position та Width дозволяє точно виставити потрібний діапазон.

Приклад з практики: для open-world RPG потребував 15 варіантів кам'яної кладки під різні біоми (тропіки, тундра, пустеля). Замість 15 окремих текстурних сетів був створений один параметричний граф зі змінними: розмір каменів, варіація форми, ступінь сглаженості рубів, тип мху/грязі в швах, weathering intensity. Всі 15 варіантів — експорт з різними значеннями параметрів за один день. Проти трьох тижнів ручної роботи.

Процедурні матеріали у движку

Substance Designer експортує .sbsar файли — скомпільований граф, який можна завантажити у Unity або Unreal та керувати параметрами у рантайме.

У Unity це робиться через Substance for Unity plugin (Allegorithmic, пізніше Adobe). Параметри Substance доступні через ProceduralMaterial.SetProceduralFloat() або через Inspector. На мобільних платформах .sbsar генерують текстури на старті програми — це навантажує CPU, тому для мобайла зазвичай експортують пребейкнуті PNG-варіанти та переключають через Texture2D swap.

У Unreal Engine 5 Substance інтегрований як нативний плагін з підтримкою Blueprint. Параметри можна менювати у рантайме через Blueprint → Set Substance ParamRender Async. Асинхронний рендер важливий — синхронна генерація текстур на CPU може дати помітний фриз.

Для runtime-генерації на мобільних пристроях альтернатива .sbsar — це кастомні шейдери у ShaderGraph (Unity) або Material Graph (Unreal), які вичисляють процедурний матеріал у GPU. Це швидше, але обмежено складністю: базові паттерни (Voronoi для каменю, Perlin для органіки, геометричні паттерни через math nodes) реалізуються добре, складні багатошарові матеріали — ні.

Обмеження та trade-offs

Процедурні матеріали — не серебряна куля. Унікальний hand-painted hero-пропс завжди виглядає багатшим, ніж процедурний аналог при порівняних затратах. Процедурний підхід виправданий там, де потрібні варіації, масштаб або динамічна зміна.

Ще один нюанс: граф у Substance Designer складно підтримувати без документації. Через три місяці відкрити власний граф з 200 нодів без коментарів — майже те ж саме, що читати чужий код без документації. Тому production-графи завжди супроводжуються описанням ключових параметрів та логіки.

Етапи роботи над процедурним матеріалом

Масштаб завдання Орієнтовний термін
Один базовий тайловий матеріал (Substance Designer граф) 2–4 дні
Складний органічний матеріал (кора, скала, шкіра) 4–8 днів
Параметричний набір (один граф з 5–10 варіантами) 5–10 днів
Інтеграція .sbsar у движок з runtime-керуванням 2–4 дні

Почнемо з аналізу візуального референса та визначення ключових параметрів варіативності. Потім — прототип у Substance Designer, узгодження діапазонів з арт-директором, доробка та експорт під цільовий движок.

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