最近遇到一个问题,动画文件大了复杂了之后,每次修改输出很麻烦,导出fbx就需要20分钟再加上unity这边的导入加起来得40分钟左右。
所以我想到了一个比较好的解决方法,在unity这边解决。把动画文件拆分成若干份,然后赋予不同的层并行播放
当要修改某个角色或者某几个角色的动画只要输出一小部分就可以了
为了测试可行性,我使用了一个跑动的模型动画进行测试,一共复制了20分,分别用多层动画(20层)和单个动画来播放,测试性能
单个动画测试结果:(消耗时间2.5毫秒左右,浮动不大比较稳定)
多层动画测试结果:(20层动画,消耗时间2.7-3.3毫秒左右,性能影响不大)
多层动画的测试代码:
void Start() { var testClips = Resources.LoadAll<AnimationClip>("test"); for (int i = 0; i < testClips.Length; i++) { anim.AddClip(testClips[i], testClips[i].name); anim[testClips[i].name].layer = i + 1; } for (int i = 0; i < testClips.Length; i++) { anim.Play(testClips[i].name); } }
可见这么做是可行的,这样就可以把一个大的动画分成多个组来编辑,而又不影响整体预览。
时间: 2024-10-29 02:44:52