新建第一个系统:从模板到上线

讲太多原理不如跑一遍。这一节从零建一个"受击火光"系统,过一遍完整流程,也确认开发环境。

第一步:确认插件已启用

Niagara 在 UE5 中默认启用。如果是老项目升级来的,检查 编辑 → 插件 → Niagara 是否勾选。重启编辑器后,内容浏览器右键才能看到 Niagara 分类。

小贴士:如果你的项目里还有大量旧 Cascade 资产,UE 提供了官方的 Cascade → Niagara 转换插件,可批量迁移,详见后续章节的迁移小节。

第二步:从模板建 Emitter

不要从空白 Emitter 开始——模板是官方调好的起点。内容浏览器右键 → Niagara → Emitter,选 Simple Sprite Burst(简单精灵爆发)。打开后确认:

  • 视口里按 SPACE 可以在播放 / 暂停间切换;
  • 左下角时间轴可拖动预览;
  • Spawn Rate 模块改个数值,视口实时变化(这就是所见即所得)。

第三步:调整成想要的样子

依次改三个地方,这个 Emitter 就从"通用爆发"变成"火光":

  1. 颜色:找到 Color 相关联的初始化或更新模块,改成暖橙色(火焰)或亮黄(电火花)。
  2. 生命周期:Initialize Particles 里的 Lifetime 从默认 3 秒降到 0.4 秒(火光是一瞬间的事)。
  3. 大小曲线:Sprite Size 一开始大、快速变小,模拟能量衰减。

保存为 NE_ImpactFire。命名规范建议:Emitter 用 NE_ 前缀(Niagara Emitter),System 用 NS_ 前缀,和网游资产前缀习惯一致。

第四步:建 System 并编排

右键 → Niagara → System → 从 Emitter 创建(选刚才的 NE)。进入 System 编辑器:

  • 时间轴显示这个 Emitter 的播放区间;
  • 此时可以再加一个烟雾 Emitter(Simple Sprite Burst 改成灰色、慢速、上升),拖到时间轴上让它晚 0.1 秒进入。

保存为 NS_ImpactFire。

第五步:在场景里验证

把 NS 拖进场景,它默认自动循环播放。验证三件事:

  1. 摄像机拉远看 LOD 衰减是否可接受(Niagara 有 Emitter 的 LOD 功能);
  2. 用 stat Niagara 看一眼这个 System 的开销(详见性能章);
  3. 关掉"仅循环编辑器播放"类设置,确认打包后也会播放。

第六步:蓝图里按需播放

受击特效不该常驻,应该"被打到才播"。蓝图里:

  • 用 Spawn System at Location(或 at Actor)节点,传入 NS 资产;
  • 设置 AutoDestroy 为真,播完自动销毁,不用手动管理。

过一遍检查清单

检查项 达标标准
命名 NE_/NS_ 前缀 + 可读名字
目录 按类别归类(战斗 / 环境 / UI),不堆在一个文件夹
循环 该循环的循环、该单次的单次,不在蓝图里靠 Timer 补
预览 编辑器里暂停 / 拖时间轴都能正确表现
开销 stat Niagara 有数,知道这个特效吃多少

跑完这个流程,你就掌握了 Niagara 工作流的主干。后续章节往深里讲每个环节的工程化做法。