LoginSignup
0

More than 1 year has passed since last update.

[UE] 1Tickのデルタタイムを制限する(​Max Undilated Frame Time)

Last updated at Posted at 2022-06-03

リアルタイムアプリケーションは1秒間に数十~数百の"Tick"を繰り返してなめらかなレンダリングを行っています。
プレイ間隔が良くなるためこのTickの間隔(=デルタタイム)は可能な限り一定になることが望ましいのですが、負荷の変動などによって目的のデルタタイム内に収めることができなくなることがあり、アプリケーションの更新処理にその時間に合ったデルタタイムが渡されて進行速度の帳尻を合わせます。
大半の動作はデルタタイムが変動しても大きな問題なく動作しますが、一部の処理、例えば物理シミュレーションやコリジョン、オーバーラップの判定などはデルタタイムによって望ましい挙動が得られなくなることがあります。

特定の操作でわざとこの状況を作り出して悪用したり、アプリケーション外の負荷によってプロセッサのリソースが奪われてパフォーマンスが低下し結果としてイベント未発などの進行に影響を与えるバグが発生する可能性もあり、アプリケーション側で対策が必要になることがあります。

​Max Undilated Frame Time

アンリアルエンジンは"​Max Undilated Frame Time"としてアプリケーションが正しく動作するために最大で許容できるデルタタイムの上限値の設定がWorldSettingsの中にあります。
デフォルトの設定値は0.4秒(つまり2.5fps)となっています。

例えば15fpsまでならば動作に支障がないのであればこの値を1/15秒 (0.666秒)に設定します。

以下動作例です。
120fps出る状態で​Max Undilated Frame Timeを240fps相当に設定しているので、進行速度が半分になっていることがわかります。

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