Найти в Дзене
Работа с Unreal Engine 4

Графика как в Borderlands. Создание материала постобработки в Unreal Engine 4

Вот так выглядит постобработка в стиле игры Borderlands.
Доброго дня!
Сегодня будем создавать материал для постобработки в стиле Borderlands.
В Place Actors находим Post Process Volume и переносим его на наш уровень. Выделяем его и в Details ищем Infinite Extent(Unbound). Напротив ставим галочку, что позволит использовать постобработку не только внутри куба, но и на весь уровень (Рис. 1)
Вот так выглядит постобработка в стиле игры Borderlands.
Вот так выглядит постобработка в стиле игры Borderlands.

Доброго дня!

Сегодня будем создавать материал для постобработки в стиле Borderlands.

В Place Actors находим Post Process Volume и переносим его на наш уровень. Выделяем его и в Details ищем Infinite Extent(Unbound). Напротив ставим галочку, что позволит использовать постобработку не только внутри куба, но и на весь уровень (Рис. 1)

Рис. 1
Рис. 1

В Content Browser создаете папку и называете как вам захочется. В ней создаем пустой материал уже известным нам способом. Затем нажимаем правой кнопкой мыши по материалу и выбираем Create Material Instance, для последующей настройки параметров без постоянного компилирования шейдеров.

Снова выделяем Post Process Volume и в поиске вбиваем Material. В Post Process Material напротив Array нажимаем на плюс и в появившейся строчке выбираем Asset reference. Нажимаем на None и находим созданный Material Instance (Рис 2)

Рис. 2
Рис. 2

Затем заходим в наш пустой материал и выделяем ноду со свойствами материала. Слева во вкладке Details, напротив Material Dommain, в выпадающем списке выбираем Post Process. Shading Model должен стоять на Default Lit. У ноды при этом останется только одно свойство Emissive Color (Рис. 3)

Рис. 3
Рис. 3

Добавляем ноду SceneTexture и в ней, во вкладке Details, напротив Scene Texture Id устанавливаем SceneDepth. Дальше вызываем ноду TextureCoordinate и зажав клавишу A, нажимаем левой кнопкой мыши на пустом месте и вызываем ноду сложения Add. TextureCoordinate подключаем к Add в пин A. Зажав клавишу M и нажав левую кнопку мыши вызываем Multiply - умножение. Соединяем SceneTexture пином InvSize в пин A Multiply. Зажав цифру 2 на клавиатуре, и нажав левую клавишу мыши, вызовем константу с двумя векторами. Выделив ее, в Details напротив R ставим 1. Подключаем константу к пину B Multiply, а его к пину B Add. Копируем SceneTexture и выходящий пин Add подключаем к Uvs скопированной ноды. Вызываем ComponentMask и в нем добавляем третий канал цвета B (Рис 4)

Рис. 4
Рис. 4

Выделяем все ноды, копируем и вставляем ниже. В скопированной константе меняем 1 на -1. Копируем SceneTexture и вставляем ниже. Из пина Color выводим и подключаем к ComponentMask (Рис. 5)

Рис. 5
Рис. 5

Дальше вызываем ноду Subtract, копируем ее и подключаем выходящий пин Mask первой конструкции в пин B первого Subtract. Также делаем со второй конструкцией и скопированной нодой Subtract. От выходящего пина Mask, что подсоединен к SceneTexture, проводим две связи в пин A первой ноды Subtract и второй. Затем оба Subtract складываем спомощью ноды Add (Рис. 6)

Рис. 6
Рис. 6

Выделяем две первых конструкции, копируем и вставляем под третьей. В первой константе напротив канала R ставим 0, а напротив канала G ставим 1. Во второй константе также, но напротив канала G ставим -1. Получается такая конструкция (Рис 7)

Рис. 7
Рис. 7

Добавляем ноду сложения Add и подключаем к ней выходящие пины Add наших 2-х конструкций. Выделяем и копируем всю нашу конструкцию и вставляем ниже. Выделяем все вставленные ноды SceneTexture и в Details напротив Scene Texture Id выбираем WorldNormal (Рис. 8)

Рис. 8
Рис. 8

Из ноды Add первой большой конструкции выводим пин, и создаем ноду Multiply, из нее ноду Power. Создаем 2 константы с одним параметром. Первую называем Depth MultiLine и подключаем к пину B ноды Multiply. Вторую константу называем Depth BiasLine и подключаем к пину Exp ноды Power. В этих двух константах в Details, напротив Default Value устанавливаем 1.

Во второй большой конструкции, рядом с нодой Add добавляем ноду AddComponents. Выходящий пин Add подключаем к пину f3(V3) AddComponents. Копируем конструкцию как на Рис. 9 и вставляем рядом с нодой AddComponents. Переименовываем константы в Normal MultiLine и Normal BiasLine.

Рис. 9
Рис. 9

Выходящий пин f3 ноды AddComponents подсоединяем к пину A ноды Multiply. Эти две конструкции соединяем нодой Max (Рис 10)

Рис. 10
Рис. 10

Создаем такие ноды как на Рис. 11 и подключаем к ноде Max. В ноде SceneTexture в Details выбираем PostProcessInput0. Нода под названием Color - это константа с 4 параметрами. Зажав цифру 4 на клавиатуре и нажав левой кнопкой мыши появится нода. Нажав на нее правой кнопкой мыши выбираем Convert to Parameter. И при желании переименовываем как на рисунке.

Рис. 11
Рис. 11

Остается подключить выходящий пин ноды Lerp к Emissive Color.

Материал для пост обработки готов (Рис. 12)

Рис. 12
Рис. 12

Теперь применяем и сохраняем наш материал. Заходим в MaterialInstance и устанавливаем нужные параметры (Рис. 13)

Рис. 13
Рис. 13

Подпишись Поделись Лайкни