Дополнение к статье "Фейковый туман (fog volume) в Unreal Engine 4"
Я писал в статье:
У объёма нет сторон. Хотя это можно обойти с помощью кубов и немного другого кода, пример этот я рассматривать не буду. Хотя если нужно (например, сделать стену из тумана, как в Silent Hill) - дайте знать, запилю
Что ж, просили - выполняю обещание.
Вообще, самый очевидный вариант, как сделать именно стену - просто развернуть актора с туманом на 90° ( ͡° ͜ʖ ͡°). В принципе, если этим нужно заслонить какой-нибудь условный коридор, то есть нельзя зайти сбоку или сзади этого тумана - это хороший вариант.
Если же нужна какая-то зона, окутанная "туманом" - то можно вместо плейнов использовать кубы или сферы - в общем, любые объёмные меши. Выглядеть это будет как-то так:
Как видите, в целом — неплохо, но по краям сильно заметно расслоение. Скорее всего, это можно исправить, но я не уверен, как именно :)
Нужно будет внести несколько изменений в блупринт:
- Добавить новую переменную SpawnScale типа float. Значение подберите сами, я брал 0.5.
- Заменить в InstancedStaticMesh компоненте плейн на любой объёмный меш, который вам нужен (я брал сферу)
- Поменять Construction Script, чтобы он стал выглядеть вот так:
Ну и, конечно, нужно будет поиграться с параметрами экземпляра материала.