Автор статьи: Ростислав Мусиенко
Материалы — это один из основных элементов в создании игровых объектов в игровых движках. Материалы позволяют управлять внешним видом объектов, включая текстуры, цвета и прозрачность.
В Unreal Engine 5 материалы состоят из множества узлов, также называемых нодами, которые связаны друг с другом, чтобы создавать сложные эффекты. В этой статье мы рассмотрим различные типы нод материалов, которые могут быть использованы для создания материалов
Создание материалов
В Unreal Engine 5 создание материалов происходит в специальном редакторе материалов. В этом редакторе вы можете создавать новые материалы, редактировать существующие и настраивать свойства материалов.

Когда вы создаете новый материал, первым шагом будет добавление базовой текстуры или цвета. Затем вы можете добавлять дополнительные узлы и настраивать их свойства, чтобы получить нужный визуальный эффект.
Базовые ноды
TextureObject

Узел TextureObject используется для применения текстур к материалам. Текстуры — это изображения, которые определяют внешний вид поверхностей, такие как цвет, нормали и рельеф.
Constant

Узел Constant используется для предоставления постоянного значения, которое может быть использовано для управления различными свойствами материала.
Constant3Vector

Узел Constant3Vector представляет собой вектор из трех постоянных значений, который может использоваться для определения цвета или других трехмерных свойств материала.
Математические ноды
Add

Нода Add используется для сложения значений. Она может быть использована для добавления цвета к материалу или для объединения нескольких текстур в одну.
Multiply

Нода Multiply используется для умножения значений. Она может быть использована для изменения яркости, прозрачности или цвета объекта.
Power

Нода Power используется для возведения значения в степень. Она может быть использована для изменения яркости, прозрачности или цвета объекта с использованием экспоненциальной функции.
Texture Coordinate

Нода Texture Coordinate используется для определения координат текстуры, которые будут использоваться для отображения текстуры на объекте.
Texture Sample

Нода Texture Sample используется для выборки цвета из текстуры по заданным координатам. Это может быть использовано для создания сложных эффектов, таких как бамп-карты и специальные эффекты на текстурах.
TransformImposterNormal

Узел TransformImposterNormal используется для изменения нормалей в материалах, имитирующих трехмерные объекты при использовании двумерных спрайтов (импостеров). Это позволяет импостерам правильно реагировать на освещение и создавать иллюзию глубины.
Light Vector

Нода Light Vector используется для определения направления света на объекте. Она может быть использована для создания различных эффектов, таких как тени и блики, которые изменяются в зависимости от направления света.
ParticleColor

Узел ParticleColor используется для определения цвета частиц, которые эмитируются системой частиц. Он позволяет динамически изменять цвет частиц во время выполнения игры.
Reflection Vector WS

Нода Reflection Vector используется для определения вектора отражения на объекте. Она может быть использована для создания эффектов, таких как отражение окружения на объекте.
Material Attributes

Нода Material Attributes используется для доступа к атрибутам материала, таким как цвет, прозрачность и текстуры. Она может быть использована для создания сложных эффектов, которые зависят от свойств материала.
Material Function

Нода Material Function используется для создания функций, которые могут быть повторно использованы в различных материалах. Она может быть использована для создания сложных эффектов и ускорения процесса создания материалов.
Использование материалов
Материалы могут быть использованы на любых игровых объектах, включая персонажей, окружение и интерактивные элементы. В игровом движке Unreal Engine 5 вы можете применять материалы к объектам, перетаскивая их из редактора материалов в редактор сцен. Вы также можете настраивать свойства материалов в редакторе сцен, чтобы изменить внешний вид объектов в реальном времени.
Но для того чтобы применять материалы, для начала требуется их создать.
Пробежимся по мере усложнения материалов
Простой материал с текстурой
Этот материал содержит только одну текстуру, которая используется для отображения на объекте.

Материал с цветом и прозрачностью
Этот материал содержит базовый цвет и параметр прозрачности, который определяет степень прозрачности объекта. Этот материал может быть использован для создания объектов, таких как стеклянные окна, прозрачные пластиковые объекты и другие объекты с переменной прозрачностью. Важно поменять BlendMode на значение Translucent

Материал с бамп-картой
Он содержит текстуру нормали, которая используется для создания эффекта бамп-карты. Этот материал может быть использован для создания объектов с текстурой, которая должна выглядеть более трехмерной, таких как кирпичные стены или кожаные поверхности.


Материал с использованием двух и более текстур
Этот материал содержит две текстуры, которые используются для создания эффекта смешивания текстур. Этот материал может быть использован для создания объектов с сложной текстурой меняющейся в зависимости от входных данных и с математическими вычислениями.


Материал стекла
Материал стекла может быть создан с использованием различных параметров материала таких как Opacity и Roughness


Материал металла
Материал металла может быть создан с использованием различных параметров материала, таких как Metalic, Roughness. Этот материал может быть использован для создания различных металлических объектов, таких как автомобили, заборы и двери.


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


Заключение
Мы рассмотрели некоторые из основных нод и примеры создания материалов в Unreal Engine 5.
Создание материалов - это один из важных аспектов создания визуальных эффектов в играх, и владение навыками создания материалов может значительно улучшить визуальный опыт игроков.
Если вы хотите узнать больше о создании материалов и других аспектах создания игр, мы приглашаем вас в Otus. Там вы сможете получить доступ к курсам [ссылка], которые помогут вам улучшить навыки создания игр и научиться использовать Unreal Engine 5.
В заключение статьи приглашаем всех желающих на вторую часть открытого урока «Создаём гоночный дрифт-симулятор на Unreal Engine 5 с нуля».
На этой встрече мы:
Продолжим делать симулятор тренировки начинающего дрифтера.
Настроим тренировочные задания для игры (удержание машины в заносе при езде по кругу и по восьмёрке).
Проверим и донастроим физическую модель, доработаем управление.
Поработаем над настройкой и улучшением визуальной составляющей игры (внешним видом).
Записаться на открытый урок можно на странице онлайн-курса "Unreal Engine Game Developer. Basic". Посмотреть запись первой части можно по ссылке.