今天给大家推荐一篇 Cocos Creator 3D 的粒子编辑器教程,制作一个魔法阵特效,先来看一下最终的效果!
正文看了效果,那么到底是怎么实现的呢?
「答案是:粒子系统」
接下来菜鸟就带大家简单的了解一下 Creator 的粒子系统,「"以下言论仅为个人理解,错误莫喷,希望大家帮菜鸟纠正"」
1.主模块介绍
首先菜鸟带大家了解一下主模块,以及主模块中比较重要的几个属性:
文档中对于以上属性的描述:
- 1.dration 粒子系统运行总时间
- 2.capacity 粒子系统能生成的最大粒子数量
- 3.loop 粒子系统是否循环播放
- 4.startLifetime 粒子生命周期
- 5.rateOverTime 每秒发射的粒子数
属性描述补充
- dration:粒子系统运行总时间,他表示的是粒子系统单次运行时间值,在具体点就是 「产生第一个粒子到产生最后一个粒子之间的时间,并非第一个粒子显示到最后一个粒子消失的时间」
- capacity:粒子系统能生成的最大粒子数量,表示粒子系统「单次运行」最多可以产生的粒子数,
- startLifetime: 粒子生命周期,「单个粒子产生到消失的时间」
- rateOverTime:粒子系统每秒发射的粒子数
注意
- 当rateOverTime=10,dration=1时,每秒钟产生的粒子实际数量为rateOverTime-1,也就是说在总数足够的情况下,运行实际产生的粒子数量为9。「再换一种说话,在总数足够的情况下,假设粒子数为n,要想知道n为多少需要两步操作,1. n<rateOverTime*dration,2.对第一步得到的n向下取整」
-
第一个粒子产生到最后一个粒子消失的时间t为:
capacity < t < capacity+startLifetime - 当实际产生的粒子数大于capacity,粒子将停止产生,直到有粒子生命周期结束再开始产生
2.魔法阵实现
魔法阵的实现主要分为两部分,底盘和光束
底盘
底盘的效果显示为原点旋转,具体设置:
- 1.dration=5,capacity=1,startLifetime=5,这三个参数的设置确保了粒子运行时间屏幕上只有一个粒子,
- rateOverTime=200 也就是每秒产生200个粒子,那么第一个粒子的产生时间大概为1/200s=0.005s,相当于粒子系统运行后马上产生,
- dration=5,capacity=1,startLifetime=5,rateOverTime=200这四个参数结合,可以实现粒子视觉显示的时间和粒子系统运行时近似相等的情况,在loop状态下可以实现完美的衔接效果
- 粒子的旋转是通过设置「旋转模块」(RotationOvertimeModule) z轴的旋转,
- 在startLifetime生命周期内 粒子从初始角度匀速旋转到180度
- 设置材质,effect要选择「粒子渲染的材质 builtin-particle」
光束
- 光束从底部上升,所以需要设置速度 StartSpeed
- 光束的图片是白色的,所以需要设置初始颜色,
- 光束的产生不需要太多,所以将rateOverTime调小一点,设置为2,每秒生成2个
为了粒子产生位置比较随机,使用了发射器模块(ShapeModule)同时形状在上升的过程中拉长,使用大小模块(SizeOvertimeModule)透明度逐渐降低 使用颜色模块(ColorOvertimeModule)设置光束所需的粒子材质
「到此为止,光束的实现简单描述完毕,文采有限,大家多多包涵,感觉写的还行可以六个足迹奥!如有疑问可以私聊菜鸟奥,随时为大家服务」
公众号回复「魔法阵」 获取demo源码