Исходный размер 2480x3500

Глава 4. Анимированные материалы для окружения и спецэффектов

Данный проект является учебной работой студента Школы дизайна или исследовательской работой преподавателя Школы дизайна. Данный проект не является коммерческим и служит образовательным целям

4.1. Общие принципы и методологии

Создание динамического окружения представляет собой комплексную задачу, требующую интеграции различных техник настройки динамичных материалов для достижения эффекта "живого", реагирующего мира.

В отличие от статичных сред, интерактивное окружение должно отвечать на действия персонажей, изменяться со временем и создавать ощущение непрерывно протекающих процессов внутри той или иной локации фэнтезийного мира.

Глава 4 раскрывает основные техники и методы создания динамических шейдеров для окружения в проекте, основываясь на наиболее распространенных и эффективных подходах: использование триггерных зон, нод sine / cosine, параллакса.

4.1.1. Триггерные зоны

В UE5 есть несколько подходов к созданию эффектов, зависящих от положения того или иного объекта в мире / триггерных зон: использование Object Position, World Position, специальных нод вроде Distance или DistanceToNearest. Эти ноды позволяют получать точные данные о том, насколько далеко находится один объект от другого [например, персонаж относительно части окружения].

Стоит также упомянуть Distance Fields [поля расстояний] - это особый тип данных в UE, который хранит информацию о расстоянии от каждой точки 3d пространства до ближайшей поверхности объекта.

Материалы могут считывать эту информацию и использовать ее для создания тех или иных эффектов.

Исходный размер 2480x667

Демонстрация работы Affect Distant Field Lighting.

Исходный размер 1920x731

Демонстрация работы Distance Fields.

У каждого объекта в сцене есть Distance Field, который он испускает. Наглядно это можно посмотреть, если нажать на иконку глаза во вьюпорте - Visualise - Mesh Distance Fields.

Визуально сначала практически ничего не изменится, сцена будет выглядить как Grayshade. Однако если выбрать любой 3d объект на сцене, вписать в Details - 'Distance' и отжать чекер около Affect Distant Field Lighting, 3d модель перестанет создавать Distant Field и исчезнет со сцены.

Наконец, рассмотрим работу триггерных зон [distance fields] на примере создания шейдера для воды.
Исходный размер 1300x495

Шейдер воды, созданный на основе Distance Fields.

В данном эксперименте Distance Fields позволят генерировать береговую линию и «пену» именно в тех местах, где вода сталкивается с поверхностями или находится в непосредственной близости к ним.
При этом толщина и интенсивность линии взаимодействия может быть параметризована и впоследствии настроена под конкретный случай.
Исходный размер 1800x851

Демонстрация нодовой системы для шейдера воды.

Данный шейдер состоит из 4 основных частей: настройка береговой линии, настройка дополнительного взаимодействия при пересечении Distance Field, деформация геометрии при помощи World Position Offset и блок с дополнительными параметрами цвета и прозрачности.

0

Нодовая система для шейдера воды — детали.

В первом рассмотренном блоке нод с помощью Panner-a задается имитация многоуровневой деформации поверхности будущего шейдера воды. То есть сама геометрия изменяться не будет, но с помощью карты нормалей [Normal] будет создаваться ощущение объема.

Смещающиеся текстуры шума впоследствии также будут использоваться в качестве масок для создания анимированной береговой линии с динамично меняющимся узором.

Для того, чтобы немного визуально оптимизировать рабочее пространство можно воспользоваться именованной нодой Reroute, а именно, нажать ПКМ — вписать ‘named’ — добавить Add Named Reroute Declaration Node.
Благодаря этому впоследствии не придется «тянуть» результат работы той или иной части кода к инпуту финального материала. Все добавленные таким образом ноды могут быть быстро вызваны по их названию.
0

Нодовая система для шейдера воды — детали.

В данной части нодовой системы с помощью DistanceToNearestSurface создается эффект береговой линии, а также дополнительной «пены» для более сложного эффекта.

DistanceToNearestSurface

DistanceToNearestSurface — это нода, которая использует систему Distance Fields Unreal Engine для определения расстояния от текущей точки до ближайшей поверхности 3d пространства.

В отличие от обычной ноды Distance, которая вычисляет расстояние между двумя конкретными точками, DistanceToNearestSurface работает с предварительно рассчитанными полями расстояний всей сцены, как было показано ранее.

Данная нода незаменима для создания эффектов, которые должны взаимодействовать со всей геометрией сцены, а не с отдельными объектами.

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

Данные действия проводятся как для самого стыка объектов [shoreline], так и для дополнительного узора-пены [shoreline foam], которые впоследствии складываются и отправляются в Alpha инпут нод Depth Fade и Lerp.

Исходный размер 1200x571

Демонстрация работы параметров шейдера воды.

Исходный размер 2205x989

Нодовая система для шейдера воды — детали.

Depth Fade

Depth Fade - это нода, которая решает одну из самых частых визуальных проблем: она убирает резкие границы пересечения полупрозрачных объектов, создавая мягкое затухание на стыках поверхностей, позволяя плавно растворять материал по мере приближения к непрозрачным поверхностям.

Исходный размер 1400x497

Демонстрация работы параметров шейдера воды.

Параметр Fade Distance определяет дистанцию, на которой начинается затухание — малые значения создают резкое растворение у самой поверхности, большие дают длинный и плавный переход.
Исходный размер 1000x476

Демонстрация работы параметров шейдера воды.

Исходный размер 2226x850

Нодовая система для шейдера воды — детали.

В качестве дополнения к нодовой системе был добавлен блок с настройкой World Position Offset для того, чтобы влиять на сетку геометрии, имитируя движение волн с помощью карты нойза.

Исходный размер 1400x522

Демонстрация работы шейдера воды.

Глава 4. Анимированные материалы для окружения и спецэффектов
Проект создан 04.12.2025
Глава:
1
2
3
4
5
6
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше