动画资源内存占用优化清单
本路新搞了个公众号 不定期更新技术贴 欢迎大家来一波关注
8.8更新 新增了两张截图 感谢网友指正
**** Hidden Message *****
5.transform值只保留小数点后四位 这是个需要程序写个工具来实现的。小数点后四位是个常用值,实际是保留三位还是五位可根据具体情况而定。而且每次操作之后一定要对比下动画的变化,没有明显误差才可以使用。
6.动画压缩optimal(最佳压缩)与keyframe reduction(帧压缩) 帧压缩是通过计算两帧之间的差值,如差值小于设置好的阈值(error参数),则删除帧。帧压缩使用的是stream曲线,两帧之间以曲线链接,每个节点有可以调整的切线,比较像贝塞尔曲线,stream曲线是unity存储动画占用空间最大、动画表现力最好的存储方式。最佳压缩,在帧压缩基础上,转化两点间的stream曲线Dense曲线,Dense曲线两帧之间以直线相连,Dense曲线的存储占用小于stream曲线,画面表现也次于stream曲线。并且选择哪条stream曲线转换为Dense曲线是unity黑箱完成的,无法控制。还有一种Constant曲线,就是从初始帧到结束帧完全是一条平直的线段,占用空间最小没有动画。
7. Legacy、Generic、Humanoid三种动画模式测试结果显示,其他条件相同下Humanoid 占用内存要小于Legacy 和Generic,但是具体原理尚不清晰,仅供参考。
小结,一般来说大部分项目中,动画资源占比并不大,通常只需要设置好动画压缩、截取transform值即可。因为unity的动画压缩会做类似2、3、4节提到的操作,虽没有手动的彻底,但是快捷方便性价比很高。而在格斗、动作以及舞蹈类游戏动画资源在美术资源里占比比较大,需要用比较多的精力去优化,除了上面介绍的方法之外,还有些项目用MotionBuilder或者自研的unity工具,去修改fbx文件。大幅提高性能的优化通常都伴随着画面品质的降低,性能优化和画面表现是天平的两端,多花点时间培养美术同学的优化意识,要比花时间培养程序同学的审美来的实在,赶紧把这篇内容转给你的美术同事吧!
资源甚好,且阅且珍惜! ss
学习下新技能
资源甚好,且阅且珍惜! 学习
hohohohoho 顶好帖子
谢谢分享! 谢谢分享!
资源甚好,且阅且珍惜!