【UE4】セーブ&ロード【基本】

セーブとロードの処理について解説しました。
人によっては見慣れないBPも多く使われていると思いますが、図と動画を使って丁寧に分かりやすく解説しています。
この記事だけで理解できます。

概要

はじめてセーブの処理を作る人にとっては見慣れないBPを複数使用していると思います。そこで図と動画を用いて丁寧に概要を説明します

Game 37 1

下準備

概要で説明したことを、実際につくりながら説明していきます。

Structureの作成

コンテンツブラウザ内で右クリック。Blueprints>Structureの順に選択して名前をつけます。
今回は名前を[PlayerData]として、4つの変数を設定しました。(Location,EXP,Money,HP)
その後デフォルトの値を入力します。Locationの値は、キャラクターの場所を調べて記入すると良いでしょう。

PlayerDataのStructure
Game 37 2

Save Gameの作成

コンテンツブラウザ内で右クリック。Blueprint Class>All Classesの順に選び、下の検索ボックスを使って[Save Game]を選択。
今回は[Save Game Object]と名前をつけました。

Save Game
Game 37 3

Game Instance

GameInstanceは、ゲームを始めてから終わるまで、ずっと一緒にいてくれるものです。
レベルやゲームモードを変えても一緒にいてくれるので、ここに処理を作るのが良いと思います。

作成と設定

コンテンツブラウザ内で右クリック。Blueprint Class>All Classesの順に選び、下の検索ボックスで検索し[Game Instance]を選択。名前は[My GameInstance]としました。
その後、忘れずにプロジェクトセッティングで設定してください

ゲーム開始時の処理

GameInstance内にSaveGameを作成する処理を書きます。はじめに、セーブされたデータの有無をチェックしています。データがなかった場合のみ、セーブゲームを作ります。

Game 37 4

セーブの関数

プレイヤーデータをセーブする関数を作りました。セーブゲームにデータをセットした後に、セーブをします。入力したスロット名のついたファイルを作ります。

Game 37 5

ロードの関数

セーブされたプレイヤーデータをロードする関数を作りました。ファイルとして保存されているデータを用いて、セーブゲームのデータを復元します。その後、そこに含まれているプレイヤーデータを取り出してアウトプットします。

Game 37 6

セーブとロード

Third Person Character のBPに処理を追記していきます。Loadの部分だけ少し複雑に見えますが、Event Begin PlayにCast以降の処理を同じように作ってもらえたら大丈夫です。
僕はこのキャラクターのBPを、プレイヤーとしても敵としても流用しているので、処理が初期状態より少しだけ複雑になっています。
同じようなものを作りたい方は、以前の記事に作り方を全てまとめてあるのでご覧ください。

セーブの処理
ロードの処理
データ消去の処理
Game 37 7

Structureへの置き換え

今まで作ってきた処理を構造体(Structure)に置き換えました。少し煩雑になったので、関数を新しく作り整理しました
これまで作ってきた処理については、以前の記事で説明してあるので、よろしければご覧ください。

関数の作成

Structure(構造体)を使うことで処理が煩雑になってしまいました。そこで関数を使うことで少しスッキリさせました。

ダメージを受ける処理の一部分。
関数を使用
ダメージを受ける処理の全て。
Game 37 8
作った関数

リファレンス渡しを使用して、Getしてきた数値を書き換えています。
👇数を足して代入する関数

👇数を引いて代入する関数

置き換え

今まで作ってきた処理を、作った関数をつかって書き換えています。

👇ダメージを受ける処理

👇死ぬ処理(報酬を渡すところを少しだけ変更)

👇敵を倒した後、報酬を受け取る処理(処理が短くなったので、デバッグとくっつけました)

👇歩く速さを変えるデバック用の処理

Twitterしてます

ブログの更新をお知らせ

コメント

タイトルとURLをコピーしました