ツール
Unreal MCP の組み込みツール27個(RQL、Blueprint、C++ ソース、Python、スクリーンショット、コンソール)と、Unreal Editor での AI 向けプロンプト例を紹介します。
このページでは、Unreal MCP を使って AI エージェントが Unreal Editor 内で何をできるかを説明します。このプラグインには 7つのファミリーに分かれた27個のツール が含まれています。ツールを名前で呼ぶことはほとんどありません。普通の言葉で頼めば、エージェントがツールを選びます。ファミリーを知っておくと、エージェントが実際にできることを頼みやすくなります。
各ツールのカードとパラメータについては、Unreal tools catalog を参照してください。
RQL: エディタデータのための単一のクエリ言語
Unreal MCP にはエディタ操作ごとに1つのツールがあるわけではありません。代わりに、エディタデータは RQL を通ります。RQL はアクター、コンポーネント、アセット、レベル、エディタの状態を1回の呼び出しで読み取り、変更するクエリ言語です。
| ツール | 機能 |
|---|---|
rql-query | ライブエディタに対する読み取り専用クエリで、コンパクトなテーブル結果を返す |
rql-mutate | set または call で終わるクエリ。オール・オア・ナッシングで1回の undo ステップとなり、dry_run によるプレビューも可能 |
rql-schema | ソース、関数、クラスを列挙します。型を指定すると、その型のメンバーとメソッドを列挙します |
RQL がどのようなものかの例をいくつか示します(エージェントがこれらを書いてくれます):
actors | where $ is PointLight | select $ref Label Intensity
actors | where Label == "Door_01" | set Location = "(0, 0, 100)"
editor | call SpawnActor("PointLight")
console | where Verbosity == "Error"アクターとコンポーネントに加えて、RQL は次のものにも到達できます:
- アセットとレベル: アセットの作成、コピー、移動、削除、インポート、フォルダとマテリアルインスタンスの作成、レベルのオープン、作成、保存、ストリーミングサブレベルの追加。
- エディタの状態: 選択、Play In Editor の状態、undo 履歴、エディタログ。
- DataTable: 行の読み取りと編集(
Rows["Sword"].Damage)、行の追加、削除、名前変更、複製。 - ゲームプレイタグ: タグの一覧表示、追加、削除、名前変更。
- Project Settings と Editor Preferences: 設定プロパティの読み取りと変更。適切な
.iniファイルに保存されます。 - Blueprint グラフ: 関数呼び出し、変数、イベント、キャスト、分岐、ループの追加、ピンの接続、そして
call Compile()。 - Widget Blueprint: ウィジェットツリーの走査と編集、ウィジェットの追加、レイアウトの設定。
- ユーザー定義構造体: フィールドの追加、削除、名前変更。
- Level Sequence: アクターのバインド、トラックとキーの追加。
すべての変更は1つのエディタトランザクションなので、Ctrl+Z で元に戻せます。エージェントは unreal-rql スキルからこの言語を学びます。このスキルには、インストールされている extensions が何を追加するかも記載されています。
プロンプト例:
- 「レベル内のすべてのポイントライトを強度とともに一覧表示し、暗いものの強度を2倍にして」
- 「5×4のグリッドに200ユニット間隔で20個のキューブをスポーンさせて」
- 「DT_Weapons DataTable に Damage 7 の Bow 行を追加して」
- 「ゲームのデフォルトマップを /Game/Maps/Arena に設定して」
Blueprint ファミリー
Blueprint の作成は Unreal の主要なスクリプティング手段であり、エージェントは完全なフィードバックループを得られます。作成、編集、コンパイル、エラーの読み取り、修正です。
| ツール | 機能 |
|---|---|
blueprint-create | 親クラスから Blueprint クラスを作成する |
blueprint-get | Blueprint を要約する: 変数、コンポーネント、関数とイベント、親クラスチェーン |
blueprint-add-component | コンストラクションスクリプトにコンポーネントを追加する |
blueprint-remove-component | コンポーネントを削除する |
blueprint-add-variable | 型付きメンバー変数を追加する |
blueprint-modify-variable | メンバー変数を変更する |
blueprint-set-default | クラスのデフォルトプロパティを設定する |
blueprint-add-function | 関数のスタブを追加する |
blueprint-add-event | BeginPlay や Tick などのイベントを追加する |
blueprint-compile | コンパイルし、エラーと警告の構造化されたリストを返す |
blueprint-spawn | Blueprint のインスタンスをレベルに配置する |
例:「静的メッシュコンポーネントと bool 変数 IsOpen を持つ Actor Blueprint BP_Door を作成し、コンパイルして原点に1つ配置して」
ソース / C++ ファミリー
| ツール | 機能 |
|---|---|
source-read | プロジェクトの C++ ファイルを分割して読み取る |
source-create-class | 新しい C++ クラス(ヘッダーとソース)を雛形から作成する |
source-update | ソースファイルを編集する |
source-delete | ソースファイルを削除する |
source-list | モジュールのソースファイルを一覧表示する |
source-compile | Live Coding が有効な場合はそれで、そうでなければ Unreal Build Tool でコンパイルし、構造化されたエラーレポートを返す |
すべてのファイル操作は <Project>/Source/ に限定されます。例:「MaxHealth と TakeDamage 関数を持つ C++ コンポーネント UHealthComponent を作成し、コンパイルして、エラーがあれば修正して」
Python ファミリー
| ツール | 機能 |
|---|---|
python-execute | unreal モジュールを事前にインポートした状態で、エディタ内で Python を実行する |
最後の式が結果として返され、print の出力はログとして返り、エラーは失敗した行を指します。include は <Project>/.ai-game-dev/snippets からヘルパーファイルやフォルダを追加し、timeout(デフォルト30秒)は暴走したスクリプトを停止します。このプラグインは Unreal の Python Editor Script Plugin を有効にします。Python はエディタ専用で、パッケージ化されたゲームに同梱されることはありません。Blueprint グラフの配線は Python には公開されていないため、それには Blueprint ツールまたは RQL を使用してください。
ターミナルから unreal-mcp-cli exec で Python を実行することもできます。詳しくは CLI リファレンス を参照してください。
スクリーンショット系
| ツール | 機能 |
|---|---|
screenshot-viewport | アクティブなエディタビューポートをキャプチャします |
screenshot-game-view | Play In Editor のゲームビューをキャプチャします |
screenshot-camera | カメラアクターからレンダリングします |
screenshot-isolated | 1つのアクターを単独でレンダリングします |
画像はモデルが閲覧できる PNG コンテンツとして返され、デフォルトで1024ピクセル、片辺あたり最大2048ピクセルです。GPU を利用するエディタが必要で、-nullrhi の下ではエラーが返ります。例:「CameraActor_Main からスクリーンショットを撮り、ライティングが暗すぎないか教えてください。」
コンソールとツール一覧
| ツール | 機能 |
|---|---|
console-run-command | Unreal のコンソールコマンドを実行するか、コンソール変数を設定します |
unreal-tool-list | 非表示のものも含め、すべてのツールを一覧表示します。オプションでフィルター、説明、入力を指定できます |
ログ、Play In Editor の状態、選択内容の読み取りは RQL を経由して行います。
エージェントには見えないツール
いくつかのシステムツールは CLI とアプリに提供され、AI エージェントには表示されません:
ping: プラグイン、ブリッジ、サーバーの連鎖をチェックします。unreal-skill-generate: ツールごとに1つのSKILL.mdをスキルフォルダ(デフォルト.claude/skills)に書き出します。Generate skill files ボタンがこれを使用します。unreal-skill-create: プラグインのエディタモジュールに新しい C++ ツールファイルを生成します。ツールが動作するには、プラグインのソースインストールとエディタの再ビルドが必要です。editor-quit: CLI セッションが起動したエディタを保存して閉じます。
プロンプトとリソース
プラグインには MCP プロンプトが1つ、level-design-brief(テーマから作成するレベルデザインブリーフ)が同梱され、さらに2つのリソースがあります: unreal://project/levels(アクティブなワールドとそのレベル群の JSON スナップショット)と unreal://project/icon です。
エージェントに見えるものを制御する
不要なツールは MCP Tools ウィンドウで非表示にするか、UNREAL_MCP_TOOLS で固定のセットのみを提供できます。詳しくは設定を参照してください。機能を追加するには、拡張機能をインストールするか、カスタムツールを作成してください。
エディタ専用
27個のツールはすべてエディタを操作します。いくつかは強力(rql-mutate、console-run-command、python-execute)なため、いずれもパッケージ化されたゲームにはコンパイルされません。ランタイム接続を有効にしたゲームは、自ら登録したツールのみを公開します。
これらのツールを最大限に活用するためのヒントは Unreal ベストプラクティスにあります。