# 【深入AGMaker】スクリプト断片 - カスタムのセーブとロード動作

**URL:** https://guild.rpgmakerofficial.com/t/topic/824
**Category:** 一般
**Tags:** 中文教程, 中文
**Created:** [2025 年 9 月 1 日午前 6:50 UTC](https://guild.rpgmakerofficial.com/t/topic/824 "2025-09-01T06:50:11Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Justus](https://sea2.discourse-cdn.com/flex002/user_avatar/guild.rpgmakerofficial.com/justus/32/55_2.png) [@Justus](https://guild.rpgmakerofficial.com/u/Justus)
#### Post date: [2025 年 9 月 1 日午前 6:50 UTC](https://guild.rpgmakerofficial.com/t/topic/824/1 "2025-09-01T06:50:11Z")

</div>

## スクリプトの動作

GDScript で AGMakerManager の 2 つの固有シグナルを監視する方法を実演します。

## 要点

1. AGMakerManager には `on_saved` と `on_loaded` という 2 つの固有シグナルが存在します。
2. VS でセーブまたはロードアクションを呼び出すと、これらのシグナルがトリガーされ、現在のファイルスロットを示す整数型のパラメータ `slot_index` が提供されます。
3. これらのシグナルを利用することで、GameObject の生存周期に依存しないカスタムセーブおよびロード動作を作成できます。
4. 以下のスクリプトをシーンツリー内の任意の Node ノードにアタッチします。その後、任意の GameObject の VS スクリプトで「ゲームの保存」および「ゲームの読み込み」アクションを実行すると、コンソールに関連するテキストが出力されます。
5. この方法は、保存データをカスタマイズする必要がある場合に特に適しています。例えば、データベースから特定のデータを選択的に抽出したり、AGM システム以外の Godot ネイティブデータを AGM のセーブ/ロード完了後に追加で保存・復元する場合などが挙げられます。
6. シリアライズとデシリアライズ（データをディスクに保存し、読み出す）の具体的な方法については、サンプルコードに記載されている Godot ドキュメントリンクを直接参照してください。

## 核心

```python
extends Node

func _ready() -> void:
    AGMakerManager.on_saved.connect(_on_agm_saved)
    AGMakerManager.on_loaded.connect(_on_agm_loaded)

func _on_agm_saved(slot_index: int):
    print("on_agm_saved: slot = ", slot_index)
    # ここで任意の処理を実行できます。
    # 例:
    # https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html#saving-and-reading-data
    pass

func _on_agm_loaded(slot_index: int):
    print("on_agm_loaded: slot = ", slot_index)
    # ここで任意の処理を実行できます。
    pass

```
