
I. Экспорт анимации в Unreal Engine

Перед экспортом симуляции в формате alembic-файла необходимо удалить лишние атрибуты, за исключением параметров width и uv.
Для того чтобы иметь возможность добавить вариативность цвета, создав эффект плавного изменения оттенка всполохов от центра к внешним рядам, необходимо назначить группы. Используя Attribute Create, каждой группе необходимо присвоить уникальное значение, задав его в строке Value.


Для записи alembic’а добавим ноду Alembic ROP.
III. Настройка сцены в Unreal Engine
Для того чтобы импортировать эффект в Unreal Engine, в Content Drawer необходимо через «Import» выбрать ранее сохраненный alembic-файл. Для корректности процесса важно, чтобы путь к файлу не содержал кириллицы.

Для каждой из ранее назначенных групп при импорте создается отдельный слот материала.
IV. Создание материала
В основе создаваемого материала — текстура с несколькими уровнями искажения, позволяющими придать первоначальной карте шума стилизованный вид. К полученной текстуре применяется анимация перемещения снизу вверх, имитирующая процесс горения.
Для карты нормали необходимо создать анимацию движения, добавив сдвиг текстуры по uv-развертке.


Здесь и далее все промежуточные этапы настройки материала будут показаны через gif-анимации

Поверх полученной анимации смещения необходимо добавить Gradient Noise, добавляющий основную текстуру искажений.

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



Для создания эффекта глубины резкости необходимо настроить параметр Depth Fade.

Для корректного отображения бликов необходимо настроить параметр Fresnel.

Для того чтобы смягчить рисунок текстуры и добиться наиболее реалистичного вида пламени, необходимо добавить параметр «softness».

Для настройки цвета необходимо смешать созданную ранее цветную анимированную текстуру с параметром «myFresnel» и подсоединить полученный результат к выходу Base Color.

Для того чтобы материал излучал свет, подобно горящему объекту, необходимо настроить параметр Emissive, добавив его ко входу Emissive Color.

Для регулировки прозрачности используем ранее созданную маску «myAlpha», добавив ей цвет и подсоединив ко входу Opacity.

Настроим нормали через вход Normal.

Для корректного отображения текстуры в World Position Offset добавим узел VertexNormalWS.

Для создания эффекта «тепловой дымки», имитирующей искажение пространства вокруг источника огня, необходимо добавить параметр «Screen Distortion». Полученный результат необходимо подать на выход «Refraction».
V. Финализация результата

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


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


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