Particle System Overview
粒子系统是游戏引擎特效表现的基础,它可以用于模拟的火、烟、水、云、雪、落叶等自然现象,也可用于模拟发光轨迹、速度线等抽象视觉效果。
基本结构
粒子系统的基本单元是粒子,一个粒子一般具有位置、大小、颜色、速度、加速度、生命周期等属性。在每一帧中,粒子系统一般会执行如下步骤:
- 产生新的粒子,并初始化
- 删除超过生命周期的粒子
- 更新粒子的动态属性
- 渲染所有有效的粒子
粒子系统一般由以下几个部分组成:
- 发射器,用于创建粒子,并初始化粒子的属性
- 影响器,用于更新粒子的属性
- 渲染器,渲染粒子
- 粒子类,存储粒子的属性
- 粒子系统类,管理上面的模块
添加粒子系统
在编辑器中添加粒子系统组件有以下两种方式:
在 层级管理器 中选中节点,然后点击右侧 属性检查器 面板上的 添加组件 按钮添加粒子,如下图:
在左侧的 层级管理器 面板中点击鼠标右键,然后选择 创建 -> 特效 -> 粒子系统 来添加一个粒子系统组件,如下图:
粒子模块
Cocos Creator 粒子系统操作面板如下:
Cocos Creator 粒子系统用模块来组织功能,包括以下模块:
模块 | 说明 |
---|---|
Node | 粒子节点,用于设置粒子发射器的位置、方向、大小、渲染层级 |
ParticleSystem | 用于存储在 属性检查器 中显示的所有数据,管理粒子生成、更新、销毁相关模块,控制粒子播放 |
ShapeModule | 用于控制粒子发射,包括发射方向与速度,支持预定义的发射方向,包括方块、圆、锥体、球、半球 |
AnimatorModule | 用于控制粒子发射后的状态更新。已支持的功能有:速度模块(VelocityOvertimeModule)、加速模块(ForceOvertimeModule)、大小模块(SizeOvertimeModule)、旋转模块(RotationOvertimeModule)、颜色模块(ColorOvertimeModule)、贴图动画模块(TextureAnimationModule)、限速模块(LimitVelocityOvertimeModule)、拖尾模块(TrailModule) |
ParticleSystemRenderer | 用于生成粒子渲染所需要的数据。包括 vb、ib、渲染状态相关的控制 |