Unreal engine 4 освещение. Стремление к фотореализму в реальном времени в архитектурной визуализации (перевод). Unreal-Engine_4. Регулирование Cascades для лучшего качества

Помощь 23.03.2019
Помощь

Тени дают объектам ощущения контакта с поверхностью, тем самым позволяя ощутить глубину и пространство.Статические тени отображаются настолько далеко, насколько идёт рендеринг, но динамические тени могут сильнее сказатся на производительности.Данный документ покажет базовые виды теней которые есть в Unreal Engine 4.

Static Lights

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

Персонаж на картинке выше, тот что слева, стоит под статическим светом, свет и тени никак не взаимодействуют с ним; а тот что справа, стоит под стационарным источником света.

Прямое освещение каскадными картами теней(затенение всей сцены)

Directional Stationary Lights — специальные источники света, т.к. они поддерживают затенение всей сцены посредством Cascaded Shadow Maps , в момент использования статического затенения.Это очень удобно на уровнях с множеством анимированной растительности; вы хотите движущиеся тени вокруг игрока, но не хотите переплачивать за чрезмерное количество каскадов, для покрытия больших дистанций обзора.С увеличением расстояния, динамические тени растворяются среди статических теней настолько, что переход практически незаметен.Чтобы применить данную возможность, просто измените значение Dynamic Shadow Distance StationaryLight в DirectionalLightStationary , чтобы изменить дистанцию растворения.

Тени Стационарных источников света

Динамические объекты (такие как StaticMeshComponents и SkeletalMeshComponents с подвижностью установленной в Movable ) должны быть интегрированны в мировое статическое затенение на дистанции полей карт затенения.Это достигается с помощью теней для каждого объекта.Каждый подвижный объект создаёт 2 динамические тени от стационарного источника света: одну, для управления статической тени проецируемой на объект и вторую, для управления тени проецируемую на остальной мир.С такой настройкой, затенение для стационарных источников света происходит от динамических объектов,которое оно затрагивает.Это означает, что стоимость может варьироваться от очень маленькой, до огромной, в зависимости от того, сколько присутствует динамических объектов.При наличии достаточного количества динамических объектов, более эффективным будет использование Movable освещения. На сцене ниже, сферы — подвижный объект, и все они получают тени от статического мира и проецируют собственные тени, которые соединяются с остальными тенями на отдалении.Фруструм Per Object теней для каждого подвижного объекта также показан.

Per Object тени используются для подвижных компонентов используя теневую карту границ объекта, поэтому границы должны быть точными. Для скелетал мешей это значит, что они должны иметь physics asset . Для частиц — любой фиксированный ограничивающий бокс должен быть настолько велик, чтобы вместить в себя все частицы.

Динамические тени

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

Динамические тени самые ресурсоёмкие.

Превью теней

Когда редактируете стационарное или статическое освещение, тени могут стать «незапечёнными», Preview Shadowing показывает вам как будут выглядеть ваши тени после запекания.

Такие (имеется ввиду незапечённые) тени показываются в редакторе с наложенным поверх текстом «Preview «, для распознавания их среди других теней.

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

Для того, чтобы получить тени из превью теней, вам необходимо выбрать опцию Build Lighting из меню Build .

Вы можете отключить превью теней посредством снятия галочки с Preview Shadows Indicator во вьюпорте Show/Visualize меню.

Если вы хотите изменить текст материал функции освещения, которая проецирует этот текст, то вы можете его найти в: Engine/EditorMaterials/PreviewShadowIndicator.

Всё вместе

Когда все тени собраны вместе, каждая из которых привносит свои сильные стороны и компенсирует слабые стороны других — они впечатляют своим видом.

Имитирует небесное освещение путем захватывания панорамного изображения (так же именуемое как Cubemap ) дальних частей сцены (которые дальше параметра SkyDistanceThreshold ), и применения его в качестве освещения. Это значит, что освещение от будет схож с окружением сцены. В том числе будет захватывать и побочные объекты, вроде наложенных облаков на скайбокс или гор вокруг сцены. Вы так же можете вручную установить Cubemap’у, которая будет освещать пространство.

Изображение будет изменено только тогда, когда вы перепросчитываете освещение или обновляете сцену при помощи команды Build -> Update Reflection Captures . Вы также можете обновить SkyLight при помощи кнопки Recapture Scene в параметрах . Учтите, что если вы измените текстуру неба или окружение, дальше параметра SkyDistanceThreshold, освещение не изменится автоматически.

Можно использовать вместо Ambient Cubemap , потому что Sky Light поддерживает локальное затенение, которое препятствует освещению внутренних помещений от небесного освещения.

Бывает двух типов в зависимости от подвижности:

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

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

Однако, использования одних лишь кубмап отражений на очень шероховатых поверхностях приводит к чрезмерно ярким отражениям, что имеет значительные утечки из-за отсутствия локальной окклюзии.Это решается за счёт использования данных лайтмапы созданной посредством Lightmass .Отражения кубмап смешиваются вместе с лайтмапой непрямой зеркальности основанной на шероховатости материала.Очень шероховатый материал (полностью диффузный) будет сходится с результатом лайтмапы.Такое смешивание, по факту, является комбинированием частей данных об освещении — высокодетализированной (кубмапы) и низкочастотной (лайтмапы).Для того, чтобы это работало корректно, в лайтмапе может быть лишь непрямоей освещение.Это означает, что только рассеянное освещение от стационарных источников света может улучшить качество отражений на шероховатой поверхности.Статический тип освещения не может быть использован вместе с отражениями окружающей среды, так как он даст прямое освещение на лайтмапу. Учтите, что для того чтобы увидеть результат этого смешивания, лайтмапа должна быть хотя бы раз построена,и карта должна иметь значимое непрямое диффузное освещение.

Формы захвата отражений

На данный момент существует 2 формы захвата отражений: сфера и коробка.Форма захвата очень важна, так как она контролирует, какая часть сцены будет захвачена в кубмапу,как форма сцены будет перепроецирована в отражениях, и кака часть сцены сможет получать отражения из кубмапы (зоны влияния).

Форма сферы

Форма сферы наиболее используемая.Она никогда не совпадает с формой отражаемой геометрии, но она не имеет разрывов и углов, следовательно искажение равномерное.

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

Точки захвата с меньшим радиусом перезаписывают данные больших по размеру точек захвата.

Форма коробки

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

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

Редактирование

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

Режим отображения Reflection Override был добавлен, чтобы легче было увидеть, как настроены отражения.Этот режим перекрывает все нормали сглаживая варшины нормалей, и делает все поверхности полностью зеркальными и полнстью гладкими (как зеркало).В этот режиме хорошо видны ограничения и артефакты, поэтому стоит иногда переключатся в этот режим, чтобы видеть как ведут себя отражения нормальных условиях.

Были добавлены несколько новых полезных флажков для изоляции некоторых компонентов освещения:

Настройка уровня для использования отражений окрущающей среды


Вопросы производительности

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

Ограничения

  • Отражения с помощью этого метода, являются приблизительными.В частности, отражение объекта редко совпадает с фактической формой объекта в сцене из-за проекции его на простые формы.Это приводит к созданию нескольких видов этого объекта в отражениях, так как много кубмап смешивается вместе.Плоские, гладкие поверхности, которые дають зеркальные отражения, более заметно покажут ошибки.Используйте детальные карты нормалей и отражений, чтобы разбить отражения.
  • Захват сцены в кубмапы — медленный процесс, который должен быть выполнен вне игры.Это значит, что динамические объекты не могут быть отображены в отражениях, но тем не меннее, они могут получать отражения от статической сцены.
  • Для уменьшения ошибки, захватывается лишь диффуз сцены.Чисто зеркальные поверхности (металлы) будут иметь своё зеркальное применение, как будто бы если это было их диффузом во время захвата.
  • Затенение

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

    В категории «Transform » в настройках любого источника света вы можете найти параметр «Mobility » («Подвижность»). Измените его на «Movable » («Подвижный»). Это свойство влияет также на источники света, добавленные в блупринт.

Работая над проектом, архитекторы и дизайнеры прибегают к такому способу подачи, как 3D визуализация. Чаще всего это статичное изображение, полученное с помощью визуализаторов vRay, MentalRay, Corona и других.

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

Моделирование

UE4 принимает 3D модели в формате.obj и.fbx.

Моделировать и экспортировать объекты можно в любом 3D редакторе (3ds Max, Blender, Maya и пр.) Желательно, чтобы модель имела хорошую топологию и полигонаж в разумных пределах (если говорить об интерьерах, то основные объекты, такие как диван, кровать и др. не должны превышать 100 тысяч треугольников, т.к. это сильно сказывается на производительности). Лучше, конечно, делать ретопологию каждой модели вручную, но для достижения приемлемого результата можно обойтись и автоматическими средствами, программами или плагинами.

Все модели должны иметь развёртку, чем ровнее она будет, тем качественнее на неё ляжет текстура и, забегая вперёд, свет с тенями, которые предварительно считаются в Unreal Engine.

Материалы

Для построения логики в UE4 используют нодовую систему Blueprint . Она заменяет собой необходимость в программировании, но не исключает возможность писать на C++.

Ниже показаны основные шейдеры, используеммые в сцене, построенных на Blueprint :

Дерево:



Так-как для создания рельефных поверхностей движок требует только normal карту, то есть возможность процедурно создать эту карту из чёрно-белого изображения c помощью нода NormalFromHeightmap

Испачканный металл:



В данном примере была использована чёрно-белая карта, смешанная с числовыми значениями и применена в свойства Metallic и Roughness

Стекло:



На прозрачность материала влияет свойство Opacity, которое регулируется float нодом (значение от 0 до 1)

Далее приведены примеры четырёх основных свойств, которые определяют физическую природу материала. Объединение их вместе различными способами позволяет создавать практически любой возможный тип физической поверхности в реальном мире.

Base Color Metallic Specular Roughness

Освещение

В сцене используется три типа освещения:

После того, как все объекты и источники света были размещены, необходимо просчитать сцену:

Это некий аналог рендера, который просчитывает взаимодействия всех статичных источников света со статичными моделями. Проще говоря, отбрасывает и запекает тени.

Если после просчёта модель или источник света были передвинуты или удалены, тень останется и придётся заново пересчитать сцену.

Пример:

Интерактив

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

1. Открывание и закрывание двери
Рассмотрим простой вариант, когда дверь открывается автоматически, если приближается игрок и закрывается, если игрок отдаляется:

Сама дверь состоит из двух элементов: статичная модель дверного проёма и интерактивное дверное полотно, логика которого описана в Blueprint .

В компоненты чертежа входит статичная 3D модель дверного полотна и фигура Box , которая играет роль триггера:

Нодовая структура выглядит следующим образом:


Ноды OnComponentBeginOverlap и OnComponentEndOverlap отвечают за коллизию с триггером.
Timeline_0 - это анимация с функцией Float Track (New Track 0).
Make Rot создаёт вращение по любой оси, в данном случае по оси Z (Yaw).

Функция Float Track (New Track 0):


Значение от 0 до -90 градусов изменяется в течение 1 секунды

Нам остаётся скомпилировать Blueprint и добавить его в сцену, выровняв точно под дверной проём.

2. Звуковые эффекты
Вы можете оживить ваш проект, добавив в сцену Ambient Sound . Например, пустить ненавязчивую музыку на задний план или добавить звуковой эффект при открывании/закрывании дверей.

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

К примеру, блок Post Process Volume с увеличенной яркостью рекомендуется ставить в плохо-освещённые помещения:

Так Post Process Volume выглядит в сцене:

Unreal Engine 4 поддерживает множество эффектов для постобработки, далеко не все они могут вам пригодиться, но некоторые из них я перечислю:

  • Vignette (Виньетка) - затемнение или осветление краёв кадра
  • Depth of Field (Глубина резкости) - всё, что находится ближе или дальше дистанции фокусировки, постепенно теряет резкость и размывается
  • Bloom (Свечение) - засвет, получаемый от ярких источников освещения
  • Lens Flare (Блик) - воспроизводит эффект преломления солнечных лучей в объектив камеры
  • Film (Шум) - даёт анимированный шум, имитируя плёночную кинокамеру

Подведём итоги

Несмотря на кажущуюся сложность работы, редактор Unreal Editor 4 выглядит приветливым. А с ростом производительности компьютерного оборудования GPU рендер может изменить традиционный подход к работе визуализаторов, дизайнеров и архитекторов.

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

Epic Games продемонстрирует архитекторам возможности Unreal Engine

Unreal Engine 4 изначально создавался для разработки игр, но Epic Games хочет показать, что он подходит и для других задач. С этой целью компания проведёт серию вебинаров, в которых покажет возможности движка как инструмента визуализации для архитекторов.

Дизайнерскую идею зачастую непросто продемонстрировать. Раньше архитекторы использовали рисунки и уменьшенные модели, но программное обеспечение вроде Unreal Engine может позволить перемещаться по фотореалистичным зданиям с естественным освещением. А благодаря виртуальной реальности люди могут в буквальном смысле оказываться в местах, которых пока ещё не существует.

Epic Games планирует провести четыре бесплатных вебинара, первый из которых намечен на 27 апреля. Специальным гостем станет архитектор Фабрис Боррелли (Fabrice Bourrelly), который расскажет о причинах, по которым Unreal Engine стоит использовать в данной сфере. .

Используя модели Дома из стекла Филиппа Джонсона (Philip Johnson) и Церкви света Тадао Андо (Tadao Ando), Фабрис покажет, как Unreal Engine привносит эмоции, настроение и атмосферу рендеринга в автономном режиме в глубокую и интерактивную виртуальную и дополненную реальность в режиме реального времени, - сказал представитель сообщества движка Крис Руффо (Chris Ruffo). - Фабрис является архитектором, художником и 3D-визуализатором, который за последний год стал лидирующим пользователем и учителем по Unreal Engine. В список клиентов Фабриса входят Google, IDEO, Томас Хизервик (Thomas Heatherwick), Аниш Капур (Anish Kapoor), Bentley Motors и Филипп Старк (Philippe Starck).


Боррелли начал работать с Unreal Engine не так давно. В прошлом году он провёл лекцию по визуализации и обнаружил, что огромное число людей, работающих в сфере, хотели бы узнать больше о движке и исследовании моделей виртуальной реальности. Так он решил скачать программное обеспечение и опробовать его.

Фабрис Боррелли:

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

Архитектор загружает свои работы на канал в YouTube .

Несмотря на кажущуюся сложность работы, редактор Unreal Editor 4 выглядит приветливым. А с ростом производительности компьютерного оборудования GPU рендер может изменить традиционный подход к работе визуализаторов, дизайнеров и архитекторов.

Из минусов хочу отметить пару моментов. На данный момент добиться фотореалистичной картинки не просто, но если уйти в проект с головой и потратить больше времени, то можно .Размер готового билда может превышать 1GB, что может затруднить обмен среди коллег и заказчиков. На текущее время далеко не каждый компьютер способен выдать стабильные 25-30 FPS в заполненном 100 м² интерьере.

Это интерактивная трехмерная визуализация квартиры-студии с полным погружением в проект. Модель сделана полностью в программе Unreal Engine 4 - движок, который используют во многих современных играх.

Основное различие с максовской 3д моделью - время "рендера". Например, чтобы создать классический трехмерный ролик необходимо отрендерить 25 кадров для каждой секунды, что занимает очень много времени и денег.

А в таком интерактивном формате "рендер" отсутствует. Все текстуры, материалы и свет создаются сразу в 3d модели, поэтому по проекту сразу можно ходить как в игре, при этом графика дошла до вполне реалистичного уровня. Теперь, чтобы сделать видео ролик, достаточно 1 часа, при готовой модели в Unreal Engine.

Создано: 29 Апрель 2017

В этой статье я расскажу, как создать в UE4 выделение контура. Как правило, разработчики используются для этого двумя разными способами:

  • Рендерят сетку дважды. В этом случае сначала рендерится одна сетка (со стандартным материалом), а затем вторая (со слегка увеличенным масштабом и эмиссионным материалом)
  • Используют алгоритм распознавания контура. Он задается в виде материала пост-обработки

В этой статье я расскажу о втором методе, т.к. он легче интегрируется в уже существующие проекты. Данное руководство написано с учетом того, что вы знакомы с основами UE4 (в частности, с тем, как работает редактор материалов). Кроме того, чтобы было понятно, как реализовать алгоритм распознавания контура в виде UE4-материала, также пригодятся базовые знания в области обработки изображений.

Основные шаги

Реализация эффекта выделения контура в виде материала пост-обработки проходит в несколько этапов:

  • Создание материала пост-обработки, который выделит контур у объектов со включенным параметром Render Custom Depth.
  • Добавление этого материала пост-обработки в список Blendables, который находится в параметрах блока Post Process Volume.
  • Включение параметра Render Custom Depth у всех скелетных и статичных сеток, у которых нужно выделить контур

Ниже я подробнее объясню каждый из этих шагов. Если вы здесь лишь затем, чтобы скачать материал, можете сразу перейти к разделу «Загрузки», который находится в самом конце статьи.

Карта глубины

В UE4 есть отличная функция, позволяющая рендерить отдельные сетки в отдельную карту глубины, а затем использовать ее в материалах. Эта карта глубины содержит информацию о дистанции между каждым пикселем – и в мировых координатах, и в поле зрения камеры. Типичная карта глубины выглядит примерно так:

Наша карта глубины выглядит похожим образом, за исключением того, что в ней видны лишь объекты, у которых включен параметр «Render Custom Depth»:

Карта глубины заметно упрощает применение эффектов вроде выделения контура, созданию которого и посвящена эта статья.

Создание материала

Самый сложный этап. Мы создадим материал, в котором будет реализован оператор Собеля, свернутый с кастомной картой глубины. Другими словами, мы применим на кастомную карту глубины фильтр распознавания контура.

Начнем с алгоритма свертки. В его основе лежит довольно мудреная математика, но на самом деле все сводится к нескольким простым шагам

  • Берем пиксель P
  • Берем 8 пикселей PN, прилегающих к пикселю P
  • Умножаем значения в пикселях P и PN на значения в ядре свертки (т.е. делаем 9 умножений)
  • Складываем полученные значения
  • Возвращаем результат

Сначала нужно задействовать карту глубины. Делается это просто: добавьте нод Scene Texture и подключите его к Emissive Color материала. Также выставьте настройку Scene Texture ID на CustomDepth.

Теперь давайте задействуем прилегающие пиксели. Для этого можно использовать параметр UVs в ноде Scene Texture. Но проблема в том, что UV-параметры работают в текстурных координатах, т.е. используют значения от «0,0» (левый верхний угол текстуры) до «1,1» (правый нижний угол текстуры). Поэтому нам нужно взять инвертированные значения высоты и ширины текстуры, умножить их на смещение от центра ячейки (-1,-1), а затем прибавить к UV-координатам текущего пикселя. Таким образом мы выберем левый верхний пиксель.

В редакторе материалов это будет выглядеть следующим образом:

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

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

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

С левой стороны – два набора входных параметров. Первые 9 векторов – это просто значения пикселей, которые мы будем обрабатывать. Другие 3 вектора служат для значений ядра свертки. По сути, это просто матрица 3х3, но поскольку в редакторе материалов UE4 нет типа данных для матрицы, я сделал собственную при помощи параметров Vector3.

Итак мы собрали все кусочки алгоритма. Теперь осталось лишь объединить их внутри итогового материала.

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

Теперь давайте объединим два этих значения.

Далее открываем редактор материалов, при помощи рассчитанных значений создаем вектор, а затем возвращаем длину вектора. Результатом будет черное изображение с контуром вокруг сеток, у которых включен параметр Render Custom Depth. Осталось лишь смешать полученный эффект с финальной картинкой. В моем случае будет использоваться оператор «IF», но вы можете встроить алгоритм и по-своему. Ничего сложного в этом нет.

ПРИМЕЧАНИЕ: Убедитесь, что ваш материал находится в домене Post Process, а не Surface (имеется в виду «material domain»; это параметр, через который настраивается, для чего будет использоваться материал). Это можно поменять в свойствах материала.

Настройка сцены

Теперь, когда материал готов, нам нужно добавить его в список пост-обработочных эффектов сцены. Выберите у своей сцены блок Post Process Volume и найдите пункт Blendables. Добавьте в список Blendables новый компонент, а затем выберите из списка созданный нами материал. Если блока пост-обработки в вашей сцене нет, создайте его. Также убедитесь, что у блока Post Process свойство Unbound выставлено на «true». В противном случае игрок будет видеть эффект строки только в том случае, если будет находиться внутри блока Post Process Volume.

Чтобы проверить результат, поместите в сцену какую-нибудь сетку и включите у нее параметр Render Custom Depth.

Блюпринт

Я настроил сцену таким образом, что эффект строки будет появляться у статической сетки только в том случае, если игрок наведет на нее прицел. Я решил воспользоваться шаблоном для FPS. Кроме того, я добавил в блюпринт MyCharacter функцию Trace. Она вызывается таймером, тикающим каждые 0,1 секунды, и проверяет, смотрит ли игрок на статичную сетку. Если смотрит, параметр Render Custom Depth выставляется на «true». Если игрок перестает целиться в сетку, значение в переменной Render Custom Depth меняется на «false». Посмотреть, как это все работает, можно в файле, ссылку на который можно найти ниже, в разделе «Загрузки».



Рекомендуем почитать

Наверх