fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

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」ブループリントクラスを作成します。
セーブデータ000
アセットに対してブループリントクラスを追加します。

すべてのクラスのなかから「Save Game」クラスを選択します。
セーブデータ001
ブループリントの名前は作成時に使いますが、
セーブデータのファイル名などにはあまり関係ないので何でもよさそうです。
とりあえず「TestSaveGame」という名前にしました。

上記のブループリントクラスを作成したら、保存したいデータをじゃんじゃん追加しましょう。
セーブデータ002
変数をいろいろと追加してみました。

次に、作成したデータを保存する方法です。
まずはさっきつくった「SaveGame」クラスを「Create Save Game Object」で作成します。
セーブデータ003
引数の「Save Game Class」にはさっき追加した「Save Game」ブループリントクラスを指定します。

そうすると、返り値で「Save Game」クラスが取得できるので、
それを独自の形式にキャストします。
セーブデータ003
「Cast To TestSaveGame」というノードですね。
「Cast To ブループリントクラス」という名前のノードでキャストします。

キャストを行ったらその中身をばりばり変更することができます。
そうしたら、この追加したセーブデータをファイルに保存します。
セーブデータ003
「Save Game to Slot」というノードを使って保存します。
「Slot Name」にはファイル名を指定します。
「User Index」は…ユーザー番号を指定します。
この二つの情報が異なると、違うデータとして認識されるようです。

そうするとこんな感じでセーブデータが作成されます。
セーブデータ005
ファイルは「\Saved\SaveGames」というフォルダに作成されるようです。

作成したデータを読み込むには「Load Game from Slot」ノードを使います。
セーブデータ004
「Slot Name」と「User Index」には、セーブしたときと同じものを指定します。
その後、作成時と同じように「Cast To ブループリントクラス」でキャストしてあげます。
こうすることでデータを読み出して使うことができます。

「Create Save Game Object」は「Game Instance」の「Event Init」で作るのがよさそうな感じですね。
ゲームの最初に作られるものだと思うので。

セーブの機構は割と素直なつくりになってるのでわかりやすくてよいですね。
エンジンの便利なところはこういうめんどくさいところをやってくれるところでしょうか。

| UE4 | 15:33 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/180-b6b36f9f

TRACKBACK

PREV | PAGE-SELECT | NEXT