UE4 DateTimeからの取得いろいろ(Date Time、Time Span、Get Day Of Year、Get Hour12、Get Time Of Day)
Date Time についてはこちらを。
・Date Time
https://docs.unrealengine.com/latest/INT/BlueprintAPI/Math/DateTime/index.html
その日がその年から何日経過した日なのか取得する。
「Get Day Of Year」ノードを使うことで取得することができます。

上記のようにるしたものを表示するとこんな感じで表示されます。

2017/05/17は2017/01/01から137日目ということですね!
時間を12時間周期の値で取得する。
「Get Hour12」ノードを使うことで取得することができます。

上記のようにるしたものを表示するとこんな感じで表示されます。

18時なので12時間周期だと6時なので6と表示されます。
ここらへんは時計とかの表示する値を作るときに便利かもしれませんね。
その日の夜中から経過した時間を取得する。
「Get Time Of Day」ノードを使うことで取得することができます。

このノードだけ少し特殊で「Time Span」構造体を返します。
「Date Time」は日時を表すことに使い、「Time Span」は時間を表すことに使うようです。
経過時間であったりですね。
「Time Span」構造体についてはこちらを。
・Time Span
https://docs.unrealengine.com/latest/INT/BlueprintAPI/Math/Timespan/index.html
ちなみに「Date Time」や「Time Span」はこういう特性があるようです。
・UE4小ネタ : 制限時間の実装方法を色々と
http://pafuhana1213.hatenablog.com/entry/2015/11/21/014427
スローモーションや早送りを実装する際、
「Set Global Time Dilation」ノード、「Set Custom Time Dilation」ノード、
または、「slomo」コマンドによる処理速度の変化を使用すると思います。
実は、これらを使用すると、
先ほどまで紹介してきた計測手法の一部では
処理速度の変化の影響を受けてしまい、正確な時間を測れなくなります。
具体的には、こんな感じ
影響を受ける
Delta Sceonds
Delay
影響を受けない
Set Timer
TimespanとDatetime
じゃあ【Set Timer】と【Timespan、Datetime】だけ使えばいいのか、
というと、そうではない時もあります。
例えば、「スローモーション中は残り時間の減り方もスローに」
という演出をしたい場合は、影響を受けない手法だと色々と面倒です。
つまり、用途に応じて使い分ける必要があるということです。
いろいろ特性がありそうですね。
| UE4 | 11:55 | comments:0 | trackbacks:0 | TOP↑