セーブ・ロードの方法!
お久しぶりです!
最近はPS4のDETROIT Become Humenにドハマりしてい為、ブログとUE4の事はすっかり頭からすっ飛んでいたが、ようやく頭と体がUE4に戻りたがってきた為、活動を再開する事にした。
DETROIT Become Humen、面白いですよ!(おすすめです!)(宣伝)
今回はタイトル通り、「ゲームのセーブ・ロード」の方法だ。
意外と簡単なので身構える必要はないと思う。
今回は、「自分のステータスと自分の位置をセーブ・ロード」するという形式で行く。
SaveGameの作成
SaveGameクラスのBPを作成。
SaveGameは、値の保存を行う事が出来る。金で言えば「ATM」のようなもの。
名前はご自由に。僕は「MySaveGame」と付けた。
「MySaveGame」を開き、2つの変数を用意。
SaveMoney・・・所持金をセーブする為の変数。
SaveLocation・・・キャラの位置をセーブする為の変数。
デフォルト値は不要。これでSaveGameの設定は以上だ。
キャラクターBP
変数を用意。
Money・・・所持金(ステータス)デフォルト値「100」Integer型の変数。
イベントグラフ
所持金の減算
「10」ずつ減らしていく。
セーブ処理
「CreatSaveGameObject」のSaveGameClassには先程作成した「MySaveGame」を指定。
GetActorLocationで現在の位置を、「SaveLocation」に保存。
現在の所持金「Money」を「SaveMoney」に保存。
「SaveGametoSlot」で、保存した情報に「名前を付けて保存する」処理を行っている(個人的解釈なので間違いの可能性あり)
SlotNameには任意の名前を入力。僕は「SaveSlot」と入れた。
UserIndexはよくわからん。
ちなみに、保存された内容は自分のPCのフォルダに保存される。
UnrealProjects→プロジェクト名(今回の場合は「TEST」という名前にしてある)→Saved→SaveGamesに保存されている。
先程SlotNameに入力した名前「SaveSlot」という名で保存されている。
ロード処理
「LoadGameFromSlot」で、保存した内容をロードする。
キャストが必要。「MySaveGame」をキャストする。
「MySaveGame」から保存した内容(SaveLocation・SaveMoney)を参照する。
SetActorLocationで前回セーブした位置に移動する。
前回セーブした所持金「SaveMoney」をMoneyに渡す。
これでプレイしてみよう!
まず、所持金を50まで減らして、好きな位置でセーブしてみよう!
スタートした位置からかなり離れた位置まで移動し、所持金を50まで減らしてセーブをした。
その後、セーブした位置から遠く離れた場所に移動し、ロードした結果しっかりと前回セーブした位置に移動した。
これで自分の位置がしっかりセーブされているのが分かった!
だが、肝心の所持金はどうだろう??
50まで減らしてセーブしたところで、ロードしてからまた減らそうとしてもそのまま40、30、20・・・と減っていくのは当然なのだから、果たして所持金までしっかりセーブされているのか分からないだろう。
簡単に確かめられる。
もう一度、ゲームをプレイしてみよう。
先程のセーブした情報が、PCのフォルダにずっと残っているので、いきなりロードが可能。
なので、前回セーブした位置からいきなりロードできる。
普通、プレイ開始して所持金を減らしたら、デフォルト値は「100」なので90、80、70・・・と10ずつ減っていく。
だが、ロードしてから減らしてみると、いきなり40、30、20・・・と減っている。
これで所持金もしっかりセーブされているのが分かった!
それではまた!^^ノシ