求助求助 微信小游戏到底怎么用astc

微信小游戏纹理压缩 图集 图片 spine动画 设置astc 8x8 纹理压缩根本显示不出来。都没用。这个格式到底有没有用。难道说还有别的设置吗 Cocos2.4.13版本

报这个错误

有用的,项目也是2.4.13已经成功上线跑了几个月了。快手,抖音,微信小游戏都没问题,踩过几个坑
1.jpg得勾选jpg和astc,png勾选png和astc
2.astc纹理压缩后资源体积变大,会出现资源下载失败的情况,要么服务器开gzip传输,cdn资源预热,要么自己把astc文件数据gzip,然后自定义astc解析ungzip(我们项目采用的是第二种)

每个PNG 要手工配置一遍?

自己写插件批处理撒,监听构建消息,构建前修改meta文件,构建完成还原meta和gzip压缩,这样不影响开发工程

+1,是这样的。 构建失败也记得恢复。

这里一直有个疑问 比如一个图片,在小游戏配置页 选择了ASTC 也同时选了PNG,那么最终用哪种形式 这个谁控制?要手动自己写代码适配?还是说引擎根据顺序来自动选择?
还有 如果只选了ASTC 不选PNG呢,如果不考虑低端机器了 不支持ASTC的就不管了,这样是否可行?图片

引擎根据平台适应程度等情况来选择,一般纹理压缩优先。
只选了astc不选png是可以的,一般来说,小游戏是astc/png都选上,因为pc上的开发工具是用png的,而原生的(ios,android)基本上选上astc就足够了,我们没碰到过不支持astc的设备,基本上99%设备是兼容的。

导出png的形式 怎么感觉就只是为了支持开发工具的了,结果整个构建包有了两套资源了就变成,不管是主包还是分包 里面有一半的资源是浪费的了成了?远程资源不管用 反正是用哪个下载哪个,但主包和分包里的 PNG完全就是浪费了 ,这个有没有什么方便的形式 只导出ASTC,但还能支持微信开发工具的? 没用过还 想听听过来人的经验啊

好像没有,不过,你可以设置主包里面的只使用png,远程的用astc/png。因为主包里面资源少,这样的话,大部分资源都压缩了,也不影响主包大小。
我们主包里面只有loading图,东西很少的。
哦对了,忘记了说了。PC端的微信小游戏,也只能用png,所以png还是一定要的。

主包里的资源确实很少也都 本来就4M 基本都是工具本身的,但分包就不同了 目前有20M的分包可用,你再占去一半资源 得不偿失了,你说 你为了压缩格式 但浪费了一半的分包空间,是吧 理论上 包体大小和内存大小 都是重要的,不好说了就,
而且还有 你也分清 将来哪些资源会进入分包 哪些是远程的 ,你说你只配置远程的用ASTC 哪得多精细的要去人为查看分类啊 ,
就算你远程的配置ASTC 那分包的就用不了ASTC了 呵呵,你们是怎么处理的?

我们处理方式就像上面我们说的,主包和分包里面只有一张图片,就是loading图,其他资源都是远程下载的。
我们代码也大,基本上主分包的20m空间都尽量留下给代码了。

其实:如果你们大部分资源都在分包20M的话,就不需要astc了。因为这个量级的图片资源是达不到微信内存瓶颈的,一般像大量的图片使用,用astc才比较明显。

目前是比较大的 资源少的肯定不会选压缩了就,常用的前期的资源用分包 剩下的远程,
看了看规则 开发工具这一步的调试支持 目前好像是个挺操蛋的事情,开发工具只能是PNG ,所以资源的导出 带来很多问题就
所以想问问 都是怎么设计这一块的

子包就不要多纹理格式了,远程包才选多纹理格式,尽量把资源都放远程

我用的一个新项目demo测试。直接走小游戏分包。难道小游戏分包没给我们开gzip传输?

子包是不是本身就不支持。我现在就是用子包测试

自定义解压。是怎么解压的。看到官方好像有一个gzip.js文件使用官方的吗

官方的不知道开没开,你自己看下网络请求对比一下文件大小就知道了

压缩解压缩用的pako库

大佬 你们的游戏苹果发烫掉帧咋解决的。我们这边通过测试。
即使没有多少update运算。随着渲染图片渲染spine的变多。苹果就会越来越烫 也掉帧。drawcall控制好了只有三四十。是不是基本上可以确定就是渲染图片导致内存变大。或者说渲染压力太大 导致手机发烫.那是不是只有纹理压缩这一个方案了。

不一定吧,spine如果是实时运算模式也挺占内存的,改成缓存模式试一下?