AnimationClip内存优化

发布于 2017-02-22 07:45:20 字数 65 浏览 950 评论 7

有什么好的方法可以优化动画内存占用?除了常见的降低精度,压缩,去scale等操作外,降低frameRate是否可行?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

夜无邪 2020-05-12 16:11:41

可能是测试例子的问题,降低精度并不能保证内存一定降低,但可以增大将曲线转为constant曲线的概率。在generic类型中,动画文件中经常会包含较多数值接近零的数据,这些近零值经过约取后会归为零,而零通常可以正确保存。如此这些曲线就可以转化为零值constant曲线,从而降低动画文件的内存大小。

虐人心 2020-02-15 11:12:19

感谢鑫哥~强! 看来一定要降低精度~

浮生未歇 2019-08-04 06:02:38

动画片段的内存占用无非是记录各种属性的变化(关键帧),想降低内存占用也无非就是去除不必要的关键帧以及对属性的操作。
从程序员的角度,提供自动剔除重复关键帧的工具已是仁至义尽,剩下就是TA从艺术角度去约束和缩减看似有用其实不必要的属性变化信息了。
对资源的优化永远是个综合性系统工程,单从程序角度出发既不能达到最优性能也不能达到最佳品质,只有综合产品、艺术、技术才能得出最优(折中)解。

灵芸 2018-09-15 22:41:25

Hi 题主,关于framerate可以补充一下:
如果题主问的是动画导入到unity后,在播放时改变framerate(通过控制动画播放speed,导入unity后实际已经没法改变动画片段原始framerate了),那framerate的改变不会影响内存;

但是,如果题主指的是在动画制作软件里(比如3dsmax,maya)修改framerate,那导入到unity后内存确实会受些影响。此时, 如果两个动画一致,单纯framerate不同:

  1. 不开动画压缩时,实际关键帧数多的片段(通常是framerate高的),内存会大一些,而且还有几个影响因素: a. 导入时开启resample curves(该选项决定unity在导入时是否自动插帧,会使所有曲线在播放时间段满帧),那framerate高的内存会高很多,b. 不开resample,那framerate高的会高一点;
  2. 开动画压缩时,比如keyframe reduction,不同framerate的内存再次变得相近(因为动画一致,实际动画曲线也类似,压缩时同样会压缩掉一些重复的数据)
    结论也就是说,当动画压缩选项开启的时候,制作动画时的framerate对内存其实影响也不大,所以不需要特意在framerate上做优化
清晨说ぺ晚安 2018-09-07 23:15:27

frameRate决定这个AnimationClip的关键帧采样(可以理解成是关键帧之间的间隔时间是多少),和内存没有直接的关系。

虐人心 2017-08-19 23:58:18

动画降低精度我做了个测试,降低以后文件大小确实小了,但是内存没什么变化。假如用float保存数据,它就是4字节,并不会因为把精度降低了内存就小了。

但是如果把精度降后,在打assetbundle (带压缩) 由于先前降低了精度,导致大量的数据相同(前提是开了force text),这样就可以压缩了,所以assetbundle会小一点。

瑾兮 2017-03-08 09:45:34

我们可以把一些线性动画进行程序模拟,这样减少动画K帧的数据量,比如常用的itween、dotween插件和uwa推荐的xtween等

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文