测试Animation大型动画文件拆分播放的可行性

最近遇到一个问题,cutscene剧情动画文件大了复杂了之后,每次修改输出很麻烦,导出fbx就需要20分钟。

所以我想到了一个比较好的解决方法,在unity这边解决。把动画文件拆分成若干份,然后赋予不同的层并行播放

当要修改某个角色或者某几个角色的动画只要输出一小部分就可以了

为了测试可行性,我使用了一个跑动的模型动画进行测试,一共复制了20份,分别用多层动画(20层)和单个动画来播放,测试性能

即一个动画剪辑控制20个人跑动,和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;
    }

    for (int i = 0; i < testClips.Length; i++)
    {
        anim.Play(testClips[i].name);
    }
}

可见这么做是可行的,这样就可以把一个大的动画分成多个组来编辑,而又不影响整体预览。

原文地址:https://www.cnblogs.com/hont/p/5358720.html