有伙伴问晓衡:Cocos Store 上除了成品小游戏,还有那些机会? 我回答道:Creator 3D 特效美术,绝对有机会,最为简单的就是模仿『王者荣耀』中的技能来一打! 特效神器 C3D 到底有多强?_微信公众号

今天给大家推荐一篇 Cocos Creator 3D 的粒子编辑器教程,制作一个魔法阵特效,先来看一下最终的效果!

特效神器 C3D 到底有多强?_微信公众号_02正文

看了效果,那么到底是怎么实现的呢?

「答案是:粒子系统」

接下来菜鸟就带大家简单的了解一下 Creator 的粒子系统,「"以下言论仅为个人理解,错误莫喷,希望大家帮菜鸟纠正"」

1.主模块介绍

首先菜鸟带大家了解一下主模块,以及主模块中比较重要的几个属性:特效神器 C3D 到底有多强?_微信公众号_03


文档中对于以上属性的描述:

  • 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.魔法阵实现

魔法阵的实现主要分为两部分,底盘和光束特效神器 C3D 到底有多强?_运行时间_04

底盘

底盘的效果显示为原点旋转,具体设置:特效神器 C3D 到底有多强?_3d_05

  • 1.dration=5,capacity=1,startLifetime=5,这三个参数的设置确保了粒子运行时间屏幕上只有一个粒子,
  • rateOverTime=200 也就是每秒产生200个粒子,那么第一个粒子的产生时间大概为1/200s=0.005s,相当于粒子系统运行后马上产生,
  • dration=5,capacity=1,startLifetime=5,rateOverTime=200这四个参数结合,可以实现粒子视觉显示的时间和粒子系统运行时近似相等的情况,在loop状态下可以实现完美的衔接效果特效神器 C3D 到底有多强?_微信公众号_06
  • 粒子的旋转是通过设置「旋转模块」(RotationOvertimeModule) z轴的旋转,
  • 在startLifetime生命周期内 粒子从初始角度匀速旋转到180度特效神器 C3D 到底有多强?_微信公众号_07特效神器 C3D 到底有多强?_粒子系统_08
  • 设置材质,effect要选择「粒子渲染的材质 builtin-particle」

光束

特效神器 C3D 到底有多强?_微信公众号_09
  • 光束从底部上升,所以需要设置速度 StartSpeed
  • 光束的图片是白色的,所以需要设置初始颜色,
  • 光束的产生不需要太多,所以将rateOverTime调小一点,设置为2,每秒生成2个

为了粒子产生位置比较随机,使用了发射器模块(ShapeModule)特效神器 C3D 到底有多强?_运行时间_10同时形状在上升的过程中拉长,使用大小模块(SizeOvertimeModule)特效神器 C3D 到底有多强?_3d_11透明度逐渐降低 使用颜色模块(ColorOvertimeModule)特效神器 C3D 到底有多强?_微信公众号_12设置光束所需的粒子材质特效神器 C3D 到底有多强?_3d_13

「到此为止,光束的实现简单描述完毕,文采有限,大家多多包涵,感觉写的还行可以六个足迹奥!如有疑问可以私聊菜鸟奥,随时为大家服务」


特效神器 C3D 到底有多强?_生命周期_14公众号回复「魔法阵」 获取demo源码