パッケージ化したものをプレイした回数をカウントして表示したいのですが可能でしょうか?
カウントの数は表示できなくても良いですが、プレイした回数を確認できるようなことは可能でしょうか?
Save Gameオブジェクトを使ってみるのはどうでしょう?
起動時にLoadGameFromSlotでセーブデータを読み込み、プレイの度にプレイ回数に1を加算してSave Gameオブジェクトに結果を格納し、SaveGameToSlotでセーブする。といった手順で出来そうな気がします。
返信いただきまして有難うございます。
SaveGameオブジェクトを使うと可能ということでしたので、
よく解らないながらも作成してみました。
起動時にというのはどのような状態のことを指していますか?
パッケージ化したexeファイルをダブルクリックしてということですか?
現状はテストの意味で、Startレベルと、Playレベルを作成しています。
保存はスタート画面のStartボタンを押したらという状態になっているかと思います。
保存するときはStartボタンを押すとPlayレベルで保存しましたと表示され保存はされているようです。
どこに保存されているかわかりませんが・・・・
保存データの読み込みですがStartを押したらPlayCountという変数に1を足すというようにしてみましたが、どこにも表示されず確認ができません。
リンクを貼っていただいていたものを拝見しましたが、
やろうとすることは何となく分りましたが、それをいざ作成しようとすると、正直よく解りませんでした。
うまくSaveされていないのは Save Game To Slot ノードでSlot Nameが何も指定されていないのが原因です。Save Game To Slotノードの返り値にBooleanがありますので、ブランチノードに渡すとFALSEピンに実行パルスが流れるのがわかります。これはセーブの失敗を意味します。
Load Game from Slotも同様の理由で失敗しています。
うまくセーブが実行できるとドキュメントにも書かれていますが「Savedフォルダの中にあるSaved Gamesフォルダ」にセーブファイルが作成されているはずです。
1つ気になった点として、現在ウィジェットでStartボタンを押すとCreate Save Game Objectノードを呼び出していますが、この状態だとStartボタンを押す度にPlay Countがリセットされます。
起動時にというのはどのような状態のことを指していますか? パッケージ化したexeファイルをダブルクリックしてということですか?
exeファイルをダブルクリックした時点、エディタで再生ボタンを押した時点の2つです。
どこに保存されているかわかりませんが
「Savedフォルダ」の中の「SaveGamesフォルダ」に格納されます。
返信いただきまして有難うございます。
Save Game To Slot ノード、Load Game from SlotノードともにSlotNameを入力してみました。
教えていただいた保存先に今度はセーブできていました。
起動時の説明も有難うございます。
>1つ気になった点として、現在ウィジェットでStartボタンを押すとCreate Save Game Objectノードを呼び出していますが、この状態だとStartボタンを押す度にPlay Countがリセットされます。
これは何回Startボタン押してもプレイ回数が0になってしまうのですね。
初回は0セットをする必要があるかと思いますが、2回目以降のプレイ時にPlayCountに加算するにはどう設定するればできますか?
セットPlayCountに1を足すという処理が必要かと思いますが、ノードはどのように作成するば良いでしょうか?
その後色々と触っていまして、startボタンを押すとprintstringで表示させた文字はStartボタンを押す度に1づつ増えていくようになりましたが、
Widgetの画面からレベルの画面に変化しなくなりました。
Startボタンを押すと1づつ増えるようになったのですが、これが正解なのでしょうか?
また、Startボタンを押す度に1づつ増え続けるため、リセットの方法が分らないということと、
この数字は、パッケージ化した後どのようにすれば確認することができますでしょうか?
場合によっては、Printstringで表示させている回数をWidget内に表示させる方が分りやすいかと思ったので、Widget内に表示させるにはどうすればできますでしょうか?
Widgetの画面からレベルの画面に変化しなくなりました。
ブループリントの上段で Play Count > 0 としているブランチノードがありますが、これは決してTrueになることはありません。よってOpen Levelノードが実行されずレベルの画面に変化しないものと思われます。
Startボタンを押すと1づつ増えるようになったのですが、これが正解なのでしょうか?
ブループリントを見る限り、そのように実装されていますので正解と言えますし、prosciutto_anikiさんのおっしゃる「プレイ回数のカウント」というものがこのことであれば同様に正解と言えます。
リセットの方法が分らない
Play Count変数に0をセット すればリセットしたと同義だと思います。
パッケージ化した後どのようにすれば確認することができますでしょうか?
てっきり自分はゲーム中にプレイ回数を記録&取得したり出来ればよいのかなと思い今回のようなセーブデータを使った方法を提示させていただきました。セーブデータはバイナリ形式なのでエクスプローラーでファイルを開いてプレイ回数を見るということは難しいです。
プレイ回数を取得して表示したりすることが「確認」とは違うとおっしゃるなら、prosciutto_anikiさんの「確認」を教えていただかない限り回答することは難しいです。
Printstringで表示させている回数をWidget内に表示させる方が分りやすいかと思ったので、Widget内に表示させるにはどうすればできますでしょうか?
Widgetにはテキスト表示をする Text Block というものがあります。それを使えば回数を表示することが出来ます。
参考になるかわかりませんが、自分なりに実装してみたものを貼ります。ここの処理は全てWidget内のものです。
返信いただきまして有難うございます。
参考のBPの画像もいただき有難うございます。
まず、下記の件だけは先に返信させていただきたいと思いまして。
いただいた他の回答は順番に確認させていただきたいと思います。
>てっきり自分はゲーム中にプレイ回数を記録&取得したり出来ればよいのかなと思い今回のようなセーブデータを使った方法を提示させていただきました。セーブデータはバイナリ形式なのでエクスプローラーでファイルを開いてプレイ回数を見るということは難しいです。 プレイ回数を取得して表示したりすることが「確認」とは違うとおっしゃるなら、prosciutto_anikiさんの「確認」を教えていただかない限り回答することは難しいです。
最初の質問でうまく伝えることができておらずすみません。
プレイ回数を記録&取得したりできれば良いというのは間違いはなく希望です。
もしかしたらここがうまく伝えることができていなかったのかもしれませんが、
パッケージ化したexeファイルを起動させてプレイした回数を記録&取得したいです。
このexeファイルを起動させてプレイした人が、どのくらいいるのかを後で確認したかったという意図になります。
ですので、確認という意味では相違はないかと思います。