[图片上传失败...(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面板
勾选bake后,骨骼根就不会运动了,只有动画在运动位移。不勾选,位移依然存在于根上。
文件格式
可以看到,有旋转曲线,位置曲线,缩放曲线等;还有采样率(动画帧率);Editor曲线,应该是在打开查看动画界面的那个地方展现的editor面板用的;以及动画事件。
主动获取位移
文件中位移相关信息:
参考:Animancer - Inverse Kinematics (kybernetik.com.au)
1.获得曲线
这样可以获取到一个动画片段的所有曲线信息。曲线信息的区分,主要靠两个参数,path和propertyName
我要获取的是path 为 ROOT ,propertyName 为 m_LocalPosition.x,m_LocalPosition.y和m_LocalPosition.z
首先先获得这三条曲线。获取后把曲线存下来就行了。
2.位置推演
动画若设定为30帧每秒,那么三秒的动画,一共是90帧。
然后,需要根据每帧的时间,传入到曲线进行Evaluate(time)获得数据。
代码略,参考上面链接代码。
网友评论