Niagara. Unreal Engines Next Generation. The visual effects system. It can be used to build almost any effect
that you can imagine. Niagara simulations are composed
of four parts, images, modules, parameters and systems, images of the foundation
for particle simulations in Niagara. They're made up of stages which contain
programable code blocks for modules. The execution flow of these modules
follows the stack paradigm. This means that they're executed
in order from top to bottom. Every module used in an emitter gets assigned to a stage that describes
when that module gets executed. For example, modules
that need to be executed when a particle spawns should be added
to the particle spawn stage. A unique and useful feature of emitters
is that that produced simulations can be applied
directly onto multiple render targets. Thinking a fireworks effect as an example. You could create a single emitter whose simulation results
and the movement of the final and then provide it with two renderers a Sprite renderer for the Spark
and the Ribbon renderer for the stream of light
following that spark. Next, we have modules. They're mostly used to operate on data
and provide you with the ability to perform a wide range of custom
functionality. Modules are built with a shading language called HL itself,
but can also be built visually in anger. Module Scripts
A node based visual scripting system resembling but not exactly like on wheels
blueprint system. But don't let the scaling as the engine comes with many built in modules
which can be used to perform most operations that you may need
to create the effect you desire Let's say we want our firework effect
to fade out over time. We will add a scale color module
to its particle update stage and set the transparency parameter
to go from 100% to zero over the course of the particle's lifetime by adding
this module to the particle update stage. The functions behind that module get called every frame
that our particle gets updated. Next up, we have parameters. These are data storage units in Niagara. They use in the same way as you
with variables in classes or blueprints as in variables. Parameters are defined using types
that specify what type of data
the parameter can represent. Earlier we set the transparency parameters
of our firework particle scale color module, which had a data type of a float
and represented how transparent we wanted our particles to be. There are four types of parameters
available to you, and I agree. Primitives representing numbers, enum
representing named values, struct representing a combination of primitives,
any numbers and data interfaces which can be used to access
almost any type of data which you have in your game,
such as meshes and audio. By default, neither gives you access
to many predefined parameters that get used in
some of its built in modules. You can access these
by opening the parameters panel. As you can see,
these parameters are split into groups. They're assigned icons to represent
the name of the group which owns them. Particle
parameters are owned by the particle group and method parameters are owned
by the emitter group and so on. You can create custom parameters
for each of these groups by pressing the plus icons in the top
right corner. Those group headers, if you want to be able to change
a parameter using blueprints or C++, you need to create it in the user
exposed group. Writing and reading to and from these
parameters works in a stacked manner. This table shows which group a module needs to be in to read and write
to a parameter from specific groups. The last major component of Nagra is
the system. These are containers
for one or more images, combining them into a complete effect by controlling
when and how they get triggered. You can add duplicate and modify
emitters in a system without making changes
to their original asset. As in emitters, you can add parameters
and modules to the systems. Blue master node Also, this is where you'll set the default
values for your custom user parameters. The most notable tool in the system
suite is the timeline panel, which can be used to manage
and empathically show which emitters are contained
in the system. As well as when they get executed. If we want to do a complete file
of the fact to include a burst of particles
at the location where fireworks are shot from,
then we would add an additional limited to the fireworks system
to produce that effect. Let's create our first Niagara system. Navigate to your content browser, right
click and select Niagara system. This will open up the Negro Wizard, which lets you create a new empty system
or choose from some template. The engine comes with a handful of useful
templates, so we'll select this option. Then choose the directional bus system. Give it a name such as us on this call
firework effect and us representing Niagara system. Double click
this asset in the parameter panel. Select
the plus icon to the right of the user. Expose variable section,
search for linear color and select it. Name this parameter by what colors
there are one that do the same thing,
but name the parameter by what color. 02. Now select the blue system note set your first parameter color to be red
and your second one to blue. Now select the initialized particle module
in your directional burst spawn stage. Drag your fire color 01 variable from the parameters panel
into the color parameter of this module. This will set the bus color to be
the color which we gave to this parameter. Now navigate to your location. Base ribbons initialize particle module as the dropdown arrow
to the right of the color parameter. This will open up a search bar type
random range, linear color. This will spawn two options
a minimum and maximum. Select the dropdown to the right of your minimum parameter
and search for your fire color. 01 variable. Now select it. Then in the maximum. Do the same,
but add the final color. 02 variable. What this will do is set your ribbons
color to be randomly selected between the range of the two colors
that we have set. Once you've done this,
navigate to your system's timeline, drag the red line to the end of your emitters
lifetime. Make sure that loop playback
range is set and press the play button. If we look in the preview panel,
we can see our emitter with the new colors that we have set If you've made it this far,
I've made you this. I learned the foundations of Niagara
from a 302nd YouTube video certificate, which you can download from my Discord
and chat with your favorite recruiters on LinkedIn. If you're interested in learning
how to harness the power of Niagara, then you definitely should subscribe
so that you don't get notified when I release my free series
where I teach how to create iconic effects
from the favorite video games. P.S. If this video gets 1000
likes by the end of March, i'll release another video distilling another Unreal
Engine framework. Back in the comments
what you want this to be about. Have a nice day, guys,
and I'll catch you in the next one.