1. 新建一个Actor蓝图,这里命名为“BP_ODLine”
2. 创建一个材质,这里命名为“M_ODLine”,该材质用于设置基线颜色、亮度和透明度
打开材质“M_ODLine”,设置混合模式为半透明
设置一下颜色和透明度
3. 打开蓝图“BP_ODLine”,添加一个样条线组件
在构造函数中首先创建材质的动态材质实例并设置材质参数值,其中变量“Brightness”、“SpeedX”的默认值分别设置为2、-1
4. 创建一个空心圆柱体,半径设置为500mm,高度设置为1000mmm,高度分段为50,然后绕Y轴旋转90°
然后将上下底面删除
在坐标归0后导出为fbx,然后再导入到UE中
5. 回到蓝图“BP_ODLine”中,继续编辑构造函数创建基线部分
此时可以看到视口预览部分效果如下
6. 新建一个Niagara系统,这里命名为“NS_ODLine”
打开“NS_ODLine”,先添加4个用户参数,变量类型为vector和float
添加一个Empty发射器
添加一个“Spawn Per Unit”(表示按移动距离生成粒子)模块,
点击修复问题
设置“Spawn Spacing”为1,表示每移动1cm就生成一个粒子
选中“Initialize Particle”模块,设置粒子生命周期为用户参数“LifeCycle”,设置粒子大小为用户参数“Width”
为了修改粒子的颜色,我们添加一个“Scale Color”模块
因为粒子的自发光是由颜色x亮度得到的,因此这里需要设置用户参数Color和Brightness
由于OD线的末尾是逐渐变小直至消失的,而且这里用的渲染器是Sprite渲染器,因此这里需要添加一个“Scale Sprite Size”模块
通过曲线设置粒子生命开始时大小为1,生命结束时大小为0
为了观察此时的效果,这里添加一个“Spawn Rate”模块,设置SpawnRate为10,然后禁用“Spawn Per Unit”模块
将用户参数的Brightness默认值改为100
此时预览效果如下
感觉效果不错的话,禁用“Spawn Rate”模块,启用“Spawn Per Unit”模块
7. 回到蓝图“BP_ODLine”,添加一个Niagara系统组件,设置Niagara系统资产为“NS_ODLine”
在构造函数中设置Niagara参数
接下来在事件图表中让OD线动起来,在事件图表中添加如下节点
时间轴曲线如下
将蓝图“BP_ODLine”拖入场景,然后可以看到Niagara粒子沿着样条线移动了,但是只会出现一次
下面我们需要让OD线无限循环,首先需要在时间轴完成后重置一下粒子位置,然后延迟一定时间后再重新播放时间轴,通过该方式来实现循环生成粒子的效果
如果想修改粒子的移动速度的话,可以通过改变时间轴的播放速率实现。比如之前粒子是1s走完整个样条线,现在我将播放速率改为0.5,那么粒子将花费2s走完整个样条线
最终效果:
参考视频: