プレイヤーの動きに慣性を付けたい

ヘリコプターを使ったフライトゲームを作っているのですが、その機体の動きに慣性を付けたいです。現在AddActorLocalOffsetでプレイヤーを動かし、AddActorLocalRotationで回転させるようにしているのですが、方向転換するとすぐに向いた方向へ進んでしまいます。これを方向転換しても直前まで動いていた方向へ慣性で動くようにしたいです。
また、機体が傾いていると傾いている方向へ進んでしまいます。例えば機体が90°傾いている時に前進すると真下に行ってしまいます。機体の傾きに関わらず水平状態の時を基準に動かすにはどうすればよいでしょうか。