# \[AGMaker に挑戦\] スクリプトの要点 - EmitSignal と SignalDetected

**URL:** https://guild.rpgmakerofficial.com/t/topic/176
**Category:** 一般
**Tags:** tutorial, english
**Created:** [2025 年 6 月 12 日午前 6:15 UTC](https://guild.rpgmakerofficial.com/t/topic/176 "2025-06-12T06:15:25Z")
**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 年 6 月 12 日午前 6:15 UTC](https://guild.rpgmakerofficial.com/t/topic/176/1 "2025-06-12T06:15:25Z")

</div>

## スクリプト効果

2 つのスクリプトがあります。  
1 つ目は、GD スクリプト内で発生するイベントを VS 状態機械に通知するために「条件：SignalDetected」を使用する方法を示しています。  
2 つ目は、VS 状態機械内で「アクション：SendSignal」を使用して GD スクリプトのロジックをトリガーする方法を示しています。

## 重要なポイント

1. `player` は実際のゲームオブジェクトを指す必要があります。
2. このスニペットは、Godot のネイティブな `is_on_floor` メソッドを使用して、ゲームオブジェクトにレスポンスさせる機能の概要を示しています。
3. ゲームオブジェクトで「SignalDetected」を使用し、ターゲットシグナル名を `on_floor_event` に変更し、パラメータは指定しません。
4. ビジュアルスクリプトで「SendSignal」アクションを使用した後、シグナルリストに動的にシグナルが追加され、そのまま使用できます。これを GD スクリプトの関数に接続します。

## コア

#### 条件 - SignalDetected の使用方法

```python
extends Node

signal agm_send_signal(signal_name,parameter)

@onready var player: GameObject = $\"..\"\nvar was_in_air = false

func _ready() -> void:\n\tagm_send_signal.connect(Callable(player,\"receive_signal\"))

func _physics_process(_delta):\n\tif player.is_on_floor():\n\t\tagm_send_signal.emit(\"on_floor_event\",null)\n\t\tpass

```

#### アクション - SendSignal の使用方法

このアクションを作成すると、VS が動的に新しいシグナルを登録し、GDScript スクリプトでそれを受信できるようになります。

 ![Pasted image 20250311102418](https://us1.discourse-cdn.com/flex002/uploads/rpgmaker_community/original/1X/d5d6014cd424f42d5df2055747f0702bec8e10ab.png)  
 ![Pasted image 20250311102455](https://us1.discourse-cdn.com/flex002/uploads/rpgmaker_community/original/1X/3cf4ab2cb72db2eec4dbec5d911ecd2e242f7194.png)
