了解粒子系统,必须先了解每一个属性都代表了什么,之后才能根据这些原理来调整出自己满意的效果。
主面板ParticleSystem:
- Duration:粒子发射周期(发射一次持续的时间),如图的意思就是在发射5.0秒以后进入下一个粒子发射周期。如果没有勾选looping的话,5.0秒之后粒子会停止发射。
- Looping:粒子按照周期循环发射。
- Prewarm:预热系统,比如说我有一个空间大小的粒子系统,但是粒子发射速度有限,我想在最开始的时候让粒子充满空间,此时就应该勾选Prewarm。
- StartDelay:粒子延时发射,勾选后,延长一段时间才开始发射(延迟预热不能同时存在)。
- StartLifeTime:粒子从发生到消失的时间长短(每个粒子的生命周期)。
- StartSpeed:粒子初始发生时候的速度。
- 3DStartSize:这个属性是当你需要把粒子在某一个方向上扩大的时候使用。
- StartSize:粒子初始的大小。
英文解释:粒子的初始大小
1.Constant
表示恒定的,所有的粒子生命周期都一样。
2.Curve
表示曲线,调整数值了之后,产生的粒子有大有小,可以自己添加关键帧控制曲线形状,也可以通过Inspector面板最下方的常用曲线图选择系统自带曲线。
3.Random Between Two Constants
表示在两个常量中取任意值作为粒子的大小,是做随机效果最常用的模式,模拟自然发生的随和效果,符合视觉效果。
4.Random Between Two Curves
表示通过双曲线控制粒子的大小,比单曲线做出来的效果更加细腻细致,同时也更加复杂,参数的调整和使用,可以参照Curve。
- 3DStartRotation:需要在一个方向旋转了子的时候可以使用。
- StartRotation:粒子初始旋转。
- RandomizeRotation:随机旋转粒子方向,感觉在3D粒子的情况下,尤其是圆形的没什么用。
- StartColor:粒子初始颜色,可以调整加上渐变色。
开始颜色值。粒子出生具有的颜色。
在第二种我这里讲下,这个是颜色渐变值,什么意思?当我们选择Gradient渐变的模式时:
会出现这编辑器,那么怎么制作呢?很简单,我们只要在空白双击就会出现指标,然后不同的指标改变不同的颜色,那么怎么会有上下浮标。
这里上面是Alpha的值,下面是Color的值。
修改完颜色之后,我们来看看效果。
可以看到颜色先是红色,再是紫色,然后蓝色,最后白色,是不是我们上面调的颜色顺序,也就是说他是根据Duration然后改变不同的颜色。
- GravityModifier:重力修正。
- SimulationSpace:a.Local,此时粒子会跟随父级物体移动。b.World,此时粒子不会跟随父级移动。c.Custom,粒子会跟着指定的物体移动。
- SimulationSpeed:根据Update模拟的速度。
- DeltaTime:一版的DeltaTime都是1,如果需要用到Sacled是在游戏需要暂停的时候,根据TimeManager来定。如果选择UnScale的话,就会忽略时间的影响。
- ScalingMode:Local:粒子系统的缩放和自己Transform的一样会忽略父级的缩放。Hierarchy:粒子缩放跟随父级。Shape:将粒子系统跟随初始位置,但是不会影响粒子系统的大小
- MaxParticles:最多粒子数。就是一个duration内发射粒子最多数量。如果是1的话,一个duration只发射1.
- AutonRandomSeed:随机种子,如果勾选会生成完全不同不重复的粒子效果,如果勾选即为可重复。
发射器相关的属性,可以看到第一个属性Rate:
1.Rate:每秒发射多少粒子(简称发射速率)。什么意思,比如你的Duration是5秒,Max Particles是50的话,你Rate为10,那么就是每秒发射10个粒子,5秒就发射50个。但是现在如果把Rate改成50的话,那么一秒一次性发射50个粒子,也就是说把所有的发射完了,那么就下来的4秒就没有粒子可以发射了。
2.Bursts:粒子集。可以看到粒子集右边有个+号的按钮,我们点击就会出现Time和Particles的参数选择。
那么这两个参数是干嘛用的,其实就是在0.00时刻,发射30个粒子,结合上图显示的参数。
我们还可以点击+号继续添加不同时刻发射不同数量的粒子。比如我继续添加在4.00时刻发射30粒子。
这里注意下,这个Time时刻是不能超过Duration持续时间,不然的话是没有效果的,还有发射粒子的总数和不能超过Max Particles,不然的话发射总数还是Max Particles,只不过超过的部分自动被截断了。还有得吧Rate改成0,因为没有速率可言。
然后观察下效果:
可以看到在0.00时刻发射30个,在4.00时刻发射20,因为Max Particles才50,面前已经30,所以最后50-30=20个。
可以看到这个子模块的参数是跟形状有关:
1.Shape:发射形状。粒子被约束在这个形状中发射。我们看看效果图就知道了。就拿这个Cone锥形来看:
可以看见粒子发射总是被约束在这个锥形中。
我们看看总共有几种形状:
1.Sphere:球体。粒子被约束在这个球体中发射。
(1.Radius。球体半径。
(2.Emit from Shell:是否粒子发射是在圆形的表面发射。默认是圆形体内任意位置。
(3.Random Direction:是否是随机方向。默认是跟形状相关的从中心向外发散方向,比如球体就是爆炸方向。如果是随机方向的话,就是胡乱发射。但是他还是被约束在球体里面发射。只不过发射的方向变了而已。
2.HemiSphere:半球体。粒子被约束在这个半球体内发射。
(1.Radius:半球体的半径。
(2.Emit from Shell:是否粒子发射是在半球体的表面发射。默认是半球体内任意位置。
(3.Random Direction:跟球体类似。本来是从球体中心发散出去,但是勾选这个之后,就随机方向发射。
3.Cone:椎体。粒子被约束在这个椎体中发射出去。
(1.Angle:锥形斜面和垂直方向的夹角。如0度就是圆柱。90度就是跟平面类似。
(2.Radius:锥形底面的半径。
(3.Length:底面和顶面的距离。也就是圆锥的高。这个参数是受第4个参数的影响,如果是从Base(底面)发射,那么Length就没有用。如果是Volume(体积)发射,那么Length就有用。因为体积肯定和高度有关嘛。
(4.Emit form:从哪里发射:总共有4种:
1.Base:圆锥底面。粒子是从圆锥体的底面的任意位置沿着体积方向发射出去。
2.BaseShell:圆锥底面周长边。粒子是从圆锥底面的周长边沿着侧表面的方向发射。与Base唯一的区别就是一个是沿体积,一个是沿侧面。
3.Volume:体积。粒子是从圆锥体内的任意位置沿着体积的方向发射出去。
4.VolumeShell:体积侧面。粒子是从圆锥体的侧面的任意位置沿着侧面方向发射出去的。
(5.Random Direction:与上面讲的随机类似。
4.Box:长方体。粒子被约束在长方体内发射。
(1.Box X:x方向上的长度。
(2.Box Y: y方向上的长度。
(3.Box Z:z方向上的长度。
默认发射粒子是在长方体内的任意位置沿着z方向(与xy平面垂直)发射。
(4.Random Direction:类似不讲了。
5.Mesh:网格。粒子被约束在网格里面发射。
可以看到我这里选择了一个Plane网格,那么上面的参数Triangle是什么鬼。这个参数是表示粒子在哪里反射。总所周知,网格由顶点,线段,面构成。那么Triangle代表是三角面。
他这里有三个选择:
1.Vertex:粒子就是从网格的顶点发射出去。
2.Edge:粒子是从网格的边长发射出去。
3.Triangle:粒子从网格的面发射出去。
OK,经过长篇大幅,终于把Shape这个组件讲完了。我们来总结下这个Shape的作用,他主要是约束粒子发射的形状,比如火焰当然得用Cone锥形,然后夜明珠就得用Sphere球体。
行,我们讲下个组件:Velocity over Lifetime 速度受粒子的生命周期影响。
假如说我们将x改成4,那么粒子在x方向的速度是4,那么在粒子的生命周期内,他的x方向速度是4,其他方向速度是0。也就是说他会偏向x方向移动。
同理,y和z方向也是类似的。
那么下面的Space是什么,就是这个x方向的速度是受父类速度影响(Local)还是不受父类影响(World)。我具体研究了下,发现根本没啥屌用。主要还是看前面的Simulation Space的参数。所以这个参数我们暂时不管他。
我们总结下,这个组件有啥用,主要是根据不同类型粒子改变不同方向上的速度。如下雨,肯定不是直直的下着带有点倾斜的下着,所以这里改变下方向速度就可以实现。