拉撒路 发表于 2017-8-7 12:09

动画资源内存占用优化清单


本路新搞了个公众号 不定期更新技术贴 欢迎大家来一波关注
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.chen 发表于 2022-9-6 23:33

资源甚好,且阅且珍惜!

Tough guy 发表于 2019-5-23 10:33

ss

超级二大爷 发表于 2019-5-16 18:29

学习下新技能

feefe 发表于 2019-5-16 16:47

资源甚好,且阅且珍惜!

欣欣向荣 发表于 2019-5-16 16:10

学习

CC14克罗克达尔 发表于 2019-5-10 17:42

hohohohoho

15815827123 发表于 2019-5-10 17:21

顶好帖子

baoer1989 发表于 2019-5-10 16:12

谢谢分享!

baoer1989 发表于 2019-5-10 16:12

谢谢分享!

zhouze7577 发表于 2019-5-10 14:09


资源甚好,且阅且珍惜!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 动画资源内存占用优化清单