GGua 日本語リファレンス
英語版が正式な参照です。内容に差異がある場合は、英語版を優先してください。
GUIDE / GAME INPUT

ゲームのアクションとキーボード・マウス入力を公開する

Semantic UIが画面上のbuttonやinput fieldを操作するのに対し、ゲーム入力は「ジャンプ」「移動」といったゲーム内のactionや、キーボード・マウス・gamepadの入力を操作します。AIやテストから、UIの外にあるキャラクター操作やカメラ操作を再現できます。

Semantic UI入力との違い

Semantic UI

「Start buttonを押す」「名前欄へ入力する」のように、画面上のUI部品をIDやroleで指定して操作します。

ゲーム入力

「ジャンプする」「右へ移動する」「Wキーを押す」「マウスを動かす」のように、ゲームプレイそのものを操作します。

必要な操作だけを選んで公開する

Semantic Game Action

jump、move、chatなど、ゲーム側が名前と意味を決めたactionを公開します。AIはキー配置を知らなくても「ジャンプする」という目的で操作できます。

Raw Input

キーボード、マウス、Standard Gamepad、text入力をdeviceに近い形で公開します。実際のキー割り当てや押しっぱなしの挙動を検証するときだけ有効にします。

押しっぱなしの入力を安全に解除する

たとえばAIが「Wキーを押し続ける」と指示したまま停止しても、キャラクターが永遠に歩き続けない仕組みになっています。押しっぱなしの入力は、入力を始めた接続ごとに分けて管理し、別の接続の操作には影響させません。解除命令を送れなかった場合も既定で5秒後に自動解除され、長く指定しても最大60秒です。接続切断、session終了、reset、adapter終了、Replay失敗でも、押されているキーやbuttonを元の状態へ戻します。さらに、ゲーム側が実際に入力を処理したという完了通知を受け取るまで、操作成功とは扱いません。

Engine設定

Unity 6000.5+

GuaGameInputMapへ意図したactionだけを登録し、Input System pumpが準備できた場合だけraw inputを有効化します。com.unity.inputsystem@1.20.0の仮想Keyboard、Mouse、Standard Gamepadを使います。

Godot 4.7

GuaAutoAdapterへAction Mapを設定します。Raw requestはmain threadでInput.parse_input_eventへ注入されます。

Toolと確認操作

gui-mcpは固定のgame-input tool群を公開し、hostが未対応の操作は呼び出し時に拒否します。WebMCPはpage tool登録時に読み取ったcapabilityで有効な入力toolだけを登録します。Inspectorの直接操作panelが提供するのは、Semantic Game Action、単発のphysical key入力、保持状態の確認、Release all(すべて解除)です。Release allは、現在のInspector接続が押し続けているキーやbutton、移動actionなど、保持中のゲーム入力をまとめて離し、キャラクターの移動やdevice状態をニュートラルへ戻すcleanup操作です。他の接続が所有する入力には影響しません。pointer、gamepad、text inputはInspectorから直接操作できません。requiresConfirmation付きactionにはconfirmed: trueが必要です。Player/Public Agent入力は、hostがPlayer向けSemanticまたはRaw capabilityを個別許可するまで拒否されます。

受け付ける入力値を説明する

Gua.Runtime、Godotアドオン、Unity統合のゲーム側登録では、上限付きvalueSchemaと設計時のexamplesをopt-inで公開できます。semantic_game_input_metadata_v1がある場合、対応するgui-mcp/gua-webmcpはget_game_input_actions_v2/find_game_input_actions_v2を明示的に呼びます。既存のdiscoveryは変わりません。例は受け付ける値を説明するだけで、操作の許可や確認を与えません。

登録field・検証・discovery API・共通の型付きValue契約を参照してください。

逐次再生と時間指定再生を選ぶ

Gua.Testing.Recordingはlocal realtime FIFOのgame-input host用に有限Timed Segmentを提供します。通常のMCP/InspectorのRecordingとReplayは逐次実行です。条件waitは時間指定区間の外で行い、holdを明示releaseで閉じ、cleanupを確認します。時間指定入力の例を参照してください。