RTA! RTA! 時間を計測するのだ

この記事は約2分で読めます。

ボスを倒した時間を記録したいのだ。ステータスのアップグレード要素があるので、リーダーボード(他のプレイヤーと時間を競う)は導入しない予定だけれど、ちょっとしたやりこみ要素としてタイムアタックを入れたいのだ。

初めに考えたのはボスのTickを回して、時間を計測する方式。しかし、Tick処理を常に回すのはパフォーマンス上、よろしくなく、推奨されていない。低負荷な方法はないものか。

そこで役に立つ「Get Game Time in Seconds」。これは今の時間を取得し、一時停止した時は停止、スローモも反映されるスゴいかしこい関数なのだ。

そこで、開始時にGet Game Time in Secondsを取得して、float変数に保存する。ボスを倒したら現在のGet Game Time in Secondsを取得して、保存した変数で引く。

現在時間-開始時間=クリア時間が計測できるのだ。あとは各マップにクリア時間がない場合はクリア時間をそのまま記録。前にクリアした時間よりも今回の方が早かった場合は上書き保存。これでタイムアタックできるようになったのだ。

後はキー設定も作ったのだ。Unreal Engine 5からはキー設定はEnhanced Inputで設定するように推奨されており、4の時とは違うので注意。

キーマッピングの読み込み方や設定の仕方はさっぱりだったけど、やり方を載せてくれている動画があったのでそのまま真似したのだ。ありがたいのだ。

後はグラフィック設定を入れたらシステム回りはひとまず完了かな。新しいボスやマップも早く作らないとなのだ。

コメント

タイトルとURLをコピーしました