LoginSignup
1
3

More than 1 year has passed since last update.

[UE4] ラーニングコースのブロックベースのゲームにセーブ機能を追加する

Posted at

はじめに

UnrealEngineのラーニングコースのブロックベースのゲームの構築で作成したゲームに、セーブ機能を追加してみました。
セーブ機能はブループリント ランタイムの保存とロードの内容を参考に作成しました。

環境

Windows10
UnrealEngine 4.27.2

作り方

・UnrealEngineのラーニングコースのブロックベースのゲームの構築を一通り実施します。
・セーブする内容を定義する構造体S_SaveItemsを作成します。
構造体は、コンテンツブラウザ上で右クリック=>ブループリント=>構造体を選択して作成します。
変数は以下のようにClassとTransformを追加します。ClassにはBP BaseBlockクラスを型として、TransformはTransformを型として指定します。
image.png
・SaveGameオブジェクトのSG_SpawnedBlocksを作成します。
SaveGameオブジェクトは、コンテンツブラウザ上で右クリック=>ブループリントクラスを選択し、親クラスにSaveGameを指定して作成します。
変数は以下のようにSpawnedBlocksとSlotNameを追加します。SpawnedBlocksには先ほど作成した構造体S_SaveItemsの配列を型として、SlotNameにはStringを型として指定します。
image.png
・セーブ機能のインターフェースとしてBPI_SpawnBlocksを作成します。
インターフェースは、コンテンツブラウザ上で右クリック=>ブループリント=>ブループリントインターフェースを選択して作成します。
関数SpawnBlock, RemoveBlock, SaveBlocks, LoadBlocks, ClearBlocksを追加します。SpawnBlockとRemoveBlockは以下のようにインプットを指定します。
image.png
・ゲームモードGM_BlockGameを修正し、セーブ機能を追加します。
クラス設定から実装インターフェースにBPI_SpawnBlocksを追加します。
image.png
変数CreatedBlocksList, SaveBlocksListを追加します。
image.png
以下のようにイベントグラフにSpawnBlockの実装を追加します。
CreatedBlocksListにSpawnしたブロックを追加しています。
image.png
以下のようにイベントグラフにRemoveBlockの実装を追加します。
CreatedBlocksListからブロックを削除しています。
image.png
以下のようにイベントグラフにSaveBlocksの実装を追加します。
CreatedBlocksListに保存されたブロックをSaveGameオブジェクトを使用してセーブしています。
image.png
以下のようにイベントグラフにLoadBlocksの実装を追加します。
SaveGameオブジェクトからロードしたブロックをCreatedBlocksListに追加し、Spawnします。
image.png
LoadBlocksの前半拡大
image.png
LoadBlocksの後半拡大
image.png
以下のようにイベントグラフにClearBlocksの実装を追加します。
セーブされていた内容を削除しています。
image.png
以下のようにイベントグラフに起動時にLoadBlocksを実行する処理を追加します。
image.png

・BP_BlockPlayerを修正し、セーブ機能を使うように修正します。
BP_BlockPlayerのイベントグラフでブロックをSpawnしている箇所(インプットアクションPlaceBlockから始まる処理)に追加します(以下赤枠の箇所)。
image.png
追加箇所拡大
image.png
イベントグラフでブロックを削除している箇所(インプットアクションRemoveBlockから始まる処理)に追加します(以下赤枠の箇所)。
image.png
追加箇所拡大
image.png
イベントグラフにキー入力を追加します。
キー7を押したときにセーブを実行、キー8を押したときにセーブデータをクリアします。
image.png

参考資料

ゲームを保存して読み込む
SaveGameオブジェクトの公式ドキュメントです。

1
3
0

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
1
3