对于一些动作模型,美工大大在制作时就已经添加好了动作的位移量,Unity3D的Mecanim动画系统可以直接复用3DS MAX中制作的动画文件中的位移。对于humanoid类型的动画,通过勾选animator上的ApplyRootMotion便可以使用动画中的位移。但是对于Generic动画类型,仅仅勾选ApplyRootMotion是不够的,我做一个简单的演示。
对于一组攻击动画每次攻击会向前走一段距离,勾选了ApplyRootMotion时,在动画播放完毕时,仍然会回到原来的位置。
很显然动画的位移量并没有添加到我们的transform上。这时开我们的动画,看到Rig下的Root node是为None的。
选中模型的骨骼,设置到Root node上,点击Apply。
这时回到我们的游戏画面,再次运行游戏。
叮咚!这次动画播放完毕后也不会回退到原来的位置啦!