The Basics
Niagara has four core components:
- Systems
- a system is a container that holds your effect. You can apply settings on the system that affect everything inside it.
- Has a timeline panel in the system editor that shows emitters and can also manage it.
- Emitters
- where particles are generated
- controls how particles are born, what happens when they age, and how they look and behave
- organized in a stack, inside of which is several groups, inside which you can put modules to do tasks
- These groups are:
- Emitter Spawn:
- what happens when an emitter is first created
- defines initial setups
- Emitter Update:
- defines modules that occur every frame on the CPU
- used to define spawning of particles when you want them to continue spawning on every frame
- Particle Spawn:
- Called once per particle when it is first born
- defines initialization of the particles, such as birth location, color, size, etc
- Particle Update:
- called per particle on each frame
- use to define anything that needs to change frame-by frame as the particles age (ex: if particles color/size change over time, or if particles are affected by some type of force).
- Event Handler:
- create generate events in one or more emitters
- then create Listening events in other emitters to trigger a behavior in a reaction to a generated event
- Render:
- define the display of particles
- use mesh renderer if you want to define a 3D model as the basis of your particles
- use a sprite renderer if you want particles as 2D sprites
- many other renderers to choose from
- These are color coded so that anything green is related to the emitter, and the red is anything related to the particles
- Modules
- building blocks of effects
- add modules to groups to make a stack
- processed sequentially from top to bottom
- Think of it as a container for doing some math, you pass in some data, then write that data out at the end of the module
- Modules are built using HLSL or using the node editor.
- double click any module to look at the graph inside
- scripts start with getting an input and at the end writing that output back out so modules further down the stack can use it
- Parameters
- four types of parameters:
- Primitive: numeric data of varying precision and channel widths
- Enum: fixed set of named values
- Struct: combined set of primitive and enum types
- Data Interfaces: defines functions that provide data from external data sources
- add custom parameter module and then you can add new parameters to it.
Niagara Asset Browser Window
- Content Area
- Categories
- ToolBar (with the filter and Search bar)
- Details
You can add your own tags to these assets inside the content browser. These tags will show up in the categories tab. Explained more in detail on this page.
The VFX Workflow
- Create a system to hold and adjust the properties of your emitters
- Create emitters inside your system.
- Create Modules inside your emitters
- each module, emitter, system you create uses resources. To conserve resources, try to see if you can accomplish what you want with the things you've already created.
Resources
Notes on Specific parts of the Niagara System
Particle Spawn
Initialize Particle
Lifetime mode
You can set this to Random or Direct Set. With random you can set a minimum and maxium range to determine the lifetime of each particle. So some particles will die at the minimum value and some will die at the maximum value. With Direct set you can set a static value that all particles will die at. You can also select other sources, such as a Random Range Float value for Direct set as well (why you would do this I'm not sure since this makes it act like Random, but you could perhaps use other sources?)
Position Mode
Determines where your emitter spawns in the scene. By default it is at Simulation Position, so wherever your Niagara system actor is in the scene. The emitter spawns at that point. You can also set the offset as well.
If you choose direct set, then the particle system will ignore where it Niagara system actor is in the scene and spawn at the specified coordinate.
Particle Update
Here you can apply forces during the particles habit.
Drag
Particles slow down as they progress through their lifetime.
Curl Noise Force
Applies random noise force to the particles. Lower Frequency means the bigger the overall pattern the particles will fall to. Higher frequency will cause add smaller random forces to the particles.
Keep the Noise Quality/cost low because usually you won't see much of a difference between the low and high quality.
Point Attraction Force
Used to attract the particles to one specific point. If you have a low drag amount, the particles might bounce past the point and then get sucked back into it, making it look like a wobble ball of particles.
Vortex Force
Causes the particles to move in a spiral shape.
Point Force
Opposite from the Point Attraction Force module, this pushes particles away from a point. Mess with the Force Falloff Distance parameter combined with a point attraction force module to have the particles coalesce around an orb after the initial burst.
Wind Force
You can choose the direction the wind is facing and have the particles drift in that direction.
No comments:
Post a Comment