PaperSloth’s diary

主にゲーム開発関連についての記事を書きます。

UE5 1フレーム後に処理を実行する方法(Delay Until Next Tick)について

目次

環境

Unreal Engine 5.1.1

Delay Until Next Tickについて

Delay Until Next Tickを語る前に…UE4ではどうやってたの?っていうところ
papersloth.hatenablog.com

UE4のときはDelay Nodeを配置して
Durationに0を設定することで1フレーム処理を遅らせることが出来ていました。

もちろん、この手法はUE5でも同様に動作します。


続いて、UE5から実装されたDelay Until Next Tickノードについて。
こちらのノードは1 Frame動作を遅らせるという Delay Nodeと異なり
1 Tick 遅らせるというTooltipが記載されています。

処理的には同じ結果になるかとは思います(要検証ですが)

個人開発の場合や小規模開発の場合にはDelay (Duration 0.0)でも
Delay Until Next Tickでも良いかと思います。

ですが、ある程度の規模の開発においてはDelay Until Next Tickを使った方が良いのではないかと思います。
理由としては最適化を行いたい際に、チームメンバーが組んだBlueprintを見て
Delayで数秒遅らせたい処理なのか、次のフレームに処理を逃したいのかを検索したい時なんかに役立つケースがあると思われるからです。


この次のTickに処理を逃したい場合ってどういう時があるの?

というのは、以下の例ではあまり正しくないのですが
何かしらのActorを初期化したい場合に
既存のActor(ここではとりあえずPlayerControllerとしています)が存在すれば何かしらの処理を行うという場合等に使えるかと思います。
Actorの初期化 / 生成順が確実に保証されていないというケースで役立つと思います。

例えば、Characterの生成ロジックと武器の生成ロジックを別Actorで管理している場合に
Characterを初期化 -> 武器のInstanceがあれば初期化といったケース等がありそうですね。