Choose your operating system:
Windows
macOS
Linux
要获得某些效果,你可能需要生成数万个粒子。然而,使用标准的CPU生成这么多粒子会导致性能问题。本指南将向你展示如何创建使用GPU而不是CPU来运行模拟的Sprite粒子效果。
创建系统和发射器
与在Cascade中不同,Niagara发射器和系统是独立的。当前推荐工作流将从现有发射器或发射器模板创建系统。
首先,在内容浏览器中点击右键以创建Niagara系统,然后从显示菜单中选择 FX > Niagara系统(FX > Niagara System)。将显示Niagara系统(Niagara System)向导。
选择 从所选发射器新建系统(New system from selected emitters)。然后单击 下一步(Next)。
在 模板(Templates) 下选择 简单Sprite迸发(Simple Sprite Burst)。
单击 加号图标(Plus icon)(+),以将发射器添加到要添加到系统的发射器列表中。然后单击 完成(Finish)。
将新系统命名为 GPUSprite。双击以在Niagara编辑器中将其打开。
新系统中发射器实例的默认名称为 SimpleSpriteBurst,但你可以对其重命名。在 系统概览(System Overview) 中单击发射器实例名称,该字段将转变为可编辑状态。将发射器命名为 FX_GPUSprite。
1.将 GPUSprite 系统拖到关卡中。
制作粒子效果时,最好将系统拖到关卡中。这样便可查看每一项更改并在上下文中进行编辑。 你对系统所做的任何更改都将自动传播到关卡中的系统实例。
发射器设置 - 发射器属性
首先,你需要在 发射器属性(Emitter Properties) 中更改某些设置。你可以在此处从CPU模拟切换到GPU模拟。
在 系统概览(System Overview) 中,单击 发射器设置(Emitter Settings),以在 选择(Selection) 面板中将其打开。
展开 发射器属性(Emitter Properties)。找到 模拟目标(Sim Target) 字段。你可以在此处告知虚幻引擎使用GPU进行模拟。单击下拉菜单,并选择 GPUComputeSim。
你可能会触发有关未设置固定边界的警告。单击 固定边界(Fixed Bounds) 对话框。这样可以解决错误。将 最小值(Minimum) 和 最大值(Maximum) 设置为默认值。
由于粒子模拟在GPU上完成,因此系统无法读取效果的大小。这就是必须设置固定边界的原因。你可以在发射器中执行此操作,如本步骤所示,也可以在 系统属性(System Properties) 项中为整个系统设置固定边界。
发射器更新组设置
下一步,你将在 发射器更新(Emitter Update) 组中编辑模块。这些是将应用于发射器并更新每一帧的行为。
在 系统概览(System Overview) 中,单击 发射器更新(Emitter Update),以在 选择(Selection) 面板中将其打开。
展开 发射器状态(Emitter State) 模块。此模块控制此发射器的时间和可延展性。由于你使用了简单Sprite迸发模板,因此 生命周期模式(Life Cycle Mode) 设置为 自身(Self)。通常,该模式用于为此特定发射器完全定制发射器生命周期逻辑,但此效果并不需要它。单击下拉列表,并将 生命周期模式(Life Cycle Mode) 设置为 系统(System)。此操作将使系统能够计算生命周期设置,而这通常可以优化性能。在默认情况下,系统以5秒的间隔无限循环。
当发射器生成时,生成即时迸发(Spawn Burst Instantaneous) 模块会产生大量粒子。此模块包含在简单Sprite爆发模板中。将 生成计数(Spawn Count) 设置为 2500。由于 生成时间(Spawn Time) 设置为 0,所以迸发会在启动时立即发生。
对于此效果,当发射器生成时,你需要的不仅是粒子迸发。当发射器处于活动状态时,生成速率(Spawn Rate) 模块创建连续粒子流。单击发射器更新的 加号(Plus sign) 图标(+)并选择 生成 > 生成速率(Spawning > Spawn Rate),以添加 生成速率(Spawn Rate) 模块。
将 生成速率(Spawn Rate) 设置为 500。这样将以每秒500个的速度生成粒子,由此在初始迸发后提供连续的粒子流。
粒子生成组设置
下一步,你将在 粒子生成(Particle Spawn) 组中编辑模块。这些是粒子首次生成时将应用于粒子的行为。
在 系统概览(System Overview) 中,单击 粒子生成(Particle Spawn),以在 选择(Selection) 面板中将其打开。
展开 初始化粒子(Initialize Particle) 模块。此模块将多个相关参数采集到一个模块中,从而最大程度地减少堆栈中的混乱。在 点属性(Point Attributes) 下,找到 生命周期(Lifetime) 参数。
生命周期参数确定了粒子在消失之前将显示多久。对于此效果,你需要一个恒定值,从而使粒子在效果的整个持续时长内显示。将 生命周期(Lifetime) 设置为 5。
你将在本指南的另一部分中将Sprite大小随机化,但是在此处,我们将设置Sprite的基本大小。在 Sprite属性(Sprite Attributes) 下,找到 Sprite大小(Sprite Size) 参数,并确保启用它。将 Sprite大小(Sprite Size) 设置如下:
大小矢量
数值
X
5
Y
5
球体位置控制Sprite生成所在位置的形状。添加 球体位置(Sphere Location) 模块后,Sprite将以球体形状生成,而且你可以通过指示半径以设置球体形状的大小。单击粒子生成的 加号(Plus sign) 图标(+)并选择 位置 > 球体位置(Location > Sphere Location),以添加 球体位置(Sphere Location) 模块。你可以保留模块的默认设置。
粒子更新组设置
现在,你将在 粒子更新(Particle Update) 组中编辑模块。这些行为将应用于发射器的粒子并更新每一帧。
在 系统概览(System Overview) 中,单击 粒子更新(Particle Update) 组,以在 选择(Selection) 面板中将其打开。
在粒子生成组的初始化粒子模块中,你已选择Sprite的基本大小。你可以通过添加缩放Sprite大小模块来随机化Sprite的大小。这样可将比例因子应用于基本大小。单击 加号(Plus sign) 图标(+)并选择 大小 > 缩放Sprite大小(Size > Scale Sprite Size),以添加 缩放Sprite大小(Scale Sprite Size) 模块。
缩放Sprite大小的默认值为 X: 1 和 Y: 1。更改这些默认值将统一使所有粒子变大或变小。然而,随机大小变化比静态大小更具视觉吸引力。单击 比例因子(Scale Factor) 字段旁的向下箭头,然后选择 动态输入 > 来自浮点的Vector2D(Dynamic Inputs > Vector2D from Float)。
请注意,比例因子(Scale Factor) 的值已转变为一个静态值。有多种方法可添加浮点值,具体取决于你所需的粒子外观。对于流动且渐进的大小变化,曲线是理想选择。单击 值(Value) 旁的向下箭头,然后选择 动态输入 > 曲线中的浮点(Dynamic Inputs > Float from Curve)。
你在步骤5中添加的曲线具有两个默认值。你可以向曲线添加更多键,以使大小变化更加复杂。右键点击线条,然后选择 向曲线添加键(Add Key to Curve)。再次执行此操作,从而使曲线上总共显示4个键。
将曲线上的四个键设置为以下值。
键号
时间
值
1
0
0
2
.25
1
3
.75
1
4
1
0
现在,当前设置只是创建了一团并非十分有趣的粒子。你可以添加一些能够增加粒子变化和运动的其他元素。单击粒子更新(Particle Update)的 加号(Plus sign)(+)图标,然后选择 力 > 旋度噪点力(Forces > Curl Noise Force)。
你可以使用旋度噪点力完成许多操作。噪点强度(Noise Strength) 控制整个噪点场的大小(即,噪点干扰原始粒子球体的程度)。噪点频率(Noise Frequency) 控制旋度噪点应用于粒子的频率:数字越小,粒子的球体位置将越翘曲。当前使用下面的设置,但你稍后可以尝试使用这些设置以获取不同的外观。
参数
值
噪点强度(Noise Strength)
72
噪点强度(Noise Frequency)
02
现在,你将看到粒子首先旋转,然后便持续向外移动,直到消亡。对于此效果,粒子应向外移动,然后返回其原点,以形成漩涡状物质。点吸引力(Point Attraction Force) 模块使粒子向单个点移动(默认情况下,该点是发射器的位置)。单击粒子更新的 加号(Plus sign) 图标(+),然后选择 力 > 点吸引力(Forces > Point Attraction Force)。
吸引强度(Attraction Strength) 是将粒子拉到吸引子点的力大小。吸引半径(Attraction Radius) 描述点吸引力作用于粒子的场大小。衰减指数(Falloff Exponent) 控制球体的扩散程度;数字越小,粒子球体的扩散范围越大。消亡半径(Kill Radius) 设置粒子在生命周期结束时分解所处区域的大小。将 吸引强度(Attraction Strength)、吸引半径(Attraction Radius)、衰减指数(Falloff Exponent) 和 消亡半径(Kill Radius) 设置为以下值。
单击模块底部的三角形,以显示 消亡半径(Kill Radius) 参数。如果尚未勾选此复选框,则请勾选以启用它。
参数
值
吸引强度(Attraction Strength)
5.5
吸引半径(Attraction Radius)
300.0
衰减指数(Falloff Exponent)
0.6
消亡半径(Kill Radius)
4.0
现在,更改颜色。单击粒子更新的 加号(Plus sign) 图标(+),然后选择 颜色 > 颜色(Colors > Color)。
你可以单击颜色条上方的空间以向曲线添加颜色停止点,也可以通过双击停止点打开取色器以更改颜色。若要设置不透明度停止点,请点击颜色条下方的空间。将颜色和不透明度设置如下。
颜色或不透明度停止点
时间
值
颜色
停止点1(Stop 1)
0.0
R: 1, G: 0, B: 1
停止点2(Stop 2)
.35
R: .08, G: 0, B: 1
停止点3(Stop 3)
..60
R: .2 , G: 1, B: .8
停止点4(Stop 4)
.8
R: 1, G: .96, B: .3
不透明度
停止点1(Stop 1)
0
1
停止点2(Stop 2)
.7
1
停止点3(Stop 3)
1
0
最终结果
祝贺你!你成功创建了通过GPU而非CPU计算的酷炫Sprite效果。