Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Старший художник по свету Юрий Воробьёв, поделился подробным гайдом по настройке освещения для игровой локации.

Введение

Привет, меня зовут Юрий Воробьёв, и я работаю в Sperasoft, a Keywords studio, в качестве старшего художника по свету. За время работы в Sperasoft я успел принять участие в нескольких известных проектах, таких как The Walking Dead от Overkill, Saint's Row The Third Remastered и Halo Infinite. Помимо этого, у меня есть опыт работы с освещением для синглплеерных и мультиплеерных карт, а также сцен используемых в синематиках.

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

Первые шаги

В качестве примера для переаботки освещения (relight) я выбрал «Underground Facility» Владимира Степанюка. Прежде всего, вам нужно собрать референсы, создать мудборд (доска настроения) и определиться с условиями освещения. Я хотел сделать освещение бирюзового цвета, поэтому выбрал сразу несколько палитр, которые лучше всего соответствуют моей идее.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Кроме того я подобрал несколько концептов для пещер, туннелей и лабораторных помещений.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Я всегда стараюсь выбирать концепты с «интересным» освещением, а не с плоским, тёмным и скучным светом.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

На данном этапе важно учитывать условия освещения. Будет ли это многопользовательский (MP) или однопользовательский (SP) уровень. Вы не можете позволить себе быть излишне драматичным на мультиплеерной карте. Всё должно быть видно и хорошо считываться игроком. Технические ограничения мультиплеера следует принимать во внимание с самого начала.

SP карты в этом плане менее ограничены, и по сравнению с MP, имеют больший запас по производительности (а следовательно и качеству освещения), поэтому вы можете подумать о более мрачном и тёмном настроении. Определитесь с тем, какой тип освещения будет использоваться в сцене: Подвижный (Movable), Статичный(Static) или Стационарный (Stationary). Больше информации о типах освещения вы можете найти во второй части руководства или в документации по UE. Сцена которую я выбрал — это SP карта с освещением стационарного типа.

Технические настройки

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Затем я добавляю стандартный Directional Light (если нужно), Skylight, ExponentialHeight Fog, Post Process Volume (с активным Infinite Extend), и Lightmass Importance Volume (если я планирую что-то запечь).

Черновая настройка отражений

Следующий шаг — предварительная настройка локальных отражений (local reflections) на ооснове кубических карт (cubemaps). Я рекомендую отключить SSR в Post Process Volume, поскольку, когда работаю отражения в экранном пространстве (Screen Space Reflections), увидеть отражения на основе кубических карт намного сложней.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Для удобства настройки, обычно я помещаю какую-нибудь яркую стандартную кубическую карту в слот для SkyLight Cubemap и выставляю ей интенсивность около 20.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

В таком случае, вы можете отчётливо видеть локальные кубические карты (с помощью «Reflection view») когда размещаете их на уровне.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Для искусственных/рукотворных структур, таких как коридоры и комнаты, я предпочитаю использовать прямоугольные отражения (box reflections). Поскольку они более управляемы, чем сферические отражения (sphere reflections) — они могут предотвратить нежелательное проникновение/просачивание в другие комнаты и пробивание стен . Для чернового сетапа достаточно разместить по 1-2 кубмапы в каждом помещении.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

"Box Transition Distance"(или Influence radius для Sphere Reflections) и "Capture Offset" — это единственные параметры локальных отражений которые я затрагиваю на данном этапе.

Убедитесь, что дистанция перехода (transition distance):

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

Для разных игровых жанров (имеется в виду положение камеры) я рекомендую сместить точку захвата таким образом чтобы она находилась ближе к уровню зрения игрока. В игре, мы видим всё именно с этой точки зрения, и будет отлично если мы будем видеть правильные отражения. Например, в шутере с видом от первого лица, эта точка будет находится на высоте 1,8 метра (примерно) от уровня пола/земли.

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Постарайтесь по максимуму (насколько это возможно) распространить влияние кубических карт на стены, так чтобы они имели правильные отражения.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Также убедитесь, что отражения не просачиваются сквозь стены.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Постарайтесь отодвинуть точку захвата достаточно далеко от объектов. В противном случае, в текстуре будет слишком много информации об одном конкретном объекте и слишком мало данных о других частях комнаты.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Настройка плотности черновой карты освещения.

Если вы планируете запекать освещение в дальнейшем.

Чтобы отрегулировать плотность карт освещения (lightmaps) я использую режим "Lightmap Density". Здесь я стараюсь сохранить потолок на уровне соответствующем синему цвету. В любом случае,тут вряд ли будет очень много света, так что потребность в высоком разрешении отсутствует. Стенам я даю немного больше разрешения, в то время как самое высокое разрешение (зеленый цвет) достается полу.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Я просматриваю все активы и настраиваю их параметр "Light Map Resolution", выставляя значение равное степени двойки или сумме степеней двойки, так чтобы они лучше «вписались» в текстурный атлас в котором хранится информация о тенях (shadow texture atlas).

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

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

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Чтобы уменьшить разрешение потолка, я использовал опцию "Overridden Light Map Resolution".

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Настройка SkyLight

Я использую SkyLight, чтобы обеспечить равномерное освещение в затенённых областях пола и стен. Я выбрал эту карту HDRI, поскольку нахожу её подходящей для данного окружения. Кроме того, я подправил настройки яркости и насыщенности, для лучшего соответствия окружению.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Затем я подключил её к слоту SkyLight Cubemap и выставил параметру "Intensity Scale" наиболее подходящее значение (0,16).

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

На мой вкус, потолок на данном этапе выглядел слишком тёмным, поэтому я дополнительно осветил его. Для "Lower Hemisphere Color" я установил цвет чуть светлее чёрного.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Настройка тумана

Я хочу, чтобы экспоненциальный туман (Exponential Fog) был виден только на дальних стенах комнат, поэтому я установил "Start Distance" на 1500. Я не хотел, чтобы туман бесконечно расширялся за пределы геометрии уровня, поэтому я установил для параметра “Fog Cutoff Distance” значение 5000. Теперь осталось только выбрать цвет тумана и его плотность. Я выбрал светло-голубой оттенок и сделал его не слишком густым.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Настройка Post Process Volume

Чтобы в процессе работы избежать странных/неожиданных изменений экспозиции и сделать отражения лучше, в Post Process Volume я заблокировал экспозицию (Exposure) и установил качество SSR на 75.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Первый (черновой) пасс освещения

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Укажите правильный путь с помощью контраста света и тени.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1
Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Чтобы упростить процесс прототипирования, в основном, я использовал Point Lights с включенной опцией «Cast Shadows». Имейте в виду, что эти тени предназначены только для прототипирования и не должны включаться для подвижных (Movable) или стационарных точечных источников света (Stationary Point Lights) на более поздних этапах. Отключите "Use Inverse Squared Falloff" и установите значение равное 1 для параметра "Light Falloff Exponent". У источников света не будет градиента, и они будут равномерно заполнять поверхность. Вы можете легко заполнить пространство светом, управляя Attenuation Radius and Intensity. Кроме того, я рекомендую добавить свои цвета в "Color Picker" для быстрого доступа к ним.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Я начал с этой комнаты, в конце длинного коридора. Зона №1 освещена ярко-бирюзовыи светом. Интуитивно, это похоже на какую-то лабораторную зону и её видно из коридора. Цель состоит в том, чтобы привлечь внимание игрока к этой области, и он отлично справляется с этой задачей.

Для Зоны №2 я использовал очень тонкий, еле уловимый синий свет. Она освещается фальшивым отраженным светом идущим из Зоны 1 и даёт глазам немного отдохнуть.

Для Зоны №3 я выбрал зелёный свет Он создаёт аналогичную цветовую гармонию с остальными цветами и не даёт слишком много визуального шума.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

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

Как настроить освещение для игровой локации в Unreal Engine: Часть 1
Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Кроме того, это придаст хорошую читаемость стенам между комнатами.

Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Эта большая комната была самой сложной задачей. Поскольку здесь нужно заполнить много открытого пространства, мне нужно было действовать стратегически и удержать точку фокуса/интереса игрока. Сохранение баланса между цветами является ключом, в противном случае вы можете получить освещение в виде «рождественской ёлки».

Зона №3 — это точка интереса, с синим светом исходящем от мониторов. Её видно, когда вы входите в комнату через вход «а».

Зона №1 обрамляет центральную часть зеленым светом. А ещё это дает дополнительное зонирование, ведь второй этаж будет иметь свой цвет.

Зона №2 заполняет остальную часть пространства тёплым светом. Это позволяет нам ходить из теплых областей в холодные. Также с точки зрения игрока: выход "b" виден из точки входа "a".

Как настроить освещение для игровой локации в Unreal Engine: Часть 1
Как настроить освещение для игровой локации в Unreal Engine: Часть 1

Автор оригинала: Юрий Воробьёв

Текст перевёл и подготовил Константин Пономарёв

15K15K показов
7K7K открытий
55 репостов
Начать дискуссию