Туториал: делаем Слоёный материал

Недавно мы рассказали, как делали боксёрский ринг. В статье мы говорили про слоёный шейдер, с помощью которого текстуру штукатурки мы подмешивали в текстуру кирпича. Его сделал наш студент, тимлид и технический художник Unreal Engine Павел Астафьев в UE5. Мы попросили его сделать туториал по созданию шейдера.

Тот самый шейдер.gif

Уточним, что мы не любим пошаговые обучалки, так как они учат не думать, а повторять. Но в этот раз решили сделать исключение.

Создание базового материала

Сначала создай папку для шейдера. Мы назвали её Master_Material. Старайся сразу приучать себя называть все папки и файлы английскими названиями.

image.png

В папке создай функцию материалов с названием MF_BaseProfile. Для этого используй графу Materials → Advanced → Material Function.

image-2.png

image-3.png

Открой её и добавь MaterialAttributes.

image-4.png

image-5.png

Сюда же можно добавить необходимые параметры: BaseColor, Metallic, Specular, Roughness и так далее.

image-6.png

image-7.png

Дальше подключи необходимые параметры. Мы начнём с BaseColor.

image.gif

Аналогично сделай с остальными параметрами: Specular, Roughness, Texture и Normal. Нормал мы выбираем дефолтный, остальные параметры оставляем без дополнительной информации.

image-8.png

Базовый материал готов!

image-9.png

Используем функцию

Теперь давай используем функцию, чтобы создать слоёный материал. Для этого необходимо обратиться в графе Material, выбрать Layered Material и создать Material Layer.

image-10.png

Мы назвали его MF_Base.

image-11.png

Открой его и удали лишнее.

image-12.png

image-13.png

Сейчас можно подключить сюда нашу функцию, которую создали ранее. Не забывай сохранять изменения в материале! Всё применяем, сохраняем, закрываем и двигаемся дальше.

image-10.gif

Дальше создай Material, мы его назвали MML_Base.

image-14.png

image-15.png

Открой, выбири наш шейдер и поставь галочку, чтобы он использовал Material Attributes.

image-16.png

Добавь и подключи:
GetMaterialAttributes, SetMaterialAttributes и MaterialAttributeLayers.

image-17.png

Открой DefoultLayers и выбери недавно созданный материал ML_Base.

Не забудь сохранить (Apply).png

Создай от этого материала Material Instance и назови его MMLI_Base.

image-18.png

Примени его на все меши, что есть.

image-11.gif

Ты можешь в любой момент зайти и проверить, что он действительно слоёный. Также есть возможность в любой момент создать ещё какие-либо слои.
Давай добавим слой другого цвета.

image-4.gif

Делаем материал для смешивания слоёв

Теперь встаёт вопрос: как сделать так, чтобы на одной фигуре мы видели сочетание разных материалов? Для этого нам необходимо создать дополнительный материал, который будет отвечать за смешивание наших слоёв. Делаем!

image-19.png

Назвали его MLB_Texture. Открыв его, видим перед собой следующую картину: два входящих слоя (A и B) и маска, по которой они смешиваются (Alpha).

image-20.png

Всё, что нужно сделать, — придумать, как будет работать наша маска. В нашем случае используем самую простую.

image-12.gif

Всё, фактически мы сейчас подключили чёрно-белую маску в альфу. Давай посмотрим, как она будет работать. Для этого вернись на карту с мешами. Открой MMLI_Base, выбери верхний слой и укажи, что хочешь для смешивания использовать MLB_Texture. После небольшого ожидания наслаждайся результатом.

image-13.gif

Слоёный материал — это здорово, конечно. Но как насчёт чего-то поинтереснее? Давай сделаем так, чтобы чёрно-белая маска создавалась в местах соединения мешей.

Открой MLB_Texture, создай DistanceFieldApproxaAO и вставь его в канал Alpha вместо Noise_Texture. Добавь два параметра: BaseDistance и Radius; выстави для них значения Default Value 15.0 и 150.0 соответственно.

image-21.png

Примени и смотри на результат:

Маска распространяется от низа к верху, потому что меши сейчас находятся очень близко к поверхности.gif

Мы можем передвигать меши, совмещая их друг с другом. Тогда в местах соединения у нас также будет видна маска.

image-14.gif

Вот таким образом создаётся самый простой слоёный материал. В любой момент ты можешь легко всё изменить: например, поменять цвет материала, который накладывается.

image-15.gif

Вариантов использования существует огромное множество, ведь придумывать маски мы можем абсолютно любые. Как вот такие, генерёжные, так и, допустим, с текстурами, подгруженными из других источников: Substance Painter, Substance Designer и любых других. Схемы зачастую куда более расширенные, но главный алгоритм ты уже знаешь.

image-16.gif

Помимо того, что играться с мешами стало куда интереснее, это полезный инструмент для создания пыли, потёртостей, выцветшей краски и прочих мелочей, которые сделают твою работу сочнее и интереснее. А мы ведь тут для этого и собрались — сделать твой арт ещё более выразительным и колоритным.

780 0 850 5
2
2025-10-16
Здорово! Спасибо за урок!)
2025-10-20
Пожалуйста сделайте такой же тутор в юнити, на анриале куча похожих туторов а на юньке пару допотопных)
RENDER.RU