[图片上传失败...(image-40c2f1-1619854816777)]
](https://img.haomeiwen.com/i12907730/08cd3bccf4c4c877.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
一开始导入的文件是fbx文件,通过unity自带的一些函数可以获取及修改fbx文件上的一些信息。
修改后会在里面得到一个.Anim文件,可以直接拷贝出来。这个.Anim文件就是最终的输出文件,unity会在运行时读取这个文件进行动画的播放。
unity面板
![](https://img.haomeiwen.com/i12907730/ce6a260785927431.png)
勾选bake后,骨骼根就不会运动了,只有动画在运动位移。不勾选,位移依然存在于根上。
文件格式
![](https://img.haomeiwen.com/i12907730/775fdefc3860ee71.png)
![](https://img.haomeiwen.com/i12907730/88e0d55f88786d40.png)
![](https://img.haomeiwen.com/i12907730/68616a6a33ac06dd.png)
![](https://img.haomeiwen.com/i12907730/111144b385b8cce7.png)
![](https://img.haomeiwen.com/i12907730/25ca5f5f50fd95ca.png)
![](https://img.haomeiwen.com/i12907730/250aa30f5c0afb88.png)
可以看到,有旋转曲线,位置曲线,缩放曲线等;还有采样率(动画帧率);Editor曲线,应该是在打开查看动画界面的那个地方展现的editor面板用的;以及动画事件。
主动获取位移
文件中位移相关信息:
![](https://img.haomeiwen.com/i12907730/0b84a3a8b6ac4fa2.png)
参考:Animancer - Inverse Kinematics (kybernetik.com.au)
1.获得曲线
![](https://img.haomeiwen.com/i12907730/8be754e3697fe6cb.png)
这样可以获取到一个动画片段的所有曲线信息。曲线信息的区分,主要靠两个参数,path和propertyName
![](https://img.haomeiwen.com/i12907730/4e9668bdbeb44302.png)
我要获取的是path 为 ROOT ,propertyName 为 m_LocalPosition.x,m_LocalPosition.y和m_LocalPosition.z
首先先获得这三条曲线。获取后把曲线存下来就行了。
2.位置推演
动画若设定为30帧每秒,那么三秒的动画,一共是90帧。
![](https://img.haomeiwen.com/i12907730/1b27abb573cfe142.png)
然后,需要根据每帧的时间,传入到曲线进行Evaluate(time)获得数据。
代码略,参考上面链接代码。
网友评论