0
0

経過時間を利用した処理

Posted at

目的

ボタンを押している間徐々に歩行速度を加速する処理を実装したかった。
経過時間の計算は頻出するので自分用にまとめておきたい。
Sprintの実装を解説するわけではないので注意。

環境

UnrealEngine 5.3.2

方法

今回はFloatCurveを併用して実装する。
また、SprintイベントとTickを使用し、SprintイベントではSprint状態かの管理のみ、歩行速度の変化はTickで実装する。
BP写真
Sprintイベント
image.png
Tickイベント
image.png

  1. イベント開始時に(今回ならSprintイベント)ゲーム開始時からの時間を保存
    image.png
  2. 経過時間は次のように実装(Tickイベント内のCalcElapsedTimeノード内の内容)
    image.png
  • GetGameTimeinSeconds - SprintStartTime : イベント開始時からの経過時間A
  • A * GetWorldDeltaSeconds : フレーム毎に実行されるので経過時間をフレーム単位に変更B
  • ElapsedTime + B : イベントが開始されてからの経過時間をフレーム単位で保存している
  • 最後にカーブ内で設定した最大時間を越させたくないのでMINで制御

3.取得できたElapsedTimeでカーブの値を取得する
カーブ例
image.png
4. Sprint終了時にはElapsedTimeを0にリセットしておく

参考

UnrealEngine5で極めるゲーム開発
https://amzn.asia/d/08zc6uND

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0