Unityのアニメーションはリアルタイムに合わせて再生される仕様ですが、
これだとfpsが落ちているときにコマが飛ばされて再生されてしまいます。

コマ落ちを避けるために、再生速度を0にして毎フレームAnimator.Update(1/fps)でアニメーションを進めようとしましたが、この方法だと処理速度が大幅に落ちてしまいました。

Animator.Playで毎フレーム再生位置を動かす方法も試してみたのですが、こちらだとAnimationEventが正常に動かず、Animatorの遷移もできません。

コマ落ちを避け、AnimationEventも正常に動かすいい方法は何かないでしょうか?