Guaが支える2種類のAI
コードを変更し、Debug情報、ログ、スクリーンショットを使って実行結果を検証し、問題を修正します。
コードは変更せず、Player向けに許可されたUI・World情報と操作だけを使い、プレイヤーとしてゲームを進めます。
1. AIコーディングエージェントに、実行中ゲームを確かめる手段を与える
コーディングエージェントはゲームのコードを書き、Guaは実行中ゲームを確認するためのランタイムUIレイヤーを提供します。gui-mcpを通じてSemantic UI Tree、操作、待機、ログ、スクリーンショット、Recording、Visual比較、テスト実行を利用できます。
AI開発ループ
- 機能を実装する
AIコーディングエージェントがGodotのGDScript/C#またはUnityのC#とゲームUIを変更します。
- ゲームを起動する
GodotはGDScriptアドオンがControlを収集します。UnityはUPMパッケージがUI Toolkit、uGUI、TextMeshProのランタイムUIを自動収集します。どちらもGua WebSocketブリッジで公開します。
- Semantic UI Treeを調べる
AIは
get_ui_treeでID、role、text、状態を読み、engine固有object APIへ依存せず対象Controlを特定します。 - 操作して結果を待つ
click、値入力、選択、scroll、key入力を送り、期待するUI状態まで待機します。
- 証拠から検証・修正する
失敗時はUI Tree、engine log、スクリーンショット、Visual差分を確認し、実装修正後に再実行します。
2. AIエージェントプレイヤーがリリース版を遊ぶ
リリース版では、AIは開発者権限を持つテスト担当者ではなく、ゲームへ参加するプレイヤーです。ゲーム側がPlayer profileと公開ポリシーを固定し、AIに見せるUI、World Object、UI操作を選びます。Semantic Game ActionとRaw Inputは別権限として必要なものだけを許可します。
World Object Treeからobjective、enemy、door、checkpointなど、ゲームが明示した意味情報を読みます。scene nodeや内部状態を無差別には公開しません。
メニューはSemantic UI Action、ゲームプレイはjumpやmoveなどのSemantic Game Action、必要な場合だけRaw Inputで操作します。
privateなobject、内部値、Debug logは除外され、screenshotも既定では拒否されます。AIからDebugへ昇格することはできません。
保持入力は接続ごとに分離され、lease満了、切断、登録解除、engine終了時にニュートラルへ戻ります。
開発AIとAIプレイヤーの違い
| AIによる開発・検証 | リリース版のAIプレイヤー | |
|---|---|---|
| 目的 | 実装を検証し、問題を修正する | ゲームへ参加し、プレイヤーとして遊ぶ |
| 公開profile | 開発者管理のDebug | hostが固定したPlayer |
| 観測 | UI、log、screenshot、診断情報 | 許可されたUI・World情報。Debug logは非公開 |
| 操作 | テスト・診断に必要なSemantic操作 | 許可されたUI操作と、別途許可されたゲーム入力 |
| 接続 | 主にネイティブゲーム向けgui-mcp | Player設定のgui-mcp、またはWebゲーム向けgua-webmcp |
ゲームエンジンごとの接続方法
| ゲームエンジン | 収集するランタイムUI | Guaの起動方法 |
|---|---|---|
| Godot 4.7 | 標準Controlツリー | GDScriptアドオンが自動収集アダプターを接続し、ブリッジを開始します。 |
| Unity 6 | UI Toolkit、uGUI、TextMeshPro | UPMパッケージがscene読込前に自動起動し、frame後にUIを収集します。 |
| 共通 | Semantic UI Tree v2 | gui-mcpから同じlocator、action、待機、log、Screenshot、Visual、Recordingを利用できます。 |
WebのPlaywrightとの対応
| Web UI自動化 | GuaによるゲームUI自動化 |
|---|---|
| Browser | 実行中ゲーム |
| DOM | Semantic UI Tree |
| locator | ID・role・text・状態によるSemantic locator |
| click / fill / keyboard | click / set value / press keyなどのSemantic action |
| expect / wait | GuaAssertions / wait_for_node |
| screenshot / visual test | Gua screenshot / Visual baseline comparison |
よくある質問
GuaはGodotのUIテストに使えますか?
はい。推奨Godot 4.7 GDScriptアドオンが標準Controlを収集し、Semantic locator、操作、待機、アサーション、Screenshot、Visual比較を利用できます。
GuaはUnityのUIテストに使えますか?
はい。Unity 6のUPMパッケージが、対応するWindows x64 Mono環境でUI Toolkit、uGUI、TextMeshProのランタイムUIを自動収集します。AIはGodot版と同じSemantic MCP toolで操作できます。
リリース版をAIに遊ばせられますか?
はい。ネイティブゲームではPlayer設定のgui-mcp、Webゲームではgua-webmcpを使い、許可されたUI・World情報を観測し、許可されたUI操作とゲーム入力でプレイできます。開発用Debug情報とPlayer向け権限は分離されます。
GuaはGodot EditorやUnity Editorを操作するMCPですか?
役割が異なります。Editor用ツールがゲーム制作環境を操作するのに対し、Guaは起動済みGodot・UnityゲームのランタイムUIを観測・操作・検証します。併用できます。
画像認識でボタンを探しますか?
いいえ。主要な対象指定にはゲームが公開するID、role、text、状態を使います。Screenshotは描画確認やVisual比較の証拠として利用できます。
GuaはゲームエンジンやAIを置き換えますか?
いいえ。Guaはゲームランタイムとテスト、Inspector、開発AI、AIエージェントプレイヤーをつなぐ自動化レイヤーです。