ゲーム内の経過時間や現在日時を取得する[Verse]

以下の内容はフォートナイトv31.20に基づいてます。

目次

ゲーム内の経過時間を取得する

GetSimulationElapsedTime()を使用する

GetSimulationElapsedTime()の返り値でゲームが開始されてからの経過時間(秒)を取得できる。

1秒おきに取得した経過時間を表示させてみる。

    OnBegin<override>()<suspends>:void=
        loop:
            SimulationElapsedTime := GetSimulationElapsedTime()
            Print("SimulationElapsedTime : {SimulationElapsedTime}", ?Duration := 10.0)
            Sleep(1.0)

以下ゲーム中のログ。

今度はSleepを0.0に設定してループごとの経過時間を取得して加算する。

    OnBegin<override>()<suspends>:void=
        var PreviousTime:float = 0.0
        var TotalElapsedTime:float = 0.0

        loop:
            CurrentElapsedTime := GetSimulationElapsedTime()
            DeltaTime := CurrentElapsedTime - PreviousTime
            set PreviousTime = CurrentElapsedTime
            set TotalElapsedTime += DeltaTime

            Print("DeltaTime : {DeltaTime}", ?Duration := 10.0)
            Print("TotalElapsedTime : {TotalElapsedTime}", ?Duration := 10.0)

            Sleep(0.0)

DeltaTimeは毎回約0.033秒ということは30fpsで回っているということか。

最後のメッセージはおそらくメッセージの表示頻度が高いことに対するWarning。

現在日時を取得する

GetSecondsSinceEpoch()を使用する

V31.00のアップデートで追加されたメソッド、GetSecondsSinceEpoch()の返り値で1970年1月1日 00:00:00 UTC(協定世界時)からの経過秒数が取得できるのでこれを使用する。

1秒おきに取得した値を表示させてみる。

    OnBegin<override>()<suspends>:void=
        loop:
            SecondsSinceEpoch := GetSecondsSinceEpoch()
            Print("SecondsSinceEpoch : {SecondsSinceEpoch}", ?Duration := 10.0)
            Sleep(1.0)

以下ゲーム中のログ。

取得した数値「1726757385.192000」を変換すると、

日付:2024年9月19日、時刻:13:49:45(UTC)・22:49:45(JST)

となり、現在日時が取得できることが確認できた。

コメント

コメントする

目次