粒子效果
粒子在球体表面无规则运动,同时粒子不再始终面向相机,其法向量指向球体中心,并且法向量会随着时间而发生变化,即粒子面片的方向也会发生变化,但是他们的变化是同一时间进行的,即有可能其使用的参数是一个发射器级别以上的而不是粒子级别的参数。
Niagara蓝图部分
蓝图中首先说明了所使用的参数SineWave是一个发射器级别的参数,所以粒子的旋转是统一时间进行的;同时补充到,发射器和系统这种非逐粒子的参数是会产生同时改变这一效果的。
效果实现分析
注意到,虽然依旧是以一个区域去生成粒子,但是本例的粒子只限于球体表面,是在Sphere Location里勾选Surface Only Band Thickness并将数值设定为0。
那么是如何实现粒子始终面向球心的呢?接着看下面的设置
首先将方向信息存储到FacingCenter里(向量),做法是用粒子Position减去局部空间原点(0,0,0)。这里注意到FacingCenter的命名空间是TRANSIENT,可以理解成是一种低消耗的局部变量,无法在帧与帧之间传递数据。
然后对SpriteFacing进行设置,这里有两个。第一个是以Emitter Age为时间间隔,来改变粒子朝向,使其定时不面向中心;第二个做的是向量的插值,以当前粒子朝向和向心的朝向作为A、B值,以之前设定的SineWave值(与时间挂钩)作为alpha值,作为改变角度时的平滑过渡。
此外这里需要说明的时,Sprite可供玩弄的属性不止是SpriteFacing,在sprite renderer显示了所有的绑定的属性。
最后,辅以一些解算(vortex velocity,漩涡速度)缩放、颜色变化等,就呈现出最终的效果了。
总结
通过这个例子最大的收获就是认识到了Sprite Renderer的诸多绑定的属性,同样,对于其他的renderer也是相同的方法,观察有哪些绑定属性,对这些绑定属性赋予一定的影响,就会产生各种各样变化的效果。