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

如何拥有炫酷又高效的技能特效表现?本次孙二喵带来了一个 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个!

往期精彩

搜索建议:
热评

 服装店名字?

1、meishikankan: 碧丽斯 栀子花香 蓝天之韵2、newdv: 衣雅优3、妙妙: 衣心衣意4、sllxg: 雅怡服饰 雅怡扮装 宜雅清爽 5、ahl...(展开)

热评

 惊蛰是什么意思(一雷惊蛰始!)

图文摘自网络(如有侵权,请联系删除)惊蛰为农历二十四节气中的第三个节气,古称启蛰,标志着仲春时节的开始,此时太阳到达黄经345,天气转暖,渐有春雷,动物入冬藏伏...(展开)

热评

 维德狮子会授证成立

【记者王辉丹/新北报导】维德狮子会创会典礼廿三日晚于新庄典华举办盛大的授证成立大会。台北市社会局副局长许秀能代表市长侯友宜出席并致词,创会发起人刘美华、荣誉创会...(展开)