UE4 Niagara粒子系统基础笔记
目录Niagara基础概念Niagara官方建议Niagara堆栈面板Niagara渲染模式&材质Niagara和蓝图Niagara常用模块Niagara常用技巧Niagara ModuleScriptNiagara基础概念插件启用Niagara 和 Niagara Extras创建粒子发射器Niagara Emitter 和 粒子管理系统Niagara SystemFx - Niagar
目录
Niagara基础概念
-
插件启用Niagara 和 Niagara Extras
-
创建粒子发射器Niagara Emitter 和 粒子管理系统Niagara System
-
Fx - Niagara Emitter
-
右键Emitter - Create Niagara System
-
一个System 可以包含多个 Emitter,用于组合粒子效果
-
-
Niagara VFX系统共有四大核心组件
-
系统:Niagara系统包含多个发射器,结合后可产生一种效果。例如制作烟花效果,可能需要多次爆发。为此需创建多个发射器,并放置在名为Firework的Niagara系统中
-
发射器:Niagara发射器包含模块。其用途单一,但可重复使用。Niagara发射器的一大独特之处在于,可使用模块堆栈创建模拟,并在同一发射器中以多种方式进行渲染。继续以烟花效果为例,可创建一个发射器,其中包含用于火花的sprite渲染器,和用于火花之后流光效果的条带渲染器
-
模块:Niagara模块是Niagara VFX的基础层级。模块将与一般数据通信、封装行为,与其他模块堆栈,并写入函数。 使用高级着色语言(HLSL)编译模块,但可用节点在图表中进行可视化编译
-
参数:Niagara模拟中的数据的抽象表现。共有四种参数:
-
基元(Primitive):此类参数定义不同精度和通道宽度的数值数据。
-
枚举(Enum):此类参数定义一组固定的指定值,并取其中一个指定值
-
结构体(Struct):此类参数定义一组基元和列举类型的组合。
-
数据接口(Data Interfaces):此类参数定义从外部数据源中提供数据的函数。此可为UE4其他部分中的数据,或外部应用程序中的数据
-
-
-
Niagara工作流程
-
创建发射器:将模块放入堆栈,以便定义外观效果以及要采取的操作等。每个模块都有自己的分组,五大主要分组:
-
发射器生成(Emitter Spawn):放置的模块定义发射器首次生成时的效果
-
发射器更新(Emitter Update):放置的模块随时间持续影响发射器
-
粒子生成(Particle Spawn):放置的模块定义发射器中生成粒子时的效果
-
粒子更新(Particle Update):放置的模块用于随时间持续影响粒子
-
事件处理(Event Handlers):你可以在一个或多个用于定义特定数据的发射器中创建"生成"事件。然后你可以在其他发射器中创建监听事件,这些发射器会根据生成的事件触发特定行为(用于发射器通信)
-
-
创建系统:你可以将各个单独的发射器组成一个系统,从而合力表现整体视觉效果。 有些模块是特定于系统的;还可以利用Niagara编辑器的时间轴(Timeline)面板来管理系统中所包含的发射器的计时
-
创建模块(新建Niagara未提供的模块,可以复用的“粒子函数” --- ModuleScript)
-
Niagara官方建议
-
尽量使用继承复用Niagara库中已有的发射器
-
尽量避免创建模块,可以使用Niagara的动态输入避免新建模块
-
使用Micro表达式适用于无需新模块的一次性功能
-
使用事件进行粒子、发射器、系统间的通信
-
使用数据接口访问任意外部数据:包括网格体数据、音频、外部DDC信息、代码对象和文本容器
-
使用Houdini创建的数据导出成常见格式CSV,在UE4中可导入Niagara
Niagara堆栈面板
-
Emitter Selection面板详解
-
-
不同的组会采用颜色编码
-
橙色(Orange) 用于发射器级模块。 发射器设置(Emitter Settings):发射器属性 项目位于本组中。 发射器生成(Emitter Spawn):首帧中发生的情况。发射器更新(Emitter Update):发射器更新时,首帧后发生的情况
-
绿色(Green)用于粒子级模块。粒子生成(Particle Spawn):创建粒子时发生的情况。 粒子更新(Particle Update):粒子生命周期内发生的情况
-
红色(Red) 用于渲染级别。Niagara将模拟与渲染解耦。这意味着可一次性创建模拟行为,然后将多个渲染器指定到该模拟
-
蓝色(Blue)用于粒子系统。 系统设置(System Settings): 此分组包括用户参数(User Parameters)和系统属性(System Properties)项目。系统生成(System Spawn):创建系统时发生的情况。 系统更新(System Update):系统生命周期内发生的情况
-
-
Niagara渲染模式&材质
-
四种渲染模式:Spirate、Light、Mesh、Ribbon
-
Facing Mode: Sprite通常Face Camera, Mesh通常Velocity
-
Spirate渲染:每个粒子为材质的2D贴图效果,最常用模式
-
Alignment:通常Velocity Aligned
-
Facing Mode: 通常Face Camera
-
-
Mesh渲染: 每个粒子为3D模型+材质效果
-
Facing Mode: 通常Velocity
-
Render添加mesh render, 附mesh + override材质
-
相关模块
-
MeshOrientation(初始旋转)
-
MeshSizeScale(mesh缩放)
-
-
-
Ribbon渲染(由粒子组成的带状,用于做各种轨迹效果)
-
Render添加Ribbon render,附材质
-
相关模块
-
Beam Emitter Setup(带状产生的起始点,常提供给蓝图控制)
-
Beam start/end位置信息需要勾上世界绝对位置选项
-
-
Spawn Beam
-
Spawn Burst Instantaneous
-
Spawn Count:带状按粒子划分的段数,可以make new expresion直接输表达式计算,如:
max(length(User.TargetPos-Engine.Owner.Position)/100, 10) //根据距离划分段数
-
-
Initialize Ribbon(Ribbon初始化参数)
-
update beam (解决快速触发时纽带问题)
-
-
-
粒子材质基础操作
-
材质基础设置
-
搜索use : 勾选use with niagara spirates/mesh/ribbon
-
surface + Translucent + two sides + unlit
-
Render添加spirate/mesh/ribbon render, 附材质
-
-
Niagara动态输入属性给材质
-
Dynamic Parameter 可自定义4*16个属性
-
particle update中添加Dynamic Material Parameters指定粒子的属性
-
材质中使用Dynamic Parameter输入给材质使用
-
-
已绑定好的属性:ParticleColor ParticleSize 等
-
-
-
UV控制
-
render板块里为材质提供了两套uv(0/1), 可以在材质中独立计算
-
UVTiling Ditance控制材质贴图的重复度(贴图UV的拉伸)
-
subUV (材质贴图划分单张贴图为多张子贴图,粒子系统随机读取,常用于模拟碎片溅射)
-
Particle Spawn中添加:set particles.subImageIndex, 输入uniform float随机,
如贴图划分16个,则随机范围0-15
-
render中设置SubUV: 如贴图划分16个,则x=4,y=4
-
-
-
粒子的朝向问题
-
通常蓝图里击中位置获取impact normal,作为user params传给Niagara (User.TargetNormal)
-
mesh粒子:设置Initial Mesh Orientation中的Orientation Vector 为User.TargetNormal
-
spirate粒子:设置Add Velocity in Cone中Cone Axis为User.TargetNormal
-
Coordinate Space都设置成World
-
-
Niagara和蓝图
-
Emitter Update中MaxLoopCount设置循环次数,设0无线循环
-
在动画中应用:Add Notify - Play Niagara Particle Effect
-
在Actor蓝图中应用:Niagara粒子系统(NS可以,NE不行)可以以组件形式添加到Actor
-
activate组件或deactivate
-
在蓝图里设置粒子属性:
-
NS的Parameters的User中添加参数(可被蓝图修改的public参数),在NE面板link input参数
-
蓝图中Set Niagara Variable
-
蓝图中控制贴花材质(受击血液溅射等效果触发)
-
spawn decal at lcoation : 世界位置生成
-
spawn decal attached : 生成并attach到actor
-
结合动态材质控制贴花时间和渐变
-
-
-
Niagara常用模块
-
Emitter spawn
-
Spawn Burst Instantaneous:发射器生成个数
-
-
particle spawn
-
Particle Initial :初始size(x,y), lifetime, position, color, mass等
-
Add Velocity From Point / In Cone : 点初始速度 或 锥形初速度
-
-
particle update
-
Cravity Force : 模拟重力
-
Drag : 添加阻力
-
Vector Noise Force : 随机扰乱速度
-
Set particle.Color/Size等 : 直接设置盘particle属性
-
Niagara常用技巧
-
Attribute Spreadsheet面板:capture查看每帧每个粒子的属性变化
-
增加一个spirate render,专门增加一个debug材质
-
在particle update中添加Dynamic Material Parameters指定粒子的属性
-
材质中使用Dynamic Parameter + debugScalerValues:将属性值传入材质实时渲染显示
-
-
Niagara面板属性值设置可以make new expression输入表达式计算
-
双击模块名进入模块蓝图,查看模板各输出的计算过程
Niagara ModuleScript
-
Niagara系统的可视化编程脚本,用于创建新模块
更多推荐
所有评论(0)