unity之动画文件的设置与Apply Root Motion

来源:互联网 发布:学编程需要什么电脑 编辑:程序博客网 时间:2024/06/06 09:35



                                             

      1:这是一个跑的动画,但因为其设置的原因,导致动画循环之后,发生了旋转。而这不是我想要的,那么解决办法是:

                                             

 勾选Bake Into Pose,即角色的身体基本上不进行旋转。比如跑和走的动画,身体是不发生较大旋转的。右边的灯是各个方位的匹配程度。


        2:具体的效果如下(我的这个动画是人物进行前空翻的动画):Root Transform Position(XZ)的Bake Into Pose没有勾选,表示人物前空翻时,主体GameObject会向前移动,如果勾选则GameObject在XZ平面则不会移动。同理,Root Transform Position(Y)勾选表示GameObject在Y轴不移动,如果不勾选,则跟随摄像机会产生抖动,因为目标GameObject在Y轴也出现了跳跃时移动。

        3:在animator中勾选Apply Root Motion这个选项,动画就会发生实际的位移,而不是原地踏步。但一个人物有不同的动画,需要与地面交互的方式也是不同的。可以通过对每一个动画进行不同的设置。Root Motion也是可以自定义的,使用回调函数:

             

 void OnAnimatorMove() {        Animator animator = GetComponent<Animator>();        if (animator) {            Vector3 newPosition = transform.position;            newPosition.z += animator.GetFloat("Runspeed") * Time.deltaTime;            transform.position = newPosition;        }    }
   加了此脚本后,animator面板变为:,打勾选项消失。

1 0
原创粉丝点击