HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>6 сен 2024</li>
2 <ul><li>6 сен 2024</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Разбираем структуру редактора материалов и учимся создавать материалы с нуля.</p>
4 </ul><p>Разбираем структуру редактора материалов и учимся создавать материалы с нуля.</p>
5 <p>Иллюстрация: Unreal Engine / Annie для Skillbox Media</p>
5 <p>Иллюстрация: Unreal Engine / Annie для Skillbox Media</p>
6 <p>Считает игры произведениями искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.</p>
6 <p>Считает игры произведениями искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.</p>
7 <p>Редакция "Геймдев" Skillbox Media продолжает цикл уроков по Unreal Engine 5. Прошлые материалы были посвящены особенностям<a>установки</a>редактора UE, а также обновлённому<a>интерфейсу</a>программы и работе с ассетами в <a>каталоге ресурсов</a>. В новом туториале мы разберём одну из самых важных основ Unreal Engine - работу с материалами.</p>
7 <p>Редакция "Геймдев" Skillbox Media продолжает цикл уроков по Unreal Engine 5. Прошлые материалы были посвящены особенностям<a>установки</a>редактора UE, а также обновлённому<a>интерфейсу</a>программы и работе с ассетами в <a>каталоге ресурсов</a>. В новом туториале мы разберём одну из самых важных основ Unreal Engine - работу с материалами.</p>
8 <p>Руководство составлено на основе версии 5.0.2.</p>
8 <p>Руководство составлено на основе версии 5.0.2.</p>
9 <p>Материалы отвечают за внешний вид и свойства поверхностей всех объектов в сцене -<strong>Статических сеток/мешей</strong>(Static Mesh), то есть стандартных объектов со статическим типом геометрии;<strong>Скелетных сеток</strong>(Skeletal Mesh), то есть объектов с ригом; ландшафта; пользовательского интерфейса и визуальных эффектов.</p>
9 <p>Материалы отвечают за внешний вид и свойства поверхностей всех объектов в сцене -<strong>Статических сеток/мешей</strong>(Static Mesh), то есть стандартных объектов со статическим типом геометрии;<strong>Скелетных сеток</strong>(Skeletal Mesh), то есть объектов с ригом; ландшафта; пользовательского интерфейса и визуальных эффектов.</p>
10 <p>Прежде всего рассмотрим структуру внутреннего редактора Unreal Engine 5, в котором создаются материалы. В качестве примера возьмём набор<strong>Starter Content</strong>, где содержится базовый контент для проектов в Unreal Engine. Этот набор можно загрузить в любой проект, вызвав контекстное меню в <strong>Каталоге ресурсов</strong>(Content Browser), который мы разбирали в одном из прошлых уроков.</p>
10 <p>Прежде всего рассмотрим структуру внутреннего редактора Unreal Engine 5, в котором создаются материалы. В качестве примера возьмём набор<strong>Starter Content</strong>, где содержится базовый контент для проектов в Unreal Engine. Этот набор можно загрузить в любой проект, вызвав контекстное меню в <strong>Каталоге ресурсов</strong>(Content Browser), который мы разбирали в одном из прошлых уроков.</p>
11 <p>Открываем каталог ресурсов, разворачиваем папку<strong>Starter Content</strong> - и в подкатегории<strong>Materials</strong>открываем какой-нибудь материал. Двойной клик<strong>ЛКМ</strong>по значку материала откроет отдельное окно редактора для создания и изменения материалов. При необходимости его можно интегрировать в интерфейс основного редактора.</p>
11 <p>Открываем каталог ресурсов, разворачиваем папку<strong>Starter Content</strong> - и в подкатегории<strong>Materials</strong>открываем какой-нибудь материал. Двойной клик<strong>ЛКМ</strong>по значку материала откроет отдельное окно редактора для создания и изменения материалов. При необходимости его можно интегрировать в интерфейс основного редактора.</p>
12 Встраивание редактора материалов в структуру Unreal Editor<p><strong>Редактор материалов</strong>представляет собой отдельное окно с графом на основе системы нодов, связки которых формируют окончательный вид материала.</p>
12 Встраивание редактора материалов в структуру Unreal Editor<p><strong>Редактор материалов</strong>представляет собой отдельное окно с графом на основе системы нодов, связки которых формируют окончательный вид материала.</p>
13 Раздел редактора материалов и его элементы<em>Скриншот: Unreal Editor / Epic Games</em><p>Главное меню (№1) содержит базовые функции и частично дублирует опции из основного интерфейса Unreal Editor и <strong>Каталога ресурсов</strong>(Content Browser).</p>
13 Раздел редактора материалов и его элементы<em>Скриншот: Unreal Editor / Epic Games</em><p>Главное меню (№1) содержит базовые функции и частично дублирует опции из основного интерфейса Unreal Editor и <strong>Каталога ресурсов</strong>(Content Browser).</p>
14 <p>На панели с ярлыками (№2) расположены кнопки, связанные с основными операциями в редакторе материалов<strong></strong>и в<strong></strong>самом графе.</p>
14 <p>На панели с ярлыками (№2) расположены кнопки, связанные с основными операциями в редакторе материалов<strong></strong>и в<strong></strong>самом графе.</p>
15 <ul><li><strong>Значок дискеты</strong> - сохранение текущего ассета.</li>
15 <ul><li><strong>Значок дискеты</strong> - сохранение текущего ассета.</li>
16 <li><strong>Папка с лупой</strong> - поиск и выделение текущего ассета в <strong>Каталоге ресурсов</strong>(Content Browser).</li>
16 <li><strong>Папка с лупой</strong> - поиск и выделение текущего ассета в <strong>Каталоге ресурсов</strong>(Content Browser).</li>
17 <li><strong>Применить</strong>(Apply) - компиляция шейдеров: сохранение всех изменений, внесённых в структуру материала. Если этот материал наложен на какой-либо актор в сцене, то после компиляции изменения отобразятся и во вьюпорте.</li>
17 <li><strong>Применить</strong>(Apply) - компиляция шейдеров: сохранение всех изменений, внесённых в структуру материала. Если этот материал наложен на какой-либо актор в сцене, то после компиляции изменения отобразятся и во вьюпорте.</li>
18 <li><strong>Поиск</strong>(Search) - поиск нодов материала по названию.</li>
18 <li><strong>Поиск</strong>(Search) - поиск нодов материала по названию.</li>
19 <li><strong>В начало</strong>(Home) - переключение на основной нод материала. Удобно при создании сложных схем.</li>
19 <li><strong>В начало</strong>(Home) - переключение на основной нод материала. Удобно при создании сложных схем.</li>
20 <li><strong>Иерархия</strong>(Hierarchy) - отображение списка всех дочерних нодов по отношению к выделенному ноду.</li>
20 <li><strong>Иерархия</strong>(Hierarchy) - отображение списка всех дочерних нодов по отношению к выделенному ноду.</li>
21 <li><strong>Оперативное обновление</strong>(Live Update) - настройки отображения материалов в реальном времени.</li>
21 <li><strong>Оперативное обновление</strong>(Live Update) - настройки отображения материалов в реальном времени.</li>
22 <li><strong>Вычистить граф</strong>(Clean Graph) - удаление нодов, не связанных со структурой материала.</li>
22 <li><strong>Вычистить граф</strong>(Clean Graph) - удаление нодов, не связанных со структурой материала.</li>
23 <li><strong>Состояние предпросмотра</strong>(Preview State) - настройки отображения 3D-вьюпорта.</li>
23 <li><strong>Состояние предпросмотра</strong>(Preview State) - настройки отображения 3D-вьюпорта.</li>
24 <li><strong>Скрыть несвязанные</strong>(Hide Unrelated) - сокрытие всех невыделенных нодов.</li>
24 <li><strong>Скрыть несвязанные</strong>(Hide Unrelated) - сокрытие всех невыделенных нодов.</li>
25 <li><strong>Показатели</strong>(Stats) - вывод/сокрытие статистики по данным материала. Отображается в виде дополнительной вкладки в нижней части редактора материалов.</li>
25 <li><strong>Показатели</strong>(Stats) - вывод/сокрытие статистики по данным материала. Отображается в виде дополнительной вкладки в нижней части редактора материалов.</li>
26 <li><strong>Показатели платформы</strong>(Platform Stats) - вывод информации о компиляции и ошибках, если они присутствуют в структуре материала.</li>
26 <li><strong>Показатели платформы</strong>(Platform Stats) - вывод информации о компиляции и ошибках, если они присутствуют в структуре материала.</li>
27 </ul><p><strong>Окно вьюпорта</strong>(№3) отображает материал в трёхмерном окружении. В верхней части находится несколько вкладок с дополнительными настройками. Кнопка с тремя полосками - меню с базовыми настройками вьюпорта: включение/отключение изменений<strong>В реальном времени</strong>(Realtime),<strong>Просмотр показателей</strong>(Stats) и счётчик кадров в секунду -<strong>Показать FPS</strong>(Show FPS). Также здесь расположены ползунки для настройки угла обзора.</p>
27 </ul><p><strong>Окно вьюпорта</strong>(№3) отображает материал в трёхмерном окружении. В верхней части находится несколько вкладок с дополнительными настройками. Кнопка с тремя полосками - меню с базовыми настройками вьюпорта: включение/отключение изменений<strong>В реальном времени</strong>(Realtime),<strong>Просмотр показателей</strong>(Stats) и счётчик кадров в секунду -<strong>Показать FPS</strong>(Show FPS). Также здесь расположены ползунки для настройки угла обзора.</p>
28 <p>Вкладки<strong>В перспективе</strong>(Perspective) и <strong>С освещением</strong>(Lit) схожи с аналогичными опциями основного вьюпорта Unreal Editor.</p>
28 <p>Вкладки<strong>В перспективе</strong>(Perspective) и <strong>С освещением</strong>(Lit) схожи с аналогичными опциями основного вьюпорта Unreal Editor.</p>
29 <p><strong>Показать</strong>(Show) содержит дополнительные функции:<strong>Показатели</strong>(Stats) в реальном времени,<strong>Решётку</strong>(Grid), то есть сетку панели предпросмотра, и <strong>Фон</strong>(Background) окружения.</p>
29 <p><strong>Показать</strong>(Show) содержит дополнительные функции:<strong>Показатели</strong>(Stats) в реальном времени,<strong>Решётку</strong>(Grid), то есть сетку панели предпросмотра, и <strong>Фон</strong>(Background) окружения.</p>
30 <p>В правом нижнем углу 3D-вьюпорта расположены кнопки с изображением цилиндра, сферы, плоскости и куба. Их используют для "примерки" материала на том или ином типе геометрии. Последний значок с изображением кирпича накладывает материал на объект, относящийся к типу<strong>Статической сетки</strong>(Static Mesh), который пользователь до этого выбрал в каталоге ресурсов. Если просто нажать на эту кнопку, редактор напомнит, что сначала необходимо выбрать объект, на который нужно спроецировать материал.</p>
30 <p>В правом нижнем углу 3D-вьюпорта расположены кнопки с изображением цилиндра, сферы, плоскости и куба. Их используют для "примерки" материала на том или ином типе геометрии. Последний значок с изображением кирпича накладывает материал на объект, относящийся к типу<strong>Статической сетки</strong>(Static Mesh), который пользователь до этого выбрал в каталоге ресурсов. Если просто нажать на эту кнопку, редактор напомнит, что сначала необходимо выбрать объект, на который нужно спроецировать материал.</p>
31 Опции предпросмотра материала на разных типах геометрии. При нажатии на значок кирпича во вьюпорте отображается меш ящика, так как он заранее был выделен в каталоге ресурсов<p>Панель<strong>Сведения</strong>(Details) (№4) показывает свойства выбранного в текущий момент нода. Если на гр<strong>а</strong>фе ничего не выделено, панель отобразит основные параметры редактируемого материала.</p>
31 Опции предпросмотра материала на разных типах геометрии. При нажатии на значок кирпича во вьюпорте отображается меш ящика, так как он заранее был выделен в каталоге ресурсов<p>Панель<strong>Сведения</strong>(Details) (№4) показывает свойства выбранного в текущий момент нода. Если на гр<strong>а</strong>фе ничего не выделено, панель отобразит основные параметры редактируемого материала.</p>
32 <p>Большинство операций в редакторе материалов происходит в окне<strong>Графа материалов</strong>(Material Graph) - №5. Это пространство для сборки нодов-компонентов. По умолчанию в гр<strong>а</strong>фе есть только один главный нод с большим количеством слотов-свойств, к которым пользователь "подключает" дополнительные ноды и таким образом формирует поверхность материала.</p>
32 <p>Большинство операций в редакторе материалов происходит в окне<strong>Графа материалов</strong>(Material Graph) - №5. Это пространство для сборки нодов-компонентов. По умолчанию в гр<strong>а</strong>фе есть только один главный нод с большим количеством слотов-свойств, к которым пользователь "подключает" дополнительные ноды и таким образом формирует поверхность материала.</p>
33 <p>Справа от окна графа расположена панель<strong>Палитры</strong>(Palette) (№6). В ней содержатся все типы нодов. По умолчанию<strong>Палитра</strong>(Palette) скрыта. Клик по значку с канцелярской кнопкой зафиксирует эту вкладку во время работы. Чтобы необходимый компонент появился в гр<strong>а</strong>фе, достаточно перетащить его из списка, удерживая<strong>ЛКМ</strong>.</p>
33 <p>Справа от окна графа расположена панель<strong>Палитры</strong>(Palette) (№6). В ней содержатся все типы нодов. По умолчанию<strong>Палитра</strong>(Palette) скрыта. Клик по значку с канцелярской кнопкой зафиксирует эту вкладку во время работы. Чтобы необходимый компонент появился в гр<strong>а</strong>фе, достаточно перетащить его из списка, удерживая<strong>ЛКМ</strong>.</p>
34 Закрепление<strong>Палитры</strong>(Palette) в редакторе и перемещение элементов в поле графа<p><strong>Примечание</strong></p>
34 Закрепление<strong>Палитры</strong>(Palette) в редакторе и перемещение элементов в поле графа<p><strong>Примечание</strong></p>
35 <p>Помимо поисковой строки, подходящие ноды можно искать вручную в категориях из выпадающего списка<strong>Категория</strong>(Category), расположенного в верхней части<strong>Палитры</strong>(Palette). Также список с компонентами вызывается нажатием<strong>ПКМ</strong>по пустой области графа.</p>
35 <p>Помимо поисковой строки, подходящие ноды можно искать вручную в категориях из выпадающего списка<strong>Категория</strong>(Category), расположенного в верхней части<strong>Палитры</strong>(Palette). Также список с компонентами вызывается нажатием<strong>ПКМ</strong>по пустой области графа.</p>
36 Вызов списка компонентов правым кликом в Графе материалов (Material Graph)<p>Навигация в 3D-вьюпорте осуществляется с помощью мыши:</p>
36 Вызов списка компонентов правым кликом в Графе материалов (Material Graph)<p>Навигация в 3D-вьюпорте осуществляется с помощью мыши:</p>
37 <ul><li><strong>ЛКМ</strong>с удержанием - вращение вокруг меша;</li>
37 <ul><li><strong>ЛКМ</strong>с удержанием - вращение вокруг меша;</li>
38 <li><strong>ПКМ</strong>с удержанием и <strong>колёсико мыши</strong> - приближение/отдаление;</li>
38 <li><strong>ПКМ</strong>с удержанием и <strong>колёсико мыши</strong> - приближение/отдаление;</li>
39 <li><strong>СКМ</strong>с удержанием - перемещение в пространстве сцены.</li>
39 <li><strong>СКМ</strong>с удержанием - перемещение в пространстве сцены.</li>
40 </ul><p>Навигация в окне<strong>Графа материалов</strong>(Material Graph) достаточно интуитивна, и её принцип схож с редакторами нодов в других программах, например в Blender:</p>
40 </ul><p>Навигация в окне<strong>Графа материалов</strong>(Material Graph) достаточно интуитивна, и её принцип схож с редакторами нодов в других программах, например в Blender:</p>
41 <ul><li><strong>ЛКМ</strong>с удержанием и перемещение курсора в сторону - выделение области;</li>
41 <ul><li><strong>ЛКМ</strong>с удержанием и перемещение курсора в сторону - выделение области;</li>
42 <li><strong>ПКМ</strong>с удержанием - перемещение по области;</li>
42 <li><strong>ПКМ</strong>с удержанием - перемещение по области;</li>
43 <li><strong>колёсико мыши</strong> - приближение/отдаление.</li>
43 <li><strong>колёсико мыши</strong> - приближение/отдаление.</li>
44 </ul><p>Теперь попробуем сделать материал с нуля. Создаём отдельную папку в каталоге ресурсов:<strong>ПКМ - Новая папка</strong>(New Folder); даём ей название и открываем. Внутри кликом<strong>ПКМ</strong>по пустой области окна вызываем меню ассетов и выбираем<strong>Материал</strong>(Material). После этого появится новый ассет материала, которому также нужно дать имя.</p>
44 </ul><p>Теперь попробуем сделать материал с нуля. Создаём отдельную папку в каталоге ресурсов:<strong>ПКМ - Новая папка</strong>(New Folder); даём ей название и открываем. Внутри кликом<strong>ПКМ</strong>по пустой области окна вызываем меню ассетов и выбираем<strong>Материал</strong>(Material). После этого появится новый ассет материала, которому также нужно дать имя.</p>
45 Созданный ассет материала в <strong>Каталоге ресурсов</strong>(Content Browser)<em>Скриншот: Unreal Editor / Epic Games</em><p>Двойной клик<strong>ЛКМ</strong>по ассету откроет редактор материалов. Для начала попробуем создать цветной материал. В Unreal Engine за цвет отвечает узел<strong>Constant3Vector</strong>. Находим его в <strong>Палитре</strong>(Pallete) и переносим в область графа.</p>
45 Созданный ассет материала в <strong>Каталоге ресурсов</strong>(Content Browser)<em>Скриншот: Unreal Editor / Epic Games</em><p>Двойной клик<strong>ЛКМ</strong>по ассету откроет редактор материалов. Для начала попробуем создать цветной материал. В Unreal Engine за цвет отвечает узел<strong>Constant3Vector</strong>. Находим его в <strong>Палитре</strong>(Pallete) и переносим в область графа.</p>
46 Стрелками отмечен порядок действий, описанный выше.<em>Скриншот: Unreal Editor / Epic Games</em><p>Двойной клик по созданному ноду открывает окно с выбором цвета. В более ранних версиях движка<strong>Значение</strong>(Value) - второй столбец справа от цветового круга - по умолчанию было нулевым, поэтому превью нода оставалось чёрным даже при выборе цвета, и его приходилось регулировать вручную. В 5.4 значение автоматически стоит на максимуме, и его регулируют, если нужно изменить насыщенность цвета.</p>
46 Стрелками отмечен порядок действий, описанный выше.<em>Скриншот: Unreal Editor / Epic Games</em><p>Двойной клик по созданному ноду открывает окно с выбором цвета. В более ранних версиях движка<strong>Значение</strong>(Value) - второй столбец справа от цветового круга - по умолчанию было нулевым, поэтому превью нода оставалось чёрным даже при выборе цвета, и его приходилось регулировать вручную. В 5.4 значение автоматически стоит на максимуме, и его регулируют, если нужно изменить насыщенность цвета.</p>
47 Изменение<strong>Значения</strong>(Value) и установка цвета в редакторе материалов<p>После того как цвет выбран, его нужно связать с основой, а точнее - со слотом<strong>Базовый цвет</strong>(Base Color) главного нода.</p>
47 Изменение<strong>Значения</strong>(Value) и установка цвета в редакторе материалов<p>После того как цвет выбран, его нужно связать с основой, а точнее - со слотом<strong>Базовый цвет</strong>(Base Color) главного нода.</p>
48 <p><strong>Примечание</strong></p>
48 <p><strong>Примечание</strong></p>
49 <p>Чтобы разорвать связь между нодами, достаточно кликнуть<strong>ПКМ</strong>по ячейке и во всплывающем меню выбрать пункт<strong>Разорвать эту ссылку</strong>(Break This Link).</p>
49 <p>Чтобы разорвать связь между нодами, достаточно кликнуть<strong>ПКМ</strong>по ячейке и во всплывающем меню выбрать пункт<strong>Разорвать эту ссылку</strong>(Break This Link).</p>
50 <p>После этого материал станет цветным. Но задействовать его в сцене пока нельзя, так как шейдеры ещё не скомпилированы. Нажимаем уже знакомую нам кнопку<strong>Применить</strong>(Apply). После этого можно "примерить" материал на любой объект сцены.</p>
50 <p>После этого материал станет цветным. Но задействовать его в сцене пока нельзя, так как шейдеры ещё не скомпилированы. Нажимаем уже знакомую нам кнопку<strong>Применить</strong>(Apply). После этого можно "примерить" материал на любой объект сцены.</p>
51 <p>Цвет материала можно изменить сразу на панели<strong>Сведения</strong>(Details) в разделе<strong>Constant</strong>, выделив соответствующий нод в графе. После каждого изменения не забывайте о компиляции -<strong>Применить</strong>(Apply). Если по каким-то причинам необходимо вернуться к предыдущему цвету, достаточно нажать Ctrl + Z, а затем снова скомпилировать и сохранить ресурс (значок дискеты).</p>
51 <p>Цвет материала можно изменить сразу на панели<strong>Сведения</strong>(Details) в разделе<strong>Constant</strong>, выделив соответствующий нод в графе. После каждого изменения не забывайте о компиляции -<strong>Применить</strong>(Apply). Если по каким-то причинам необходимо вернуться к предыдущему цвету, достаточно нажать Ctrl + Z, а затем снова скомпилировать и сохранить ресурс (значок дискеты).</p>
52 Изменение цвета материала в редакторе материалов через панель<strong>Сведения</strong>(Details)<em>Скриншот: Unreal Editor / Epic Games</em><p>Усложним задачу и добавим материалу свойство, которое будет влиять на отображение поверхности, - например,<strong>Шероховатость</strong>(Roughness). Данный параметр зависит от цифрового значения, за которое отвечает нод<strong>Constant</strong>. Находим его в списке<strong>Палитры</strong>(Palette) и перемещаем в окно графов. При выделении нода<strong>Constant</strong>на панели<strong>Сведения</strong>(Details) слева появится вкладка<strong>Material Expression Constant</strong>и чуть ниже - опция<strong>Value</strong>, где можно ввести желаемое значение. В 5.4 значение можно ввести непосредственно в самом ноде.</p>
52 Изменение цвета материала в редакторе материалов через панель<strong>Сведения</strong>(Details)<em>Скриншот: Unreal Editor / Epic Games</em><p>Усложним задачу и добавим материалу свойство, которое будет влиять на отображение поверхности, - например,<strong>Шероховатость</strong>(Roughness). Данный параметр зависит от цифрового значения, за которое отвечает нод<strong>Constant</strong>. Находим его в списке<strong>Палитры</strong>(Palette) и перемещаем в окно графов. При выделении нода<strong>Constant</strong>на панели<strong>Сведения</strong>(Details) слева появится вкладка<strong>Material Expression Constant</strong>и чуть ниже - опция<strong>Value</strong>, где можно ввести желаемое значение. В 5.4 значение можно ввести непосредственно в самом ноде.</p>
53 <p>Вносим любое число в диапазоне от 0 до 1. Так, 1 - матовая, бархатистая поверхность, 0,5 - мягкий блик, 0 - зеркальная поверхность. После этого подключаем слот<strong>Constant</strong>к параметру<strong>Шероховатость</strong>(Roughness) и смотрим результат.</p>
53 <p>Вносим любое число в диапазоне от 0 до 1. Так, 1 - матовая, бархатистая поверхность, 0,5 - мягкий блик, 0 - зеркальная поверхность. После этого подключаем слот<strong>Constant</strong>к параметру<strong>Шероховатость</strong>(Roughness) и смотрим результат.</p>
54 Материал с подключённым параметром Шероховатость (Roughness); значение 0,3<em>Скриншот: Unreal Editor / Epic Games</em><p>Также можно придать материалу эффект "металлик", подключив значение к слоту<strong>Металл</strong>(Metallic). Для этого потребуется ещё один нод<strong>Constant</strong>(его можно добавить, продублировав предыдущий: выделить первый нод<strong>Constant</strong>и нажать<strong>Ctrl + С</strong>→<strong>Ctrl + V</strong>). Выставляем новое значение на своё усмотрение, соединяем ноды и смотрим результат.</p>
54 Материал с подключённым параметром Шероховатость (Roughness); значение 0,3<em>Скриншот: Unreal Editor / Epic Games</em><p>Также можно придать материалу эффект "металлик", подключив значение к слоту<strong>Металл</strong>(Metallic). Для этого потребуется ещё один нод<strong>Constant</strong>(его можно добавить, продублировав предыдущий: выделить первый нод<strong>Constant</strong>и нажать<strong>Ctrl + С</strong>→<strong>Ctrl + V</strong>). Выставляем новое значение на своё усмотрение, соединяем ноды и смотрим результат.</p>
55 Схема нодов, в результате которой получился материал с перламутровым покрытием<em>Скриншот: Unreal Editor / Epic Games</em><p><strong>Примечание</strong></p>
55 Схема нодов, в результате которой получился материал с перламутровым покрытием<em>Скриншот: Unreal Editor / Epic Games</em><p><strong>Примечание</strong></p>
56 <p>Unreal Engine использует PBR -<a>метод</a>рендеринга и наложения шейдеров, который напрямую влияет на освещение и достоверное отображение объектов с параметрами<strong>Металл</strong>(Metallic) и <strong>Шероховатость</strong>(Roughness), учитывая при этом свойства физики. Благодаря сочетанию их значений можно добиваться различных фактур: например, зеркальной (Металл 1 и Шероховатость 0), глянцевой (Металл 0 и Шероховатость 0) или перламутровой поверхности (Металл 0,5-0,6 и Шероховатость 0,3).</p>
56 <p>Unreal Engine использует PBR -<a>метод</a>рендеринга и наложения шейдеров, который напрямую влияет на освещение и достоверное отображение объектов с параметрами<strong>Металл</strong>(Metallic) и <strong>Шероховатость</strong>(Roughness), учитывая при этом свойства физики. Благодаря сочетанию их значений можно добиваться различных фактур: например, зеркальной (Металл 1 и Шероховатость 0), глянцевой (Металл 0 и Шероховатость 0) или перламутровой поверхности (Металл 0,5-0,6 и Шероховатость 0,3).</p>
57 Загрузка материала на объект в сцене методом перетаскивания<p>Теперь попробуем создать на новом материале эффект потёртости. Для этого потребуется чёрно-белая текстура с эффектом шума или пятен. Её можно загрузить как из набора<strong>Starter Content</strong>, так и из собственных коллекций на жёстком диске. Для примера в этом уроке использован ассет текстуры<strong>T_Perlin_Noise_M</strong>из набора<strong>Starter Content</strong>. Открываем<strong>Каталог ресурсов</strong>(Content Browser) или вызываем<strong>Панель ресурсов</strong>(Content Drawer) -<strong>Ctrl + Space</strong> - и перемещаем нужную текстуру в область графа. Это можно сделать без переключения окон: во время перемещения файлов окно редактора материалов откроется автоматически.</p>
57 Загрузка материала на объект в сцене методом перетаскивания<p>Теперь попробуем создать на новом материале эффект потёртости. Для этого потребуется чёрно-белая текстура с эффектом шума или пятен. Её можно загрузить как из набора<strong>Starter Content</strong>, так и из собственных коллекций на жёстком диске. Для примера в этом уроке использован ассет текстуры<strong>T_Perlin_Noise_M</strong>из набора<strong>Starter Content</strong>. Открываем<strong>Каталог ресурсов</strong>(Content Browser) или вызываем<strong>Панель ресурсов</strong>(Content Drawer) -<strong>Ctrl + Space</strong> - и перемещаем нужную текстуру в область графа. Это можно сделать без переключения окон: во время перемещения файлов окно редактора материалов откроется автоматически.</p>
58 Перемещение текстуры из каталога ресурсов в редактор материалов<p>В окне графов появился нод<strong>Texture Sample</strong>. Если текстура чёрно-белая, как в нашем случае, её свойство RGB можно связать с <strong>Шероховатостью</strong>(Roughness) и тем самым изменить поверхность меша. Чёрные пятна на монохромной текстуре дают блики, а светлые - матовый эффект. В итоге это сделает поверхность более реалистичной за счёт неравномерного отражения.</p>
58 Перемещение текстуры из каталога ресурсов в редактор материалов<p>В окне графов появился нод<strong>Texture Sample</strong>. Если текстура чёрно-белая, как в нашем случае, её свойство RGB можно связать с <strong>Шероховатостью</strong>(Roughness) и тем самым изменить поверхность меша. Чёрные пятна на монохромной текстуре дают блики, а светлые - матовый эффект. В итоге это сделает поверхность более реалистичной за счёт неравномерного отражения.</p>
59 Результат после подключения бесцветной текстуры в слот Шероховатость (Roughness)<em>Скриншот: Unreal Editor / Epic Games</em><p>Теперь вернём изначальные свойства, отключив нод с текстурой и вернув прежний показатель шероховатости, и попробуем испачкать материал. В качестве примера возьмём текстуру<strong>T_Metal_Rust_D</strong>из <strong>Starter Content</strong>.</p>
59 Результат после подключения бесцветной текстуры в слот Шероховатость (Roughness)<em>Скриншот: Unreal Editor / Epic Games</em><p>Теперь вернём изначальные свойства, отключив нод с текстурой и вернув прежний показатель шероховатости, и попробуем испачкать материал. В качестве примера возьмём текстуру<strong>T_Metal_Rust_D</strong>из <strong>Starter Content</strong>.</p>
60 <p>Переносим её в окно графа. Если напрямую связать слот<strong>RGB</strong>нового нода с нодом<strong>Базовый цвет</strong>(Base Color), текстура займёт всю поверхность материала. Но в нашем случае она должна отображаться частично и в определённых местах. Для этого потребуется нод<strong>LinearInterpolate</strong>(<strong>Lerp</strong>), который позволяет смешивать несколько узлов между собой.</p>
60 <p>Переносим её в окно графа. Если напрямую связать слот<strong>RGB</strong>нового нода с нодом<strong>Базовый цвет</strong>(Base Color), текстура займёт всю поверхность материала. Но в нашем случае она должна отображаться частично и в определённых местах. Для этого потребуется нод<strong>LinearInterpolate</strong>(<strong>Lerp</strong>), который позволяет смешивать несколько узлов между собой.</p>
61 <p>Находим его в <strong>Палитре</strong>(Palette) и перетаскиваем в область графа. Основной цвет связываем со слотом<strong>А</strong>, а нод с текстурой ржавчины подключаем к слоту<strong>B</strong>. В качестве альфа-слоя подойдёт чёрно-белая текстура шума, которую мы использовали ранее. Связываем её выход<strong>RGB</strong>с каналом<strong>Alpha</strong>у нода<strong>LinearInterpolate</strong>, а его, в свою очередь, с<strong>Базовым цветом</strong>(Base Color) - и смотрим результат.</p>
61 <p>Находим его в <strong>Палитре</strong>(Palette) и перетаскиваем в область графа. Основной цвет связываем со слотом<strong>А</strong>, а нод с текстурой ржавчины подключаем к слоту<strong>B</strong>. В качестве альфа-слоя подойдёт чёрно-белая текстура шума, которую мы использовали ранее. Связываем её выход<strong>RGB</strong>с каналом<strong>Alpha</strong>у нода<strong>LinearInterpolate</strong>, а его, в свою очередь, с<strong>Базовым цветом</strong>(Base Color) - и смотрим результат.</p>
62 Схема подключения и отображение обновлённого материала в сцене<em>Скриншот: Unreal Editor / Epic Games</em><p>Теперь попробуем создать новый материал на основе трёх текстур:</p>
62 Схема подключения и отображение обновлённого материала в сцене<em>Скриншот: Unreal Editor / Epic Games</em><p>Теперь попробуем создать новый материал на основе трёх текстур:</p>
63 <ul><li>основа - слот<strong>Базовый цвет</strong>(Base Color);</li>
63 <ul><li>основа - слот<strong>Базовый цвет</strong>(Base Color);</li>
64 <li>карта нормалей для подчёркивания фактуры - слот<strong>Обычный</strong>(Normal);</li>
64 <li>карта нормалей для подчёркивания фактуры - слот<strong>Обычный</strong>(Normal);</li>
65 <li>чёрно-белый вариант для реалистичных бликов и потёртостей - слот<strong>Шероховатость</strong>(Roughness).</li>
65 <li>чёрно-белый вариант для реалистичных бликов и потёртостей - слот<strong>Шероховатость</strong>(Roughness).</li>
66 </ul><p>В качестве примера вновь воспользуемся контентом из <strong>Starter Content</strong>. Мы выбрали три текстуры<strong>T_Wood_Floor_Walnut</strong>. Если хотите подгрузить свои - их можно поместить в новую папку или перенести в уже существующую методом перетаскивания из проводника. Перед работой также убедитесь, что в текстуре для нормали не стоит галочка напротив параметра<strong>sRGB</strong>: движок должен распознать текстуру как дополнительную маску, а не как цветное изображение.</p>
66 </ul><p>В качестве примера вновь воспользуемся контентом из <strong>Starter Content</strong>. Мы выбрали три текстуры<strong>T_Wood_Floor_Walnut</strong>. Если хотите подгрузить свои - их можно поместить в новую папку или перенести в уже существующую методом перетаскивания из проводника. Перед работой также убедитесь, что в текстуре для нормали не стоит галочка напротив параметра<strong>sRGB</strong>: движок должен распознать текстуру как дополнительную маску, а не как цветное изображение.</p>
67 Редактор текстуры (вызывается двойным кликом<strong>ЛКМ</strong>по файлу с текстурой). Красным выделен пункт, с которого надо снять галочку, если это карта нормале<em>Скриншот: Unreal Editor / Epic Games</em><p>Перетаскиваем все три текстуры в редактор материалов и соединяем. С сочетаниями текстур и слотов можно экспериментировать, тогда получатся различные эффекты.</p>
67 Редактор текстуры (вызывается двойным кликом<strong>ЛКМ</strong>по файлу с текстурой). Красным выделен пункт, с которого надо снять галочку, если это карта нормале<em>Скриншот: Unreal Editor / Epic Games</em><p>Перетаскиваем все три текстуры в редактор материалов и соединяем. С сочетаниями текстур и слотов можно экспериментировать, тогда получатся различные эффекты.</p>
68 Пример сборки материала, где чёрно-белая текстура связана со слотом Шероховатости. Так как в ней много светлых участков, а характеристики Металла равны нулю, поверхность стала глянцевой<em>Скриншот: Unreal Editor / Epic Games</em>А в этом случае Шероховатости присвоено значение 0,5, и чёрно-белую текстуру связали с Глянцем - в результате на поверхности появляются серые отблески<em>Скриншот: Unreal Editor / Epic Games</em>Слот чёрно-белой карты подключён к Металлу. Учитывая параметры Шероховатости, поверхность стала практически матовой<em>Скриншот: Unreal Editor / Epic Games</em><p><strong>Примечание</strong></p>
68 Пример сборки материала, где чёрно-белая текстура связана со слотом Шероховатости. Так как в ней много светлых участков, а характеристики Металла равны нулю, поверхность стала глянцевой<em>Скриншот: Unreal Editor / Epic Games</em>А в этом случае Шероховатости присвоено значение 0,5, и чёрно-белую текстуру связали с Глянцем - в результате на поверхности появляются серые отблески<em>Скриншот: Unreal Editor / Epic Games</em>Слот чёрно-белой карты подключён к Металлу. Учитывая параметры Шероховатости, поверхность стала практически матовой<em>Скриншот: Unreal Editor / Epic Games</em><p><strong>Примечание</strong></p>
69 <p>Если текстуру материала нужно заменить, достаточно нажать на вкладку напротив превью изображения в панели<strong>Сведения</strong>(Details). После этого откроется список со всеми текстурами проекта.</p>
69 <p>Если текстуру материала нужно заменить, достаточно нажать на вкладку напротив превью изображения в панели<strong>Сведения</strong>(Details). После этого откроется список со всеми текстурами проекта.</p>
70 <em>Скриншот: Unreal Editor / Epic Games</em><p>На скриншоте выше ноды связаны по самой простой схеме. Скомпилируем материал и перенесём его на объект в сцене (в нашем случае - на условный пол сцены).</p>
70 <em>Скриншот: Unreal Editor / Epic Games</em><p>На скриншоте выше ноды связаны по самой простой схеме. Скомпилируем материал и перенесём его на объект в сцене (в нашем случае - на условный пол сцены).</p>
71 <em>Скриншот: Unreal Editor / Epic Games</em><p>Но что, если нам нужно изменить масштаб узора на поверхности? За масштабирование текстур отвечает нод<strong>TextureCoordinate</strong>.</p>
71 <em>Скриншот: Unreal Editor / Epic Games</em><p>Но что, если нам нужно изменить масштаб узора на поверхности? За масштабирование текстур отвечает нод<strong>TextureCoordinate</strong>.</p>
72 <p>Создаём данный нод. Теперь его действие необходимо применить на все три текстуры. Чтобы избежать лишних дубликатов, создаём дополнительный нод<strong>Multiply</strong>, который повлияет на отображение всех трёх текстур, уменьшая плотность текселей (именно поэтому мы связываем его со слотами<strong>UVs</strong>). Также добавляем в граф вектор<strong>Constant</strong>, так как операция с масштабированием основана на определённой величине. В настройках<strong>Constant</strong>указываем желаемое значение (по умолчанию стоит 1,0. Всё, что выше единицы, - уменьшает изображение, ниже - делает крупнее) и связываем ноды так, как показано на скриншоте ниже.</p>
72 <p>Создаём данный нод. Теперь его действие необходимо применить на все три текстуры. Чтобы избежать лишних дубликатов, создаём дополнительный нод<strong>Multiply</strong>, который повлияет на отображение всех трёх текстур, уменьшая плотность текселей (именно поэтому мы связываем его со слотами<strong>UVs</strong>). Также добавляем в граф вектор<strong>Constant</strong>, так как операция с масштабированием основана на определённой величине. В настройках<strong>Constant</strong>указываем желаемое значение (по умолчанию стоит 1,0. Всё, что выше единицы, - уменьшает изображение, ниже - делает крупнее) и связываем ноды так, как показано на скриншоте ниже.</p>
73 Схема нодов для изменения размера узора текстуры<em>Скриншот: Unreal Editor / Epic Games</em><p>Компилируем результат и сохраняем материал. Теперь при возвращении в сцену видно, что узор текстуры стал заметно крупнее по сравнению с начальным образцом.</p>
73 Схема нодов для изменения размера узора текстуры<em>Скриншот: Unreal Editor / Epic Games</em><p>Компилируем результат и сохраняем материал. Теперь при возвращении в сцену видно, что узор текстуры стал заметно крупнее по сравнению с начальным образцом.</p>
74 <em>Скриншот: Unreal Editor / Epic Games</em><p>Теперь попробуем придать паркету другой оттенок с помощью уже знакомого нам нода<strong>Constant3Vector</strong>. Процесс настройки аналогичен тому, что был описан ранее для первого материала: с помощью узла<strong>Multiply</strong>связываем обычную текстуру и новый нод<strong>Constant3Vector</strong>. Компилируем и смотрим результат в сцене.</p>
74 <em>Скриншот: Unreal Editor / Epic Games</em><p>Теперь попробуем придать паркету другой оттенок с помощью уже знакомого нам нода<strong>Constant3Vector</strong>. Процесс настройки аналогичен тому, что был описан ранее для первого материала: с помощью узла<strong>Multiply</strong>связываем обычную текстуру и новый нод<strong>Constant3Vector</strong>. Компилируем и смотрим результат в сцене.</p>
75 Схема нодов для изменения оттенка текстуры<em>Скриншот: Unreal Editor/ Epic Games</em><p><strong>Примечание</strong></p>
75 Схема нодов для изменения оттенка текстуры<em>Скриншот: Unreal Editor/ Epic Games</em><p><strong>Примечание</strong></p>
76 <p>Комплексные связки можно выстраивать на ходу. Когда вы вытягиваете "нить" из слота нода, достаточно отпустить<strong>ЛКМ</strong> - и на этом месте откроется список доступных узлов.</p>
76 <p>Комплексные связки можно выстраивать на ходу. Когда вы вытягиваете "нить" из слота нода, достаточно отпустить<strong>ЛКМ</strong> - и на этом месте откроется список доступных узлов.</p>
77 Быстрое создание нодов<p>Зная эти базовые приёмы, можно создавать уникальные комбинации нодов с различными характеристиками: добавить эффект грязи/ржавчины или, например, подключить дополнительные слоты вроде<strong>Испускаемого света</strong>(Emission), который отвечает за свечение отдельных частей материала.</p>
77 Быстрое создание нодов<p>Зная эти базовые приёмы, можно создавать уникальные комбинации нодов с различными характеристиками: добавить эффект грязи/ржавчины или, например, подключить дополнительные слоты вроде<strong>Испускаемого света</strong>(Emission), который отвечает за свечение отдельных частей материала.</p>
78 Настройка светящегося контура для материала<em>Скриншот: Unreal Editor / Epic Games</em><p>И помните, что любые внесённые изменения требуют компиляции - кнопка<strong>Применить</strong>(Apply). Чем сложнее структура материала, тем больше времени займёт этот процесс.</p>
78 Настройка светящегося контура для материала<em>Скриншот: Unreal Editor / Epic Games</em><p>И помните, что любые внесённые изменения требуют компиляции - кнопка<strong>Применить</strong>(Apply). Чем сложнее структура материала, тем больше времени займёт этот процесс.</p>
79 <p>Напоследок рассмотрим материалы, которые можно настраивать в реальном времени без постоянных компиляций. Это - зависимые копии материалов, или<strong>Экземпляры материала</strong>(Material Instance), за которыми в сообществе закрепился термин "инстанс-материалы". Их использование упрощает процесс разработки и улучшает производительность в целом.</p>
79 <p>Напоследок рассмотрим материалы, которые можно настраивать в реальном времени без постоянных компиляций. Это - зависимые копии материалов, или<strong>Экземпляры материала</strong>(Material Instance), за которыми в сообществе закрепился термин "инстанс-материалы". Их использование упрощает процесс разработки и улучшает производительность в целом.</p>
80 <p>В <strong>Каталоге ресурсов</strong>(Content Browser) находим последний материал, над которым мы работали. Вызываем всплывающее меню нажатием<strong>ПКМ</strong>по значку ассета и выбираем самый верхний пункт -<strong>Создать экземпляр материала</strong>(Create Material Instance).</p>
80 <p>В <strong>Каталоге ресурсов</strong>(Content Browser) находим последний материал, над которым мы работали. Вызываем всплывающее меню нажатием<strong>ПКМ</strong>по значку ассета и выбираем самый верхний пункт -<strong>Создать экземпляр материала</strong>(Create Material Instance).</p>
81 Белым цветом выделена функция создания экземпляра материала<em>Скриншот: Unreal Editor / Epic Games</em><p>В папке появится копия ассета с припиской<strong>_Inst</strong>. Если мы применим его на любой меш сейчас, он будет выглядеть как и оригинальный материал, так как он обладает теми же характеристиками. Попробуем задать параметр, который позволит регулировать масштаб текстуры в реальном времени. Возвращаемся в граф оригинального материала, находим нод<strong>Constant</strong>, связанный с размером текстур, кликаем по нему<strong>ПКМ</strong>и выбираем<strong>Преобразовать в параметр</strong>(Convert to Parameter).</p>
81 Белым цветом выделена функция создания экземпляра материала<em>Скриншот: Unreal Editor / Epic Games</em><p>В папке появится копия ассета с припиской<strong>_Inst</strong>. Если мы применим его на любой меш сейчас, он будет выглядеть как и оригинальный материал, так как он обладает теми же характеристиками. Попробуем задать параметр, который позволит регулировать масштаб текстуры в реальном времени. Возвращаемся в граф оригинального материала, находим нод<strong>Constant</strong>, связанный с размером текстур, кликаем по нему<strong>ПКМ</strong>и выбираем<strong>Преобразовать в параметр</strong>(Convert to Parameter).</p>
82 Выбор опции Преобразовать в параметр (Convert to Parameter)<em>Скриншот: Unreal Engine / Epic Games</em><p>После конвертации редактор предложит переименовать нод. Назовём его<strong>Size</strong>. Нажимаем<strong>Применить</strong>(Apply) и заходим в редактор экземпляра материала (двойной клик<strong>ЛКМ</strong>по значку созданного инстанс-материала). В панели<strong>Сведения</strong>(Details) во вкладке<strong>Global Scalar Parameter Values</strong>появился параметр<strong>Size</strong>со значением выставленных ранее текстурных координат. Отметим его галочкой. Для наглядности перетащим окно в сторону, чтобы видеть сцену, и выкрутим ползунок<strong>Size</strong>. Масштаб текстуры материала начнёт меняться в реальном времени.</p>
82 Выбор опции Преобразовать в параметр (Convert to Parameter)<em>Скриншот: Unreal Engine / Epic Games</em><p>После конвертации редактор предложит переименовать нод. Назовём его<strong>Size</strong>. Нажимаем<strong>Применить</strong>(Apply) и заходим в редактор экземпляра материала (двойной клик<strong>ЛКМ</strong>по значку созданного инстанс-материала). В панели<strong>Сведения</strong>(Details) во вкладке<strong>Global Scalar Parameter Values</strong>появился параметр<strong>Size</strong>со значением выставленных ранее текстурных координат. Отметим его галочкой. Для наглядности перетащим окно в сторону, чтобы видеть сцену, и выкрутим ползунок<strong>Size</strong>. Масштаб текстуры материала начнёт меняться в реальном времени.</p>
83 Установка параметра для регулировки масштаба текстуры и его изменение в реальном времени<p>Аналогичным способом можно конвертировать и другие свойства (например, цвет, отражение или нормали) без дополнительных манипуляций в графе материалов и постоянных компиляций после каждого изменения. При создании каждого нового параметра в <strong>Сведениях</strong>(Details) экземпляра появляется новая группа настроек, которую необходимо развернуть и отметить галочкой, как мы ранее отмечали опцию<strong>Size</strong>.</p>
83 Установка параметра для регулировки масштаба текстуры и его изменение в реальном времени<p>Аналогичным способом можно конвертировать и другие свойства (например, цвет, отражение или нормали) без дополнительных манипуляций в графе материалов и постоянных компиляций после каждого изменения. При создании каждого нового параметра в <strong>Сведениях</strong>(Details) экземпляра появляется новая группа настроек, которую необходимо развернуть и отметить галочкой, как мы ранее отмечали опцию<strong>Size</strong>.</p>
84 Регулировка оттенка материала в реальном времени. В данном случае опцию Преобразовать в параметр (Convert to Parameter) применили на нод Constant3Vector<p>* * *</p>
84 Регулировка оттенка материала в реальном времени. В данном случае опцию Преобразовать в параметр (Convert to Parameter) применили на нод Constant3Vector<p>* * *</p>
85 <p>Для создания более комплексных схем нодов рекомендуем изучить структуру материалов из контента<strong>Starter Pack</strong>и ознакомиться с функциями компонентов<strong>Палитры</strong>(Palette) в <a>официальной документации</a>.</p>
85 <p>Для создания более комплексных схем нодов рекомендуем изучить структуру материалов из контента<strong>Starter Pack</strong>и ознакомиться с функциями компонентов<strong>Палитры</strong>(Palette) в <a>официальной документации</a>.</p>
86 <a>Научитесь: Профессия Разработчик игр на Unreal Engine с нуля до Middle Узнать больше</a>
86 <a>Научитесь: Профессия Разработчик игр на Unreal Engine с нуля до Middle Узнать больше</a>