System 时间轴:编排多个 Emitter

System 编辑器最大的价值是时间轴:一条横向时间线,每个 Emitter 一条轨,控制它何时进入、循环几次、何时结束。

时间轴的三个核心概念

概念 位置 作用
Emitter 轨道 主时间轴左侧列表 决定这个 Emitter 在整个 NS 里的播放区间
循环模式 轨道属性 Single(单次)/ Infinite(无限循环)/ Custom Loops(N 次)
开始 / 结束 轨道上的区间 拖动绿色 / 红色柄调整;可设延迟开始(-0.5s 之类)

典型的编排案例:受击爆发

一个完整的受击特效在时间轴上长这样(总时长约 1.5 秒):

Emitter 进入时间 播放模式 说明
冲击波(NS 内嵌套) 0.00s Single 扩散光环,0.3 秒
火星 0.00s Single 四散的小光点
烟雾 0.10s Single 缓慢上升扩散,1.2 秒
火光 0.00s Single 中心明亮闪光,0.2 秒
余烬 0.05s Single 几个缓慢下落的红点

注意:所有轨道都是 Single——一次性特效不要开循环,否则蓝图 Destroy 之后还在播(虽然组件销毁会终止整个 NS,但循环 NS 的"自动重播"会破坏单次语义)。

高级功能:System 内嵌套 System

UE5 允许把一个 NS 作为另一个 NS 的"子系统"嵌进来(在轨道上右键 → 添加嵌套 System)。这适合特效家族复用:一个"通用爆炸" NS 已经调好了,要做"更厉害的爆炸"时直接嵌进来再加一层冲击波即可,不用重新排五个轨道。

注意:嵌套层级不要太深。超过两层时,参数传递与调试都会变得难以追踪(改最里层的参数要透过两层暴露)。

播放控制的 API 术语对照

你想做的事 蓝图节点 备注
播一次就销毁 Spawn System at Location(Auto Destroy) 最常用
挂在角色身上 Spawn System Attached 跟随骨骼 / 插槽
手动开始 NiagaraComponent → Activate 成本低
停止 NiagaraComponent → Deactivate 不销毁组件,可复用
设参数 Set X Parameter (Niagara) Activate 之前设
判断播完 On System Finished 委托 单次模式专用

"设参数要在 Activate 之前"是个高频坑:组件 Activate 之后的参数写入需要调用 ReinitializeSystem 或等下次播放才生效(视版本而定)。