- Unreal Engine VFX: Niagara System
- Редактор визуальных эффектов Niagara System
- Emitter Modules (модули эмиттеров)
- Emitter Properties
- Emitter Spawn
- Emitter Update
- Render
- Particle Spawn
- Particle Update
- Niagara Module Script Graph
- Практический урок в Unreal Engine: создание простого VFX эффекта красных искр NS_RedSparks
- Emitter Properties
- Emitter State
- Spawn Rate
- Initialize Particle
- Add Velocity
- Particle Update
Unreal Engine VFX: Niagara System
Niagara System — это система визуальных эффектов (VFX) в Unreal Engine 5, пришедшая на смену устаревшей системе Cascade. Она предназначена для создания широкого спектра эффектов на основе частиц: от простых искр, дыма и пыли до сложных симуляций жидкостей, огня, магических эффектов или роев насекомых.
Также рекомендую скачать мою бесплатную книгу по Blueprint для Unreal Engine.
Основная цель книги — дать общий, целостный и понятный обзор системы Blueprint. Книга предлагает взгляд с высоты «птичьего полёта» — ясную и чёткую карту игрового мира Unreal Engine, которая поможет увидеть ключевые взаимосвязи и понять, как устроена система визуального скриптинга.
Зарегистрироваться в ЛК и скачать книгу [Blueprints. Взгляд с высоты «птичьего полёта»]

Niagara построена по иерархическому принципу и включает несколько ключевых элементов:
- Particle (частица) — базовый элемент любого визуального эффекта. Частица может отображаться в виде спрайта (двумерного изображения, которое всегда повернуто к камере), трехмерной модели (Mesh) или других типов представления, например Ribbon (ленты). Именно из множества частиц формируется итоговый визуальный эффект.

- Emitter (эмиттер, или излучатель частиц) — набор частиц с общими настройками поведения и отображения. Каждый эмиттер обычно отвечает за отдельную составляющую эффекта, например эмиттер огня, эмиттер дыма, эмиттер искр. Настройки эмиттера имеют модульную структуру: они формируются из отдельных модулей, каждый из которых отвечает за определенный аспект поведения частиц. С помощью модулей задаются параметры поведения и отображения частиц, например такие, как материал, скорость и направление движения, цвет, размер, время жизни, сила воздействия внешних факторов и другие характеристики частиц.

- Niagara System — самый высокий уровень иерархии и итоговый контейнер визуального эффекта, который размещается на сцене. Система всегда содержит один или несколько эмиттеров. По сути, Niagara System представляет собой законченный визуальный эффект, состоящий из нескольких взаимосвязанных эмиттеров. Например, эффект костра может включать эмиттер огня, эмиттер искр и эмиттер дыма. Каждый из этих эмиттеров, в свою очередь, состоит из множества частиц, поведение которых определяется набором модулей и их параметров в соответствующем эмиттере.

Важным преимуществом Niagara по сравнению с устаревшей системой Cascade является возможность создавать Emitter как отдельный ассет. Такой ассет можно многократно использовать в различных системах Niagara, что значительно упрощает разработку и поддержку визуальных эффектов.
Например, эмиттер искр можно создать один раз и затем использовать в составе разных эффектов: костра, трения металлических деталей, электрических разрядов, сварки и многих других. При этом один и тот же ассет эмиттера не обязательно будет выглядеть одинаково во всех системах. В рамках конкретной Niagara System его параметры можно дополнительно настраивать и переопределять с помощью модулей и пользовательских параметров, адаптируя поведение частиц под конкретную задачу.
Благодаря такому подходу эмиттеры выступают в роли переиспользуемых шаблонов, содержащих общую логику работы эффекта, тогда как специфические настройки задаются уже на уровне конкретной системы. Это позволяет избежать дублирования однотипной логики, упростить сопровождение проекта и обеспечить единообразие визуальных эффектов.
В результате архитектура Niagara обеспечивает высокую гибкость, масштабируемость и повторное использование компонентов, позволяя создавать как простые, так и сложные визуальные эффекты с детальной настройкой каждого элемента без необходимости заново реализовывать уже существующие решения.
Еще одним из важнейших преимуществ системы Niagara является возможность переносить вычисления эффекта с процессора (CPU) на видеокарту (GPU). Это позволяет отрисовывать миллионы частиц одновременно без значительной потери производительности, что и делает возможным создание сложных эффектов, как «рой насекомых» или движение жидкостей.
Помимо этого, частицы в системе Niagara могут взаимодействовать с объектами игрового мира. Для этого в эмиттер добавляются специальные модули, отвечающие за обработку столкновений (Collision) и генерацию событий (Events) у частиц. Например, модуль коллизий позволяет частицам обнаруживать поверхности и реагировать на них: отскакивать, скользить, останавливаться или разрушаться при столкновении. Дополнительно можно использовать модули событий, которые генерируют специальные сигналы при наступлении определенных условий, например при столкновении частицы с объектом сцены.
Эти события могут использоваться для запуска других эмиттеров или выполнения дополнительной логики эффекта. Благодаря этому появляется возможность создавать многоуровневые и взаимосвязанные визуальные эффекты. Например, частицы дождя с включенной коллизией могут сталкиваться с поверхностью земли или объектов окружения. В момент столкновения генерируется событие, которое запускает другой эмиттер, отвечающий за создание брызг. В результате каждая капля дождя не только взаимодействует с окружающим миром, но и порождает дополнительный визуальный эффект в точке контакта, что делает общую картину более реалистичной и детализированной.
Такой событийно-ориентированный подход позволяет строить сложные цепочки взаимодействий между частицами и эмиттерами, значительно расширяя возможности системы Niagara по созданию динамических и правдоподобных визуальных эффектов и превращает Niagara из простого набора картинок в динамическую систему, которая «чувствует» окружение и реагирует на него.
Редактор визуальных эффектов Niagara System
Итак, для создания системы эффектов Niagara перейдём в Content Browser и создадим папку Effects. Откроем её, нажмём кнопку Add и выберем пункт Niagara System. После этого откроется мастер создания системы, где можно создать эффект на основе готового шаблона эмиттера либо, нажав кнопку Create Empty Niagara System, создать систему полностью с нуля.
Для знакомства с редактором давайте сначала выберем шаблон Omnidirectional Burst, то есть всенаправленный взрыв. Далее нажмём кнопку Create.

Созданному ассету зададим имя NS_Test, поскольку согласно общепринятым соглашениям об именовании для Niagara System используется префикс NS_. Дважды кликнув по созданному ассету, мы откроем Niagara System Editor — редактор систем визуальных эффектов.

Данный редактор построен на узловой архитектуре и позволяет формировать поведение частиц посредством графов и модулей без необходимости писать код вручную.
Центральным элементом интерфейса является область System Overview.

Именно здесь отображается структура всей Niagara-системы. Внутри неё может располагаться один или несколько Emitter‘ов в виде крупных оранжевых узлов — независимых источников частиц, каждый из которых отвечает за определённую часть эффекта. Например, как уже говорилось ранее, один эмиттер может генерировать дым, другой — искры, а третий — светящиеся частицы. System Overview позволяет видеть взаимосвязи между эмиттерами и управлять их составом в рамках одной системы.
В данном случае, поскольку в качестве шаблона был выбран Omnidirectional Burst, сейчас в графе System Overview мы можем наблюдать один соответствующий эмиттер, добавленный из шаблона.
Также через правую кнопку мыши, выбрав опцию Add Minimal Emitter, можно добавить новый узел эмиттера, который будет практически пустым, и уже на основе него можно создать абсолютно новый эффект. Либо, выбрав опцию Add Emitter, можно добавить эмиттер из готового шаблона. Например, выберем Confetti Burst.
Теперь наша система состоит из трёх эффектов: всенаправленного взрыва, конфетти и пустого эмиттера.

Результат работы системы можно сразу наблюдать в окне Preview.

В нём эффект воспроизводится в реальном времени, позволяя оценивать внешний вид и динамику частиц непосредственно в процессе настройки. Управление камерой осуществляется стандартным образом: левая кнопка мыши позволяет вращать сцену, правая — перемещать камеру и изменять масштаб.
Так как большинство эффектов состоит из большого количества мелких частиц, наблюдать их во Preview на стандартном фоне бывает не очень удобно. Поэтому во Preview дополнительно можно настраивать параметры окружения и освещения для более точной оценки эффекта в различных условиях.
Например, во вкладке Preview Settings в разделе Environment с помощью опции Show Environment можно отключить отображение фона. В этом случае эффект будет гораздо лучше виден на тёмном однородном фоне. Однако такой режим имеет и свои недостатки. Во-первых, на однотонном тёмном фоне легко потерять эффект из виду, если случайно повернуть камеру. Во-вторых, могут появиться пересветы и мерцания. Но их можно устранить, перейдя в раздел Post Process / Exposure и настроив собственные параметры экспозиции, например установив минимальное и максимальное значения на уровне -1.

Разумеется, эти настройки во многом зависят от личных предпочтений.
Как видно сейчас в окне Preview, наша система состоит из параллельно воспроизводимых визуальных эффектов двух эмиттеров, а третий эмиттер остаётся пустым.
Для удобства оценки результата каждый эмиттер можно временно отключать. Делается это с помощью флажка рядом с названием соответствующего эмиттера. Например, временно отключим Confetti — и во Preview сразу останется виден только один эффект.

Однако в сложных системах, содержащих большое количество эмиттеров, отключать их по одному может быть неудобно. В таких случаях можно воспользоваться функцией Enable Isolation.

Она переводит выбранный эмиттер в режим изоляции, временно скрывая результаты работы всех остальных эмиттеров системы. Благодаря этому можно сосредоточиться на настройке и отладке конкретного эффекта, не отвлекаясь на другие визуальные элементы, входящие в состав Niagara-системы.
Теперь полностью удалим эмиттер Confetti, чтобы он не мешал дальнейшей работе.
Также, как уже упоминалось ранее, эмиттеры в Niagara можно создавать не только внутри конкретной Niagara System, но и в виде отдельных ассетов. Такой подход позволяет один раз настроить эмиттер, а затем многократно использовать его в различных Niagara-системах, что значительно упрощает разработку и поддержку эффектов.
Для создания отдельного ассета эмиттера необходимо в Content Browser нажать Add / FX / Niagara Emitter. После этого откроется мастер создания, где можно выбрать один из готовых шаблонов или создать полностью пустой эмиттер для дальнейшей самостоятельной настройки. При именовании ассетов эмиттеров также используется префикс NE_.
Созданный ассет открывается в отдельном редакторе Niagara Emitter Editor, в котором выполняется настройка всех параметров эмиттера: модулей генерации частиц, их поведения, визуализации и жизненного цикла. Хотя расположение некоторых панелей в этом редакторе может немного отличаться от редактора Niagara System, назначение и принцип работы всех основных окон остаются теми же. Здесь также присутствуют стек модулей, окно предпросмотра, панель параметров и другие знакомые инструменты, поэтому процесс настройки практически не отличается от работы с эмиттером внутри Niagara System.
Основное отличие заключается в том, что в данном случае редактируется сам шаблон эмиттера как самостоятельный ассет. После сохранения его можно добавлять в любое количество ассетов Niagara-систем, а изменения, внесённые в исходный ассет эмиттера, автоматически будут доступны во всех системах, использующих этот эмиттер. Такой подход особенно удобен для создания библиотек переиспользуемых эффектов, когда один и тот же эмиттер применяется в различных визуальных эффектах проекта.
Вернемся обратно в редактор Niagara System. В дополнении к узлам эмиттеров, в графе System Overview системы Niagara всегда присутствует ещё один узел, как правило синего цвета.

Этот узел имеет название текущей открытой Niagara-системы и отвечает за общие настройки ассета всей системы.
Теперь перейдем к обзору основных панелей. Одной из важнейших панелей является Details.

Она имеет контекстный характер и отображает свойства выбранного объекта. Если выбран эмиттер, в панели будут доступны его основные настройки, а также параметры всех модулей, входящих в его состав. Если же выделен отдельный модуль, то Details будет отображать только его параметры. Таким образом, данная панель служит основным инструментом для настройки как эмиттеров в целом, так и отдельных модулей системы.
Говоря об основных панелях редактора, нельзя не упомянуть Parameters.

Данная панель содержит список параметров системы и позволяет создавать пользовательские переменные, которые могут использоваться различными эмиттерами и модулями. Благодаря таким параметрам появляется возможность управлять работой Niagara-системы из Blueprint, динамически изменяя поведение эффектов прямо во время выполнения игры.
Панель Curves предназначена для работы с кривыми, используемыми в модулях эмиттеров текущей Niagara-системы.

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

На временной шкале зелёной областью отображается продолжительность воспроизведения конкретного эмиттера, что позволяет наглядно оценить его жизненный цикл. С помощью Timeline можно запускать, приостанавливать и перезапускать симуляцию, а также перемещаться по временной шкале для детального изучения поведения эффекта на различных этапах его работы. Это особенно полезно при настройке сложных временных эффектов, состоящих из нескольких последовательных стадий или событий, происходящих в определённые моменты времени, поскольку позволяет точно контролировать их синхронизацию и корректность воспроизведения.
Emitter Modules (модули эмиттеров)
Теперь подробнее рассмотрим внутреннюю структуру самого узла эмиттера. Как уже упоминалось ранее, эмиттер состоит из набора модулей. Каждый модуль представляет собой отдельный функциональный блок, отвечающий за определённый аспект работы эффекта. Одни модули управляют параметрами всего эмиттера, другие — задают свойства и поведение отдельных частиц, например, такие как их положение, скорость, размер, цвет или время жизни.
Для удобства работы все добавляемые модули сгруппированы по категориям в соответствии с этапами выполнения симуляции эффекта и областью их влияния. Это позволяет быстрее ориентироваться в структуре эмиттера и понимать, на каком этапе выполняются те или иные вычисления.
При этом сами категории также разделены визуально по назначению. Категории, выделенные оранжевым цветом, относятся к настройкам эмиттера и влияют на его работу в целом: они определяют параметры генерации частиц, жизненный цикл эмиттера и другие глобальные характеристики. Категории, выделенные зелёным цветом, относятся непосредственно к частицам и содержат модули, управляющие их созданием, обновлением и отображением. Именно в этих категориях настраивается большинство визуальных свойств эффекта, которые определяют поведение каждой отдельной частицы на протяжении её жизненного цикла.
Для начала рассмотрим категории модулей, отвечающие за настройку эмиттера целиком. В отличие от модулей частиц, которые управляют поведением каждой отдельной частицы, данные модули определяют работу всего эмиттера как самостоятельного источника частиц в целом.
Emitter Properties
Первой в списке располагается категория Emitter Properties.

Она содержит основные настройки эмиттера, определяющие способ его работы и симуляции. Одним из наиболее важных параметров здесь является Sim Target, который задаёт, где будут выполняться вычисления симуляции эффекта.
Параметр может принимать одно из двух основных значений:
- CPUSim — симуляция выполняется на центральном процессоре (CPU). Такой режим обеспечивает доступ к большему количеству функций Niagara и лучше подходит для эффектов, требующих сложной логики, взаимодействия с игровыми объектами или чтения данных из игрового мира.
- GPUCompute Sim — здесь симуляция уже выполняется на графическом процессоре (GPU). Этот режим позволяет одновременно обрабатывать значительно большее количество частиц и обычно используется для масштабных эффектов, содержащих десятки или сотни тысяч частиц. Однако некоторые возможности Niagara в данном режиме могут быть недоступны или иметь определённые ограничения.
Собственно, в шаблонном эмиттере Omnidirectional Burst симуляция выполняется на CPU. Но, с другой стороны, никто не мешает изменить CPU на GPU.
Emitter Spawn
Далее располагается категория Emitter Spawn.

Она предназначена для модулей, которые выполняются только один раз — в момент создания экземпляра эмиттера в игровом мире. По умолчанию в шаблоне Omnidirectional Burst, как и в минимальном пустом эмиттере, эта категория обычно не содержит модулей. Однако при необходимости сюда можно добавить собственные модули с помощью кнопки «+».

Такие модули используются для инициализации параметров эмиттера и выполнения действий, которые должны произойти только при запуске эффекта.
Emitter Update
Следующей идёт категория Emitter Update.

В отличие от Emitter Spawn, модули этой категории выполняются непрерывно на каждом кадре и отвечают за обновление состояния эмиттера на протяжении всего времени его существования. Именно здесь обычно располагаются настройки жизненного цикла эмиттера, а также модули, управляющие генерацией частиц.
Наиболее важным модулем данной категории является Emitter State, который присутствует в большинстве шаблонных эмиттеров по умолчанию.

Этот модуль определяет время жизни эмиттера, его цикличность и условия завершения работы.
Одним из ключевых параметров модуля является Life Cycle Mode, определяющий источник настроек жизненного цикла эмиттера. Он может принимать два значения:
- Self — эмиттер использует собственные настройки жизненного цикла, заданные непосредственно в модуле Emitter State.
- System — эмиттер наследует настройки жизненного цикла от всей Niagara-системы.
Если выбран режим Self, становятся доступны дополнительные параметры управления цикличностью работы эмиттера. Основным среди них является Loop Behavior, определяющий способ воспроизведения эмиттера:
- Once — эмиттер выполняет один цикл работы и затем завершается.
- Multiple — эмиттер выполняет заданное количество циклов.
- Infinite — эмиттер непрерывно повторяет цикл работы до тех пор, пока система не будет остановлена.
Продолжительность одного цикла задаётся параметром Loop Duration. Именно он определяет, сколько времени эмиттер будет выполнять один полный цикл перед завершением или переходом к следующему повторению. Значение Loop Duration также напрямую отображается на панели Timeline: зелёная область на временной шкале соответствует длительности одного цикла работы эмиттера. Благодаря этому можно быстро сопоставить настройки жизненного цикла с фактическим поведением эффекта во Viewport.
Для режима Multiple дополнительно используется параметр Loop Count, определяющий количество повторений цикла. Например, если Loop Duration установлен в 2 секунды, а Loop Count равен 3, эмиттер будет активен в течение 6 секунд, выполнив три последовательных цикла работы.
Если же для параметра Life Cycle Mode установлено значение System, то настройки времени жизни и цикличности берутся из параметров всей Niagara-системы. Они находятся в синем системном узле в категории System Update / System State. Такой подход позволяет централизованно управлять жизненным циклом сразу всех эмиттеров, входящих в состав системы, обеспечивая их синхронную работу и завершение.
Для примера рассмотрим шаблонный эмиттер Omnidirectional Burst. В нём жизненный цикл определяется собственными настройками эмиттера, поскольку для параметра Life Cycle Mode установлено значение Self. В качестве режима цикличности используется Once, то есть эмиттер выполняется только один раз без повторений. При этом значение Loop Duration равно одной секунде, поэтому эффект существует и воспроизводится в течение одной секунды, после чего работа эмиттера завершается.
Помимо настроек жизненного цикла, в категории Emitter Update располагаются модули, отвечающие за генерацию частиц. В шаблоне Omnidirectional Burst для этой цели используется модуль Spawn Burst Instantaneous, предназначенный для мгновенного создания заданного количества частиц.
В отличие от модулей непрерывного спауна, которые генерируют частицы постепенно в течение времени, Spawn Burst Instantaneous создаёт все частицы одновременно в определённый момент жизненного цикла эмиттера.
Среди основных параметров модуля можно выделить:
- Spawn Count — количество частиц, создаваемых за один импульс генерации.
- Spawn Time — момент времени относительно начала работы эмиттера, в который произойдёт создание частиц.
В рассматриваемом шаблоне значение Spawn Count установлено равным 100, то есть при запуске эмиттера будет мгновенно создано сто частиц. Поскольку по умолчанию значение Spawn Time равно 0, генерация происходит сразу после запуска эмиттера. Именно поэтому эффект представляет собой характерный однократный выброс частиц: все сто частиц появляются одновременно, после чего продолжают существовать и обновляться согласно настройкам остальных модулей эмиттера.
Однако для многих эффектов требуется не разовое создание частиц, а их постоянная генерация на протяжении всего времени работы эмиттера. В таких случаях вместо Spawn Burst Instantaneous обычно используется модуль Spawn Rate.

Модуль Spawn Rate отвечает за непрерывное создание частиц и содержит параметр с тем же названием — Spawn Rate, который определяет количество частиц, создаваемых за одну секунду. Например, если установить значение 50, эмиттер будет генерировать в среднем 50 новых частиц каждую секунду своего существования.
Такой подход особенно часто используется при создании эффектов дыма, огня, дождя, снега, пыли и других длительных визуальных эффектов, где поток частиц должен постоянно пополняться.
Таким образом, категория Emitter Update содержит модули, отвечающие за обновление состояния эмиттера на каждом кадре, настройку его жизненного цикла, а также управление генерацией частиц. Именно здесь задаются основные параметры, определяющие время существования эмиттера, режим его работы и способ появления новых частиц в системе.
Render
Ещё одной категорией, относящейся к настройкам эмиттера в целом, является категория Render.

Она определяет, каким образом частицы будут отображаться на экране. Если предыдущие категории отвечали за логику работы эмиттера и генерацию частиц, то именно модули категории Render задают их итоговое визуальное представление.
По умолчанию в большинстве шаблонных эмиттеров установлен модуль Sprite Renderer.

Он отображает каждую частицу в виде двумерного спрайта — плоского изображения, которое обычно всегда ориентируется определённым образом относительно камеры. Такой способ визуализации является наиболее распространённым и используется для создания эффектов дыма, огня, искр, магии, пыли и многих других визуальных эффектов.
Среди наиболее важных параметров модуля Sprite Renderer можно выделить:
- Material — материал, который будет использоваться для отрисовки частиц. Именно материал определяет внешний вид частицы: её цвет, прозрачность, текстуру, анимацию и другие визуальные свойства. В большинстве случаев для частиц используются специальные материалы Niagara с поддержкой прозрачности и эффектов смешивания.
- Alignment — определяет способ ориентации спрайта в пространстве. Например, частицы могут всегда быть направлены к камере (Face Camera), сохранять собственный угол поворота или ориентироваться по направлению своего движения. От выбора режима зависит то, как частицы будут восприниматься визуально во время работы эффекта.
Помимо Sprite Renderer, в категорию Render могут быть добавлены и другие модули визуализации:

- Mesh Renderer — отображает каждую частицу в виде полноценной трёхмерной модели (Static Mesh). Используется для создания эффектов обломков, камней, листьев, гильз, конфетти и других объектов, имеющих объёмную геометрию.
- Ribbon Renderer — создаёт непрерывную ленту, соединяющую частицы между собой. Такой тип визуализации часто применяется для следов от пуль, магических шлейфов, молний, энергетических лучей и других эффектов, где необходимо визуализировать траекторию движения.
- Light Renderer — позволяет частицам создавать динамические источники света в сцене.
- Decal Renderer — используется для проецирования декалей на поверхности, например следов от попаданий или пятен.
- Component Renderer — создаёт для частиц полноценные компоненты Unreal Engine, что позволяет использовать более сложные способы визуализации.
Важно понимать, что модули категории Render не влияют на поведение частиц, их скорость, время жизни или процесс генерации. Они отвечают исключительно за способ отображения уже существующих частиц. Благодаря этому один и тот же набор частиц может быть визуализирован совершенно разными способами — например, как спрайты, трёхмерные объекты или непрерывные ленты — без изменения остальной логики работы эмиттера.
Если рассмотреть шаблонный эмиттер Omnidirectional Burst, то в нём для визуализации частиц используется именно модуль Sprite Renderer. Это означает, что каждая создаваемая частица отображается в виде отдельного спрайта.
В качестве параметра Material здесь назначен стандартный материал Niagara, который обеспечивает базовое отображение частиц и позволяет сразу увидеть результат работы эффекта без дополнительной настройки. Разумеется, на практике данный материал чаще всего заменяется собственным материалом, соответствующим создаваемому визуальному эффекту.
Таким образом, в шаблоне Omnidirectional Burst сто частиц, создаваемых модулем Spawn Burst Instantaneous, визуализируются как отдельные спрайты с использованием стандартного материала Niagara и автоматически выбранной ориентацией. Именно поэтому сразу после создания эмиттера в окне Preview можно наблюдать характерный сферический выброс одинаковых двумерных частиц, расходящихся от центра во все стороны.
Однако визуальное представление частиц в этом эмиттере можно легко изменить. Например, если добавить в категорию Render модуль Mesh Renderer, а в качестве меша выбрать обычный куб (Cube), после чего временно отключить модуль Sprite Renderer, то частицы больше не будут отображаться в виде плоских спрайтов.

В результате тот же самый эмиттер сохранит всю свою логику работы: количество частиц, их скорость, направление движения и время жизни останутся без изменений. Однако теперь каждая частица будет визуализироваться как полноценный трёхмерный куб. Соответственно, вместо привычного взрыва из спрайтов в окне Preview будет отображаться разлетающееся во все стороны облако кубов.
Particle Spawn
Теперь перейдём к категориям, относящимся непосредственно к настройке самих частиц. Если рассмотренные ранее категории управляли работой эмиттера в целом, то начиная с этого момента речь пойдёт о параметрах, которые задаются отдельно для каждой создаваемой частицы.
Первой такой категорией является Particle Spawn.

Модули данной категории выполняются один раз для каждой частицы в момент её создания. Именно здесь задаются начальные характеристики частиц: время жизни, цвет, размер, ориентация, скорость и многие другие параметры, с которыми частица начинает своё существование.
Одним из наиболее важных модулей категории Particle Spawn, который присутствует практически во всех шаблонных эмиттерах, является Initialize Particle.

Этот модуль отвечает за инициализацию основных атрибутов частицы и фактически определяет её исходное состояние сразу после появления.
Настройки модуля разделены на несколько групп.
В группе Point Attributes задаются базовые характеристики частицы, где среди часто используемых можно выделить:
- Lifetime — время жизни частицы.
- Color Mode — способ задания цвета частицы.
Кроме того, модуль содержит отдельные группы параметров для различных типов рендеринга:
- Sprite Attributes — настройки частиц, отображаемых через Sprite Renderer.
- Mesh Attributes — параметры для частиц, визуализируемых через Mesh Renderer.
- Ribbon Attributes — настройки частиц, используемых Ribbon Renderer.
На практике чаще всего используются параметры группы Sprite Attributes, поскольку большинство эффектов Niagara строится именно на спрайтах.
Если рассмотреть шаблонный эмиттер Omnidirectional Burst, то в модуле Initialize Particle можно увидеть несколько интересных настроек.
Параметр Lifetime настроен в режиме Random, а диапазон его значений составляет от 1 до 2.5 секунд. Это означает, что каждая создаваемая частица получает случайное время жизни в указанном диапазоне. Благодаря этому частицы исчезают не одновременно, а постепенно, что делает эффект более естественным и визуально привлекательным.
Для параметра Color Mode используется режим Direct Set, то есть прямая установка цвета, а сам цвет установлен в белый (White). Следовательно, все создаваемые частицы изначально имеют одинаковый белый цвет.
В группе Sprite Attributes параметр Size Mode установлен в режим Random Uniform со значениями от 3 до 7. Это означает, что каждая частица получает случайный размер в указанном диапазоне, причём масштабирование происходит равномерно по всем осям. Благодаря этому частицы визуально отличаются друг от друга и эффект выглядит менее однообразным.
Кроме того, параметр Rotation Mode установлен в значение Random. В результате каждая частица получает случайный начальный угол поворота, что дополнительно увеличивает разнообразие и помогает избежать эффекта повторяющихся одинаковых изображений.
Помимо Initialize Particle, в категории Particle Spawn часто используются и другие модули, отвечающие за начальное положение и движение частиц.
Одним из наиболее распространённых является модуль Shape Location.

Он определяет область пространства, в которой будут создаваться частицы. Благодаря этому можно задавать не только точку появления частиц, но и различные геометрические формы, внутри которых они будут распределяться.
Среди наиболее важных параметров модуля можно выделить:
- Shape Primitive — геометрическая форма области генерации частиц.
- Shape Radius — размер выбранной формы.
- Ну и другие возможные параметры, зависящие от конкретного типа примитива.
В качестве формы могут использоваться сфера, цилиндр, Box и другие геометрические примитивы. Это позволяет быстро создавать самые разные схемы генерации частиц без необходимости вручную рассчитывать их координаты.
Ещё одним часто используемым модулем является Add Velocity, который задаёт начальную скорость частиц в момент их создания.

Именно этот модуль определяет направление и интенсивность движения частиц сразу после появления.
Среди его основных параметров можно выделить:
- Velocity Mode — способ расчёта направления скорости.
- Velocity Speed — величина начальной скорости.
- Origin Offset — смещение точки, относительно которой вычисляется направление движения.
При добавлении Add Velocity в новый эмиттер, Niagara обычно отображает предупреждение Fix issue.

Оно связано с тем, что данный модуль только задаёт значения скорости, но для фактического применения этих значений необходим модуль, который будет выполнять расчёт движения частиц на каждом кадре.
Поэтому система сообщает о необходимости добавить соответствующий модуль в категорию Particle Update и сразу предлагает сделать это автоматически. В большинстве случаев выбирается модуль Solve Forces and Velocity, который отвечает за вычисление итогового положения частиц на основе их скорости и действующих на них сил.
Рассмотрим настройки данных модулей в шаблонном эмиттере Omnidirectional Burst.
Для модуля Shape Location в качестве параметра Shape Primitive выбрана сфера (Sphere) с радиусом 40. Это означает, что частицы появляются не в одной точке, а распределяются внутри сферической области радиусом 40 единиц.
В модуле Add Velocity используется режим Velocity Mode = Point. В этом режиме направление движения вычисляется как вектор от Origin Offset до позиции частицы. Поскольку частицы уже распределены в сфере (через Shape Location), они получают вектор движения «от центра», что и создает эффект разлета во все стороны.
Параметр Velocity Speed настроен в режиме Random и принимает значения в диапазоне от 75 до 400. Благодаря этому разные частицы получают различную начальную скорость: одни движутся медленнее, другие значительно быстрее. Такое случайное распределение делает эффект более естественным и динамичным.
Поскольку в данном шаблоне также присутствует модуль Solve Forces and Velocity, все скорости, назначенные через Add Velocity, корректно обрабатываются во время симуляции. В результате после создания частицы не просто появляются внутри сферической области, а начинают разлетаться во все стороны с различной скоростью, формируя характерный эффект объёмного взрыва, который и лежит в основе эмиттера Omnidirectional Burst.
Particle Update
Ну и последней категорией, относящейся к настройкам частиц, является Particle Update.

В отличие от Particle Spawn, модули этой категории выполняются не один раз при создании частицы, а непрерывно на каждом кадре в течение всего времени её существования. Именно здесь определяется дальнейшее поведение частицы после её появления: изменение размера, цвета, скорости, направления движения, воздействие физических сил и многие другие параметры.
Если Particle Spawn отвечает на вопрос, какой частица рождается, то Particle Update определяет, как она будет вести себя на протяжении своей жизни.
Одним из наиболее важных модулей данной категории является Particle State, который присутствует практически во всех шаблонных эмиттерах.

Этот модуль отвечает за управление жизненным циклом частиц и контролирует их состояние во время симуляции.
Здесь особое внимание стоит обратить на опцию Kill Particles When Lifetime Has Elapsed. При включённой данной опции частица автоматически удаляется из симуляции после того, как её возраст достигает значения Lifetime, заданного в модуле Initialize Particle. Данную настройку рекомендуется практически всегда оставлять включённой. В противном случае частицы могут продолжать существовать даже после завершения своего времени жизни, что обычно приводит к некорректному поведению эффекта и ненужным затратам вычислительных ресурсов.
В шаблонном эмиттере Omnidirectional Burst, помимо Particle State, присутствует ещё несколько модулей, отвечающих за формирование поведения частиц после их создания.
Первым из них является Gravity Force. Этот модуль добавляет к частицам воздействие силы тяжести. В рассматриваемом шаблоне используются стандартные значения по умолчанию, поэтому частицы постепенно начинают отклоняться вниз под действием гравитации, что делает их движение более естественным.
Следом располагается модуль Drag, который моделирует сопротивление среды и постепенно уменьшает скорость движения частиц. В данном случае параметр Drag установлен в значение 0.75. Благодаря этому частицы не продолжают бесконечно двигаться с первоначальной скоростью, а постепенно замедляются по мере своего существования.
Далее идёт модуль Scale Sprite Size. Он отвечает за изменение размера спрайта в течение жизни частицы. В качестве значения здесь используется кривая (Curve), которая позволяет задавать зависимость размера от нормализованного возраста частицы. Благодаря использованию кривой частицы могут, например, плавно увеличиваться, уменьшаться или изменять размер по более сложному закону на протяжении своего жизненного цикла.
Аналогичным образом работает модуль Scale Color, который управляет изменением цвета и прозрачности частиц во времени. Как и в предыдущем случае, настройка выполняется с помощью кривой. Чаще всего данный модуль используется для плавного появления и исчезновения частиц за счёт изменения альфа-канала, а также для постепенной смены цвета эффекта по мере старения частиц.
В совокупности модули Gravity Force, Drag, Scale Sprite Size и Scale Color формируют основную динамику эффекта. Именно благодаря им частицы в шаблоне Omnidirectional Burst не просто появляются и исчезают, а разлетаются в разные стороны, постепенно замедляются под действием сопротивления среды, отклоняются под воздействием гравитации, изменяют свой размер и плавно растворяются к концу своего жизненного цикла. Именно такой подход лежит в основе большинства современных эффектов частиц в Niagara.
Также в шаблонном эмиттере Omnidirectional Burst присутствует модуль Solve Forces and Velocity, который играет ключевую роль в работе большинства динамических эффектов. Важно понимать, что такие модули, как Gravity Force, Drag, Wind Force и другие силовые модули, сами по себе не перемещают частицы. Они лишь добавляют силы и изменяют параметры движения частицы. Для того чтобы эти изменения были применены к скорости и положению частиц, необходим модуль Solve Forces and Velocity.

Именно этот модуль выполняет итоговый расчёт движения: собирает все силы, действующие на частицу в текущем кадре, вычисляет новую скорость и обновляет её положение в пространстве. Поэтому в большинстве случаев Solve Forces and Velocity рекомендуется располагать в нижней части стека Particle Update, после всех модулей, которые влияют на движение частиц.
Если удалить данный модуль или разместить его раньше необходимых силовых модулей, эффекты гравитации, сопротивления воздуха, ветра и других физических воздействий либо перестанут работать полностью, либо будут работать некорректно.
Поэтому при работе с модулями в Эмиттерах важно всегда учитывать эту особенность: то есть модули выполняются последовательно сверху вниз в том порядке, в котором они расположены в стеке. Это означает, что результат работы каждого последующего модуля может изменять или полностью переопределять значения, установленные предыдущими модулями.
Например, если сначала использовать модуль Scale Color, который изменяет цвет частицы по кривой в течение её жизни, а ниже добавить другой модуль, напрямую задающий цвет частицы, то итоговым станет именно последнее значение. В результате работа Scale Color окажется фактически незаметной, поскольку её результат будет перезаписан следующим модулем. По этой причине при настройке эффектов важно не только правильно выбирать модули, но и следить за порядком их расположения в стеке.
Niagara Module Script Graph
Ну и последнее, что стоит сказать о модулях Niagara: все они построены на специальной системе скриптов Niagara Module Script Graph. По своему принципу работы она очень напоминает Blueprint и Material Graph, поскольку также основана на узловой архитектуре и визуальном программировании.
Niagara Module Script Graph представляет собой граф, состоящий из узлов, связанных между собой проводами передачи данных. Каждый узел выполняет определённую операцию: математические вычисления, работу с векторами, изменение параметров частиц, обработку условий и многое другое. Соединяя такие узлы между собой, можно создавать как простые, так и достаточно сложные алгоритмы поведения частиц без написания традиционного программного кода.
После сохранения граф автоматически компилируется в оптимизированный код, который затем выполняется во время симуляции. В зависимости от настроек эмиттера и выбранного режима симуляции этот код может выполняться как на CPU, так и на GPU, что позволяет создавать как сложные логические эффекты, так и высокопроизводительные системы с огромным количеством частиц.
Любой модуль, используемый в стеке Niagara, можно открыть для изучения его внутреннего устройства. Для этого достаточно дважды кликнуть по названию модуля. После этого откроется соответствующий Niagara Module Script Graph, в котором можно увидеть, каким образом реализована его логика. Это может быть очень полезно для изучения работы Niagara, поскольку многие стандартные модули Epic Games являются прекрасными примерами построения собственных решений. Анализируя их внутреннюю структуру, можно лучше понять принципы работы системы частиц и научиться создавать более сложные эффекты.

Однако изменять содержимое встроенных модулей я не советую. Большинство стандартных модулей используются во множестве эмиттеров и Niagara-систем проекта, поэтому внесённые изменения могут повлиять на работу большого количества эффектов. Неудачное редактирование способно привести к появлению ошибок симуляции или полностью нарушить работу некоторых систем частиц. По этой причине стандартные модули обычно рассматривают как примеры реализации или используют в качестве основы для создания собственных модулей. Если требуется изменить их логику, рекомендуется создать копию модуля и выполнять все доработки уже в собственном экземпляре, не затрагивая оригинальную реализацию.
Таким образом, Niagara Module Script Graph является фундаментом всей системы Niagara. Именно на нём построены практически все стандартные модули, а его узловая архитектура позволяет создавать собственные инструменты и эффекты практически любой сложности, сохраняя при этом наглядность и удобство визуального программирования.
Практический урок в Unreal Engine: создание простого VFX эффекта красных искр NS_RedSparks
Для закрепления изученного материала предлагаю перейти к практике и самостоятельно создать простой эффект красных искр, не используя готовые шаблоны. Несмотря на свою простоту, такой эффект может оказаться весьма полезным: даже небольшие визуальные детали способны заметно оживить игровой мир, сделав его более выразительным, атмосферным и привлекательным для игрока.
Для начала в окне Content Browser создадим папку Effects. Внутри нее создадим новый ассет типа Niagara System, выбрав полностью пустой шаблон.

Назовем систему NS_RedSparks — эффект красных искр.
После открытия системы добавим в нее новый эмиттер. Для этого щелкнем правой кнопкой мыши в окне System Overview и выберем команду Add Minimal Emitter.

В результате будет создан базовый эмиттер с минимальным набором необходимых модулей, который послужит отправной точкой для создания нашего эффекта.
Далее весь процесс настройки эмиттера рассмотрим последовательно прям по пунктам.
Emitter Properties
В разделе Emitter Properties я оставлю режим симуляции Sim Target = CPUSim, то есть выполнение всех расчетов на центральном процессоре.

Создаваемый нами эффект крайне прост и состоит всего из нескольких частиц. Нагрузка от его расчета настолько мала, что использование вычислений на видеокарте не даст заметного прироста производительности. Кроме того, использование GPU имеет свои накладные расходы на передачу данных, и на простых эффектах выигрыш в производительности будет отсутствовать. Поэтому в данном случае режим CPUSim является наиболее простым и удобным решением.
Однако, если вы все же решите использовать GPUComputeSim, потребуется дополнительно настроить границы области симуляции (Bounds), так как частицы будут рассчитываться на видеокарте, а весь игровой поток — на центральном процессоре. При такой конфигурации процессор просто не будет получать точной информации о текущем положении частиц эффекта. Из-за этого движок не всегда может определить, находится ли эффект в пределах видимости камеры. Чтобы избежать ситуаций, когда частицы внезапно исчезают или перестают отображаться, необходимо явно указать размеры области, внутри которой они могут находиться.
Для этого в параметре Calculate Bounds Mode, например, можно выбрать значение Fixed. После этого станет доступна настройка фиксированных границ симуляции (Fixed Bounds), где можно вручную задать размеры области по осям X, Y и Z.

Для нашего эффекта искр будет достаточно относительно небольших значений, поскольку частицы не будут разлетаться на большие расстояния. Главное правило — область должна полностью охватывать весь жизненный цикл частиц. Если границы окажутся слишком маленькими, часть эффекта может пропадать из кадра раньше времени. Если же сделать их чрезмерно большими, это приведет к лишним затратам на обработку и ухудшит эффективность системы отсечения невидимых объектов.
Также в редакторе Niagara в выпадающем меню рядом с кнопкой Bounds на верхней панели есть кнопка «Set Fixed Bounds», которая позволяет автоматически рассчитать нужный размер границ на основе текущей симуляции, чтобы не вводить цифры вручную.

А по нажатию на саму кнопку Bounds можно отобразить данные границы в окне Preview.

Но, поскольку в этом уроке используется режим CPUSim, дополнительная настройка Bounds нам не потребуется, и мы можем перейти к следующим параметрам эмиттера.
Emitter State
Теперь перейдем в раздел Emitter Update и настроим модуль Emitter State, который уже присутствует в эмиттере по умолчанию. Прежде всего укажем, что параметры жизненного цикла эмиттер будет определять самостоятельно. Для этого в настройке Life Cycle Mode выберем значение Self.
Далее оставим режим работы Infinite, чтобы эмиттер мог воспроизводить эффект бесконечно, постоянно перезапуская его по завершении очередного цикла. Однако длительность цикла Loop Duration мы не будем задавать фиксированным числом. Вместо этого сделаем ее случайной в определенном диапазоне. Благодаря этому эффект будет срабатывать через разные промежутки времени, что выглядит гораздо естественнее и реалистичнее, чем строго периодическое повторение.
Чтобы задать случайное значение, нажмем на значок треугольника рядом с полем ввода параметра Loop Duration и в открывшемся меню выберем тип Random Range Float.

Этот режим позволяет генерировать случайное дробное число в указанном диапазоне. В качестве минимального значения зададим 1 секунду, а максимального — 5 секунд.

В результате после завершения каждого цикла система будет случайным образом выбирать новую задержку от одной до пяти секунд перед следующим запуском эффекта. Благодаря такой небольшой случайности искры будут появляться неравномерно, создавая более правдоподобное ощущение работы поврежденного и искрящегося оборудования.
Spawn Rate
Далее в этом же разделе Emitter Update добавим модуль Spawn Rate, который отвечает за непрерывное создание частиц.

Основной параметр этого модуля определяет, сколько частиц будет появляться каждую секунду.
Как и в предыдущих настройках, мы не станем использовать фиксированное значение. Вместо этого зададим случайное число в определенном диапазоне. Вообще, при создании визуальных эффектов желательно по возможности избегать слишком большого количества постоянных значений. Небольшая случайность в параметрах делает эффект более естественным и разнообразным, поскольку в реальном мире одинаковые события редко происходят с абсолютной точностью.
Чтобы задать случайное значение, как и в прошлый раз, нажмем на значок треугольника рядом с полем ввода параметра и выберем тип Random Range Float. После этого укажите диапазон от 5 до 15 частиц в секунду. В результате при каждом запуске эмиттера количество создаваемых частиц будет немного отличаться, благодаря чему эффект искрения станет выглядеть более живым и правдоподобным.

Initialize Particle
Теперь перейдем в раздел Particle Spawn и настроим модуль Initialize Particle, который добавляется в эмиттер по умолчанию. Этот модуль отвечает за инициализацию основных параметров частицы в момент ее создания. В рамках нашего эффекта мы настроим здесь два параметра: время жизни частицы и ее размер.
Первым делом зададим параметр Lifetime, определяющий продолжительность существования каждой частицы. Как и ранее, вместо фиксированного значения воспользуемся режимом Random Range Float, чтобы время жизни выбиралось случайным образом из заданного диапазона. Для эффекта искр частицы должны существовать совсем недолго, поэтому зададим диапазон от 0.1 до 0.5 секунды. Благодаря этому одни искры будут исчезать практически мгновенно, а другие смогут пролететь немного дальше, что сделает эффект более естественным.
Далее можно заметить параметр Color Mode, позволяющий сразу задать цвет частиц. Однако в данном уроке мы не будем использовать этот способ. Вместо этого цвет определим позже при помощи отдельного модуля Color. Такой подход делает структуру эмиттера более наглядной. Достаточно одного взгляда на стек модулей, чтобы сразу увидеть, какие свойства эффекта настраиваются и где именно определяется цвет частиц. Если же задавать цвет внутри Initialize Particle, его будет сложнее обнаружить при дальнейшем редактировании эффекта.
Следующий важный параметр — Sprite Size, определяющий размер частицы. Поскольку в качестве визуального представления частиц мы будем использовать спрайты, размер необходимо задавать именно для них.
Для начала в параметре Sprite Size Mode выберем режим Uniform, который позволяет использовать одинаковый размер по обеим осям — X и Y. В отличие от многих других настроек, здесь мы не будем применять случайный диапазон и зададим одно фиксированное значение — 1. Такой размер сделает частицы очень маленькими, что хорошо подходит для эффекта искр. При необходимости позже его всегда можно будет скорректировать, но на данном этапе важно получить компактные светящиеся точки, а не крупные заметные частицы.

Add Velocity
Далее в этом же разделе Particle Spawn добавим модуль Add Velocity, который отвечает за задание начального направления движения и скорости частицы в момент ее создания. Однако после добавления этого модуля Niagara выводит предупреждение о том, что для его корректной работы необходим модуль, который будет обрабатывать силы и фактически перемещать частицы. Движок сразу предлагает исправить проблему автоматически, добавив недостающий модуль. Воспользуемся этим предложением и нажмем кнопку Fix Issue напротив модуля Solve Forces and Velocity. После этого необходимый модуль будет автоматически добавлен в раздел Particle Update.

Если теперь посмотреть в окно предварительного просмотра, можно заметить, что частицы начали непрерывно появляться и улетать вверх. Такое поведение связано с настройками Add Velocity, которые задаются по умолчанию. В качестве начального направления здесь используется вектор (0, 0, 50).
Данный вектор задает движение строго вверх со скоростью 50 единиц. Для нашего эффекта такое поведение не совсем подходит, поскольку искры должны разлетаться в разные стороны, а не двигаться по одной и той же траектории.
Поэтому заменим фиксированное значение на случайный диапазон. Для этого нажмем на стрелку рядом с параметром вектора и выберем режим Random Range Vector.

Зададим следующие диапазоны значений:
- X: от –50 до 50;
- Y: от –50 до 50;
- Z: от 50 до 100.
Таким образом, по осям X и Y частицы смогут отклоняться как в положительном, так и в отрицательном направлении, то есть разлетаться влево, вправо, вперед и назад. А вот по оси Z все значения остаются положительными, поэтому каждая частица по-прежнему будет двигаться вверх.
Если снова взглянуть на окно предварительного просмотра, то увидим гораздо более интересную картину: искры разлетаются в разные стороны, но при этом сохраняют общее направление движения вверх, что уже гораздо больше похоже на реальное искрение. Чтобы сделать эффект более динамичным, дополнительно увеличим скорость частиц. Для этого зададим параметру Velocity Speed Scale значение 3. Этот коэффициент умножает рассчитанную скорость на указанное число, поэтому направление движения останется прежним, а сами частицы начнут перемещаться значительно быстрее.

Particle Update
Теперь перейдем в раздел Particle Update и добавим несколько недостающих модулей, которые будут отвечать за поведение частиц после их создания.
Прежде всего обратим внимание на модуль Particle State, уже присутствующий в эмиттере по умолчанию. В нем включена опция Kill Particles When Lifetime Has Elapsed, то есть автоматическое удаление частиц из памяти после завершения их жизненного цикла. Разумеется, эту настройку мы оставляем включенной, поскольку частицы, срок жизни которых истек, больше не нужны и не должны занимать системные ресурсы.
Кроме того, ранее при добавлении модуля Add Velocity мы воспользовались кнопкой Fix Issue, в результате чего в данный раздел автоматически был добавлен модуль Solve Forces and Velocity. Именно он выполняет итоговый расчет всех действующих на частицу сил и на основании этого определяет ее фактическую скорость и направление движения.
Теперь добавим еще один важный модуль — Gravity Force, который отвечает за воздействие гравитации на частицы.

В нашем случае дополнительные настройки не требуются: стандартные параметры вполне подходят для создания эффекта искр. Однако здесь есть очень важный момент. Модуль Gravity Force обязательно должен находиться выше модуля Solve Forces and Velocity в стеке модулей. Связано это с тем, что Niagara обрабатывает модули строго сверху вниз. Модуль Solve Forces and Velocity является своего рода финальным этапом расчета движения. Он собирает все силы и воздействия, заданные выше по стеку, вычисляет итоговый вектор движения и применяет его к частице.
Если разместить Gravity Force ниже Solve Forces and Velocity, то гравитация попросту не будет участвовать в расчетах текущего кадра, поскольку скорость частицы уже будет определена к моменту ее обработки. Поэтому правильный порядок выглядит следующим образом:
- сначала в разделе Particle Spawn модуль Add Velocity задает начальное направление и скорость частицы;
- затем в разделе Particle Update модуль Gravity Force добавляет воздействие гравитации;
- и только после этого модуль Solve Forces and Velocity собирает все накопленные силы, рассчитывает итоговое движение и применяет его к частице.

Понимание порядка выполнения модулей очень важно при работе с Niagara, поскольку многие эффекты напрямую зависят от последовательности вычислений.
Также в разделе Particle Update добавим модуль Color, который будет отвечать за цвет наших частиц.
Зададим здесь чистый красный цвет со значениями (1, 0, 0). Так как для частиц используется стандартный материал для спрайтов, а он, в свою очередь, является Emissive, то есть светящимся материалом, чтобы частицы выглядели более яркими и светящимися, увеличим значение компоненты Red с 1 до 5. Благодаря этому частицы станут значительно насыщеннее и будут лучше заметны в сцене.

На этом настройка эффекта завершена. В результате мы получили простой, но вполне убедительный эффект красных искр.

Несмотря на свою простоту, такие небольшие визуальные детали делают игровой мир более живым и добавляют сценам динамики.
Напоминаю про мою бесплатную книгу по Blueprint для Unreal Engine.
Основная цель книги — дать общий, целостный и понятный обзор системы Blueprint. Книга предлагает взгляд с высоты «птичьего полёта» — ясную и чёткую карту игрового мира Unreal Engine, которая поможет увидеть ключевые взаимосвязи и понять, как устроена система визуального скриптинга.
Зарегистрироваться в ЛК и скачать книгу [Blueprints. Взгляд с высоты «птичьего полёта»]











