BazSaveLoadDetectedCondition
ゲームのセーブまたはロード完了直後に真になる、Maker向けに設計された条件です。「保存完了!」ポップアップ、オートセーブのフラッシュ、ロード完了と同時に実行される初期化処理などに最適です。ドロップダウンから「セーブ」または「ロード」を選択するだけで設定完了です。
私の活動をサポートしていただくには、パトロンになることを検討してください。 ![]()
ダウンロード:
BazSaveLoadDetectedCondition.gd (9.0 KB)
要件
AGMaker 1.3.0以降
インストール
BazSaveLoadDetectedCondition.gd(以下に添付)をダウンロードします。- プロジェクトの
custom_conditions/フォルダに配置します。このフォルダが存在しない場合は、プロジェクトのルートに作成してください。custom_conditions/save_load/のようなサブフォルダでも構いません。 - 完了です。追加条件ダイアログのセーブデータ / Save Dataグループに表示されます。有効化などの追加作業は不要です。
機能概要
セーブまたはロードの完了直後に発火する遷移条件を提供します。これ以外にそのようなチェック機能は標準にはありません。
- 検出タイプ。 監視対象を選択します。セーブはセーブ完了直後に真になり、ロードはロード完了直後に真になります。
- トリガーウィンドウ。 条件が発火した後に真となる継続時間(秒単位)。デフォルトの0.05秒は短いパルスです。ロードの場合、このウィンドウはオブジェクトがロード後に初めてチェックした瞬間から始まるため、オブジェクトが少し遅れてスポーンした場合でも確実に検出されます。
- トリガー遅延(ロードのみ)。 ロード発火前に待つ任意の時間。0に設定すると、シーンがロードされた瞬間に発火します。これはスイッチの設定やHUDの更新など、ロジックのみの処理に最適です。ただし、ロード中はフェード中はアニメーションと移動が凍結されたままになるため、ゲートしている状態が可視アニメーションを再生する場合、この値をロード遷移の長さ(通常は0.3秒〜0.5秒)に設定すると、フェード中にチカチカすることなく滑らかに再生されます。セーブには待機する遷移がないため、このフィールドは検出タイプがロードの時のみ表示されます。
- 任意のオブジェクトで動作します。 セーブおよびロードのイベントはグローバルであるため、誰がセーブをトリガーしたかに関係なく、任意のオブジェクトの遷移がこれに反応できます。
- 自己完結型で共有可能です。 1つのファイルのみで、オートロードやプロジェクト設定への追加、管理すべき追加要素は一切ありません。必要なものはすべてランタイム時に生成され、クリーンアップされます。
使用方法
任意のオブジェクトの遷移にこの条件を追加し、検出タイプをセーブまたはロードに設定します。トリガーウィンドウはデフォルトのままにしておき、イベントが逃げる場合にのみ値を上げます。ロードの場合、ゲートしている状態がアニメーションを再生するときは、トリガー遅延を遷移の長さに設定し、シーンが完全に表示された後に発火するようにします。
例:「保存完了!」ポップアップ
セーブデータ保存アクション → この条件をセーブに設定した遷移 → 「保存完了!」テキストを表示し、元の状態に戻る遷移を行う状態
例:ロード直後の初期化
この条件をロードに設定した遷移で初期化状態をゲートし、カメラの再配置、HUDの更新、サウンドの再生などの一回限りの処理を実行します。
例:ロード時の滑らかなアニメーション
この条件をロードに設定した遷移でアニメーション状態をゲートし、トリガー遅延をフェードの長さに設定すると、シーンが表示された時点でアニメーションが全再生されます。フェード中からの開始を防げます。
ヒント
- ロード時のアニメーションにはトリガー遅延を使用してください。 ロード中はフェードが完了するまでアニメーションと移動が凍結されるため、直ちにアニメーションを開始する状態はチカチカする可能性があります。トリガー遅延を遷移の長さ(通常は0.3秒〜0.5秒)に設定すると、シーンが完全に表示された後に発火します。ロジックのみの反応の場合は0のままにしてください。
- イベントが逃げる場合はトリガーウィンドウを上げてみてください。 デフォルトの0.05秒はセーブとロードの両方で確実に検出されますが、0.1秒〜0.2秒のような広いウィンドウを設定すると、万一の漏れを防ぐ余裕が生まれます。
- これはフラグではなくパルスです。 ポップアップや初期化処理が完了したら状態を離れる後続の遷移と組み合わせて使用してください。この条件は短いウィンドウの間だけ真になるためです。
- 1つの条件で両方のイベントをカバーします。 セーブ用とロード用の別々のプラグインを用意する必要はありません。検出タイプを切り替えるだけで済みます。
