Unity3d导入动画一帧切问题
发表于2018-06-20
有时候maya里面看起来正常的动画导入到unity3d里看其就有些问题,比如有些地方用一帧切过去,u3d里看起来里面就好像还有很多帧,看起来更平滑,就好象u3d自己插值了。
其实unity并没有插值,而是maya导出fbx的时候动画上没有把帧改成step tangents模式
红色的轴中间就是step tangents,是改过以后,这个导入到u3d里就是正常的一帧切;而绿色的就是默认的,但是因为maya里预览默认是一帧帧预览的,所以看不出中间的插值。
但是unity是一般是超过动画k的帧率运行的,所以就能看到中间的插值帧了(interpolation),这些可以在u3d的ctrl+6调出的animation curve模式下看出。
以前是这样的,可以看到平滑过maya里自动插值的帧
调整后是如下显示,每帧都单独烘焙(就是maya里面框选所有帧 调整到step tangents)
就是正常的,当然legacy和generic模式一样,重点还是maya里导出前作的处理。
另外注意fbx导入unity后帧就不能调整了,如果是unity里面k的帧,可以选中帧右击选constant来取消平滑插值如下图。
还能选flat保证在帧起始位置上是平的
如果再有问题,比如导出软件设置之类还能产生插值问题,可以试试改成generic模式
把resample curves去掉看看,因为unity默认是重新采样的(注意legacy没有这个功能)
具体可以看官方解释:https://forum.unity3d.com/threads/unity-animation-interpolation.454048/
当然还有的时候导入到u3d里面的帧还是有异常,一般大量帧的时候或者旋转有跳跃,u3d还是会一如既往的插帧,这个貌似还没法解决,除非一段段动画单独导入,但这个工作量大,还有就是貌似可以烘焙到顶点上,这样好像就没有插帧了。
但是一般这些都看不出来,除非是用到摄像机上的动画,在unity里面k也是一个方法,可以避免掉插值帧,如果是输出的输出后手动删帧吧。
来自:https://blog.csdn.net/shenmifangke/article/details/77477502