从Cascade到Niagara(Sprite篇)

从Cascade到Niagara(Sprite篇)

本文是对具有UE4的Cascade粒子系统基础的开发者所写,在推出了Niagara粒子系统后,后续可能出现将旧有的粒子系统移植到Niagara的相关需求,这里我们从模块的角度来为大家展示Niagara如何与Cascade粒子系统对应,而Niagara又具有哪些新的内容。

从Cascade到Niagara(Sprite篇)从Cascade到Niagara(Sprite篇)

作者在学习cascade时,模块名称仍为英文,故这里列出的是cascade模块的英文显示。

粒子的生成:

从Cascade到Niagara(Sprite篇)从Cascade到Niagara(Sprite篇)

 

粒子的Spawn和SpawnPerUnit模块在Niagara有如下调整:

在发射器更新栏内,粒子生成被拆分为SpawnRate和Spawn Burst Instantaneous,来对应旧粒子系统中的Spawn模块,该模块原先包括生成和爆发两项。

初始值:

Initial Color,Initial Size,Initial Rotation,Initial Velocity等为初始值。

这些初始值,在Niagara有如下调整:

在粒子生成栏内,除速度外,其余模块被合并为Initial Particle。

当Add Velocity被放置在粒子生成栏时,与Cascade内Initial Velocity效果相同。

更新:

XXX Over Life或者XXX By Life模块将做出统一调整:

Niagara在粒子更新栏内添加的模块将具备XXX Over life(或者XXX By Life)的作用。

(Cascade内,Initial Color与Color Over Life的计算方式是相乘,故Scale Color更贴近Color Over Life模块)

从Cascade到Niagara(Sprite篇)

在粒子更新栏内,添加Scale Color,Scale Sprite size,Scale Velocity并将值类型设置为Curve的相关变量,将根据自变量的变化来更新,这里,自变量可以是NormalizedAge(根据粒子寿命自0.0~1.0进行缩放),或者是Age(单位为s)

从Cascade到Niagara(Sprite篇)

自变量CurveIndex可以设置为别的类型,比如我们可以根据粒子的z位置确定粒子的颜色,来达到彩虹的效果。

参数演示1:参数和演示效果如下,我们使用数量较多的粒子来突出上图中改动后的效果,可以看到,粒子颜色根据粒子的z坐标来变化。

为方便进行颜色曲线的显示,这里的模式选择为RGBA Together

从Cascade到Niagara(Sprite篇)

这里的自变量(CurveIndex)设置为Make Float from Vector,在vector处选择粒子的position,Channel选择Z。

因为自变量从时间变为了粒子位置的z坐标,因此曲线的范围也需要进一步扩大,这里我们手动选取了一个还算合适的范围。从这里我们可以证实粒子的颜色在根据z坐标而变化,因为粒子向上的初速度不足以达到紫色的高度,故没有粒子显示为紫色。

从Cascade到Niagara(Sprite篇)

 

速度、位置和力:

三者共同影响粒子的运动。注意,你可以让位置根据一个曲线来进行改变,以此实现粒子的运动。

Cascade中部分模块对应Niagara模块如下。其中,Attractor类型在Niagara中可使用力相关模块来实现。

从Cascade到Niagara(Sprite篇)从Cascade到Niagara(Sprite篇)

力作为一个改变速度的变量,与速度的相关计算依赖以下模块(粒子更新栏下)

从Cascade到Niagara(Sprite篇)

如果想在粒子生成时就添加力,请在生成栏添加Apply Initial Forces模块

从Cascade到Niagara(Sprite篇)

请根据添加的力和旋转,补充有关的Solve模块。

此类计算自上而下且在计算中模块间有可能覆盖或更改,因此我们需要将Solve有关的模块放置于粒子更新栏的最下方。而且,我们自行编写模块时,需要将自写模块放置至合适的位置才能达到效果。

力的有关模块如下图,请根据英文名称描述选取相应的模块:

从Cascade到Niagara(Sprite篇)

在内容演示中,我们将使用多个Force和Velocity模块的混合,来实现粒子螺旋吸收的效果。

参数演示2

从Cascade到Niagara(Sprite篇)

速度参数如下:

从Cascade到Niagara(Sprite篇)

未列出的参数:Cylinder Location的半径为200,高度为0。

上图中,请注意各个模块中的Origin Offset参数,它确定了吸收的点的位置。

(在Cascade中,我们可以通过制作一个普通的吸收效果,将吸收的Sprite发射器的属性改为Local Space,并旋转Cascade来实现螺旋的效果。请注意这里是否勾选Local Space的区别)

GPU模拟:

在发射器属性中修改。

从Cascade到Niagara(Sprite篇)

与Cascade一样,Niagara的GPU粒子同样需要边界,这边界通常用于标示粒子显示的范围。

边界设置如下图,与Cascade类似。

在上图中,Niagara也可以手动调整边界,勾选固定边界后设置大小即可。

从Cascade到Niagara(Sprite篇)

锁定朝向:

Cascade中,锁定朝向的方式是使用LockAxis模块,且只能朝向轴。而Niagara中,逻辑有所修改。从Cascade到Niagara(Sprite篇)

 当粒子需要朝向特定方向时(等同于LockAxis中的X选项),设置如下:

从Cascade到Niagara(Sprite篇)

在Sprite渲染器模块内,将对齐设置为自定义对齐,朝向模式改为自定义朝向矢量。

在粒子生成处点击加号,点击设置新参数。

从Cascade到Niagara(Sprite篇)

点击+号,选择SpriteFacing变量进行修改

从Cascade到Niagara(Sprite篇)

该变量是一个Vector的值,比Cascade更多的功能是,当该变量调整为(1,1,0)之类的矢量时,粒子将具有斜向朝向。

当粒子需要对轴活动时(等同于LockAxis中的Rotate Z),在Sprite渲染器内修改以下设置如图:

从Cascade到Niagara(Sprite篇)

仍然是设置参数:

从Cascade到Niagara(Sprite篇)

在上图中请设置SpriteAlignment,例如,设置为(0,0,1)时,将等同于在Cascade中,LockAxis选项里的Rotate Z从Cascade到Niagara(Sprite篇)

速度对齐:

从Cascade到Niagara(Sprite篇)

Sprite渲染器内,对齐如果设置为速度对齐,等同于下图在Cascade中,Velocity对齐的方式。

从Cascade到Niagara(Sprite篇)

 

(该文章将在bilibili同步发布,内容略有不同。另外,参数演示视频将发布在b站

从Cascade到Niagara(Sprite篇)

 

上一篇:css中雪碧图(sprite)的使用及制作方法


下一篇:vue3.x 使用svg-sprite-loader处理svg图片(八)