从哪些方面减少包体积

发表于2016-05-20
评论0 2.9k浏览

    在开发移动平台游戏过程中,难免会遇到包体积过大的问题,产品总是在不断增加东西,那么怎么来优化最终打出来的包体积呢?简单说一下吧,仅供参考,子欲善其事,必先利其器。合理使用工具是很不错的选择。方法如下:


一、资源要合理管理

    比如一款游戏,一套怪物和一套需要版本更新的英雄,我们需要把这些怪物和英雄做随着以后的游戏版本更新给玩家用,这就需要打包成AssetBundle了。去CDN上下载。

    很多英雄共用一套资源,我们的资源的量肯定是固定的。可是做成预设的哪些英雄打包成AssetBundle的英雄,如果按照每个英雄打包成单独的包的话,这样达成的AssetsBundle包就包含了很多重复的文件,无端的增加了包体积和玩家下载体积。这样需要Excel来管理,把通过的动作做成一个通用AssetBundle,最终加载英雄和怪物是通过表格来控制,这样就保证了最终的英雄对应模型、动作、特效、贴图的完整性,又合理的控制了最终包体积,经过测试,此方法可行。


    


二、合理优化美术资源

    最终包体积过大,从最终资源列表来看,贴图和音效占用了很大的量,这样就得和美术团队规范一下贴图的导入格式和音频的制作技巧。比如下图,贴图的体积占用了整个游戏的90.05%!这样我们就通过这个工具来定向的优化这些资源。

    方法:

    1、贴图直接导成Png格式,需要透明通道的直接导透明通道,无需透明通道的直接把透明通道去掉。最好是导成如下图格式的Png,最佳,最节省!


 

三、已经导入到Unity里面的贴图纹理和尺寸压缩格式

    这是需要美术特别注意的地方,通常美术导入直接就从PS导出来了,本身的体积就听大的,还包含透明通道等无用占用体积的资源信息,作者信息什么的。这些尽量去掉。

    Android平台下无通道的设置成RGB DXT5类型、有通道的设置成ARGB DXT5 ,兼容性最强


 

    IOS平台下无通道的设置成 PVRTC ,最大尺寸可按照需求设置,比如远景的建筑物,可以压缩成64*64的,这样即使工程里面单张贴图的体积很大,MaxSize被设置成了64*64 最终打出来的包,此帖图的占用率也很小很小按照64*64算。

 

四、减少Mesh面数

    毋庸置疑,这点只能让美术去做喽。保证平滑的前提,尽量减少Mesh的面数吧。


五、优化美术动画骨骼数量

    在蒙皮的时候,跟美术沟通,看游戏的制作定位到什么程度,需要按照需求优化掉没用的骨骼点,比如手指头,脚趾头这些无关紧要的骨骼挂点。东西多了,很大程度上减少了包的体积。还有就是最终导入到引擎里的文件,蒙皮Mesh文件和动作文件最好分开管理,别放到一个文件里,把动作文件单独拆开命名。

 

六、合理利用Resources文件夹目录,


七、优化音频文件

    音频就很简单了,用OGG格式就行了,文件比较小的音效用Decompress On Load格式,文件比较大的用Compressed In Memory 这种格式。


如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引