Разберем основные аспекты работы с Niagara
Senior Unreal Engine Developer в District Zero
Всем привет! Меня зовут Ростислав Мусиенко. У меня более 10 лет опыта работы в движке, я начинал еще с Unreal Engine 3, изучая разные аспекты движка. В этой статье мне хотелось бы показать, насколько просто работать с системой частиц на Unreal Engine. Разберем основные аспекты работы с Niagara System. Для разбора нам сначала потребуется создать систему частиц.
Создадим Niagara System
Новые файлы можно создавать, нажав правой кнопкой мыши в меню. Во всплывающем меню выберем Niagara System.
После чего выбираем 1 пункт.
За основу можно взять уже имеющиеся заготовки, я продемонстрирую на примере фонтана.
После создания Niagara System называем его соответствующим именем и двойным кликом запускаем для последующего редактирования.
Интерфейс редактирования Niagara System не сильно отличается от остальных.
Для тех, кто еще не знаком с движком, разберу подробнее:
Слева визуально продемонстрирован сам эффект.
В центре находится рабочая область.
Справа мы можем увидеть детали и пункты выбранной ноды частиц.
Сам эффект представляет из себя столб к подключенными нодами к нему, в которых заключены настройки и свойства.
.
Давайте рассмотрим основные параметры, которые можно задать в нодах Niagara System:
Spawn Rate — скорость создания новых частиц.
Burst List — список бурстов, определяющий количество и интервал времени между пачками создаваемых частиц.
Spawn Volume — область, в которой будут создаваться новые частицы.
Spawn Direction — направление, в котором будут создаваться новые частицы.
Initial Velocity — начальная скорость движения частиц.
Initial Size — начальный размер частиц.
Initial Color — начальный цвет частиц.
Lifetime — время жизни частиц.
Random Seed — сид для генерации случайных чисел, используемых при создании частиц.
Inherit Velocity — унаследовать скорость от родительской частицы или другого объекта в сцене.
Collision — настройки столкновений частиц с окружающей средой.
Noise — настройки шума, который будет влиять на движение и форму частиц.
Sub UV — настройки для того, чтобы текстура частицы могла содержать несколько изображений, из которых будет выбираться одно в зависимости от времени жизни частицы.
Emitter Spawn
В нодах Emitter Spawn можно задавать параметры для более точной настройки создаваемых частиц. Например, можно задать, чтобы частицы создавались с определенной скоростью в определенном направлении, либо чтобы они имели случайную скорость и направление.
Ноды в Emitter Spawn задаются только один раз при создании эмиттера. Если требуется настроить поведение частицы во время ее жизни, то необходимо использовать ноды Particle Spawn. В них можно задавать параметры для каждой новой частицы, которая будет создана во время работы эмиттера. Кроме того, в нодах Particle Spawn можно задать и другие параметры, например, настроить эффект столкновения частиц с окружающей средой или эффект динамической эмиссии (выделения света).
Emitter Update
В нодах Emitter Update можно задать параметры для дополнительной настройки поведения частиц — например, добавить внешние силы, которые будут влиять на их движение, или настроить освещение.
Параметры, заданные в нодах Emitter Update, будут применяться ко всем создаваемым частицам. Если же требуется настроить поведение отдельных частиц, то необходимо использовать ноды Particle Update. В них можно задавать параметры для каждой частицы индивидуально, например, изменять ее скорость и размер в зависимости от времени жизни.
Particle Spawn
В нодах Particle Spawn можно задать параметры. Например, настроить эффект столкновения частиц с окружающей средой или эффект динамической эмиссии (выделения света).
Ноды Particle Spawn позволяют настроить параметры уже созданных частиц, но не влияют на скорость создания новых частиц. Если необходимо изменить скорость создания новых частиц, то следует настраивать параметры в нодах Emitter Spawn.
Particle Update
В нодах Particle Update как и в Particle Spawn можно задать динамические параметры параметры.
Ноды Particle Update позволяют изменять параметры частиц в процессе ее жизни, но не влияют на скорость создания новых частиц.
Для увеличения спавна частиц в значении Spawn Rate выставляем 400 или любое свое значение.
Следующей целью будет изменить высоту подъема частиц и увеличить их размер.
В Initialize Particle у нас есть возможность изменения таких параметров, как:
Lifetime (Время жизни) — изменяя его, мы можем контролировать время жизни частиц.
Color (цвет партикла) — цвет частиц можно менять только в том случае, если выбран материал с возможностью изменения цвета из партикла.
Увеличим площадь появления за счет Shape Location — он отвечает за локацию спавна частиц. Shape Primitive можно выбрать виртуальную примитивную форму, в которой будут появляться частицы.
Следующие пункты меняются в зависимости от выбранной примитивной формы.
Сейчас наш огонь не сильно похож на огонь из за белого цвета. Изменим это.
Попробуем изменить цвет по RGBA.
Важный нюанс! Значение выставленное больше 1 увеличивает интенсивность свечения. Ставим (30, 10, 1, 1)
Для того, чтобы увеличить реалистичность, можем доработать движение «языков» пламени.
Это можно сделать 2 способами. Способ 1:
Add Velocity добавляет при спавне силу движения по направлению. Выставляем значения на свой вкус движения языков пламени.
Получаем результат.
Способ 2: Gravity Force
Данный способ работает более интересно, значения Gravity каждый раз прибавляет силу движения частиц. Если выставить его положительным, то частицы начнут двигаться вверх.
Главной особенностью будет то, что с каждой миллисекундой сила движения будет увеличиваться (сила движения — как у пламени из-за температуры).
У нас есть возможность добавлять новые ноды. С огромным списком лучше ознакомиться самостоятельно, а сейчас вызовем Scale Sprite Size.
В ней настроим кривую так, чтобы она уменьшала значение, таким образом сужая языки пламени.
С помощью Point Attraction Force можно добиться эффекта, который создает вытянутый огонь к точке в центре.
Для того, чтобы добиться возможности динамичиский изменений, потребуется добавить переменные в Niagara System.
Во вкладке User parameters нажимаем на плюс и добавляем переменные:
Создадим новый блупринт.
Поместим в него компонент Niagara System и во вкладке details выбирем наш созданный компонент.
В блупринте открываем вкладку Constraction Script для добавления кода, изменяющего свойств Niagara Sistem.
Для переменных включаем свойство видимости со сцены Instance Editable.
Это можно сделать, нажав на глаз напротив переменной или поставив галочку напротив одноименного свойства в вкладке деталей.
Как итог, мы можем динамически менять значения переменных у актеров на сцене, за счет чего будут меняться визуальные свойства.
В заключение вы можете самостоятельно экспериментировать с нодами и настройками значений в системе частиц, добиваться различных значений и изучать игровой движок, экспериментируя.
Скоро в OTUS стартуют занятия в первой группе курса «Unreal Engine Game Developer. Professional». 16 марта в 22:00 пройдет открытый вебинар по теме «Процедурный VFX для моушн дизайна в Blueprints». Зарегистрироваться на вебинар можно по ссылке ниже.