目的
ボタンを押している間徐々に歩行速度を加速する処理を実装したかった。
経過時間の計算は頻出するので自分用にまとめておきたい。
Sprintの実装を解説するわけではないので注意。
環境
UnrealEngine 5.3.2
方法
今回はFloatCurveを併用して実装する。
また、SprintイベントとTickを使用し、SprintイベントではSprint状態かの管理のみ、歩行速度の変化はTickで実装する。
BP写真
Sprintイベント
Tickイベント
- GetGameTimeinSeconds - SprintStartTime : イベント開始時からの経過時間A
- A * GetWorldDeltaSeconds : フレーム毎に実行されるので経過時間をフレーム単位に変更B
- ElapsedTime + B : イベントが開始されてからの経過時間をフレーム単位で保存している
- 最後にカーブ内で設定した最大時間を越させたくないのでMINで制御
3.取得できたElapsedTimeでカーブの値を取得する
カーブ例
4. Sprint終了時にはElapsedTimeを0にリセットしておく
参考
UnrealEngine5で極めるゲーム開発
https://amzn.asia/d/08zc6uND