查看原文
其他

源码下载丨如何制作炫酷又高效的 3D 技能特效?带你轻松放大招!

孙二喵 COCOS 2023-03-16

如何拥有炫酷又高效的技能特效表现?本次孙二喵带来了一个 3D 技能特效管理器,在提供丰富特效效果的同时也对运行效率进行了优化。下载地址见文末。


部分效果演示


在 RPG、MMO 等游戏中,我们常常会用到大量的粒子来制作技能特效。在实际操作中我们知道,快速实现炫酷的粒子特效其实并不容易,而使用大量粒子也对性能优化提出了更高的要求。


本次的 3D 技能特效管理器包含多种特性:

  • 10个超炫的 AOE 技能体;

  • 人物 Simple Toon 无光照 shader,支持 instancing 边缘光合批、消融合批;

  • 技能管理系统,支持暴击、躲避、连击等。


开发者可快速取用并根据实际需求调整参数,事半功倍地达到自己想要的效果。同时,这套资源从特效加载、材质表现、文字合批、帧数、音效等方面进行了优化,以提高 3D 技能特效的表现质量与运行效率。


以下是重点优化分享。


特效加载优化


  • 优化粒子贴图尺寸


目前在第一次加载特效的时候,需要去加载解析特效中用到的 texture。


小游戏特效贴图的分辨率大小建议控制在 128x128 - 512x512 以内,尽可能复用特效贴图,以节省内存和显存。



  • 粒子 Mesh 优化


建议尽量使用减面后的 Mesh 做粒子特效。


以 Cocos 自带的球体为例,减面前:



减面后,将减少粒子渲染时间:



  • GPU 和 CPU 资源互换


目前小游戏和休闲游戏常在 CPU 遇到瓶颈。建议粒子材质使用 GPU 材质;由于 GPU 材质不支持重力参数,需要用到重力的粒子效果,可以使用 GPU 材质 + ForceOverTime 的 curve 去模拟。



  • 使用 burst 去创建多个粒子


如何避免重复创建使用较多的粒子?可以用 burst 的重复次数 + 间隔,在单个粒子内重复生成,确保合批。



  • 多个图案合图 + textureanimation 随机


常用的雪花、岩石效果可以用一张贴图合图,使用 textureanimation 随机生成不同的图案,减少粒子数量。



  • 混合 Mesh 使用


部分使用较多的效果可以使用 Mesh + UV 动画模拟,减少粒子开销。这里使用的是动画编辑器,数量较多的话可以使用 instancing + instancedarribute 控制。



  • 粒子预加载


在资源加载阶段,可以提前把粒子实例化,丢到天上或者视野外播放。由于部分粒子有 start delay,会有播放延迟,这里统一设置 0.65s 后播放并回收。这样可以保证第一次使用技能时,不会因为贴图加载解析而造成卡顿。



当然,也可以直接使用 prewarm,先记录下延迟,然后还原再回收。


角色优化


当技能砸中角色时候的时候,我们给角色设置边缘光作为反馈。



这里使用了自定义的材质,使用了引擎自带的 unlit + 边缘光 + 溶解效果 + 阴影,并通过 instancedarribute 控制材质效果。



溶解和 instancdarribute 都通过 MeshCtrl 脚本进行控制。



使用的时候,可以获取 MeshCtrl Class,通过 tween 来控制溶解范围。



伤害文字合批优化



所有的伤害文字都挂在了血条下面,全部使用了 bmfont,减少 drawcall。这样只需要血条跟随角色位置,做一次本地空间坐标转换即可。



AOE 效果伤害文字演示:



降帧



游戏中粒子特效较多,这里把 game.frameRate 降低到了 30FPS,每帧有更多的时间处理开销。


钝帧和屏幕震动



游戏开始的时候 overwrite 了 director.tick,每次释放技能都会通知相机屏幕震动(这里是整体缩放放大,部分技能也可以设置上下震地的效果)和钝帧(减慢游戏时间),减少玩家的卡顿感知,通知增加游戏打击感。


*这里修改的是整体的缩放,也可以单独 tween x 轴或者 y 轴。



震动和钝祯都通过配置文件获取:



物理优化


这里物理使用了引擎自带的 BuiltIn,追求性能的也可以考虑 Bullet 物理引擎或者自己封装树结构的碰撞检测,技能的碰撞体尽量选用球类,检测性能最高。



连击优化


连击写到了配置文件,技能只会检测一次(需要持续检测可以加一个碰撞体离开参数)。



音效优化


为了避免同一个音效集中播放,可以使用轨道音效,控制音效数量,也可以记录播放时间,比如击中音效,这里做了 50ms 的播放限制,避免 50ms 内重复播放一个音效。



下载与福利


  • 3D 技能特效管理器 - 下载地址

https://store.cocos.com/app/detail/4321


  • 体验链接

http://gameview.creator-star.cn/iwea/skill/index.html


  • 论坛专贴

https://forum.cocos.org/t/topic/143309


🎁 放福利!转发本篇文章并在评论区留言,12月19日,我们将从评论区随机抽选3名小伙伴,送上 3D 技能特效管理器免费兑换码1个


往期精彩

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存