Cocos Engine 粒子系统:3 个参数调出火焰、烟雾与拖尾
【免费下载链接】cocos-engineCocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.项目地址: https://gitcode.com/GitHub_Trending/co/cocos-engine
Cocos Engine 粒子系统能做出火焰、烟雾、雨雪和魔法拖尾这类动态效果。Cocos Engine 是免费开源的跨平台游戏引擎,装好编辑器就能开工。读完后你能独立调出第一簇火焰,还敢改参数、查卡点。
3 分钟调出第一簇火焰 🔥
打开编辑器,在层级管理器里新建一个空节点。
- 右键"添加组件",挂上ParticleSystem,节点默认就带了一个发射器。
- 把Start Lifetime改成 1.2,Rate Over Time改成 80。
- Start Speed设 3、方向朝上,Shape选 Cone 锥体。
- Start Color从橙红拖到深红,点播放。
火苗从锥口窜出来,往上飘、慢慢变暗。这就是 Cocos 火焰特效制作 的全部核心动作。在 Cocos 粒子编辑器 里改任何参数都是即时生效,先别加高级模块,把默认流程跑顺。在场景视图里确认相机能拍到节点,火苗才看得见。
三个旋钮定生死——数量、寿命、速率
把这套 Cocos Engine 粒子系统 玩明白,其实只盯 3 个最影响观感的参数,都定义在 particle-system.ts 里。
Capacity(数量上限)它是粒子池的大小。起步 100(默认值)。粒子是复用的,池子满了新粒子就生不出来。火苗看着稀、粒子飞到一半没了,就加到 300;移动端吃紧再砍回 200。
Start Lifetime(寿命)每个粒子活几秒。火焰给 0.8–1.5,烟雾给 3 左右。太短,火苗冻在半空;太长,烟雾糊满屏。
Rate Over Time(发射速率)它是个水龙头开关:开太大画面糊,开太小像掉渣。起步 50–100。火苗断断续续就调大,设备掉帧就调小。它和 Capacity 相乘约等于同屏粒子数,心里要有一本账。
粒子系统参数调优 先做到这里,其余模块等这三个顺了再碰。
先让它动,再让它像真的
火苗立住了,让它飘起来。
先管运动。Velocity Over Lifetime管速度随时间的变化,设个衰减,火焰就不会直线窜上天。Force Over Lifetime是外力,加一点向上的力,火苗自然往上浮。Noise加随机湍流,轨迹立刻活络,这个模块只有 CPU 粒子支持。三者叠加,火苗就有了被风吹的错觉。
再管外观。Size Over Lifetime让粒子出生小、中间大、收尾缩没。Color Over Lifetime从橙红渐变到透明。Rotation Over Lifetime加缓慢自转。Texture Animation挂序列帧,魔法和爆炸感全靠它,对应 texture-animation.ts 文件。曲线都能设双常值或关键帧,不用写死一个数。想要拖尾,开 Trail 模块,duration 控制尾巴长度。
建议配图:Trail 模块开启后粒子拖尾的编辑器预览截图(16:9 横版,突出拖尾长度差异)
想要爆发感,用 Burst:
const burst = new Burst(); burst.time = 2; burst.repeatCount = 5; sys.bursts = [burst];这 4 行让发射器从第 2 秒起每隔 1 秒喷一波,连喷 5 次;sys 是组件上的粒子实例,每波数量在 Burst 的 count 里调大,结构见 burst.ts。
顺手把兜底也写上:
sys.capacity = 300; sys.renderCulling = true;这 2 行把粒子池扩到 300,再让相机看不见的系统直接停掉渲染,这是粒子系统性能优化 的第一道闸。
翻车了?四个高频卡点自查
效果顺了,事故现场才开始。别慌,这四个坑占了翻车现场的大头。
- 你看到粒子乱飞出屏幕→ 大概率 Start Speed 或 Force 给太猛 → 把数值砍半,再用 Limit Velocity 给速度封顶。
- 你看到移动端掉帧→ ⚠️ 大概率单系统粒子超 500,或同屏系统太多 → 降 Capacity、砍 Rate,只留关键特效。
- 你看到 2D 场景里粒子像 3D 一样斜着飘→ 大概率组件挂反了 → UI 场景用 ParticleSystem2D,3D 场景才用 ParticleSystem。
- 你看到拖尾残留或穿帮→ 大概率 Trail 的 duration 太长 → 调短持续时间,或把相机近裁剪面挪近一点。
上线前过一遍这份检查清单 📋
坑排完,剩上线前这道硬指标。移动端项目尤其要逐条过,不满足的症状基本都能在现场复现。
| 检查项 | 建议值 | 不满足的症状 |
|---|---|---|
| 渲染模式 | 大量粒子选 GPU,少量强逻辑选 CPU | CPU 占满,粒子一多就掉帧 |
| 单系统粒子数(移动端) | ≤ 500,稳妥 300 | 中低端机发热、卡顿 |
| 视锥剔除 renderCulling | 开启 | 屏幕外系统还在空转,白耗电 |
| 粒子纹理尺寸 | ≤ 256×256 | 显存占高、加载慢 |
| 同屏粒子系统数量 | ≤ 5 | 绘制批次暴涨,帧时间抖动 |
参数速查表
| 参数名 | 一句话作用 | 推荐初始值 |
|---|---|---|
| Capacity | 同时存活的粒子上限 | 100 |
| Start Lifetime | 单个粒子的存活秒数 | 火焰 1.2 / 烟雾 3 |
| Rate Over Time | 每秒发射的粒子数 | 50–100 |
| Start Speed | 出生瞬间的初速度 | 火焰 3 / 烟雾 0.5 |
| Force Over Lifetime | 持续外力,如向上浮力 | (0, 1, 0) 起步 |
| Noise | 随机湍流,轨迹不呆板 | 强度 0.3 |
| renderCulling | 离开视锥就停渲染 | true |
接下来去哪翻
- tests/particle/ — 想抄现成效果、看容量和剔除行为怎么验证,翻这里的测试用例。
- editor/assets/default_materials/ — 缺粒子材质时先来这,particle-add.mtl 自带加色混合。
- cocos/particle-2d/ — 做 2D 粒子组件或想搞懂 plist 风格实现时看。
火苗、烟雾、拖尾都进你口袋了。参数调个三五轮就有手感,剩下的交给眼睛。
【免费下载链接】cocos-engineCocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.项目地址: https://gitcode.com/GitHub_Trending/co/cocos-engine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考