jjzjj

AnimationClip

全部标签

Unity动画文件(AnimationClip)精简容量的研究

一、研究动画精简的原因最近做一个3D卡牌项目,角色非常的多,每个角色的动作也比较多。项目打包之后,发现包体容量比较大,然后分析了AssetBundle资源,发现里面的动画文件非常的大,有些角色一个动画文件打包AssetBundle之后居然有1M多,这样一个角色单纯是动画文件就占了超过10M了。由于这次的美术团队是新合作的,一开始也没有留意动画的制作方式是否有问题,既然发现存在异常了,于是就对美术资源进行分析。经过一番尝试之后,成果还是很明显的,在保持原有动画效果的基础上,能把原来1m多的的AssetBundle文件减小到不到200k。二、动画文件容量分析1、动画文件的导入问题一般复杂的角色动画

留个档,Unity Animator state节点的Motion动态替换AnimationClip

前言·由于Unity没有提供直接替换的API,所以在仅限的API下进行逻辑操作。·替换的原理是差不多的,利用AnimatorOverrideController,进行运行时的覆盖。·网上搜索很多文章是利用名字字符串作为hash的key来进行替换。不满足我自己项目中的需求,于是利用GetOverrides和ApplyOverrides,封装了这个功能。思考过程·因为Animator的操作是UnityeEditor级别的,所以需要AnimatorOverrideController来辅助操作。·AnimatorOverrideController的两个接口的特性会针对一个数据结构List>。查AP

Unity解决动画不可用:The AnimationClip ‘XXX‘ used by the Animation component ‘XXX‘ must be marked as Legacy.

在Unity2019.4.38.f1c1以上的版本,创建的创建AnimationClip无法使用,作为组件的默认Clip的话,那么游戏运行的时候这个Clip其实是播不出来的,而且Console会报一条“TheAnimationClip‘XXX’usedbytheAnimationcomponent‘XXX’mustbemarkedasLegacy.”的警告信息,以及一条“Defaultclipcouldnotbefoundinattachedanimationslist”的提示信息。也就是说创建的.anim文件其实不能直接用在Animation组件中解决方案:1、2019年以后的版本选中动画,

动画(AnimationClip)压缩

FileSizeFileInfo.Length取得的文件大小可以在操作系统的文件系统中看到MemorySizeProfiler.GetRuntimeMemorySize取得的内存大小可以在Profiler中通过采样看到分别在真机和Editor下进行了采样BlobSize反射取得的AnimationClipStats.size二进制大小显示在AnimationClip的Inspector的面板上image.png红色框内即是BlobSize,在我的理解,FileSize是指文件在硬盘中占的大小,BlobSize是从文件反序列化出来的对象的二进制大小。Editor下的MemorySize不仅有序列

动画(AnimationClip)压缩

FileSizeFileInfo.Length取得的文件大小可以在操作系统的文件系统中看到MemorySizeProfiler.GetRuntimeMemorySize取得的内存大小可以在Profiler中通过采样看到分别在真机和Editor下进行了采样BlobSize反射取得的AnimationClipStats.size二进制大小显示在AnimationClip的Inspector的面板上image.png红色框内即是BlobSize,在我的理解,FileSize是指文件在硬盘中占的大小,BlobSize是从文件反序列化出来的对象的二进制大小。Editor下的MemorySize不仅有序列