BLOGブログ

2022.02.23UE4UE/ C++UE/ BlueprintUE/ UMGTech Research

[UE4] Action RPG の Loading Screen を自分のプロジェクトで動かしてみる

執筆バージョン: Unreal Engine 4.27

皆さんこんにちは。エンジニアの森です。

今回は、Epic から公開されている「Action RPG」の Loading Screen を見てみます。

UE エディタ上でゲームを Standalone 実行すると、こちらの画面を確認できます

Action RPG Sample

この Loading Screen を使うと、ゲームスレッドの読み込み処理と別スレッドでロード画面が動くため、カクつかないロード画面が作れます。


実装を確認

まずは Epic Game Launcher を使って Action RPG を入手し、ソースコードを見ていきます。

Laerning Games タブにあります

Free を押してダウンロード

こちらの実装の中身は Action RPG Loading Screen モジュールにありました。

構成はいたってシンプルで、以下の3つのファイルがあるだけです。

  • ActionRPGLoadingScreen.Build.cs
  • ActionRPGLoadingScreen.h
  • ActionRPGLoadingScreen.cpp

ActionRPGLoadingScreen.cpp 内の FActionRPGLoadingScreenModule の実装を掲載します。

こちらに注目すると、CreateScreen() や StartInGameLoadingScreen() の中で
GetMoviePlayer()->SetupLoadingScreen() を呼んでいるようです。
表示する画像は StartupModule() 内で T_ActionRPG_TransparentLogo を読み込んでいます。
Slate が混ざっている点を除けば、実装もとてもシンプルと言えそうです。


使う

これを、自分のプロジェクトにコピペするだけでも、もちろん使えます。
ただ、ソースコード内で Slate を使っているため、ロード画面の UI をデザインできる方が限られてしまいます。
なので今回は、Slate ではなく任意のウィジェットでこれを使えるようにします。

まず、build.cs に UMG モジュールを追加後、以下のソースコードを追加します。

そして、Action RPG にならってランタイムモジュールの方に Blueprint function library クラスを作成します。

最後にウィジェットを作成します。
ウィジェットは Game Instance で管理しています。

試してみましょう。

ロード画面が出ていますね。


今回は、Loading Screen を見ていきました。
ありがとうございました。


こちらからダウンロード