UnityでFungusを使って会話イベントを作る方法⑩|ロード処理の設定と応用テクニック

Unity×Fungus|「ゆーちゃんの脱出」タイトル画面でセーブデータの変数を表示させた画像 Fungusの使い方
「ゆーちゃんの脱出」 タイトル画面にセーブデータが表示されている画像

セーブしたデータを使って、ゲームの状態を再現するにはロード処理が必要!

今回は、Fungusを使ったロードのブロックの作り方と、応用テクニックを紹介するよ♪

✅第⑨回の「セーブ機能の設定と使い方」はこちら↓

ロードブロックを作る

セーブポイントからゲームを再開するためには、Flowchart の中に新しいブロックを作って、

  • Execute On EventSave Point Loaded を選ぶ
  • Save Point Keys:セーブポイントで設定した Key を入力する
    ※複数のキーを指定することもできるよ!
Unity×Fungus|新しいブロックを作成してロードブロックにする説明画像

📌 これで、指定したセーブポイントが読み込まれたときに、このブロックが自動で呼び出されるようになるんだ!


ロード時に実行する処理を入れる

ロードされたときにどんな処理を行うか、ブロックの中にコマンドを追加していこう!

たとえば、ぼくのゲームではこうしてるよ👇

✅変数をセットする

Set Variableブロックを使って、ゲームの進行を管理する変数を設定。

Unity×Fungus|Set Variableコマンドを追加して変数をセットする画像

👉変数の作成方法は:UnityでFungusを使って会話イベントを作る方法⑤|変数と条件分岐

✅ アイテムやキャラの表示を切り替える

・Fungusで「Call Method」ブロックを使って、C#スクリプトを呼び出す
・C#メゾットからセーブポイント時点の状態に合わせて
  アイテムやキャラクターオブジェクトを表示/非表示に設定。

Unity×Fungus|Call Methodコマンドを追加してC#スクリプトを呼び出す画像

👉C#スクリプトを呼び出すには:UnityでFungusを使って会話イベントを作る方法②|C#スクリプト連携&クリックイベント

✅ 背景画面を切り替える

シーンがつながるように、ゲーム背景もC#スクリプトから切り替えるようにしてるよ!


共通処理ブロックを作って呼び出す

どのロードにも共通する処理は、1つの共通ブロックにまとめておくのがおすすめ!

たとえば、ぼくのゲームでは・・・👇

✅ 保存された変数を Load Variableブロック で再設定

「Save Variable」コマンドで保存した変数を呼び出して、
ゲームの進行状況によってストーリーを条件分岐できるようにする。

Unity×Fungus|ゲーム「ゆーちゃんの脱出」で使ったLoad Variableコマンドの画像

👉変数の保存については:UnityでFungusを使って会話イベントを作る方法⑨|セーブ機能の設定と使い方

✅背景音(BGM)を Play Sound で再生

ゲームの進行状況でBGMを変える為に、変数で条件分岐しているよ!

Unity×Fungus|ゲーム「ゆーちゃんの脱出」で使ったPlay MusicコマンドをIfで分岐挿せてる画像

👉変数と条件分岐については:UnityでFungusを使って会話イベントを作る方法⑤|変数と条件分岐


セーブする方法|セーブポイントを活用しよう!

実は、セーブポイントを設定しただけでは、データはまだ保存されてないんだ…!
ちゃんと「セーブ処理」を行う必要があるよ。

① 自動セーブ(オートセーブ)を使う

Save Menuのインスペクターにある
Auto Save に☑を入れると、自動でセーブされるようになるよ!

Unity×Fungus|SaveMenuインスペクター”自動保存”の場所を説明する画像

② 「SaveMenu」のセーブボタンを押す

セーブポイントを通過した後で、
Canvasにある SaveMenu の中の 「Save」ボタン を押せばセーブできるよ。

Unity×Fungus|SaveMenuのヒエラルキー内の”Save”ボタン

③ C#スクリプトでセーブする

ぼくの場合は、セーブポイントを通過したら、C#のメソッドでセーブ処理をしてるよ!

✅ 処理の流れ:

  1. C#スクリプトからFungusの変数 "セーブ名" を取得
  2. PlayerPrefs.SetString()を使ってUnityに保存
  3. Fungus内のスクリプト「SaveMenu」 の Save() メソッドを呼び出してFungusでセーブ
  4. PlayerPrefs.Save()を使ってUnityのセーブを確定させる

💡 PlayerPrefs って何?

PlayerPrefsUnity に標準搭載されている 軽量なセーブ機能だよ!

ちょっとした変数や状態を保存するのに便利なんだ〜。

ぼくは「変数何日目)」「セーブ名時間)」などを Unity に保存して、タイトル画面に表示できるようにしてるよ!

Unity×Fungus|ゲーム「ゆーちゃんの脱出」タイトル画面のセーブデータ変数を表示している画面

④ Fungusのセーブボタンは使ってない理由

Fungusの SaveMenuにある「Save」ボタンは、見た目が固定されてるからっていう理由と、

ぼくのゲームではC#スクリプトで『見つけたアイテム』のセーブデータを扱ってるから、
C#のメソッドからFungusのセーブ処理も呼び出して使うことにしたんだ!

「つづきから」ボタンについて

ぼくのゲームのタイトル画面にある「つづきから」ボタンには、
FungusのLoad() メソッドをアタッチしてるよ!

Unity×Fungus|ゲーム「ゆーちゃんの脱出」で使った”つづきから”ボタンのインスペクター画像

✅ ボタンの切り替え処理

セーブが完了したらC#スクリプトを使って:

  • 「はじめから」ボタンを押せないようにする
  • 「つづきから」「データ削除」ボタンを押せるようにする

まとめ|FungusとUnityの両方でセーブ!

  • FungusのセーブUnityのPlayerPrefsを組み合わせると、
    セーブデータに名前や日時をつけたり、UIに情報を表示できて便利!
  • セーブ時の演出(アイコン表示など)も C# で自由に制御できるよ!
ゆーちゃん
ゆーちゃん

これでFungusを使った会話イベント制作シリーズは完結だよ!

全10回にわたって、キャラクター・会話・選択肢・変数・セーブ&ロードまでを扱いました。
ここまで読んでくれて、本当にありがとう!

これからも、ゲーム作りに役立つ情報をどんどん発信していくので、
よかったらブックマーク&また遊びにきてね♪

✅Fungusを使って作成したゲームはこちら👇

📝UnityでFungusを使って会話イベントを作る方法シリーズ一覧はこちら👇

①|基本操作とコマンドブロック一覧
②|C#スクリプト連携&クリックイベント
③|キャラクターとステージの設定
④|PortraitとSayコマンドで会話を演出
⑤|変数と条件分岐
⑥|メニューの使用方法・C#と変数の連携
⑦|Say Dialogの設定方法
⑧|会話のスキップ機能を実装しよう!
⑨|セーブ機能の設定と使い方
⑩|ロード処理の設定と応用テクニック

コメント

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