UE4 でキャラクターを動かすのに Physics を使っているけど、AddForceAtLocation で重心を押すと下の動画みたいになぜかくるくる回ったり不安定になる。
なので代わりに AddImpulse で力積を直接加えることにしたら狙った通りの動きになった。しかもこの関数には Vel Change という便利なフラグがあって、これをチェックすると、力積の値そのものでなく速度の変化を与えるだけで必要な力積を与えてくれる。なので質量を取得して掛け算する必要がない。おそらくその方が、内部的に力積から速度の変化量を求める計算が省けて効率がいいんだろうな。
結果は下の動画のような感じ。