Автор статьи: Ростислав Мусиенко
Материалы — это один из основных элементов в создании игровых объектов в игровых движках. Материалы позволяют управлять внешним видом объектов, включая текстуры, цвета и прозрачность.
В Unreal Engine 5 материалы состоят из множества узлов, также называемых нодами, которые связаны друг с другом, чтобы создавать сложные эффекты. В этой статье мы рассмотрим различные типы нод материалов, которые могут быть использованы для создания материалов
Создание материалов
В Unreal Engine 5 создание материалов происходит в специальном редакторе материалов. В этом редакторе вы можете создавать новые материалы, редактировать существующие и настраивать свойства материалов.
![](https://habrastorage.org/getpro/habr/upload_files/0ab/9ff/a90/0ab9ffa90d916b8372476255f0ec69a0.png)
Когда вы создаете новый материал, первым шагом будет добавление базовой текстуры или цвета. Затем вы можете добавлять дополнительные узлы и настраивать их свойства, чтобы получить нужный визуальный эффект.
Базовые ноды
TextureObject
![](https://habrastorage.org/getpro/habr/upload_files/499/e11/9d1/499e119d11685b4ae0fcfb783095f47f.png)
Узел TextureObject используется для применения текстур к материалам. Текстуры — это изображения, которые определяют внешний вид поверхностей, такие как цвет, нормали и рельеф.
Constant
![](https://habrastorage.org/getpro/habr/upload_files/0ef/112/fea/0ef112fea5693cc620a9b0b11666e4e8.png)
Узел Constant используется для предоставления постоянного значения, которое может быть использовано для управления различными свойствами материала.
Constant3Vector
![](https://habrastorage.org/getpro/habr/upload_files/b86/7a9/ade/b867a9ade1dc2819088cf53544e609a2.png)
Узел Constant3Vector представляет собой вектор из трех постоянных значений, который может использоваться для определения цвета или других трехмерных свойств материала.
Математические ноды
Add
![](https://habrastorage.org/getpro/habr/upload_files/0b8/2fc/bf5/0b82fcbf57ddc29957a111836312d19f.png)
Нода Add используется для сложения значений. Она может быть использована для добавления цвета к материалу или для объединения нескольких текстур в одну.
Multiply
![](https://habrastorage.org/getpro/habr/upload_files/e11/ec4/bf4/e11ec4bf4cd38ae600333fbb54c239df.png)
Нода Multiply используется для умножения значений. Она может быть использована для изменения яркости, прозрачности или цвета объекта.
Power
![](https://habrastorage.org/getpro/habr/upload_files/7dc/7f2/9ba/7dc7f29ba888cdb8e2cffea61dc3156a.png)
Нода Power используется для возведения значения в степень. Она может быть использована для изменения яркости, прозрачности или цвета объекта с использованием экспоненциальной функции.
Texture Coordinate
![](https://habrastorage.org/getpro/habr/upload_files/480/cf3/088/480cf3088aa5a6a1bf9817a9f2e554fc.png)
Нода Texture Coordinate используется для определения координат текстуры, которые будут использоваться для отображения текстуры на объекте.
Texture Sample
![](https://habrastorage.org/getpro/habr/upload_files/eb1/656/44b/eb165644bd5293839df51b9c32ab48d3.png)
Нода Texture Sample используется для выборки цвета из текстуры по заданным координатам. Это может быть использовано для создания сложных эффектов, таких как бамп-карты и специальные эффекты на текстурах.
TransformImposterNormal
![](https://habrastorage.org/getpro/habr/upload_files/585/de0/cd1/585de0cd1991af69804d03ec14f94916.png)
Узел TransformImposterNormal используется для изменения нормалей в материалах, имитирующих трехмерные объекты при использовании двумерных спрайтов (импостеров). Это позволяет импостерам правильно реагировать на освещение и создавать иллюзию глубины.
Light Vector
![](https://habrastorage.org/getpro/habr/upload_files/689/56d/790/68956d7907ed389ab71d6102e8fc77c9.png)
Нода Light Vector используется для определения направления света на объекте. Она может быть использована для создания различных эффектов, таких как тени и блики, которые изменяются в зависимости от направления света.
ParticleColor
![](https://habrastorage.org/getpro/habr/upload_files/07e/b2a/229/07eb2a2290f2556354377bb29e7110a1.png)
Узел ParticleColor используется для определения цвета частиц, которые эмитируются системой частиц. Он позволяет динамически изменять цвет частиц во время выполнения игры.
Reflection Vector WS
![](https://habrastorage.org/getpro/habr/upload_files/9f4/1f0/637/9f41f0637e807e0275df7a9755f413a3.png)
Нода Reflection Vector используется для определения вектора отражения на объекте. Она может быть использована для создания эффектов, таких как отражение окружения на объекте.
Material Attributes
![](https://habrastorage.org/getpro/habr/upload_files/0aa/c0f/7a8/0aac0f7a8f6984f64bf49d629cae0271.png)
Нода Material Attributes используется для доступа к атрибутам материала, таким как цвет, прозрачность и текстуры. Она может быть использована для создания сложных эффектов, которые зависят от свойств материала.
Material Function
![](https://habrastorage.org/getpro/habr/upload_files/8f2/afa/41e/8f2afa41e01c1e790bac477028b09017.png)
Нода Material Function используется для создания функций, которые могут быть повторно использованы в различных материалах. Она может быть использована для создания сложных эффектов и ускорения процесса создания материалов.
Использование материалов
Материалы могут быть использованы на любых игровых объектах, включая персонажей, окружение и интерактивные элементы. В игровом движке Unreal Engine 5 вы можете применять материалы к объектам, перетаскивая их из редактора материалов в редактор сцен. Вы также можете настраивать свойства материалов в редакторе сцен, чтобы изменить внешний вид объектов в реальном времени.
Но для того чтобы применять материалы, для начала требуется их создать.
Пробежимся по мере усложнения материалов
Простой материал с текстурой
Этот материал содержит только одну текстуру, которая используется для отображения на объекте.
![](https://habrastorage.org/getpro/habr/upload_files/d2c/2fa/a6c/d2c2faa6c2850fd296d75bb9d2fc015d.png)
Материал с цветом и прозрачностью
Этот материал содержит базовый цвет и параметр прозрачности, который определяет степень прозрачности объекта. Этот материал может быть использован для создания объектов, таких как стеклянные окна, прозрачные пластиковые объекты и другие объекты с переменной прозрачностью. Важно поменять BlendMode на значение Translucent
![](https://habrastorage.org/getpro/habr/upload_files/635/ccd/73f/635ccd73f9157d74e5919519faa385d4.png)
Материал с бамп-картой
Он содержит текстуру нормали, которая используется для создания эффекта бамп-карты. Этот материал может быть использован для создания объектов с текстурой, которая должна выглядеть более трехмерной, таких как кирпичные стены или кожаные поверхности.
![](https://habrastorage.org/getpro/habr/upload_files/9b5/bcd/be5/9b5bcdbe5c37f0d1c4bf61540d34f32f.png)
![](https://habrastorage.org/getpro/habr/upload_files/93a/492/76d/93a49276db25af7b9806def536b8ba24.png)
Материал с использованием двух и более текстур
Этот материал содержит две текстуры, которые используются для создания эффекта смешивания текстур. Этот материал может быть использован для создания объектов с сложной текстурой меняющейся в зависимости от входных данных и с математическими вычислениями.
![](https://habrastorage.org/getpro/habr/upload_files/6af/d42/b6f/6afd42b6f9349768c01ac27f9f2279e2.png)
![](https://habrastorage.org/getpro/habr/upload_files/b9d/b71/2f3/b9db712f3a9b194fc28953974e80b572.png)
Материал стекла
Материал стекла может быть создан с использованием различных параметров материала таких как Opacity и Roughness
![](https://habrastorage.org/getpro/habr/upload_files/5c4/bb4/304/5c4bb43048c328380efc1c336f419e6e.png)
![](https://habrastorage.org/getpro/habr/upload_files/1b0/deb/802/1b0deb8027a495859cf7e160c9f37414.png)
Материал металла
Материал металла может быть создан с использованием различных параметров материала, таких как Metalic, Roughness. Этот материал может быть использован для создания различных металлических объектов, таких как автомобили, заборы и двери.
![](https://habrastorage.org/getpro/habr/upload_files/51a/228/03d/51a22803d65f3290d32d45866ffe641f.png)
![](https://habrastorage.org/getpro/habr/upload_files/09d/2c4/22c/09d2c422c94fb20fa902598ea11d9b32.png)
Материал воды
Материал воды может быть создан с использованием текстур нормали и смешивания текстур, а также различных параметров материала, таких как прозрачность, интенсивность, искажение и отражение. Важно не забывать про то что вода это подвижный элемент, и текстуру потребуется анимировать.
![](https://habrastorage.org/getpro/habr/upload_files/1f0/98e/00b/1f098e00bc14a60352714ffbc9fd34a7.png)
![](https://habrastorage.org/getpro/habr/upload_files/79e/b15/f63/79eb15f6310e909f7975725fc70909b9.png)
Заключение
Мы рассмотрели некоторые из основных нод и примеры создания материалов в Unreal Engine 5.
Создание материалов - это один из важных аспектов создания визуальных эффектов в играх, и владение навыками создания материалов может значительно улучшить визуальный опыт игроков.
Если вы хотите узнать больше о создании материалов и других аспектах создания игр, мы приглашаем вас в Otus. Там вы сможете получить доступ к курсам [ссылка], которые помогут вам улучшить навыки создания игр и научиться использовать Unreal Engine 5.
В заключение статьи приглашаем всех желающих на вторую часть открытого урока «Создаём гоночный дрифт-симулятор на Unreal Engine 5 с нуля».
На этой встрече мы:
Продолжим делать симулятор тренировки начинающего дрифтера.
Настроим тренировочные задания для игры (удержание машины в заносе при езде по кругу и по восьмёрке).
Проверим и донастроим физическую модель, доработаем управление.
Поработаем над настройкой и улучшением визуальной составляющей игры (внешним видом).
Записаться на открытый урок можно на странице онлайн-курса "Unreal Engine Game Developer. Basic". Посмотреть запись первой части можно по ссылке.