{ "found": [], "achievements": [] }
Unreal Engine
Good Boi
2044

Фейковый туман (fog volume) в Unreal Engine 4

Простой туториал, который позволит быстро создать подобие fog volume (буду звать объёмом) в Unreal Engine 4.

В закладки

Это скорее хак, нежели супер-технология, а поэтому у неё есть минусы:

  • Эффект выглядит совсем не круто, если заглянуть в этот объём камерой
  • У объёма нет сторон. Хотя это можно обойти с помощью кубов и немного другого кода, пример этот я рассматривать не буду. Хотя если нужно (например, сделать стену из тумана, как в Silent Hill) - дайте знать, запилю.
    UPD: Запилил:

Материал

Создаём новый материал и называем его M_FakeFog. Не забудьте поменять Blend Mode на Transculent.

На всякий случай объясню некоторые ноды:

  • Color и Emissive Color - это Vector Parameters.
  • EmissiveStrength, DepthOpacity и DepthFadeDistance — параметры (создаются через S + левый клик, например). Их дефолтные значения можете увидеть на пикче, рядом со словом "Param" в скобках.
  • 0, который втыкается в Alpha ноды Lerp - это константа (создаётся через 1 + левый клик). Вообще, с таким сетапом Lerp не нужен в принципе, т.к. будет всегда работать только первый вход - просто мне параметр был не нужен, поэтому я его разжаловал в константу. Но вы можете конвертировать её в параметр.

С материалом всё. Сохраните его и создайте его экземпляр (instance), чтоб легко можно было настраивать параметры.

Блупринт

Создайте новый блупринт типа Actor (я свой назвал BP_FakeFog).

  • Добавьте компонент InstancedStaticMesh
  • В нём выберите меш, который планируете испольхзовать в качестве слоёв тумана (можно угореть и использовать хайполи модель персонажа на 2кк полигонов, но я использовал простой plane, который был в проекте по дефолту). Там же укажите в качестве материала экземпляр, который создали чуть раньше.
  • Добавьте две интовых переменных - NumberOfInstances и SpawnDistance. Дефолтные значения можно поставить по 5, например.

В Construction Script изобразите следующее:

​Мы просто добавляем NumberOfInstances плейнов поверх друг друга через SpawnDistance расстояние

Поместите блупринт на уровень. Настройте параметры в экземпляре материала как вам угодно. Вы великолепны!

Можно получить даже вот такой эффект ТОКСИЧНОЙ СВЕТЯЩЕЙСЯ ЛУЖИ КИСЛОТЫ™

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Good Boi", "author_type": "self", "tags": ["\u0443\u0440\u043e\u043a","\u0442\u0443\u043c\u0430\u043d","volume","unrealengine","ue4","tutorial","fog"], "comments": 11, "likes": 68, "favorites": 115, "is_advertisement": false, "subsite_label": "unrealengine", "id": 106528, "is_wide": false, "is_ugc": true, "date": "Tue, 25 Feb 2020 10:25:16 +0300", "is_special": false }
Создать объявление на DTF
Сервисы
Социальные сети, Учи.ру и сервисы для геймеров: как сейчас организовано дистанционное обучение
В России есть все возможности для дистанционного образования, но сейчас каждый учитель справляется с ним по-своему.
0
11 комментариев
Популярные
По порядку
Написать комментарий...
8

Хотя если нужно (например, сделать стену из тумана, как в Silent Hill) - дайте знать, запилю.

Запили.

Ответить
0

А зачем нужен Lerp, если там в альфе постоянная 0, и всегда будет первый вход работать?

Ответить
0

На самом деле вместо константы был параметр, но я именно у себя упростил этот момент, т.к. мне он был не нужен. Упустил. Укажу этот момент, спасибо)

Ответить
0

Такой бы туманчик...

Ответить
0

Ну, это партиклы. Я с ними не особо дружу, плюс,  думаю, они довольно дорогим решением будут.

Ответить
0

Печально(

Ответить
0

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

Ответить
0

Да, ты прав, это nvidia flow, одно из решений в nvidia gameworks.

Ответить
0

Прикольная статья. Райан Бракс на shaderbits, кстати, тоже выкладывал статейки по поводу туманов, если кому интересно. 

Ответить
0

Спасибо за наводку. Вполне возможно, переведу что-нибудь из его блога)

Ответить

Прямой эфир

{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }