简介
闲来无事,仔细的学习一下粒子系统,也当是给自己做个笔记方便之后进行回顾。
引擎版本:Unity2018.3
创建一个ParticleSystem
创建方式:
1、Hierarchy-->Effects-->ParticleSystem
第一种创建方式
创建结果
2、gameObject-->AddComponent-->ParticleSystem
第二种创建方式
第二种创建结果
两种创建的方式的区别只有是否有默认材质球的区别,即是否携带初始材质。
ParticleSystem的基础模块与大致功能
ParticleSystem的基础模块
1、OpenEditor:打开粒子编辑面板,同一父物体下的粒子系统会按照从上到下的关系从左到右排序。
2、基础模块:ParticleSystem下的物件名(图片中的ParticleSystem),可以进行粒子运动的参数进行基础的设置。
3、Emission:发射模块,控制粒子的单次发射数(时间或者移动距离),以及可控的粒子发射时间。
4、Shape:形状模块(发射器的形状),控制修改发射器的形状和相应的参数。
5、Velocity over Lifetime:粒子生命周期内的速度变化模块,在粒子生命周期内的对速度进行控制。(可以在粒子还没销毁前控制其速度的变化)。
6、Limit Velocity over Lifetime:粒子生命周期内的限速模块,控制粒子的最大速度。
7、Inherit Velocity:粒子速度继承模块,控制粒子是否继承父物体的移动参数(需要改变基础模块中Simulation Space的参数为World)。
8、Force over Lifetime:生命周期内粒子力的变化模块,在粒子生命周期内对力进行控制。
9、Color over Lifetime:生命周期内粒子颜色的变化模块,控制粒子生命周期内颜色的变化。
10、Color by Speed:根据粒子速度改变粒子颜色模块,通过粒子的速度控制粒子的颜色。
11、Size over LifeTime:生命周期内粒子大小的变化模块,控制粒子生命周期内粒子大小的变化。
12、Size by Speed:根据粒子速度改变粒子大小模块,通过粒子速度改变粒子的大小。
13、Rotation over Lifetime:生命周期内粒子旋转属性的变化模块,控制粒子生命周期内粒子旋转属性的变化。
14、Rotation by Speed:根据粒子速度改变粒子速度模块,通过粒子速度改变粒子的旋转。
15、External Forces:外力模块,当粒子碰到相关联物体给粒子增加一个力。
16、Noise:噪音模块,可以对粒子进行不规则的运动设置。
17、Collision:碰撞体模块,可以控制粒子与指定物体之间的碰撞,以及碰撞后的粒子效果。
18、Triggers:触发器模块,控制粒子进出指定触发器后的粒子效果。
19、Sub Emitters:添加发射器模块,给该发射器增加其他的发射器。
20、Texture Sheet Animation:粒子帧动画模块,使粒子呈现帧动画形式的播放。
21、Lights:粒子灯光模块,可以给粒子增加实时光照。
22、Trails:路径模块,可以显示粒子的发射路径。
23、Custom Data:自定义模块,可以自定义粒子的一些属性。
24、Renderer:渲染模块,对粒子的展现形式进行设置,包括但不仅限于粒子的大小与材质。
Particle System Force Field组件的功能
组件的参数与属性
组件解释
Particle System Force Field(粒子系统的力场组件),其作用是对所关联的粒子系统施加外力,要使用这个组件,需要开启粒子系统中的External Forces(外力模块)并进行关联。
参数解释
1、shape:形状,力场的表现样式。
2、Start Range:开始的范围(无法大于End Range)。
3、End Range:结束的范围,数值越大力场越大。力场介于Start Range 至End Range之间。
4、Direction(x,y,z):x,y,z方向上力的大小。
5、Gravity
5.1、Strength(Gravity):强度,可以想象成地球的引力,数值越大,越容易被焦点(引力点)吸引。
5.2、Focus(Gravity):焦点,控制引力点对粒子是吸引还是排斥。
6、Rotation
6.1、Rotation(Speed):粒子围绕力场中心运动的速度。
6.2、Rotation(Attraction):粒子被卷入中心点的强度。
6.3、Rotation(Randomness):对粒子产生随机性的推动。
7、Drag
7.1、Strength(Drag):拽住粒子的强度,类似你上楼梯后面有人拉你的衣角不让你上去的感觉。
7.2、Multiply by size(Drag):根据粒子大小调节拖拽强度。
7.3、Multiply by Velocity(Drag):根据粒子速度调节拖拽强度。
8、Vector Field
8.1、Volume Texture(Vector Field):向量场的纹理贴图(Texture 3D)。
8.2、Speed(Vector Field):改变通过向量场的粒子的速度。
8.3、Attraction(Vector Field):向量场的吸引力强度。
Particle System 常见的数值设置
在ParticleSystem与Particle System Force Field中最常见的数值设置有三种,在下面给出
第一种:权重,范围为0-1,例如Attraction的范围等。
第二种:固定参数,固定一个参数,例如粒子发射器的持续时间。
第三种:参数曲线,这种数值设置是粒子系统可以千变万化的根源所在,通过对曲线的调变可以变化出各式各样的粒子效果。
颜色参数曲线
数值参数曲线
我们着重来讲第三种数值设置(参数曲线)。参数曲线方便了我们想要粒子在什么时间段进行什么样的颜色变化或者效果变化。
颜色参数曲线:
1、Color:纯色显示。
2、Gradient:颜色按照梯度进行显示(举例,越迟生成的粒子颜色越接近右端)。
3、Random Between Two Colors:粒子颜色在两个纯色中任选一个。
4、Random Between Two Gradients:粒子颜色在两个梯度中任意选择一个显示。
5、Random Color:在你定义的色谱上任意选择一个颜色作为粒子颜色。
数值参数曲线:
1、Constant:常量。
2、Curve:单条曲线,多了时间的属性,可以根据时间进行变化。可以自行拖拽改变曲线形状获得想要的粒子效果
数值参数曲线Curve
3、Random Between Two Constant:在两个常量间随机一个数值。
4、Random Between Two Curve:跟随着时间,粒子某个属性值为两条曲线围成的区间的该时间点上的随机值。(粒子效果很大的一部分都需要在数值曲线中进行调节)
数值参数曲线Random Between Two Curve
ParticleSystem模块分类
按照笔者自己的分类习惯,将ParticleSystem的23个功能模块分类为以下六个类别
(一)最基础模块
1、基础模块:ParticleSystem下的物件名(图片中的ParticleSystem)。
2、Renderer:渲染模块。
(二) 发射器模块
1、Emission:发射模块。
2、Shape:形状模块(发射器的形状)。
3、Sub Emitters:添加发射器模块。
(三)粒子生命周期特效控制模块
1、Velocity over Lifetime:粒子生命周期内的速度变化模块。
2、Limit Velocity over Lifetime:粒子生命周期内的限速模块。
3、Force over Lifetime:生命周期内粒子力的变化模块。
4、Color over Lifetime:生命周期内粒子颜色的变化模块。
5、Size over LifeTime:生命周期内粒子大小的变化模块。
6、Rotation over Lifetime:生命周期内粒子旋转属性的变化模块。
(四)粒子自身特效控制模块
1、Color by Speed:根据粒子速度改变粒子颜色模块。
2、Size by Speed:根据粒子速度改变粒子大小模块。
3、Rotation by Speed:根据粒子速度改变粒子速度模块。
4、Texture Sheet Animation:粒子帧动画模块。
5、Trails:路径模块。
6、Noise:噪音模块。
(五)粒子与外界交互的特效控制模块
1、Inherit Velocity:粒子速度继承模块。
2、External Forces:外力模块。(Particle System Force Field组件属于这一块)
3、Collision:碰撞体模块。
4、Triggers:触发器模块。
5、Lights:粒子灯光模块。
(六)自定义模块
Custom Data:自定义模块。
说明:关于over LifeTime模块与by Speed模块的区别
over LifeTime模块:类似花开花落的一生。
by Speed模块:类似跑龙套,当你满足条件则执行。