多图集下项目内存占比高,开发刷新等待时间很长,有什么优化的办法?

做一个城市模拟游戏,需要生成随机的人物,穿着和发型是有很多种的,而且都支持帧动画,导致图集很多,我看开发更新的时候都有好多网络请求:
image

每种发型、穿着都有一个图集:
image

发现内存也很高的样子:
image

想问一下大家:
1、这么多图集,占这么多内存,而我又得随机生成人物,有什么办法解决这个问题?
2、现在开发的时候每次刷新都要等很久,有什么办法提升开发体验?

对cocos的资源管理原理不太熟悉,请大家赐教

https://forum.cocos.org/t/topic/156256 看看这个帖子。

你说的是图集?还是单个小图?截图里是说 那些发行样式会被打到一个图集里么

做成小游戏,应该是不能远程加载的吧?

现在每个发型都有自己的一个图集,因为要支持动画
image

资源可以远程的,代码微信不允许远程你硬来也可以论坛有方案 :rofl:但是被微信发现有被下架风险,内存占用大就几个方案1、压缩图片质量,2、纹理格式压缩可以用astc格式,最后做到按需加载及时释放呗

图片基本都是重复的,看起来感觉都是走路的时候上下起伏和转方向,是的话建议你只用四张图片自己用tween去调动画。如果人物是spine的话直接把头发挂节点上连tween都不用写了

2、纹理格式压缩可以用astc格式,最后做到需加载及时释放呗

我看到只要是plist的图集,cocos会一个个spiritframe单独去请求,导致请求很多,这个有办法吗

你这个是资源数太多导致的加载慢把不是内存问题,这个我也没太多经验,可以按需加载后台加载然后你也可以试试把plist的描述json合并或者自定义格式简化内容然后用到的时候自己解析

像楼上说的,你这项目里的人物其实只用4方向,你们可以搞一个存储人物肢体每帧的相对位置的配置文件,用帧动画的形式,每帧去读取各部位相对父Node的位置。例如,头,第一帧{x:1,y:2},第二针{x:1,0}这种,你可以配[[1,2],[1,0]]。spine的性能问题很致命,不建议你大范围使用spine来做

spine性能还是不行啊 :rofl: :rofl:我还以为3.8总该优化的差不多了 。感觉像楼主这么搞,都不该到担心内存高这一步,不该是dc都降不下来吗 :rofl: :rofl:,一个小人就要16dc,20个小人就300dc还不算其他的内容了。四个方向的衣服头发一共八张小图,所有人物的8张图全部打进一个图集感觉整张图都不会很大

是不是可以不做成图集,自己去加载图片,然后自己用 setTextureRect来显示其中的小图,自己做动画?这样子是否性能会提高很多?现在的一个问题应该是cocos把图集的每一个小图都单独请求一次,很慢

是的,应该是cocos把图集的每一个小图都单独请求,导致请求数过多

cocos应该不会有空闲到做图集可以绕过合图直接请求合图里面的小图这个功能的吧 :rofl: :rofl:

json是单独请求的啊

spine 3.8还真不清是否真的优化好了,3.7是很不行

头加身子,应该是2dc

楼上阿巴啊巴的想法可以试试不要用plist自己解析io压力应该会小很多

cocoscreator 自动打图集文件auto-atlas,打出来的包应该也是一整个图集的形式,加载资源应该也是一整张图都会被下载下来才对

建议一个人物只用4方向,一个头型也就上下左右4张,就可以把所有头都打进一张图集里,所有身子打进一张图集里,然后再进游戏前,把资源加载进来。你就不用再请求了