版本:4.26, English
创建:2021-02-15,更新:2021-03-25
作者:Cyanhall
👉  Cyanhall@GitHub 如果有用请点赞。
1. 预备 这是这个教程要完成的效果。

注意:本教程主要内容来自虚幻引擎自带的内容示例

提示:使用 ⬆️ ⬇️ 可上下翻页。推荐用大屏浏览,以获得更好的阅读体验。
Preparation
3. 介绍 静态光束是使用静态的起始点和终点产生的,而不是每帧动态更新。
每个光束段都是一个模拟粒子,可以进一步受到力或其他效果的影响。
Introduction
4. 让我们开始重建 右键选择 FX => Niagara System 创建。
Let's start the reconstruction
5. 创建 Niagara System 选择空(Empty)模板,然后点击 + 按钮,点击 Finish
Create Niagara System
6. 创建 Niagara System 由此,我们得到一个 Niagara System 的资产,点击打开它。
Create Niagara System
7. 空 Niagara 系统 可以看到我们有了一个空 Niagara 系统。
Empty Niagara System
8. 生命周期模式(Life Cycle Mode) 设置生命周期模式为 自身(Self)

这决定发射器的生命周期(管理循环、年龄和死亡)是由拥有它的系统计算,还是由发射器本身计算。

在大多数情况下,允许所属系统计算生命周期,并将这些值传递给子发射器,是一个显著的优化。
Life Cycle Mode
9. 光束发射器设置(Beam Emitter Setup) 发射器更新(Emitter Update) 部分添加 光束发射器设置(Beam Emitter Setup)模块。
Beam Emitter Setup
10. 光束发射器设置(Beam Emitter Setup) 设置光束末端(Beam End)的值类型为随机向量(Random Vector)
Beam Emitter Setup
11. 光束发射器设置(Beam Emitter Setup) 设置向量缩放(Vector Scale)的值类型为随机范围浮点数(Random Range Float)
Beam Emitter Setup
12. 光束发射器设置(Beam Emitter Setup) 1. 设置最小值为:220.0,最大值为:340.0
2. 设置运算类型(Elevation Type)为:每一帧(Every Frame)
Beam Emitter Setup
13. 瞬间巨量生成(Spawn Burst Instantaneous) 点击发射器更新(Emitter Update)右边的 + 号,添加瞬间巨量生成(Spawn Burst Instantaneous)模块
Spawn Burst Instantaneous
14. 瞬间巨量生成(Spawn Burst Instantaneous) 设置生成数量(Spawn Count)100.0
Spawn Burst Instantaneous
15. 初始化粒子 选择初始化粒子(Initialize Particles),然后设置:

1. 存活期(Lifetime)3.0
2. 精灵大小模式(Sprite Size Mode)随机(Uniform)
Initialize Particles
16. 初始化粒子 设置统一精灵大小(Uniform Sprite Size)的值类型为浮点数曲线(Float from Curve)
Initialize Particles
17. 初始化粒子 点击第一个点,设置其值为:1.25

注意:有时候,新设置的点会超出现有图表的界限,可以点击红圈的按钮调整图表的边界。
Initialize Particles
18. 初始化粒子 鼠标移到小红圈,右键,选择添加一个点到曲线(Add key to Curve)
Initialize Particles
19. 初始化粒子 设置新添加的点的时间(Time)0.24值(Value)2.27
Initialize Particles
20. 初始化粒子 用同样的方法,添加三个点:(时间 为 0.51,值 为 2.87)、(时间 为 0.78,值 为 2.29)、(时间 为 1,值 为 1.36)。
Initialize Particles
21. 生成光束(Spawn Beam) 粒子生成(Particles Spawn) 部分添加 生成光束(Spawn Beam)模块。
Spawn Beam
22. 光束宽度(Beam Width) 粒子生成(Particles Spawn) 部分添加 光束宽度(Beam Width)模块。
Beam Width
23. 光束宽度(Beam Width) 设置光束宽度(Beam Width)的值类型为浮点数曲线(Float from Curve)
Beam Width
24. 光束宽度(Beam Width) 选中第一个点,编辑其值为:(时间(Time) 为 0.0,值(Value)为 0.0
Beam Width
25. 光束宽度(Beam Width) 鼠标移到小红圈,右键,选择添加一个点到曲线(Add key to Curve)
Beam Width
26. 光束宽度(Beam Width) 设置新添加的点的时间(Time)0.25值(Value)2.3
Beam Width
27. 光束宽度(Beam Width) 以同样的方式,添加一个点:时间(Time)0.5值(Value)3.4
Beam Width
28. 光束宽度(Beam Width) 设置这个点的点插值(Key Interpolation)类型为 线性(Linear)
Beam Width
29. 光束宽度(Beam Width) 设置 曲线下标(CurveIndex) 的值为 RibbonLinkOrder
Beam Width
30. 颜色(Color) 粒子更新(Particle Update)添加颜色(Color) 模块。
Color
31. 颜色(Color) 设置颜色(Color)的值类型为线性插值颜色(Lerp Linear Color)
Color
32. 颜色(Color) 1. 设置开始颜色为:(1, 0.3, 0, 1),结束颜色为:(0, 0.2, 1, 1)
2. 设置插值因子为 RibbonLinkOrder
Color
33. 颜色(Color) Particles.RibbonLinkOrder是一个变量,它决定了具体 RibbonID 的粒子如何相互链接。

当新粒子爆发地产生时,生成光束(Spawn Beam) 模块会根据新粒子建立顺序,并为每一组新粒子分配一个新的唯一 RibbonID,这样它们就会作为独立的光束,而不是发射器中所有粒子之间的一个大的相互连接的丝带。

从那里开始,正常的粒子模拟就会被接管,而且由于 RibbonID 和链接顺序不会从一帧到另一帧发生变化,所以光束会保持稳定。
Color
34. 卷曲噪声力(Curl Noise Force) 粒子更新(Particles Update) 部分添加 卷曲噪声力(Curl Noise Force)模块。
Curl Noise Force
35. 卷曲噪声力(Curl Noise Force) 点击第一个 Fix issue 按钮添加其依赖的 解算力和速度(SolveForcesAndVelocity) 模块。
Curl Noise Force
36. 卷曲噪声力(Curl Noise Force) 1. 设置噪声强度(Noise Strength) 的值为 16.0
2. 设置噪声频率(Noise Frequency) 的值为 4.0
3. 选择噪声质量/消耗(Noise Quality/Cost) 的值为 烘培(高)(Baked(High))
4. 设置 平移噪声场(Pan Noise Field) 的值为(X: 0, Y: 0, Z: 1
Curl Noise Force
37. 牵引力(Drag) 粒子更新(Particles Update) 部分添加 牵引力(Drag)模块。
Drag
38. 牵引力(Drag) 点击第一个 Fix issue 按钮修复 解算力和速度(SolveForcesAndVelocity) 模块的依赖顺序问题。
Drag
39. 丝带渲染器(Ribbon Renderer) 渲染器(Render) 部分添加 丝带渲染器(Ribbon Renderer)模块。
Ribbon Renderer
40. 丝带渲染器(Ribbon Renderer) 设置材质(Material)的值为 DefaultRibbonMaterial
Ribbon Renderer
41. 🎉 完成了! 🎉 👉  Cyanhall@GitHub  如果有用请点赞。

支持我: Patreon
关注我: TwitterReddit知乎Bilibili
🎉 Finish! 🎉
Comments
Preparation