从一个animation的结束帧到另一个Unity3d / C#的结束帧的animation效果

所以我有两个传统的FBXanimation; animationA和animationB.

我期望做的是能够从A到B淡出,而不管当前帧A是否打开。

使用animation.CrossFade()将反向播放A,直到到达0帧,然后向前播放B.

我要做的是从A的当前帧到B的结束帧。可能是通过A的面部位置和B的最后一帧的面部位置之间的某种forms的lerp。

有谁知道我可以做到这一点? 要么通过内置的函数,要么可能是某种types的?

编辑:有谁可能知道一种方法来读取某个框架的animation骨位置? 也许如果我能读到,我可以通过做Vector3利刃伪造animation。

您需要制作只是每个animation的最后一帧的“虚拟”animation,并在这些animation之间进行混合。

如果animation系统没有播放,animation系统将尝试播放animation,所以如果您只是想在两个animation的最后一帧之间进行混合,则需要animation为仅包含最后一帧的循环。

所以我最终做的是使用AnimationUtility.GetAllCurves(clip)来caching编辑器中每个AnimationClip的animation曲线数据。 一旦你序列化这些数据,你可以建立任何你想要的平台。

你所做的就是把animation曲线数据作为一个给定的animation,并使用key.time和key.value关键帧variables创建一个新的AnimationClip,只使用你想要混合的帧,另一个AnimationClip只使用另一个animation的帧你想要融​​合到

然后使用animation.AddClip(); 在这个临时剪辑上,然后在两者之间交叉淡入淡出。 让您从一个animation的任何点到另一个animation的任何点无缝淡入。

这个项目的代码是私人的。 但是,如果有其他人有这个问题需要进一步的帮助或指导,请随时与我联系tim@terabytetim.com