Particle System Overview

粒子系统是游戏引擎特效表现的基础,它可以用于模拟的火、烟、水、云、雪、落叶等自然现象,也可用于模拟发光轨迹、速度线等抽象视觉效果。

基本结构

粒子系统的基本单元是粒子,一个粒子一般具有位置、大小、颜色、速度、加速度、生命周期等属性。在每一帧中,粒子系统一般会执行如下步骤:

  1. 产生新的粒子,并初始化
  2. 删除超过生命周期的粒子
  3. 更新粒子的动态属性
  4. 渲染所有有效的粒子

粒子系统一般由以下几个部分组成:

  1. 发射器,用于创建粒子,并初始化粒子的属性
  2. 影响器,用于更新粒子的属性
  3. 渲染器,渲染粒子
  4. 粒子类,存储粒子的属性
  5. 粒子系统类,管理上面的模块

添加粒子系统

在编辑器中添加粒子系统组件有以下两种方式:

  1. 层级管理器 中选中节点,然后点击右侧 属性检查器 面板上的 添加组件 按钮添加粒子,如下图:

    粒子系统 - 图1

  2. 在左侧的 层级管理器 面板中点击鼠标右键,然后选择 创建 -> 特效 -> 粒子系统 来添加一个粒子系统组件,如下图:

    粒子系统 - 图2

粒子模块

Cocos Creator 粒子系统操作面板如下:

粒子系统 - 图3

粒子系统 - 图4

Cocos Creator 粒子系统用模块来组织功能,包括以下模块:

模块说明
Node粒子节点,用于设置粒子发射器的位置、方向、大小、渲染层级
ParticleSystem用于存储在 属性检查器 中显示的所有数据,管理粒子生成、更新、销毁相关模块,控制粒子播放
ShapeModule用于控制粒子发射,包括发射方向与速度,支持预定义的发射方向,包括方块、圆、锥体、球、半球
AnimatorModule用于控制粒子发射后的状态更新。已支持的功能有:速度模块(VelocityOvertimeModule)加速模块(ForceOvertimeModule)大小模块(SizeOvertimeModule)旋转模块(RotationOvertimeModule)颜色模块(ColorOvertimeModule)贴图动画模块(TextureAnimationModule)限速模块(LimitVelocityOvertimeModule)拖尾模块(TrailModule)
ParticleSystemRenderer用于生成粒子渲染所需要的数据。包括 vb、ib、渲染状态相关的控制