UE4 ファイルにセーブデータを保存する(Create Save Game Object、Save Game to Slot、Load Game from Slot)
セーブデータなどをファイルに保存する方法です。
UE4では「Save Game」というブループリントクラスを使って実装することになります。
・ゲームをブループリントで保存する
https://docs.unrealengine.com/latest/JPN/Gameplay/SaveGame/Blueprints/index.html
ここらへんを参考に。
まずはそのゲーム用の「Save Game」ブループリントクラスを作成します。

アセットに対してブループリントクラスを追加します。
すべてのクラスのなかから「Save Game」クラスを選択します。

ブループリントの名前は作成時に使いますが、
セーブデータのファイル名などにはあまり関係ないので何でもよさそうです。
とりあえず「TestSaveGame」という名前にしました。
上記のブループリントクラスを作成したら、保存したいデータをじゃんじゃん追加しましょう。

変数をいろいろと追加してみました。
次に、作成したデータを保存する方法です。
まずはさっきつくった「SaveGame」クラスを「Create Save Game Object」で作成します。

引数の「Save Game Class」にはさっき追加した「Save Game」ブループリントクラスを指定します。
そうすると、返り値で「Save Game」クラスが取得できるので、
それを独自の形式にキャストします。

「Cast To TestSaveGame」というノードですね。
「Cast To ブループリントクラス」という名前のノードでキャストします。
キャストを行ったらその中身をばりばり変更することができます。
そうしたら、この追加したセーブデータをファイルに保存します。

「Save Game to Slot」というノードを使って保存します。
「Slot Name」にはファイル名を指定します。
「User Index」は…ユーザー番号を指定します。
この二つの情報が異なると、違うデータとして認識されるようです。
そうするとこんな感じでセーブデータが作成されます。

ファイルは「\Saved\SaveGames」というフォルダに作成されるようです。
作成したデータを読み込むには「Load Game from Slot」ノードを使います。

「Slot Name」と「User Index」には、セーブしたときと同じものを指定します。
その後、作成時と同じように「Cast To ブループリントクラス」でキャストしてあげます。
こうすることでデータを読み出して使うことができます。
「Create Save Game Object」は「Game Instance」の「Event Init」で作るのがよさそうな感じですね。
ゲームの最初に作られるものだと思うので。
セーブの機構は割と素直なつくりになってるのでわかりやすくてよいですね。
エンジンの便利なところはこういうめんどくさいところをやってくれるところでしょうか。
UE4では「Save Game」というブループリントクラスを使って実装することになります。
・ゲームをブループリントで保存する
https://docs.unrealengine.com/latest/JPN/Gameplay/SaveGame/Blueprints/index.html
ここらへんを参考に。
まずはそのゲーム用の「Save Game」ブループリントクラスを作成します。

アセットに対してブループリントクラスを追加します。
すべてのクラスのなかから「Save Game」クラスを選択します。

ブループリントの名前は作成時に使いますが、
セーブデータのファイル名などにはあまり関係ないので何でもよさそうです。
とりあえず「TestSaveGame」という名前にしました。
上記のブループリントクラスを作成したら、保存したいデータをじゃんじゃん追加しましょう。

変数をいろいろと追加してみました。
次に、作成したデータを保存する方法です。
まずはさっきつくった「SaveGame」クラスを「Create Save Game Object」で作成します。

引数の「Save Game Class」にはさっき追加した「Save Game」ブループリントクラスを指定します。
そうすると、返り値で「Save Game」クラスが取得できるので、
それを独自の形式にキャストします。

「Cast To TestSaveGame」というノードですね。
「Cast To ブループリントクラス」という名前のノードでキャストします。
キャストを行ったらその中身をばりばり変更することができます。
そうしたら、この追加したセーブデータをファイルに保存します。

「Save Game to Slot」というノードを使って保存します。
「Slot Name」にはファイル名を指定します。
「User Index」は…ユーザー番号を指定します。
この二つの情報が異なると、違うデータとして認識されるようです。
そうするとこんな感じでセーブデータが作成されます。

ファイルは「\Saved\SaveGames」というフォルダに作成されるようです。
作成したデータを読み込むには「Load Game from Slot」ノードを使います。

「Slot Name」と「User Index」には、セーブしたときと同じものを指定します。
その後、作成時と同じように「Cast To ブループリントクラス」でキャストしてあげます。
こうすることでデータを読み出して使うことができます。
「Create Save Game Object」は「Game Instance」の「Event Init」で作るのがよさそうな感じですね。
ゲームの最初に作られるものだと思うので。
セーブの機構は割と素直なつくりになってるのでわかりやすくてよいですね。
エンジンの便利なところはこういうめんどくさいところをやってくれるところでしょうか。
| UE4 | 15:33 | comments:0 | trackbacks:0 | TOP↑