[カスタム条件] Baz セーブロード検出条件

BazSaveLoadDetectedCondition

ゲームがセーブまたはロードの直後に true に切り替わる、開発者向けのカスタム条件です。「保存完了!」のポップアップ表示、オートセーブ時のフラッシュ演出、またはロード完了と同時に実行したい初期化処理などに最適です。ドロップダウンから「Save」または「Load」を選択するだけで設定完了です。

私の活動をサポートしたい場合は、パトロンになることを検討してください。:folded_hands:

ダウンロード:
BazSaveLoadDetectedCondition.gd (5.5 KB)

要件

AGMaker 1.3.0 以上

インストール

  1. BazSaveLoadDetectedCondition.gd(以下に添付)をダウンロードします。
  2. プロジェクトの custom_conditions/ フォルダに配置します。このフォルダが存在しない場合は、プロジェクトのルートディレクトリに作成してください。custom_conditions/save_load/ のようなサブフォルダでも問題ありません。
  3. これだけです。条件の追加ダイアログのセーブデータ / Save Dataグループに表示されます。有効化などの追加作業は不要です。

機能概要

セーブまたはロードの完了直後に発火する遷移条件を提供します。標準ではこのようなチェック機能は用意されていません。

  • 検出タイプ (Detect Type)。 監視するイベントを選択します。Saveを選択するとセーブ完了直後に true になり、Loadを選択するとロード完了直後に true になります。
  • 検出ウィンドウ (Detect Window)。 イベント発生後、条件が true として維持される秒数です。デフォルトの 0.2 秒は短いパルスですが、シーンが再読み込みされてオブジェクトが復活した後も、ロードイベントを確実に捉えられる長さになっています。
  • 任意のオブジェクトで動作します。 セーブとロードのイベントはグローバルなものなので、誰がセーブトリガーを押したかに関わらず、任意のオブジェクトの遷移でこれを反応させることができます。
  • 自己完結型で共有可能です。 1つのファイルのみで、オートロード(Autoload)の設定もプロジェクト設定への追加も不要です。管理すべき追加要素は一切ありません。必要なものはすべてランタイム時に生成され、終了時にクリーンアップされます。

使い方

任意のオブジェクトの遷移にこの条件を追加し、検出タイプを Save または Load に設定します。検出ウィンドウはデフォルトのままで構いません。もしイベントを見逃すようであれば、値を少し上げてみてください。

例:「保存完了!」ポップアップ
セーブゲームデータアクション → この条件を Save に設定した遷移 → 「保存完了!」テキストを表示し、その後元の状態に戻る遷移

例:ロード直後の初期化処理
この条件を Load に設定した遷移で初期化状態をガードし、そこで一度限りの処理(カメラの再配置、HUD の更新、効果音の再生など)を実行します。

ヒント

  • ロードを見逃す場合はウィンドウを拡大してください。 ロードはシーンの再読み込みを行うため、オブジェクトはロード発火のわずかな遅れで生成されることがあります。0.3 秒〜0.5 秒のような大きなウィンドウを設定すると、新しく生成されたオブジェクトがイベントを捉える余裕が生まれます。
  • セーブの場合は短く保ってください。 オブジェクトはセーブ時には既に生存しているため、デフォルトの 0.2 秒であれば、条件が不必要に true のままになることなくクリーンに発火します。
  • これはフラグではなくパルスです。 ポップアップ表示や初期化処理が完了したら状態を抜ける後続の遷移と組み合わせてください。この条件は短いウィンドウの間のみ true になるためです。
  • 1つの条件で両方のイベントをカバーします。 個別の Save プラグインと Load プラグインを作成する必要はありません。検出タイプを切り替えるだけで済みます。
「いいね!」 2

wowwww
これは非常に便利な機能だと思います。これでたくさんのポータブルエフェクトを作れるので、bazさんに感謝です!!