Hello,小伙伴们久等了, 让我们继续未竟之事.
粒子在一个生命周期内应该有哪些属性的变化,才能达到多姿多彩且有趣的效果呢?
我们不妨来思考一下:
- 速度: 前面介绍过了,可以通过改变速度或者施加力来实现
- 颜色: 通过颜色改变使得粒子的画面效果绚丽无比
- 尺寸: 对尺寸的更改可以模拟物体消融,膨胀,或者逐渐消失的效果
- 旋转 : 粒子的旋转可以使其看起来更加动态逼真,比如空中的雪花,爆炸后的粉尘等等.
当然,还有别的属性变化,但在我看来,以上四种是最重要的,通过以上四种属性变化的组合,可以完成大部分的效果,从粒子系统的模块设置条目中可见一斑.不知道小伙伴们还有没有其他的想法呢?
7. Force over Lifetime(生命周期内受力)
在粒子的生命周期内模拟给粒子施加力的效果,类似粒子受到重力的效果.由于施加的力是持续的,因此粒子的运动是有加速度的.
举个例子,比如火焰上的烟雾,刚开始生成的时候受到热空气的影响会加速上升,然后遇冷后速度逐渐变慢,最后落到地面,这个过程我们就可以使用该模块的 Curve 选项来解决.
- XYZ: 分别设定施加力的每个轴分量,可选择的四个Option不再赘述.
- Space: 施加的力是基于Local还是World坐标系,当大家看多了关于力的设定,会发现一般情况下当需要设定力时都会有这个选项.
- Randomize: 只有当选中 Random Between Two Constants 或者 Random Between Two Curves 时才能对其进行勾选.根据文档的意思,是在每一帧内都改变粒子所受力的方向,当然,这个力的方向是从设定的两个边界值中随机获取的,从而得到更紊乱和不规则的粒子运动.
对于这一点,我是抱有怀疑态度的,也进行了测试,反而发现不勾选的情况下粒子运动更无序 ...另一个疑惑是,如果我设定的是 Random Between Two Curves, 每个时刻所受的力本就是在两个曲线之间来随机的,为何还要再 Randomize 一次呢?如果能解答这两个问题的小伙伴,请在留言解惑.
8. Color over Lifetime(生命周期内颜色)
这个模块简单明了,就是控制粒子在生命周期内的颜色,不做太多的说明啦.
9. Color by Speed(颜色的速度控制)
根据粒子速度的快慢显示不同的颜色.
当我们设置 Color over Lifetime 时,也会使用到 Gradient Editor ,不过它的颜色盘的长度表示的是粒子的生命周期,而在该模块,代表的是 Speed Range 的范围,小伙伴要注意区别.
- Color: 设置不同速度对应的颜色值
- Speed Range: 设置受到颜色影响的速度值的下限和上限.它对应的是颜色盘的最左和最右.不在该范围内的粒子使用最靠近的边界颜色.
为了更好的调试出效果,我们把主模块的粒子的 Start Speed 设置为0, 打开刚学习的 Force over Lifetime 模块,使粒子的速度不断变化,然后就可以看到如下的效果:
其实使用的情景大家也能想到了,加速的流星,炮弹等,速度越快,颜色越明亮,可以使用该模块来设置.
10. Size over Lifetime(生命周期内大小)
该模块改变的是 Size 的属性,大家能想到哪些情况下会用到么?我想到的是孙悟空收集元气弹时,元气弹会逐渐的变大,然后一声 Boom,世界和平了!!
相信大家也看到图中红色的提示了,当我们把主模块中 Start Size 设置为0的时候,不管怎么调整这里的曲线,都不会看到有粒子产生.经过测试发现,如果 Start Size 设置为0.5,这里曲线纵轴的最大值为1,那么粒子真正的大小是 0.5 * 1 = 0.5.希望大家能注意这个问题.
我们可以使用该模块来模拟元气弹,逐渐变大的烟雾团等效果.
- Separate Axes: 对粒子三个轴的尺寸单独设置
- Size: 通过曲线和常量来设置大小
11. Size by Speed(粒子大小的速度控制)
这个模块跟 Color by Speed 很相似,只不过一个改变的是 Color 属性,一个是 Size 属性.
- Separate Axes: 是否对粒子三个轴进行单独设置
- Size: 设置不同速度下对应的粒子大小
- Speed Range: 设置哪些粒子受到尺寸变化的影响,左侧的值对应 Curves 图表中横轴的最小值,右侧的值对应图表的横轴最大值,不在该速度范围内的粒子,大小使用最接近的边界值.比如我设置的速度限值是0 - 3.5,那么小于0的尺寸为0,大于3.5的尺寸为1 * StartSize.
12. Rotation over Lifetime(生命周期内的旋转)
该模块也很简单,控制粒子生命周期内的旋转速度.
项目中需要一个 效果,当礼花碎片飘散下来的时候,使用该模块设置了旋转速度先快后慢,看起来很立体.
- Separate Axes: 对粒子三个轴的旋转单独设置
- Angular Velocity: 旋转的角速度,有四个Option可以选择.
使用该模块,同样可以模拟树叶和雪花的飘落.
13. Rotation by Speed(旋转的速度控制)
根据速度来改变自己的旋转.举个例子,在斜坡上的滚石,速度越快,那么自身的旋转速度应该越大.
- Speed Range: 只有当 Angular Velocity 选择了 Curve 或者 Random Between Two Curves 时才能使用该选项,原因很简单,只有当角速度是可变化的值时设置该选项才有意义.
其实这里的 Constant 与 Random Between Two Constants 选项我觉得是多余的,因为它们跟速度并没有关联起来,后续版本也可能会删除,在 Rotation over Lifetime 同样可以实现这两个选项的功能.