Hi,

我想要一些动画包括实际人物运动,以便动画师有更大的自由度来创造带有合适重量、动量和时间的攻击和特殊动作。同时,我仍然想要人物能够通过Unity的物理系统移动,以便能够检测并解决碰撞。

技术上来说,我的想法是将人物运动授权到根骨骼上作为根运动,然后从动画器中读取结果的运动意图并将其重定向到一个非刚性Rigidbody(动画定义人物想要移动的位置,但刚性Rigidbody负责通过物理系统应用该运动)。

我的当前设置是:

-人物有一个动画器更新模式设置为固定,并且有一个非刚性刚体

-附加在人物上的脚本实现了OnAnimatorMove如下:

void OnAnimatorMove()
{
   Animator animator = GetAnimator();
   Utils.Assert(animator != null);

   Rigidbody rb = GetRigidbody();
   Utils.Assert(rb != null);

   Vector3 velocity = animator.deltaPosition / Time.fixedDeltaTime;
   rb.linearVelocity = velocity;
}

这个技术方法是否正确实现了我的目标,还是有更好的Unity工作流程?

我还有一個关于Bake Into Pose在fbx检查器中的问题:它做什么,什么时候应该使用?