RootMotion和InPlace动画差异
# RootMotion和InPlace动画差异
本文的RootMotion根运动动画和Inplace 原地运动动画 有两层含义.
- ** 动画方案上RootMotion指动画控制角色,动画驱动角色移动,Inplace 是角色程序控制角色移动,动画只是配合表现。**
- ** 资源方案上RootMotion资源根骨骼可以有更多位移动画细节,Root根动画会控制角色移动,Inplace 资源是去掉自身位移的原地动画资源,虽然也有Root根骨骼动画,但只是用生成 距离或者旋转曲线,在游戏中并不去控制角色移动。**
所以不管 终资源是 RootMotion 还是 InPlace,在FBX文件上看着都会有根骨骼动画,动画师在导出前都要处理根骨骼动画,只是两种资源处理要求不一样,相对而言的后者处理更复杂。
常见项目中的 技能动画 是 RootMotion 资源,基础移动全部都是 InPlace 资源。相关的技术细节较多,详细解析可看**[UE4/UE5] distance matching - 知乎 (opens new window)
下文的Bip001 质心 是指 角色骨架中盆骨位置 记录 角色移动和转身的动画的骨骼。
根骨骼Root 是指 骨架上记录角色大范围移动和旋转动画的 RootMotion 骨骼。
小范围移动和旋转:如角色站立时,质心重心 在两条腿之间互相转移的位移和旋转,人在跑步机上的跑步循环没有根骨骼位移,因为没有大范围移动。
大范围移动和旋转:指角色跑出去2米远的距离,或者是角色转身180度的旋转,动捕原始资源没有根骨骼动画,都是后期动画师复制或者转移质心动画处理而成的。
# 根骨骼动画处理差异
- RootMotion 根运动资源可以无脑将 Bip001 质心动画复制给 Root根骨骼,不轮动画在root根骨骼还是在 Bip001 质心骨骼上,最终在游戏可以保留全部细节。
- InPlace 原地运动资源需要选择性的转移部分Bip001质心动画给 Root根骨骼,然后在游戏中去掉根骨骼动画,如果保留过多的质心骨骼的位移旋转动画,可能会让角色模型出胶囊体。
- RootMotion 根运动资源可以保留全部动画细节。
- InPlace 原地运动资源需要去掉运动大趋势,只保留部分细节动画。
以下 是 一个跑停动画资源,蓝色曲线的简单自动处理的结果,橙色是手动处理的结果 。
图 2024.11.15_9_Run_Stop_001_Biped_Take17@run_f_stop7
# 动画状态衔接处理差异
这里用走路接走停的案例来说明,跑停,跑步转向都是一样的情况。
如下图的 RootMotion 的走停情况,因为有RootMotion 所以走停动画可以直接让 角色移动一段距离后再停止,理论上如果能接受走两步再停,一条资源就能解决走停。
但是如果是 InPlace方案 ,每进入走停状态时,停止距离已经固定,无法让角色继续走一步,所以当在走停动画中使用距离匹配时,只能从固定的位置开始播放走停动画。
如果走停动画要匹配走路循环的 4 种脚步情况,就需要出 4 份相同停止距离但是每次停的腿不一样的资源。
# 对动画资源的移动轨迹要求差异
当使用 InPlace动画方案时,角色右转启动,只是非常机械的转向然后 朝前进方向单轴 加速 移动,而RootMotion 方案可以完全由动画资源决定 启动路径,可以先往面部朝向移动一步,然后再转向。
所以当动捕出来的资源位移有两个轴向的移动时,在制作 InPlace动画时,就要去掉非前进轴向的位移(可少量保留在 Bip001质心上)
在动画制作流程上,动捕来的资源,如果最终目标是InPlace资源,那么就需要比RootMotion资源更多的修改,甚至在动捕时就应该对演员的移动做出相应的要求,避免后续修整过大,当然最终动画效果也肯定没有RootMotion 资源好。