UE5 Niagara | 官方小案例练习1.5 动态控制粒子颜色
目标:瞬间变量的学习认识
变量类型 (因为粒子是根据生命值运动的,比如颜色在不同时间显示不一样的颜色,所以是变量)
一种是全局变量
整个粒子系统都可以使用的变量,称之为全局变量, 比如 系统属性的变量就属于全局变量

一种是瞬间变量
是指在当前发射器下的变量,这个变量只能在这个发射器使用,
问题:这俩种变量有什么区别吗?
全局变量会比瞬间变量更费,
制作粒子根据距离改变颜色
创建瞬间变量(Transient variables)
默认创建变量 ——变更命名空间—-设置临时

在临时阶段就有这个变量了,

注意
全局变量和临时变量的区别,临时变量前面会变成紫色
简单理解:这俩个区别 就类似 ,一个是全局变量,一个是局部变量,

制作思路
创建一个临时变量,代表当前和发射器原点的距离。 用这个变量改变颜色大小曲线。
简单说就是使用这个变量,控制粒子在(0的时候是一种颜色。1的时候另一种颜色)如果这个变量在0到1变化,颜色也会改变
创建粒子的发射
创建粒子系统——-命名eif_1_5
增加粒子生成模块 SpawnRate 每秒生成30

粒子生成模块 增加一个球体发射器(sphere Location)

设置 球体范围300
修改一些粒子的基础设置

设置默认大小随机值 给一个颜色,生命周改成一个范围值(0-1)
粒子生成模块——-点添加速度(Add Velocity from Point)模块。

粒子会向外扩散,这个力的作用就是实现粒子向外发射。

设置点速度范围值RandomRange Float( 10 , 100),这样就可以实现快慢的效果。
选择粒子更新阶段 ——-增加点吸引力(Point Attraction Force) 模块

设置点吸引力模块数值
吸引力强度(Attraction Strength)
吸引力半径(Attraction Radius)

这里设置范围大一点,强度也大一点。

效果

现在的粒子会前扩散,在到一定位置向内移动。
创建关联瞬间变量
创建一个瞬间变量 这一步前面介绍到了。
命名NormalizedDistanceFromCenter 缩减 (NOFC)
把这个变量拖到粒子更新阶段

设置NOFC的类型为 标准化距离范围(Normalize Distance Range)


设置开始位置(Start Position) 粒子的位置

注意: 这里使用的是下面动态的位置,不是初始位置
结束位置(EndPosition)设置 粒子模拟的位置

设置变化距离(Distance) 为300

变化状态已经关联完,

应用使用瞬间变量
粒子更新阶段 —-创建颜色(Color)模块 —-设置颜色 线性插值颜色(Lerp Linear Color)


设置颜色线性插值,表示俩个颜色的变化。
扩展 :线性插值(Lerp)
在材质里经常使用到插值(Lerp)

表示A的输入一个数值 B在输入一个数值,根据Alpha的权重输出结果。
示例
Alpha = 0 就输出 红色 Alpha = 1 输出蓝色

本课核心
这里线性插值颜色(Lerp Linear Color) 就是俩个颜色 根据LerpFactor 权重改变。
设置 颜色,插值LerpFactor 设置成我们创建的NOFC变量

效果

这一步是根据我们创建的变量,进行颜色插值变化,
在设置粒子的大小变化,
选择 粒子更新阶段 ——-缩放精灵大小(Scale Sprite Size)模块。

设置变化的类型 Vector 2DFrom Flout

这里为什么是Vector 2DFrom Float类型
是因为我们默认的大小,粒子是有X 和 Y俩个方向,设置这个变量的意思是,把XY合并成一个,
简单理解是等比缩放。
注意:原来我们都是设置曲线类型,这次是设置向量浮点类型
设置这个变量为 浮点数插值(Lerp Float)

这一步和上面类型 设置一个最小值,一个最大值,根据我们的NOFC插值变化

效果

完成
实现官方效果。
总结
对全局变量和瞬间变量认识,就相当于是一个局部变量一个全局变量
瞬间变量 的绑定数值逻辑更深的认知,他们关联性,使用粒子的位置和动态位置生成变量。
lerp的使用,这次使用了,俩个线插值,一个是颜色线性插值(Lerp Linear Color)一个是浮点数插值(Lerp Float)
参考
https://www.cyanhall.com/cn/tutorial/5.blend-attributes-by-value/