Unity ARPG战斗系统 _ RootMotion相关知识点
1.作用 : 避免动画播放与实际位移产生偏差,从而避免"滑步"现象。
2.基本原理 : Root Motion通过相对位移和转角来移动游戏角色,而不是像动画文件会直接修改每一帧里对象的坐标值和角度值。
3.OnAnimation( ) : 是将Root Motion控制权交给开发者,通过脚本来控制(关于位移相关控制)。
private void OnAnimationMove(){//可以通过这行代码实现勾选Root Motion相同的效果transfrom.position += animator.deltaPosition;
}
4.Generic中的Root Motion
在通用骨骼中的Root Motion指的是把动画中的根节点上的绝对坐标和绝对位置转化为游戏对象的相对位移与相对转角。
注:在设置时选择Generic(通用),并且Root Node选择模型自带的根节点即可。
5.Root Motion的旋转与位移
注: 1.旋转特指在y轴的旋转
2.Bake IntoPose表示是否需要动画驱动游戏对象(使用根动画),如果需要就不勾选。
3.loop match表示是否可以启用Bake In Pose ,一般绿色代表可以勾选,红色相反。
4.Offest表示旋转与位移的偏移量,可以用来修正动画带来的实际移动偏差。
5.Based Upon一般选择Original(美术制作时设置的原点)即可。
6.Humanoid中的Root Motion
人形骨骼通过计算一个模型重心(Body Transfrom),然后再计算出投影地面的根位置(Root Transfrom),然后根据根位置上的绝对坐标和绝对位置转化为游戏对象的相对位移与相对转角。
注 : 1.一般Y的Position的Based Upon可以使用Feet,其余依旧Original。
2.Avatar是Unity提供的一套替身系统,用来实现动作复用,通过固定肌肉来代替变化的骨骼,
因此使用Avatar的人形动画都没有具体的骨骼信息。