こんにちは
以前、アクションゲームで使える時戻しスキルを作成しました。

[UE5]スプラインに沿って時を戻したい!
─ところでUnrealEngineでは、プロジェクト作成時にファーストパーソンプリセットを選択可能です。
銃を撃つ機能や銃を撃つ敵キャラクターなど、シューターゲームの基本的な内容をはじめから扱うことができます。

執筆者も遊んでいましたが、時を戻すだけでは攻撃してくる敵に何もできずにやられてしまいました。
対戦ありがとうございました。

なので今回は、時を戻すとは逆
時をゆっくりにするスキルを実装して全ての弾を避けます。
──────────────────────────────────────────────
〇1分で作れる!時を止めるスキル
Unreal Engine 5で時間を操る表現はお手軽に実装可能です。
Global Time Dilationの値を変えるだけで世界全体をゆっくり動かすことができます。

とりあえず、プレイヤーキャラクターのBPに上の画像の機能を仕込みます。
アクションボタン(今回はEキー)に直接繋げて、Time Dilationを0.1にしてみます。

Eキー押下中に敵キャラクターの撃つ銃の弾がゆっくりになりました。
しかし、これだけでは自分の動きも遅くなるため、結局弾を避けられなくて負けます。
そこで、今度はCustom Time Dilationノードを使用して、プレイヤーキャラクターの時間だけ元の状態に戻します。
Global Time Dilationの値を変数化し、1/Global Time Dilationの値をCustom Time Dilationに設定します。

〇完成
意外と簡単にできました

〇おまけ
カッコよくしたいので、時止め演出を作ります。
自分を中心に世界の色がグワ~~~~と変わっていくイメージのものをパパっと作ります。
まず、ポストプロセス関連で必要なアセットを作ります

つぎに、マテリアルを開いてDetailsからMaterial>Material Domain>Post Pricessを設定します。

画像のようにノードを繋ぎ、キャラクターのBPから半径を変化させます。

レベル上にPostProcessVolumeを配置して、作成したマテリアルを設定します。
Infinite Extentにチェックを入れて、レベル上のどの位置でも適用されるようにします。

時間をゆっくりにする機能を改造して、タイムラインに沿ってポストの半径が広がるようにします。
ついでに時間がゆっくりになるとき、少しだけラープがかかってなめらかに変化するよう調整します。

〇本当の完成
対戦ありがとうございました。
