当在Unity中导入FBX文件时,有时在播放Legacy动画时会出现模型位置变动的情况。对于这种情况,有两种解决方式:
1)给模型添加一个父物体,设置相对位置为Vector3.Zero。
2)有时会不方便使用第一种方法,那样的话就只能通过修改模型动画的方式来解决了。以3DSmax为例,将fbx模型导入3DSmax之后,选中所有的物体,此时可以发现在第一帧有关键帧,删除这个关键帧,再导出为fbx文件,重新导入Unity后,发现播放Legacy动画时物体不再移位了。
出现这种情况的原因是Unity角色的制作规范是Collider和RigidBody会放在最高一级的骨骼上,一般是Hips的父级骨骼。这一层骨骼一定不能有任何的关键帧,否则会导致各种奇怪的问题,如角色瞬移、朝向发生偏转。
老动画系统的话有没有关键帧可以在Animation窗口里看,Mecanim动画系统的话只有在 Unity外部看了。
Max会自动为导入的fbx在最高层的第0帧添加一个关键帧,非常的坑。
而MB更坑,因为MB一般在Ctrl Rig上K帧,将其Bake到骨骼上的时候一定会Bake到最高层级……
遇到这种情况还是建议再导入一遍Max,将最高层的关键帧全部转移到Hips上就可以修复。
本文介绍了在Unity中导入FBX文件并播放Legacy动画时,可能会遇到的模型位置变动问题及两种解决方法:一是给模型添加父物体并设置相对位置;二是通过修改3DS Max中的模型动画,删除关键帧来解决。
292

被折叠的 条评论
为什么被折叠?



