yamonメモ.cpp

ue4で勉強中 日々の進捗を簡単に残します。

MovementComponentを作り始めてみた

前回のあらすじ
接地判定を実装してみた - yamonメモ.cpp

地形判定を取れるようになったので、
本格的にキャラクターを速度ベースで動かしてみることにする。

追加したコンポーネントはActorComponent継承のMovementComponent。
速度や回転値等を計算して更新し続ける挙動を想定している。

直面した問題

何も考えずにアクターの正面方向に速度を与えてみると、
f:id:yamonkj:20191108040057g:plain
倒れてしまう…。(それよりGIF貼れたのか!!)

回転のロックで凌いでいたが、小回りが利かなくなりそうなので、
今のうちに法線から計算して回転値を入れる設計にしておく。
全てMovementComponent内で完結させるようにしてみる。

法線と進行方向とUpVectorをCrossProductに掛けてごにょごにょ…

f:id:yamonkj:20191108042604g:plain
できた!

これでMovementComponentで自由に動かしても、
とりあえずそれっぽく動作するようにはなったかな?

短いけど今日はここまで。
次はキャラ同士がぶつかりそうになったら自動で避ける仕組みを入れてみようかな。