首先,我们先测试一些数据,就拿模型的run动画举例,由于run改变的是xz方向,所以我们将目光锁定到这一栏
Bake into Pose与
两个bool,四个可能性,我们依次测试
1.Apply Root Motion=false&&Bake Into Pose=false 此时模型原地踏步
2.Apply Root Motion=false&&Bake Into Pose=true 此时模型将会跑出去然后回到原点
3.Apply Root Motion=true&&Bake Into Pose=true 此时模型依旧跑出去然后回到原点
4.Apply Root Motion=true&&Bake Into Pose=false 此时模型将会跑出去
此时我们再加一项,将我们模型的碰撞体加上,这里我选择的capsule Collider去实验,重新四个实验并观察碰撞体与模型锚点(transform)的变化。
实验结果发现,1,2,3的碰撞体与锚点均留在原地,而4的锚点和碰撞体将一同位移
对比结果我们可以发现,bakeIntoPose这一栏如果勾选上,其功能是将动画自带的位移矢量添加到动画上,并不改变模型本身的transform,没有勾选上时动画位移矢量会保存在动画中,但并不会显示出来。
而applyRootMotion是将动画自带的位移矢量给予给模型的锚点,带动整个物体的移动。
再看官方对动画变换的设定
Body transform与Root Transform
可以通过联想法记住两者的区别,apply root motion:应用到根才会带动锚点的移动,而body transform则为动画的变化
然后便是based upon按钮
1.
选中后将鼠标停留在上面会有两行小字,
分别代表保持原动画的旋转度和保持前半身向前。(由于没有找到合适的动画测试,所以是猜测)由于根的方向为上半身的方向与下半身方向的插值,这一项可能代表,假如动画旋转的时候是朝向根方向还是上半身方向,(建议会模型的大佬建一个上半身与下半身方向差90度的模型进行测试)
2.
三项解释分别是:保持源文件中撰写的垂直位置,保持质心与跟变换位置对齐,保持脚与根变换的对齐,尝试点击第二项发现模型直接“半身入土”,可能由于根位置在脚底的缘故,第一三项会发现第三项稍微降低一点,第三项更加贴近地面(大概?)
3.
与2类似,大概理解为质心xz位置是动画作者设定的位置还是与根位置对齐
---------------------------
有错误望指正,祝好