# ツール — Godot · AI Game Developer Wiki

GodotエディタでAIエージェントが使用するGodot MCPツール。ノード、シーン、リソース、C#/GDScriptスクリプト、スクリーンショット、ゲーム内ツール向けのRQLクエリを扱います。

このページは英語から機械翻訳されています。[英語の原文を読む](https://ai-game.dev/docs/wiki/godot/tools)。

Godot MCPには9つのファミリーに24個の組み込みツールがあります。エディタでの作業のほとんどは3つのRQLツールを通じて行われるため、エージェントはノード、シーン、リソース、ファイル、エディタ状態に対して数十個の個別ツールではなく1つのクエリ言語を使います。このページでは各ファミリーと、エージェントがそれをいつ使うかを説明します。パラメータとプロンプト例を含む検索可能な一覧は[Godotツールカタログ](https://ai-game.dev/docs/tools/godot)です。

## ツールファミリー

| ファミリー | ツール | 用途 |
| --- | --- | --- |
| rql | `rql-query`, `rql-mutate`, `rql-schema` | ライブエディタの読み取りと変更: ノード、Godotプロパティ、シーン、リソース、ファイル、プロジェクト設定、入力マップ、オートロード、グループ、シグナル、エディタ状態。 |
| script | `script-read`, `script-create`, `script-update`, `script-delete`, `script-attach-to-node`, `script-validate`, `script-build`, `script-execute` | C#およびGDScriptファイル、スクリプトのアタッチ、GDScriptの検証、C#プロジェクトのビルド、エディタ内でのC#実行。 |
| screenshot | `screenshot-viewport`, `screenshot-camera`, `screenshot-isolated` | エディタビューポート、カメラ、または単体でレンダリングされたノードのPNG画像。 |
| console | `console-get-logs`, `console-clear-logs` | 実行中のゲームのログ。エディタ内ではRQLの`console`ソース。 |
| reflection | `reflection-method-find`, `reflection-method-call` | 実行中のゲーム内のC#メソッドを検索して呼び出します。エディタ内ではRQL `call`。 |
| runtime-errors | `runtime-errors-get`, `runtime-errors-clear` | 実行中のゲーム内で発生したエラー。デフォルトではオフ。 |
| ping | `ping` | レディネスプローブ。システムツールのため、エージェントには表示されません。 |
| skills | `godot-skill-create`, `godot-skill-generate` | 新しいツールファイルの作成、スキルファイルの再生成。システムツール。 |
| session | `session-close` | `godot-cli`が起動したエディタを保存して終了します。システムツール。 |

システムツールはサーバーの`/api/system-tools/`ルート経由でアクセスし(例えば`godot-cli run-system-tool ping`)、AIエージェントには一覧表示されません。console、reflection、runtime-errorsファミリーは、自分で接続した実行中のゲームに対応します。詳しくは[カスタムツール](https://ai-game.dev/ja/docs/wiki/godot/custom-tools#runtime)を参照してください。

## RQL: エディタ向けの単一クエリ言語

RQL(Reflection Query Language)はエディタツールのデータレイヤーです。クエリはソースから始まり、`|`で区切られたステージでフィルタと整形を行い、`rql-mutate`では`set`または`call`で終わります。エージェントが送る可能性のある例をいくつか示します:

```text
nodes | where class == "OmniLight3D" | select name props["light_energy"]
nodes | where name starts-with "Enemy" | set Visible = false
root | call AddChild("Node3D", "Props")
project | call AddInputAction("jump", ["Key:Space"])
files | sort size desc | first 5 | select path size importedSize
editor | call SaveScene()
```

- `rql-query`は読み取り専用で、コンパクトな行を返します。
- `rql-mutate`は変更を行います。すべてのターゲットと値が最初に検証されるため、失敗したクエリは何も変更しません。`dry_run`で変更をプレビューできます。各呼び出しは1つのアンドゥステップです(エディタではCtrl+Z)。
- `rql-schema`は編集対象シーン内のソース、関数、ノードクラス、または1つの型のメンバー、メソッド、Godotプロパティを一覧表示します。拡張機能名を指定すると、その拡張機能のガイドを出力します。

ソースには`nodes`、`root`、`selection`、`scenes`、`files`、`folders`、`classes`、`console`、`editor`、`project`、`settings`、`inputActions`、`autoloads`、`groups`、`layers`、`tools`があります。GodotプロパティにはC#メンバー(`Position`、`Visible`)として、または`props["snake_name"]`内のGodot名(GDScript変数を含む)でアクセスできます。RQLはシグナル、グループ、TileSet、Theme、ShaderMaterialパラメータ、MeshLibraryも扱います。

エディタ呼び出しはシーンとファイルの作業をカバーします: `NewScene`、`OpenScene`、`SaveScene`、`SaveAllScenes`、`ReloadScene`、`CreateResource`、`MoveResource`、`DeleteResource`、`CreateFolder`、`DeleteFolder`、`Reimport`、`Undo`、`Redo`、`PlayScene`、`StopScene`。`gameLog`ソースは、エディタから起動したゲームが出力した内容を読み取ります。

シーンの編集は、自分自身の編集と同様にシーンを未保存としてマークします。編集されたリソースファイルと`project.godot`は即座に保存されます。

## スクリプト: C#とGDScript

- `script-read`、`script-create`、`script-update`、`script-delete`は`.cs`および`.gd`ファイルを操作します。
- `script-attach-to-node`はスクリプトをノードにアタッチします。
- `script-validate`はGDScriptファイルのパースおよびコンパイル診断を返します。パスを指定しない場合は`res://`以下のすべての`.gd`ファイルをチェックします。
- `script-build`は新しいC#スクリプトを読み込めるように`dotnet build`(Debug)を実行します。その後GodotはC#アセンブリをリロードし、アドオンが再接続します。ビルド結果(警告またはエラー)はリロード後に届きます。
- `script-execute` は Roslyn を使ってエディター内で C# をコンパイルして実行します。普通のステートメントを書いてください。最後の式が結果になります。戻り値と、コードが出力した内容を返します。スニペットはデフォルトで 30 秒でタイムアウトし（最大 4 分）、無限ループはエディターをフリーズさせる代わりにタイムアウトエラーを返します。

ターミナルから `script-execute` を呼び出すこともできます:

```bash
godot-cli exec 'EditorInterface.Singleton.GetEditedSceneRoot()?.Name' --path ./MyGodotProject
```

## スクリーンショット

スクリーンショットツールは、モデルが検査できる PNG 画像を返します。`screenshot-viewport` はエディターのビューポートをキャプチャし、`screenshot-camera` はカメラノードからレンダリングし、`screenshot-isolated` は選択した角度から 1 つのノードを単独でレンダリングします。見た目の変更後はスクリーンショットを要求して、エージェントが自分の作業を確認できるようにしましょう。

## ゲーム内ツール

`console-*`、`reflection-*`、`runtime-errors-*` はエディター内ではなく、ゲーム内で動作します。コードがオプトインして接続するまで、ゲームは何も公開しません。`runtime-errors-get` はさらに `WithRuntimeErrorCapture()` が必要です。GDScript のランタイムエラー、`push_error` と `push_warning`、シェーダーエラー（Godot 4.5 以降）、未処理の C# 例外をキャプチャするので、エージェントはゲームを実行して実際に何が壊れたのかを確認できます。セットアップ: [カスタムツール](https://ai-game.dev/ja/docs/wiki/godot/custom-tools#runtime)。

## エージェントが参照するツールの選択

すべてのツールには、ドック内（MCP features、Tools、Open）と `godot-cli configure` に **Visible** スイッチがあります。ツールを非表示にするとエージェントのツールリストから削除され、コンテキストを節約できますが、そのツールをブロックするわけではありません。[設定](https://ai-game.dev/ja/docs/wiki/godot/configuration#mcp-features) を参照してください。

## その他のツール

- [拡張機能](https://ai-game.dev/ja/docs/wiki/godot/extensions) は、AnimationPlayer、CSG、GridMap、ナビゲーション、パーティクル、TileMapLayer、そして Beehave、Dialogic、Phantom Camera、Terrain3D アドオンについて RQL に教えます。
- [カスタムツール](https://ai-game.dev/ja/docs/wiki/godot/custom-tools) では、C# で独自のツールを書く方法を説明します。
- [Godot のベストプラクティス](https://ai-game.dev/docs/best-practices/godot) には、これらのツールをうまく活用するプロンプトパターンがあります。

---

Source (HTML): https://ai-game.dev/ja/docs/wiki/godot/tools

Machine-translated (ja) from the English page: https://ai-game.dev/docs/wiki/godot/tools
