Найти в Дзене

Unity 3D. John Lemon's Jount. Part 19

Part 18 https://dzen.ru/a/Y85Jo2D9A3EiKIqO

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

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

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

Разные камеры могут иметь разную постобработку.

Для того, чтобы добавить эффекты постобработки в игру сначала необходимо установить соответствующий пакет. Зайдите в Package Manager и в окне поиска введите post, справа в списке появится нужный пакет. Кликните на кнопку Install.

Установка пакета
Установка пакета

Установка займет некоторое время, после чего перейдите в окно проекта и создайте в нем новую папку с именем Post Processing. Зайдите в эту папку и создайте в ней профайл, в котором будут храниться наши эффекты. Это и есть профиль постобработки.

-2

Чтобы создать слой постобработки в иерархии выберите игровой объект Main Camera.

Слои — это способ организации игровых объектов по поведению. GameObject может принадлежать только одному слою. Основная камера находится на слое по умолчанию. Изначально в Unity есть несколько слоев, но вы также можете создавать свои собственные слои.

В Инспекторе найдите свойство Layer выберите Add Layer:

Создание нового слоя
Создание нового слоя

В диспетчере слоев доступно 32 слоя (начиная с 0 и заканчивая 31). Первые восемь слоев зарезервированы для стандартных слоев Unity, а остальные 24 можно использовать по своему усмотрению. Поскольку вам нужен слой для тома постобработки, создадим свой собственный слой - добавьте PostProcessingVolumes в строку User Layer 8.

Создание нового слоя
Создание нового слоя

В иерархии выберите игровой объект Main Camera и назначьте ему созданный слой:

Изменение слоя
Изменение слоя

Далее камере необходимо добавить два компонента, относящиеся к постобработке - Post-process Layer и Post-process Volume. На скрине они для удобства свернуты:

Компоненты для постобработки
Компоненты для постобработки

В компоненте Post-process Layer в свойстве Layer необходимо выбрать слой, который мы создали для постобработки:

Задание слоя
Задание слоя

В компоненте Post-process Volume, необходимо поставить галочку Is Global, чтобы включить эффекты постобработки, а в поле Profile перетащить мышкой созданный файл из окна проекта:

Настройка компонента
Настройка компонента

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

Пикселизация
Пикселизация

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

В компоненте Post-process Layer измените свойство Mode раздела Anti-aliasing c No Anti-aliasing на Fast Approximate Anti-aliasing (FXAA):

Добавление сглаживания
Добавление сглаживания

Вы увидите, что картинка стала более сглаженной:

Разница сглаживания
Разница сглаживания

Теперь в компоненте Post-process Volume можно добавить дополнительные эффекты изображению при помощи кнопки Add effect. Кликните по ней и добавьте эффект Unity > Color Grading.

Добавление эффекта
Добавление эффекта

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

Разверните эффект Color Grading.

Во-первых, нужно тонировать сцену. Установите флажок Mode в подразделе Tonemapping. В раскрывающемся меню измените его свойство с None на ACES . Тональная компрессия ACES — это стандартный способ применения тональной компрессии, что помогает создать более похожую на фильм картинку.

Вы заметите, что теперь сцена выглядит очень темной. Это связано с тем, что экспозиция ACES по умолчанию равна нулю. Это можно исправить использованием функции постэкспозиции. Экспозиция — это количество света, которое попадает на камеру за определенный промежуток времени. В подразделе Tone установите флажок Post-exposure (EV) и становите значение на 1 , чтобы сделать вашу сцену ярче.

Настройка эффектов
Настройка эффектов

Также можно сделать сцену немного более жуткой, изменив некоторые цвета. Найдите ниже цветные круги, которые называются трекболами.

Установите флажки Lift , Gamma и Gain под каждым трекболом.

Lift влияет на цвета ваших теней, Gain изменяет самые яркие блики, а Gamma покрывает все, что находится в среднем диапазоне цвета вашего изображения.

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

  • трекболы Lift и Gamma перетащите немного ближе к синему
  • трекбол Gain сместите в сторону желтого
Настройка трекболов
Настройка трекболов

После настройки сверните раздел Color Grading.

Теперь добавим эффект Bloom, чтобы придать лампам красивое свечение

Опять кликните по кнопке Add effect и добавьте эффект Unity > Bloom.

Установите галочку напротив свойства Intensity и задайте значение 2.5, чтобы создать приятное яркое свечение на источниках света.

Установите галочку напротив свойства Threshold и задайте значение 0.75, чтобы добавить больше свечения в сцену. Это добавит небольшое свечение другим объектам на сцене - коту и привидениям, например.

Настройка эффектов
Настройка эффектов

После настройки сверните раздел Bloom.

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

Опять кликните по кнопке Add effect и добавьте эффект Unity > Ambient Occlusion.

Установите галочку напротив свойства Intensity и задайте значение 0.5, что создаст небольшую жуткую тень в углах комнат.

Вы можете распространить этот эффект еще дальше по комнате, используя свойство Thickness Modifier. Установите галочку напротив этого свойства и задайте значение толщины значение 3.5.

Настройка эффектов
Настройка эффектов

После настройки сверните раздел Ambient Occlusion.

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

Кликните по кнопке Add effect и добавьте эффект Unity > Vignette.

Подобно Bloom и Ambient Occlusion, эффекту Vignette нужна интенсивность. Это определит, как далеко по экрану распространяется эффект. Установите галочку напротив свойства Intensity и задайте значение 0.5, что создаст небольшую жуткую тень в углах комнат.

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

Настройка эффектов
Настройка эффектов

После настройки сверните раздел Vignette.

Последний эффект, который вам нужно добавить, — это Lens Distortion. Это искажает окончательный отрендеренный кадр и поможет создать ощущение, что вы смотрите игру через шпионскую камеру.

Кликните по кнопке Add effect и добавьте эффект Unity > Lens Distortion.

Как и в случае с другими эффектами, свойство Intensity определяет силу эффекта. Установите галочку напротив свойства Intensity и попробуйте сдвинуть интенсивность назад и вперед, чтобы получить представление об эффекте. Затем установите значение 35.

Когда вы используете этот эффект, он может иногда создавать визуальные сбои по краям экрана, где изображение было искажено. Чтобы исправить это, вы можете просто немного увеличить отображаемый кадр, чтобы убрать сбои из поля зрения. Для этого установите галочку напротив свойства Scale и задайте значение 1.1.

Настройка эффектов
Настройка эффектов

Сохраните свою сцену. Мы закончили постобработку!

Part 20 https://dzen.ru/a/Y87PNyUz8Tofj4lD