粒子系统
粒子特效是 Galacean Effects 比较有特色的效果,本文档会详细介绍如何使用粒子系统。
粒子系统主要通过设置发射器参数、粒子运动参数,实现各种粒子效果。
添加发射器
粒子是由发射器发射出来的,因此首先需要添加一个发射器到场景中。
此时发射器的基础粒子,形态为白色小方块。
发射器参数
每秒发射数是指发射器每秒匀速发射的粒子数量,像下雨下雪这样的粒子,就需要持续匀速发射,但对于烟花等爆炸效果就需要一次性发射,也就是是集中发射。
下面这张图代表一次性发射 20 个粒子:
如果我们想多爆炸几次,并且每次爆炸位置不一样,可以配置如(下图):
这样代表,在 0 秒,0.5 秒和 1 秒的时候分别发射 22 个粒子,并且每次发射时候位置会有相应的变化。对于多次爆炸的烟花,这样配置比复制粘贴多个发射器更高效。
另外,最大粒子数(下图)会限制发射器最大粒子数目,如果超出了最大粒子数量,只有在老粒子死亡之后才会有新的粒子产生。
发射器形状
发射器一共有 9 种形状,不同形状会决定粒子产生的初始位置和运动方向。
打开后,编辑器会出现红线的形状,上图是一个(球型),所有的粒子会朝着锥形开口的方向喷出,运动效果就是斜向上的方向。发射器决定了粒子的运动方向,基础速度决定粒子的运动快慢
发射器默认的形状是球形,粒子会在这个球里的任意位置产生,然后向球外运动。不同的形状有不同的运动方向,大家可以多去尝试,另外值得关注的是发射模式,默认发射模式是随机发射,但如果改成循环就会均匀发射
对于爆发,选择均匀爆发就能让粒子均匀地分布在发射器形状上
如果我们的贴图有方向,可以勾选运动对齐开关,这样箭头粒子图片就和运动方向保持一致(下图):
发射器形状决定了粒子运动的方向,粒子运动的速度由基础速度决定,通常我们将初始速度设置为随机数,这样每个粒子运动的速度就会在这个范围随机产生,让粒子更加的自然
粒子基础参数
基础速度
每一个发射的粒子都是一个独立的个体,通常我们依靠粒子发射的基础速度来决定粒子的运动范围。
粒子的基础速度可以为 常量/曲线/随机 三种值类型。
粒子生命周期
粒子的生命周期决定粒子从发射到消失存在的时间。具体案例可以表现为:
- 生命周期与基础速度叠加,决定了粒子在运动轨迹上的最终位置;
- 生命周期与基础颜色[多色]叠加,决定了粒子在不同时刻展示的基础颜色;
粒子生命周期参数可以为 常量/曲线/随机 三种值类型。
粒子跟随
粒子跟随开关决定了粒子是否随着父节点的运动而一起运动。
当粒子跟随开启时,粒子会随着父节点的运动而运动,反之则不会。设计师可以根据自己的设计场景决定是否开启该开关。
案例展示:
如图所示,其中“关闭粒子跟随”元素粒子为橙色,“开启粒子跟随”元素粒子为白色。
速度方向偏移
速度方向偏移开关决定是否开启粒子运动方向偏移。
当速度方向便宜开启时,用户可以设定粒子发射时基础方向的偏移值,包括 x轴偏转角度 / y轴偏转角度 / z轴偏转角度,其值类型可以为 常量/曲线/随机 三种值类型。
分轴旋转
分轴旋转开关决定粒子是否开启粒子发射旋转。
当分轴旋转开启时,用户可以设定粒子发射时的基础旋转值,包括 x 轴基础旋转/y 轴基础旋转/z 轴基础旋转,其值类型可以为 常量/曲线/随机 三种值类型。
分轴尺寸
分轴尺寸开关决定粒子的大小如何控制。
当分轴尺寸开启时,设计师通过“基础宽度 + 宽高比例”来控制粒子的大小。
当分轴尺寸关闭时,设计师通过“x 轴宽度 + y 轴宽度”来控制粒子大小。
基础宽度/宽高比例/x 轴宽度/y 轴宽度可以为 常量/曲线/随机 三种值类型。
粒子的运动
每一个发射出来的粒子都有非常多的属性可以修改:旋转,缩放,运动,颜色。但由于粒子数目可能非常多,不可能一个一个地去编辑粒子,所以我们引入了生命周期的编辑方式。startLifetime
是粒子的生命周期,通常我们也选随机数,如图:
粒子生成后生命周期为 0 秒到 1 秒的某个随机数,一旦粒子产生后,粒子的生命周期不会变化,我们在进行曲线编辑的时候,时间轴横轴都是粒子生命周期的百分比。
缩放
粒子的初始大小是下图 1 控制的(也就是现在的粒子大小为 1),在粒子生命周期中,通过修改第二个节点 0 来进行缩放操作,1-0 代表 100% - 0%,下图的粒子变化为 100%-0%-100% 可视化出来也就是:大小大。
假如如果只单独缩放高度,可以这样配置,开启分轴变化开关单独激活 xy,x 代表宽度,y 代表高度,由函数负责修改:
颜色
颜色变化主要有两种,叠色和透明度,透明度比较简单,和缩放类似,修改透明度变化属性,下图可以做出闪烁的效果,当然假如你想让闪烁的频次变高,那就让节点更密,上线曲线更多即可。
叠色是比较复杂的,粒子的颜色由贴图颜色,生命周期以及基础颜色共同决定的。我们在做烟花的时候,贴图用白色,基础颜色用多色模式,这样就能作出五颜六色的烟花:
白色叠加其他颜色都是其他颜色,叠色类似于物体反光,物体的颜色反射光源的颜色,如果大家不清楚可以多在编辑器尝试,如果要让粒子在生命周期中颜色发生变化,可以用粒子生命周期配置渐变色
旋转
旋转分为 3 个轴,三轴旋转有点像烧烤,烧烤串的方向就是轴的方向,串上的菜会因为轴旋转而转动。默认情况旋转是朝着 z 轴的,看到的就是屏幕 2D 旋转,如果使用 x 轴旋转和 y 轴旋转,大家就能看到 3D 的效果,记得开启角度模式。
需要注意的是:角度模式勾选。如果勾选了,曲线代表旋转角度从 360 度转到 0 度再回到 360 度。如果没勾选,则是旋转速度的变化,一般图层动画需要确定的旋转角度,需要勾选。粒子动画只需要运动感觉对了就行,这个时候这个函数代表旋转从快到慢再变快,具体旋转多少角度,并不确定。
直线运动
接下来的几个运动可以相互叠加达到复杂的效果,直线 x/y/z 是粒子在初始速度后叠加的直线速度,xyz 三个方向均可以叠加直线运动,通过曲线可以实现变速直线运动(如下图):
路程模式的勾选和不勾选对于运动有很大的影响,不勾选时,函数代表速度,否则代表运动位置。最直观的感受,如果上图是速度曲线,那么物体由快变慢再变快,但不会出现折回的路径。如果是位置曲线,那么者个物体将会出现折回的路径(这里大家上手体验尝试区别即可)
环绕运动
环绕运动类似于地球绕着太阳转的运动模式,环绕中心是环绕点,环绕中心x/y/z是转轴的转速
如图是一个绕 Y 轴旋转的粒子
物理引力
最常见的引力是重力,物体受到重力会加速下降。引力方向是重力的方向,引力系数是重力大小,物体会在引力方向上逐渐加速,适合下落或者吹风的场景(如树叶飘落,烟花下坠等等)
变速运动
爆炸的时候常常会有先快后慢的需求,通过基础速度生命时间可以实现先快后慢,而基础属性里的基础速度属性是基础粒子出现先后的速度,两者有本质上的区别,基础速度生命时间只作用于基础速度。
高级效果
发射器运动
如果理解了粒子运动,就很容易区分发射器运动。之前的动画发射器都是固定位置的,运动的是粒子。当发射器运动的时候,就可以作出仙女棒的效果,通过绑定父节点,可以实现发射器运动
贴图发射器
发射器形状,选择贴图,然后配置一个贴图:
调整 Block 来减少粒子的数量,请注意 Count 一般不要超过 300,否则会有性能问题,调整形状宽度和形状高度,能看到发射器的范围,粒子会在方块里的随机位置产生
同时修改最大粒子数和集中发射数量,让所有粒子一起产生也可以将每秒发射数量改大,这样粒子会逐个在贴图范围产生。
拖尾
粒子经过的地方会留下一条线,这就是拖尾。特别适合流星等效果,拖尾的性能消耗比较大,尽量保证动画中拖尾的数量是个位数,且拖尾的长度较短。