用途:在UE5中用Niagara创建和控制实时视觉特效,包括理解System/Emitter/Module层级、在Spawn/Update阶段连接模块、把User参数暴露给玩法代码,以及在运行时生成并驱动特效(如击中、枪口火焰、火焰、魔法)。目标版本为UE 5.8,Niagara已取代旧版Cascade。适用于项目已含NS_/NE_资产或引用UNiagaraComponent的情况;不适用于材质/着色器作者(另见shader-programming)和特效音效(见audio-design)。
主要能力与工作流:Niagara System(NS_)是放置/生成的成品特效,内含一个或多个Emitter(NE_,常为模板)。每个Emitter按阶段运行:Emitter Spawn/Update、Particle Spawn/Update、可选EventHandler及Render。行为由Module构建,模块在各阶段自上而下执行(Spawn Rate、Add Velocity、Gravity Force、Color over Life等),顺序影响结果,后一个模块读取前一个写入的值。参数命名空间有System、Emitter、Particle、User;只有User命名空间参数可被蓝图/C++设置,其余为模拟内部参数。
使用方式:运行时通过UNiagaraFunctionLibrary::SpawnSystemAtLocation(世界位置)或SpawnSystemAttached(跟随组件/插槽)生成,返回UNiagaraComponent;再在返回的组件上设置User参数(颜色、生成速率、目标位置)并Activate/Deactivate。C++需在*.Build.cs中添加Niagara模块。示例:UNiagaraComponent* FX = UNiagaraFunctionLibrary::SpawnSystemAtLocation(GetWorld(), ImpactSystem, Location, Rotation); 以及 Fire->SetVariableFloat(FName("SpawnRate"), 250.f);。蓝图对应节点为Spawn System at Location与Set Niagara Variable (Float/LinearColor)。
限制与常见问题:从玩法代码设置System/Emitter/Particle参数无效,必须暴露为User参数;旧Cascade教程不适用;特效消失或剔除异常多因bounds错误,GPU Compute发射器需显式Fixed Bounds;bAutoDestroy=false且未Deactivate会导致循环特效不停;GPU粒子数据难以回读CPU,需要玩法响应的碰撞/事件应使用CPU发射器或数据接口;模块顺序错误会读到零值。验证应在Niagara编辑器预览和关卡内进行,并确认剔除/销毁正常。主要文档为“Overview of Niagara Effects”及UNiagaraFunctionLibrary / UNiagaraComponent API;相关技能有shader-programming、unreal-cpp-gameplay、unreal-blueprints。