セーブとロードの処理について解説しました。
人によっては見慣れないBPも多く使われていると思いますが、図と動画を使って丁寧に分かりやすく解説しています。
この記事だけで理解できます。
概要
はじめてセーブの処理を作る人にとっては見慣れないBPを複数使用していると思います。そこで図と動画を用いて丁寧に概要を説明します。
下準備
概要で説明したことを、実際につくりながら説明していきます。
Structureの作成
コンテンツブラウザ内で右クリック。Blueprints>Structureの順に選択して名前をつけます。
今回は名前を[PlayerData]として、4つの変数を設定しました。(Location,EXP,Money,HP)
その後デフォルトの値を入力します。Locationの値は、キャラクターの場所を調べて記入すると良いでしょう。
Save Gameの作成
コンテンツブラウザ内で右クリック。Blueprint Class>All Classesの順に選び、下の検索ボックスを使って[Save Game]を選択。
今回は[Save Game Object]と名前をつけました。
Game Instance
GameInstanceは、ゲームを始めてから終わるまで、ずっと一緒にいてくれるものです。
レベルやゲームモードを変えても一緒にいてくれるので、ここに処理を作るのが良いと思います。
作成と設定
コンテンツブラウザ内で右クリック。Blueprint Class>All Classesの順に選び、下の検索ボックスで検索し[Game Instance]を選択。名前は[My GameInstance]としました。
その後、忘れずにプロジェクトセッティングで設定してください。
ゲーム開始時の処理
GameInstance内にSaveGameを作成する処理を書きます。はじめに、セーブされたデータの有無をチェックしています。データがなかった場合のみ、セーブゲームを作ります。
セーブの関数
プレイヤーデータをセーブする関数を作りました。セーブゲームにデータをセットした後に、セーブをします。入力したスロット名のついたファイルを作ります。
ロードの関数
セーブされたプレイヤーデータをロードする関数を作りました。ファイルとして保存されているデータを用いて、セーブゲームのデータを復元します。その後、そこに含まれているプレイヤーデータを取り出してアウトプットします。
セーブとロード
Third Person Character のBPに処理を追記していきます。Loadの部分だけ少し複雑に見えますが、Event Begin PlayにCast以降の処理を同じように作ってもらえたら大丈夫です。
僕はこのキャラクターのBPを、プレイヤーとしても敵としても流用しているので、処理が初期状態より少しだけ複雑になっています。
同じようなものを作りたい方は、以前の記事に作り方を全てまとめてあるのでご覧ください。
Structureへの置き換え
今まで作ってきた処理を構造体(Structure)に置き換えました。少し煩雑になったので、関数を新しく作り整理しました。
これまで作ってきた処理については、以前の記事で説明してあるので、よろしければご覧ください。
関数の作成
Structure(構造体)を使うことで処理が煩雑になってしまいました。そこで関数を使うことで少しスッキリさせました。
置き換え
今まで作ってきた処理を、作った関数をつかって書き換えています。
👇ダメージを受ける処理
👇死ぬ処理(報酬を渡すところを少しだけ変更)
👇敵を倒した後、報酬を受け取る処理(処理が短くなったので、デバッグとくっつけました)
👇歩く速さを変えるデバック用の処理
Twitterしてます
ブログの更新をお知らせ
コメント