好久没有更新博客了,因为从客户端开发转到手游制作后,突然感觉没什么博客可写的。不过博客一方面是交流用,另一方面也是为自己备忘用,所有就还是要写些有的没有来记录一下自己的所用所想也好。
Unity项目开发的后期主要有两方面的工作要作:效率优化与压缩减包,这里主要说下压缩减包。主要有以下这些内容可压:
1. 贴图:
贴图是游戏包中占量最多的(具体视游戏类型,一般超过50%)。可分为UI贴图,场景和角色的贴图。场景和角色的贴图可以采用各种压缩来减少空间,比如Android->ATC/ASTC(http://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression), iOS->PVRTC。不过这些也都要与美术来配合,以确定可以接受的最低压缩限度。UI贴图比较难压,特别是在mobile上,最主要的就是玩个UI,所以质量肯定不能降的,只能在其它方面做些工作了。比如:
- 减少atlas中无效空间的数量,也即是每个atlas都要用到最大限度;
- 在mobile上要注意atlas之间的耦合度,不能因为只使用一个很小的图素而让一个很大的atlas常驻于内存中。这说明atlas的划分不太合理;
- 可以使用texturepacker来代替ngui自带的atlas maker来制作出利用率更高的atlas;
2. 动画;
动画文件也可以在一定程度上压缩,在fbx动画文件导入时可以选择Compression为Keyframe Reduction and Compression,这样通常对一个动画文件减少50~60k左右的大小,文件多的情况下累积数量也会比较可观;
3. 网格:
Mesh文件的压缩也可在fbx导入时进行选择设置,一般medium即可。
4. 声音;
没得说,使用较低的压缩采样率。
从上面可以看出,贴图的压缩算法研究,特别是游戏中应用这块还是依然大有可为啊!!当然,出于效率上的考虑,上述这些操作都可以在Unity中写成自动化的工具来进行统一处理,比如将整个reduce package操作加入到build and release过程中,一键搞定。
Unity官方通用的优化doc可以见这里:http://docs.unity3d.com/Manual/ReducingFilesize.html
本文介绍了Unity项目在发布时的压缩减包方法,包括贴图压缩、动画优化、网格和声音文件的处理。贴图可通过调整压缩格式和优化atlas来减少大小,动画文件可选Keyframe Reduction and Compression,Mesh文件设置为medium压缩,声音则降低采样率。建议开发自动化工具整合优化流程。
1958

被折叠的 条评论
为什么被折叠?



