Unreal Engine 4 - Матеріали та Шейдери
українськомовна спільнота Unreal Engine 4
Матеріали та шейдери
Material Parameter Collection

Material Parameter Collection(колекції параметрів) є ассетом, який зберігає довільний набір скалярних та векторних параметрів, які можуть бути використані у будь-якому матеріалі. Це потужний інструмент, який митці можуть використовувати, щоб змінювати глобальні дані в багатьох матеріалах відразу. Він також може бути використаний для управління рівнем ефектів, таких як кількість снігу, сумарне змішування, вогкість і т.д., які в іншому випадку вимагатимуть встановлення окремих параметрів у багатьох різних матеріалах на вашому рівні.


У наведеному вище прикладі глобальні параметри використовуються для управління наступними аспектами сцени:
- Морфінг квітів на основі швидкості вітру та часу доби.
- Позиція гравця відстежується і це відбивається на листі. Тобто трава «розступається», коли гравець іде нею.
- Загальний колір дифузного осічення залежно від часу доби.
Створення та редагування Material Parameter Collection
Material Parameter Collectionстворюються черезContent Browserза допомогою Add меню або в контекстному меню, що викликається правою кнопкою миші, після вони можуть бути відредаговані та збережені, як і будь-які інші ассети.
-
Для створенняMaterial Parameter Collection, ви повинні спочатку натиснути правою кнопкою миші вContent Browser, щоб відкрити меню. У цьому меню виберіть розділMaterials & Textures, а потім виберітьMaterial Parameter Collection.

Після вибору буде створено новий ассетMaterial Parameter CollectionContent Browser.

Для редагуванняMaterial Parameter Collection, ви повинні спочатку двічі клацнути по ньому лівою кнопкою миші, щоб відкрити вікно властивостей.

Натисніть кнопку плюс поруч ізScalar ParametersабоVector Parametersдля створення нових параметрів, до яких ви хочете отримати доступ з матеріалу. Не забудьте вводити імена та значення за промовчанням.

ВикористанняMaterial Parameter Collections у матеріалах
ДодаванняMaterial Parameter Collectionдо будь-якого матеріалу робиться за кілька кроків. У наступному розділі ми розглянемо, як додати відповідні ноди до дуже простого матеріалу.
-
Перше, що потрібно зробити, це створитиMaterial Parameter Collectionі заповнити його даними. Для цього клацніть правою кнопкою миші вContent Browser, а потім виберіть розділMaterials & Textures, а потім виберітьMaterial Parameter Collection. Після створення ви повинні надати йому ім'я. Для цього прикладу ми будемо використовуватиMPC_Global_Material_Prams.

Після того, якMaterial Parameter Collectionбув створений відкрийте його за допомогою подвійного клацання лівою кнопкою миші. Після відкриванняMaterial Parameter Collectionдодайте одинScalar Parametersі назвіть йогоGlobal_Desaturation. Залишіть значення за промовчаннямGlobal_Desaturationна 0.0. Після завершення, вашMaterial Parameter Collectionмає виглядати так.

Тепер, колиMaterial Parameter Collectionбуло створено, нам необхідно створити простий матеріал. Для цього прикладу ми створюватимемо наступний матеріал. Виставте ноди як на зображенні.

Після того, як основні вузли підключені, знайдіть пошук нодуDesaturationі перетягніть її на вільну область. Далі знайди ваш ассетMaterial Parameter CollectionуContent Browserі перетягніть його в матеріал. У вас мало вийти таке:

Тепер, коли всі ноди були додані, настав час з'єднати всі разом. З'єднайте все так як на зображенні, і не забудьте натиснути кнопкуApplyщоб застосувати зміни до матеріалу.

ОновленняMaterial Parameter Collectionчерез блупринти
Один із способів, яким можна змінюватиMaterial Parameter Collection- це блупринти. Це надзвичайно потужний спосіб маніпулюватиMaterial Parameter Collection, так як він дозволяє це робити в будь-який момент часу в грі.
-
Перш ніж ми можемо почати, ми повинні зробити кілька речей, перш за все. Перше, що нам потрібно зробити, це створити кількаMaterial Instancesз нашого матеріалу. Для цього прикладу нам потрібно створити три матеріали на основі екземплярів матеріалу, який було створено вище. Після створення змініть колір у деяких із них. Для цього прикладу будемо використовувати червоний, зелений ісиній. Після завершення будівництва, вашContent Browserмає виглядати так.

Тепер настав час застосувати їх до різних об'єктів у сцені, натиснувшиMaterial Instanceлівою кнопкою миші , а потім перетягнувши їх на об'єкти в сцені. Після завершення ви повинні мати щось схоже на це.

Далі відкрийтеLevel Blueprint. Для цього натисніть відповідну кнопку в меню надViewportобластю.


ВиберітьSet Scalar Parameter ValueнашMaterial Parameter Collectionі параметр, який ми хочемо змінити.

Далі ми будемо повинні налаштувати нашуTimelineтак, що при натисканні лівою кнопкою миші кольори будуть змінюватися з часом, а потім назад, як тільки ліва кнопка миші буде відпущена. Щоб налаштуватиTimeline, спочатку двічі клацніть на ній, щоб відкрити її.

Тепер, колиTimelineбула відкрита, ми повинні заповнити її деякими даними. Перше, що нам потрібно зробити, це додатиFloatдоріжку, натиснувши на іконкуAdd Track Float. Потім нам потрібно додати два ключі за допомогою правої кнопки миші та миші в будь-якому місці світло-сірої області, а потім вибравшиAdd Keyз меню. Ми додали два ключі, один зTime0.0 іValue0.0 і один зTime1.0 таValue1.0. Після того, як ключі додані, не забудьте назвати трек. Для цього прикладу ми будемо використовувати Des_Amount як ім'я.https://www.youtube.com/watch?v=oGNfh9_ctI4
Timelineтепер настроєно правильно, ви можете закрити її і повернутися до графіка. Далі з'єднайте всі вузли в такий спосіб.

Обмеження та робочі характеристики
Матеріал може посилатися, у разі, дві різнихMaterial Parameter Collection.Material Parameter Collectionможе мати до 1024 скалярних параметрів і 1024 векторних параметрів. Зміна кількості параметрів у колекції призведе до перекомпіляції всіх матеріалів, які посилаються на цю колекцію. Якщо вам потрібно додати безліч параметрів, це краще зробити на порожній карті. Якщо перейменувати параметр, будь-які матеріали, що стосуються цього параметра, продовжуватимуть працювати. Тим не менш, будь-який блупринт, що посилається на цей параметр, перестане працювати. Ви повинні будете перепризначити в блупринті ім'я параметра на нове. ВикористанняMaterial Parameter Collectionнабагато ефективніше, ніж зміна безлічі параметрів у багатьох матеріалах.