RPG游戏高性能特效是怎么练成的?
众所周知技能系统
与技能特效
,可以说是 RPG 游戏的精髓,游戏好不好玩,带不带感,这一点至关重要。
但是!花里胡哨的特效容易上,可稍有不慎,经验不足的话,就很容易掉进性能不济的大坑里。
开发时满怀信心,可一上真机,特别是小游戏上。要不就是加载缓慢,卡的要死,或包体太大,各种糟心......只能自己亵玩,无法产生商业价值!
今天,晓衡要向大家推荐一款 Cocos Store 新器资源 炫酷AOK技能系统!
这是社区中号称卷王之王
的孙二喵
大神,从实战商业项目中整理、提炼、总结而出,体验链接(长按复制):
http://gameview.creator-star.cn/iwea/skill
强烈推荐你体验一下,并参与文末评论,开发者有福利送上哦!
本文将主要介绍关于技能管理系统
中粒子特效
相关的加载与优化技巧,希望能对你有所帮助和启发,Let'go!
3D粒子加载优化
1. 优化粒子贴图尺寸
看源码你能了解到,技能仅在第一次加载时,才会解析特效所使用到的 Texuture 纹理。
强烈建议在小游戏上,控制特效贴图的分辨率大小在 128×128 ~ 512×512 以内,特效使用的贴图尽量做到复用,以节省内存和显存。
2. 粒子 Mesh 优化
建议尽量使用减面后的 Mesh 做粒子特效,以CocosCreator 中自带的球体为例,减面前为 2380 面,见下图右下方:
在引擎资源管理器选中 FBX 文件,在属性检查器中,选择模型
面板,可勾选设置 Mesh Optimizer
进行减面优化后只有476个面(你也可以使用其它工具进行减面),请看下图:
可以看到,减面后球体没有那圆润了。但是,会明显示提升粒子的渲染性能,减少渲染时间,而且对于粒子特效来说,在表现上几乎是看不出来的!
3. GPU 和 CPU 资源互换
目前小游戏和休闲游戏的瓶颈在CPU
偏多,建议粒子材质都是用GPU
材质。
不过 GPU 材质不支持重力参数。
因此,需要使用重力的粒子,可以使用 GPU 材质 + ForceOverTime 的 curve 去模拟。
4. 使用 burst 创建多个粒子
在使用较多粒子时,应避免重复创建。可以使用 burst 的重复次数 + 间隔,在单个粒子内重复生成,确保合批。
5. 多个图案合图加textureanimation随机
常见的像雪花、岩石、地面等效果可以用一张贴图合图,使用 Texture Animation 随机出不同的图案,减少粒子数量。
注意勾选 Random Row 选项,看下图
6. 混合 Mesh 使用
部分常驻的效果可以使用 Mesh + UV 动画模拟,以减少粒子开销。
这里使用的是动画编辑器,数量较多时可以使用 instancing + instancedarribute 控制。
7. 粒子预加载
在资源加载阶段,可以把粒子提前实例化好,丢到天上或者视野外播放。
由于部分粒子有 start delay 会有播放延迟,这里统一是 0.65s 后播放然后回收,保证第一次使用技能不会因为贴图加载解析造成卡顿。
也可以直接使用 prewarm,需要记录下延迟,然后还原再回收。
小结
以上是技能系统中关于粒子特效的优化,后续我们再给大家介绍关于角色
、伤害文字
、物理
、技能配置
等方面的内容,欢迎关注!
下载地址: https://store.cocos.com/app/detail/4321
体验链接: http://gameview.creator-star.cn/iwea/skill
相关文章
- php 伪静态-服务器伪静态和WordPress固定连接设置
- Python:Django框架
- 基于Django的博客开发
- PowerPhotos for Mac(mac专用图片管理工具)
- windows命令行筛选-windows下使用命令行运行PHP
- c 按照位数读取一行-C++习题 倒置排序 OpenJudge
- 笔记本怎样连接投影仪-linux(ubuntu)下外接投影仪或着显示器的方法
- 【毕业设计】单片机红外热成像仪 - 嵌入式 stm32 树莓派
- vc60修改快捷键-如何解决Visual c++不能打开文件以及工程不能添加文件的问题
- c 线程安全的单例模式-设计模式之单例模式(C++版)
- c 线程安全的单例模式-C++单例模式(线程安全、内存释放)
- 嵌入式:ARM相关开发工具概述
- 嵌入式:ARM符号定义伪操作详解
- c 线程安全的单例模式-详解C++实现线程安全的单例模式
- C++ OpenCV手动截取图像做透视变换
- 超简单的pyTorch训练->onnx模型->C++ OpenCV DNN推理(附源码地址)
- pyTorch入门(三)——GoogleNet和ResNet训练
- pyTorch入门(四)——导出Minist模型,C++ OpenCV DNN进行识别
- Github Actions Hexo 自动部署
- c 线程安全的单例模式-std string与线程安全_这才是现代C++单例模式简单又安全的实现