Version: 4.26, 中文
Created: 2021-02-15, Updated: 2021-03-25
Author: Cyanhall
👉  Cyanhall@GitHub Star me if it’s helpful.
1. Preparation This is the effect we are going to make in this tutorial.

Note: The main content of this tutorial comes from the Content Examples that come with Unreal Engine

Tip: Use ⬆️ ⬇️ to turn the page up and down. We recommend browsing with a large screen for a better reading experience.
Preparation
3. Introduction Static beams are spawned using static start and endpoints rather than dynamically updating them per frame.
Each beam segment is a simulated particle which can be further influenced by forces or other effects.
Introduction
4. Let's start the reconstruction Right click and select FX => Niagara System to create.
Let's start the reconstruction
5. Create Niagara System Select Empty template, click + and Finish
Create Niagara System
6. Create Niagara System As a result, we get a Niagara System asset, click to open it.
Create Niagara System
7. Empty Niagara System You can see that we have an empty Niagara system.
Empty Niagara System
8. Life Cycle Mode Set Life Cycle Mode to Self.

It determines whether the life cycle (Managing looping, age, and death) of the Emitter is calculated by the system that owns it, or by the Emitter itself.

Allowing the owning System to calculate life cycle and pass those values down to child Emitters is a significant optimization in most cases.
Life Cycle Mode
9. Beam Emitter Setup Add Beam Emitter Setup module to the Emitter Update section.
Beam Emitter Setup
10. Beam Emitter Setup Set the value type of Beam End to Random Vector
Beam Emitter Setup
11. Beam Emitter Setup Set the value type of Vector Scale to Random Range Float
Beam Emitter Setup
12. Beam Emitter Setup 1. Set the Minimum value to 220.0 and the Maximum value to 340.0
2. Set the Elevation Type to Every Frame.
Beam Emitter Setup
13. Spawn Burst Instantaneous Click on the + sign to the right of the Emitter Update to add the Spawn Burst Instantaneous module
Spawn Burst Instantaneous
14. Spawn Burst Instantaneous Set Spawn Count to 100.0
Spawn Burst Instantaneous
15. Initialize Particles Select Initialize Particles and set:

1. Lifetime to 3.0
2. Sprite Size Mode to Uniform
Initialize Particles
16. Initialize Particles Set the value type of Uniform Sprite Size to Float from Curve
Initialize Particles
17. Initialize Particles Click on the first point and set its value to: 1.25

Tips: Sometimes, the newly set points will go beyond the boundaries of the existing chart. You can adjust the chart boundaries by clicking on the button circled in red.
Initialize Particles
18. Initialize Particles Mouse over the small red circle, right click, and select Add key to Curve.
Initialize Particles
19. Initialize Particles Set the Time of the newly added point to 0.24 and the Value to 2.27.
Initialize Particles
20. Initialize Particles In the same way, add three points: (time 0.51, value 2.87), (time 0.78, value 2.29, (time 1, value 1.36).
Initialize Particles
21. Spawn Beam Add Spawn Beam module to the Particle Spawn section.
Spawn Beam
22. Beam Width Add Beam Width module to the Particle Spawn section.
Beam Width
23. Beam Width Set the value type of Beam Width to Float from Curve
Beam Width
24. Beam Width Select the first point and edit its value to: (Time is 0.0, Value is 0.0).
Beam Width
25. Beam Width Mouse over the small red circle, right click, and select Add key to Curve.
Beam Width
26. Beam Width Set the Time of the newly added point to 0.25 and the Value to 2.3.
Beam Width
27. Beam Width In the same way, add a point: Time is 0.5 and Value is 3.4.
Beam Width
28. Beam Width Set the Key Interpolation type for this point to Linear.
Beam Width
29. Beam Width Set the value of CurveIndex to RibbonLinkOrder
Beam Width
30. Color Add Color module to the Particle Update section.
Color
31. Color Set the value type of Color to Lerp Linear Color
Color
32. Color 1. Set the StartColor to (1, 0.3, 0, 1) and the EndColor to (0, 0.2, 1, 1).
2. Set the LerpFactor to RibbonLinkOrder
Color
33. Color Particles.RibbonLinkOrder is the variable which determines how particles of a given RibbonID link up with each other.

The Spawn Beam module establishes the order based on the new particles as they are spawned in a burst, and assigns a new unique RibbonID to each new set of particles so they stay as separate beams instead of one large interconnected ribbon between all particles in the emitter.

From there, normal particle simulation takes over, and because the ribbon ID and link order are not changing from frame to frame, the beams stay stable.
Color
34. Curl Noise Force Add Curl Noise Force module to the Particle Update section.
Curl Noise Force
35. Curl Noise Force Click the first Fix issue button to add its dependency on the SolveForcesAndVelocity module.
Curl Noise Force
36. Curl Noise Force 1. set Noise Strength to 16.0
2. Set Noise Frequency to 4.0.
3. Select the value of Noise Quality/Cost as Baked(High).
4. set the value of Pan Noise Field to (X: 0, Y: 0, Z: 1)
Curl Noise Force
37. Drag Add Drag module to the Particle Update section.
Drag
38. Drag Click the first Fix issue button to fix the SolveForcesAndVelocity module's dependency order issue.
Drag
39. Ribbon Renderer Add Ribbon Renderer module to the Render section.
Ribbon Renderer
40. Ribbon Renderer Set the value of Material to DefaultRibbonMaterial
Ribbon Renderer
41. 🎉 Finish! 🎉 👉  Cyanhall@GitHub  Star me if it’s helpful.

Support Me: Patreon
Follow Me: Twitter, Reddit, Zhihu, Bilibili
🎉 Finish! 🎉
Comments
Preparation