Unity AI完全マスターシリーズ
第1回 — Unity AI Assistant入門:Ask・Plan・Agentモード完全解説
第2回 — Unity MCP完全ガイド:Claude Code・Codex・Gemini・CursorをUnity Editorに接続する
第3回 — Unity MCPカスタムツールの作り方:McpTool Deep Diveと4つの登録方式
第4回 — Unity SkillsシステムでAIワークフローを自動化する:SKILL.md完全ガイド
Appendix — Unity MCPビルトインツール完全リファレンス:51個のツールパラメータ・有効化ガイド (この記事)
第5回 — Unity AI AssistantのProject Overview自動生成:AIがプロジェクトを理解するようにする方法
第6回 — Unity AI Assistant × Profiler:性能ボトルネックを自然言語で診断する実践ガイド
Claude CodeやCursorがUnity Editorに接続したとき、実際にどのツールを呼び出せるのか — 公式ドキュメントには全リストが存在しません。本記事はcom.unity.ai.assistant @2.7(Unity 6.3)のパッケージソースを直接解析し、ビルトインMCPツール51個すべてのパラメータ・型・デフォルト値・有効化方法をまとめた開発者向けリファレンスです。Unity 6.3を基準に解説します。
TL;DR
– Unity MCPのビルトインツールは計53個(ソース確認済み51個)、Core・Assets・Assistant・Debug & Diagnostics・Editor 5グループで構成されます。
– デフォルト有効(EnabledByDefault = true)なツールは7個のみ。残りはProject Settingsで手動で有効化する必要があります。
– 登録メカニズムは2種類:[McpTool]属性による直接宣言 vsAgentToolMcpAdapterによるブリッジング。
– AssetGenerationツール群はUnity Creditsを消費し、Profilerツール群はProfilerウィンドウにキャプチャデータが存在する場合のみ動作します。
– カスタムツールの作成方法はMcpTool Deep Diveを参照してください。
目次
ツールの有効化方法
Unity MCPビルトインツールは2つの状態に分類されます。
| 状態 | 意味 |
|---|---|
デフォルト有効(EnabledByDefault = true) |
MCP接続直後からすぐに使用可能 |
手動有効化が必要(EnabledByDefault = false) |
以下の手順で有効化する必要あり |
手動有効化の手順:
- Unity Editor上部メニューの Edit > Project Settings を開く
- 左側リストから AI > Unity MCP を選択
- Tools タブをクリック
- 有効化したいツールのチェックボックスをオンにする
- 外部AIクライアント(Claude Code、Cursorなど)でMCP接続を再起動する
デフォルト有効な7個のツール:
| ツールID | グループ |
|---|---|
Unity.RunCommand |
Core |
Unity.GetConsoleLogs |
Debug & Diagnostics |
Unity.Camera.Capture |
Editor |
Unity.SceneView.Capture2DScene |
Editor |
Unity.SceneView.CaptureMultiAngleSceneView |
Editor |
Unity.AssetGeneration.GenerateAsset |
Assets |
Unity.AssetGeneration.GetModels |
Assets |
この7個はUnity MCPセットアップ直後から即座に使用可能で、最も汎用的に利用されるツールです。残りの44個は用途に応じて選択的に有効化するオプトイン方式です。
AssetGeneration注意:
GenerateAssetとGetModelsはデフォルト有効ですが、AI生成機能はUnity Creditsを消費します。
Profiler注意: Profilerツール群は、Unity Profilerウィンドウにキャプチャされたデータがある場合のみ有効な結果を返します。
全ツールクイックリファレンス
| ツールID | グループ | 機能概要 | デフォルト |
|---|---|---|---|
Unity.ManageScript |
Core | レガシースクリプト操作ルーター(create/read/delete) | ✗ |
Unity.ManageScript_capabilities |
Core | ManageScriptのサポート操作・制限情報照会 | ✗ |
Unity.CreateScript |
Core | 指定パスにC#スクリプトを新規作成 | ✗ |
Unity.DeleteScript |
Core | URIまたはパスでC#スクリプトを削除 | ✗ |
Unity.GetSha |
Core | ファイルのSHA256ハッシュとメタデータを取得 | ✗ |
Unity.ApplyTextEdits |
Core | 正確な座標に基づくファイルテキスト編集 | ✗ |
Unity.ScriptApplyEdits |
Core | メソッド・クラス単位の構造的C#編集 | ✗ |
Unity.ValidateScript |
Core | C#スクリプトの構文・パフォーマンス診断 | ✗ |
Unity.RunCommand |
Core | C#コードをEditorで即時コンパイル・実行 | ✓ |
Unity.ListResources |
Core | プロジェクト内のファイルURIリストを照会 | ✗ |
Unity.ReadResource |
Core | ファイル内容を読み取り(スライシング対応) | ✗ |
Unity.FindInFile |
Core | ファイル内の正規表現パターン検索 | ✗ |
Unity.ManageGameObject |
Core | GameObjectの作成・変更・削除・コンポーネント操作 | ✗ |
Unity.ManageScene |
Core | シーンのロード・保存・作成・階層構造照会 | ✗ |
Unity.ManageEditor |
Core | Editorの再生・一時停止・状態制御 | ✗ |
Unity.ManageMenuItem |
Core | Editorメニュー項目の実行・検索 | ✗ |
Unity.ManageAsset |
Core | アセットのインポート・作成・変更・削除・検索 | ✗ |
Unity.ImportExternalModel |
Core | 外部URLのFBXをインポート・シーン配置・プレハブ保存 | ✗ |
Unity.ManageShader |
Assets | シェーダースクリプトの作成・読み取り・更新・削除 | ✗ |
Unity.AssetGeneration.GenerateAsset |
Assets | AIでスプライト・画像・3Dモデル・サウンドを生成 | ✓ |
Unity.AssetGeneration.GetModels |
Assets | アセット生成に使用可能なAIモデルリストを照会 | ✓ |
Unity.AssetGeneration.GetCompositionPatterns |
Assets | マテリアル・TerrainLayer生成用パターンを照会 | ✗ |
Unity.AssetGeneration.ManageInterrupted |
Assets | 中断されたアセット生成ジョブの確認・再開 | ✗ |
Unity.AssetGeneration.ConvertToMaterial |
Assets | テクスチャ → Material変換(非生成型) | ✗ |
Unity.AssetGeneration.ConvertToTerrainLayer |
Assets | テクスチャ → TerrainLayer変換(非生成型) | ✗ |
Unity.AssetGeneration.ConvertSpriteSheetToAnimationClip |
Assets | スプライトシート → AnimationClip変換 | ✗ |
Unity.AssetGeneration.CreateAnimatorControllerFromClip |
Assets | AnimationClip → AnimatorController作成 | ✗ |
Unity.AssetGeneration.EditAnimationClipTool |
Assets | ヒューマノイドAnimationClipの編集 | ✗ |
Unity.AudioClip.Edit |
Assets | オーディオクリップの無音除去・トリミング・音量・ループ編集 | ✗ |
Unity.FindProjectAssets |
Assets | 名前マッチング+視覚的意味論的アセット検索 | ✗ |
Unity.Grep |
Assistant | ripgrepでファイル内容・パス検索 | ✗ |
Unity.ReadConsole |
Debug | コンソールメッセージの照会・フィルタ・クリア | ✗ |
Unity.GetConsoleLogs |
Debug | スタックトレース付きコンソールログを照会 | ✓ |
Unity.Profiler.GetFrameRangeTopTimeSummary |
Debug | 複数フレーム区間の上位時間サマリー | ✗ |
Unity.Profiler.GetFrameTopTimeSamplesSummary |
Debug | 特定フレームの総時間基準上位サンプルサマリー | ✗ |
Unity.Profiler.GetFrameSelfTimeSamplesSummary |
Debug | 特定フレームの自己時間基準上位サンプルサマリー | ✗ |
Unity.Profiler.GetSampleTimeSummary |
Debug | 特定プロファイラーサンプルの時間サマリー | ✗ |
Unity.Profiler.GetBottomUpSampleTimeSummary |
Debug | ボトムアップ分析基準のサンプル時間サマリー | ✗ |
Unity.Profiler.GetSampleTimeSummaryByMarkerPath |
Debug | Marker IDパス基準のサンプル時間サマリー | ✗ |
Unity.Profiler.GetRelatedSamplesTimeSummary |
Debug | 同時実行中の他スレッド関連サンプルサマリー | ✗ |
Unity.Profiler.GetOverallGcAllocationsSummary |
Debug | 全プロファイリングデータのGCアロケーションサマリー | ✗ |
Unity.Profiler.GetFrameGcAllocationsSummary |
Debug | 特定フレームの上位GCアロケーションサンプルサマリー | ✗ |
Unity.Profiler.GetFrameRangeGcAllocationsSummary |
Debug | 複数フレーム区間のGCアロケーションサマリー | ✗ |
Unity.Profiler.GetSampleGcAllocationSummary |
Debug | 特定サンプルのGCアロケーションサマリー | ✗ |
Unity.GetUserGuidelines |
Editor | プロジェクトのコーディング規約・フォルダ構造コンテキストを読み込む | ✗ |
Unity.GetProjectData |
Editor | プロジェクト概要データを照会 | ✗ |
Unity.PackageManager.GetPackageData |
Editor | パッケージ情報を照会 | ✗ |
Unity.PackageManager.PackageManagerExecuteAction |
Editor | パッケージの追加・削除・サンプルインストール | ✗ |
Unity.Camera.Capture |
Editor | 特定カメラまたはシーンビューの画像キャプチャ | ✓ |
Unity.SceneView.Capture2DScene |
Editor | 2Dシーンの特定領域を正射影でキャプチャ | ✓ |
Unity.SceneView.CaptureMultiAngleSceneView |
Editor | 3Dシーンの4方向マルチアングルキャプチャ | ✓ |
Core(18個)
[McpTool]属性で直接登録されます。ソースパス:Modules/Unity.AI.MCP.Editor/Tools/
Unity.ManageScript
レガシースクリプト操作の互換性ルーターです。ファイルの直接読み取りにはresources/read、編集にはUnity.ApplyTextEditsまたはUnity.ScriptApplyEditsの使用を推奨します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
action |
文字列 | ✓ | — | 'create' | 'read' | 'delete' |
name |
文字列 | ✓ | — | スクリプト名(.csを除く) |
path |
文字列 | ✗ | "Assets/" |
アセットパス |
contents |
文字列 | ✗ | — | create/update時のC#コード |
script_type |
文字列 | ✗ | — | 型ヒント(例:'MonoBehaviour') |
namespace |
文字列 | ✗ | — | スクリプトの名前空間 |
戻り値:{ success, message, data }
Unity.ManageScript_capabilities
Unity.ManageScriptがサポートする操作・制限・ガード設定情報を照会します。
パラメータなし
戻り値:{ ops, text_ops, max_edit_payload_bytes, guards }
Unity.CreateScript
指定したパスに新しいC#スクリプトを作成します。パスはAssets/配下である必要があり、コンテンツはBase64エンコードされて転送されます。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
path |
文字列 | ✓ | — | アセットパス(例:'Assets/Scripts/My.cs') |
contents |
文字列 | ✓ | — | C#コード |
script_type |
文字列 | ✗ | — | 型ヒント(例:'MonoBehaviour') |
namespace |
文字列 | ✗ | — | 名前空間 |
Unity.DeleteScript
URIまたはAssetsの相対パスでC#スクリプトを削除します。対象はAssets/配下である必要があります。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
uri |
文字列 | ✓ | — | unity://path/... | file://... | Assets/... |
Unity.GetSha
ファイルの内容は返さず、SHA256ハッシュと基本メタデータのみを照会します。Unity.ApplyTextEditsのprecondition_sha256と組み合わせることで、同時編集による競合を防ぐことができます。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
uri |
文字列 | ✓ | — | 対象ファイルのURI |
戻り値:{ sha256, metadata }
Unity.ApplyTextEdits
URIで識別されるファイルの正確な文字位置を置換します。行・列番号はすべて1始まりで、タブは1文字としてカウントします。
推奨ワークフロー:
Unity.ReadResource→Unity.FindInFile→Unity.ApplyTextEdits
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
uri |
文字列 | ✓ | — | 編集するファイルのURI |
edits |
配列 | ✓ | — | 編集項目のリスト。各項目:{ startLine, startCol, endLine, endCol, newText } |
precondition_sha256 |
文字列 | ✗ | — | 現在のファイルSHA256。同時編集競合防止用 |
Unity.ScriptApplyEdits
メソッド・クラス単位の構造的なC#編集です。生のテキスト置換より安全なため、優先的に使用することを推奨します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
op |
文字列 | ✓ | — | replace_method | insert_method | delete_method | anchor_insert | anchor_delete | anchor_replace |
className |
文字列 | ✗ | nameフィールド |
対象クラス名 |
methodName |
文字列 | 条件付き | — | replace_method、delete_method時に必須 |
replacement |
文字列 | 条件付き | — | replace_method、insert_method時に必須 |
position |
文字列 | ✗ | — | insert_method専用:start | end | after | before |
afterMethodName |
文字列 | 条件付き | — | position='after'時に必須 |
beforeMethodName |
文字列 | 条件付き | — | position='before'時に必須 |
anchor |
文字列 | 条件付き | — | anchor_*操作用の正規表現 |
text |
文字列 | 条件付き | — | anchor_insert、anchor_replace時に挿入するテキスト |
options.validate |
文字列 | ✗ | — | 'standard'(構造検査) | 'relaxed'(内部専用編集) |
Unity.ValidateScript
C#スクリプトの構文エラーとパフォーマンスヒントを診断します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
uri |
文字列 | ✓ | — | 検証するスクリプトのURI |
level |
文字列 | ✗ | 'basic' |
'basic'(高速構文チェック) | 'standard'(パフォーマンスヒント含む) |
include_diagnostics |
ブール値 | ✗ | false |
trueの場合、完全な診断とサマリーを返す |
Unity.RunCommand ★ デフォルト有効
Unity EditorでC#コードを即時コンパイルして実行します。物理・入力・グラフィクス・ゲームプレイ・パッケージ管理など、Editorのほぼすべての機能をプログラムで制御できる最も強力なツールです。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
code |
文字列 | ✓ | — | 実行するC#コード。クラス名は必ずCommandScriptにする必要があります |
title |
文字列 | ✗ | — | 操作タイトル(ログ識別用) |
戻り値:{ compilationStatus, executionStatus, logs, results }
ゴールデンテンプレート(この形式から外れると実行に失敗します):
internal class CommandScript
{
[UnityEditor.MenuItem("Tools/RunCommand", false, 0)]
public static void Execute()
{
var result = new System.Collections.Generic.Dictionary<string, object>();
// ここにコードを記述
UnityEngine.Debug.Log(Newtonsoft.Json.JsonConvert.SerializeObject(result));
}
}
Unity.ListResources
指定フォルダ配下のファイルURIリストを返します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Pattern |
文字列 | ✗ | "*" |
ファイルフィルタリング用Globパターン |
Under |
文字列 | ✗ | "Assets" |
検索するルートサブフォルダ |
Limit |
整数 | ✗ | 200 |
最大返却数 |
ProjectRoot |
文字列 | ✗ | — | プロジェクトルートパスの上書き |
戻り値:{ success, data: { uris, count }, error? }
Unity.ReadResource
unity://path/... URIでファイルの内容を読み取ります。行・バイト単位のスライシングをサポートします。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Uri |
文字列 | ✓ | — | 読み取るファイルのURI(Assets/配下) |
StartLine |
整数 | ✗ | — | 開始行番号(1始まり) |
LineCount |
整数 | ✗ | — | 読み取る行数 |
HeadBytes |
整数 | ✗ | — | ファイル先頭から読み取るバイト数 |
TailLines |
整数 | ✗ | — | ファイル末尾から読み取る行数 |
Request |
文字列 | ✗ | — | 自然言語リクエスト(例:'最後の120行'、'MethodName周辺40行') |
ProjectRoot |
文字列 | ✗ | — | プロジェクトルートパスの上書き |
戻り値:{ success, data: { text, metadata }, error? }
Unity.FindInFile
正規表現パターンでファイル内を検索し、行番号と抜粋を返します。リネームや編集対象を見つける際に最適です。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Uri |
文字列 | ✓ | — | 検索するファイルのURI |
Pattern |
文字列 | ✓ | — | 正規表現検索パターン |
IgnoreCase |
ブール値 | ✗ | true |
大文字小文字を無視するか |
MaxResults |
整数 | ✗ | 200 |
最大返却結果数 |
ProjectRoot |
文字列 | ✗ | — | プロジェクトルートパスの上書き |
戻り値:{ success, data: { matches, count }, error? }
Unity.ManageGameObject
GameObjectの作成・変更・削除・検索、およびコンポーネント操作を行います。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
action |
文字列 | ✓ | — | 'create' | 'modify' | 'find' | 'add_component' | 'remove_component' | 'set_component_property' | 'get_components' | 'get_component' |
target |
文字列 | 条件付き | — | GameObjectの名前または階層パス。modify/delete/コンポーネント操作時に必須 |
properties |
オブジェクト | ✗ | — | create/modify時のプロパティ(position、rotation、scale、parentなど) |
component_type |
文字列 | 条件付き | — | コンポーネント操作時の型名(例:'Rigidbody') |
component_properties |
オブジェクト | 条件付き | — | set_component_property時の{ プロパティ名: 値 } |
search_inactive |
ブール値 | ✗ | false |
find時に非アクティブなGameObjectを含めるか |
戻り値:{ success, message, data }
Unity.ManageScene
Unityシーンのロード・保存・作成、および階層構造の照会を行います。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Action |
文字列 | ✓ | — | 'Load' | 'Save' | 'Create' | 'GetHierarchy'(他多数) |
Name |
文字列 | 条件付き | — | create/load/save対象のシーン名(拡張子なし) |
Path |
文字列 | ✗ | "Assets/" |
シーンアセットパス |
BuildIndex |
整数 | ✗ | — | load/ビルド設定操作用のビルドインデックス |
戻り値:{ success, message, data }
Unity.ManageEditor
Unity Editorの再生状態・アクティブツール・タグ・レイヤーなどを制御・照会します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Action |
文字列 | ✓ | — | 'Play' | 'Pause' | 'Stop' | 'GetState' | 'SetActiveTool' | 'AddTag' | 'AddLayer'(他多数) |
WaitForCompletion |
ブール値 | ✗ | — | trueの場合、一部の操作の完了を待機する |
ToolName |
文字列 | 条件付き | — | SetActiveTool時のツール名 |
TagName |
文字列 | 条件付き | — | AddTag時のタグ名 |
LayerName |
文字列 | 条件付き | — | AddLayer時のレイヤー名 |
戻り値:{ success, message, data }
Unity.ManageMenuItem
Unity Editorのメニュー項目を実行・検索・存在確認します。メニューパスがわからない場合は、まず'List'で探索することをお勧めします。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Action |
文字列 | ✓ | — | 'Execute' | 'List' | 'Exists' | 'Refresh' |
MenuPath |
文字列 | 条件付き | — | Execute/Exists時に必須(例:'File/Save Project') |
Search |
文字列 | ✗ | — | List時の大文字小文字を無視したフィルタ文字列 |
Refresh |
ブール値 | ✗ | — | 操作前にメニューキャッシュを強制更新する |
戻り値:{ success, message, data }
Unity.ManageAsset
インポート・作成・変更・削除・移動・リネーム・検索など、幅広いアセット操作を行います。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Action |
文字列 | ✓ | — | 'Import' | 'Create' | 'Modify' | 'Delete' | 'Duplicate' | 'Move' | 'Rename' | 'Search' | 'GetInfo' | 'CreateFolder' | 'GetComponents' |
Path |
文字列 | 条件付き | — | アセットパスまたは検索スコープ |
AssetType |
文字列 | 条件付き | — | Create時に必須(例:'Material'、'Folder') |
Properties |
オブジェクト | ✗ | — | Create/Modify時のプロパティ辞書 |
Destination |
文字列 | 条件付き | — | Duplicate/Move時の移動先パス |
SearchPattern |
文字列 | ✗ | — | 検索パターン(例:'*.prefab') |
Page |
整数 | ✗ | — | 検索結果のページネーション |
戻り値:{ success, data, error }
Unity.ImportExternalModel
URLからFBXをダウンロードしてプロジェクトにインポートし、シーンに配置してプレハブとして保存します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
name |
文字列 | ✓ | — | アセット名(単一の単語/ID、スペース不可) |
fbx_url |
文字列 | ✓ | — | FBXファイルのURL(ローカルファイル、URL、FBXを含むzip対応) |
height |
浮動小数点 | ✗ | — | シーン上での希望の高さ |
albedo_texture_url |
文字列 | ✗ | — | アルベドテクスチャファイルのURL |
戻り値:{ success, data: { sceneGameObject, prefab }, error }
Assets(12個)
Unity.ManageShaderは[McpTool]で直接登録、残り11個はAgentToolMcpAdapterを介してブリッジングされます。
Unity.ManageShader
シェーダースクリプトを作成・読み取り・更新・削除します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Action |
文字列 | ✓ | — | 'Create' | 'Read' | 'Update' | 'Delete' |
Name |
文字列 | ✓ | — | シェーダー名(.shader拡張子を除く) |
Path |
文字列 | ✗ | "Assets/" |
アセットパス |
Contents |
文字列 | 条件付き | — | Create/Update時のシェーダーコード |
戻り値:{ success, message, data }
Unity.AssetGeneration.GenerateAsset ★ デフォルト有効
commandパラメータ1つで、スプライト・画像・3Dモデル・サウンド・マテリアルなど様々なアセットをAIで生成します。Unity Creditsを消費します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
command |
文字列 | ✓ | — | 以下のサポートコマンドリスト参照 |
modelId |
文字列 | 条件付き | — | 生成コマンド時に必須。GetModelsで有効なIDを確認 |
prompt |
文字列 | 条件付き | — | 生成する内容の説明。音声生成時は発話テキストのみ入力 |
targetAssetPath |
文字列 | 条件付き | — | 編集・アップスケール・変換コマンド時の対象アセットパス |
referenceImageInstanceId |
文字列 | ✗ | — | 再着色時のカラーパレット画像ID |
referenceImageInstanceIds |
配列 | ✗ | — | マルチビュー3Dモデル生成時の参照画像IDリスト |
referenceImageLabels |
配列 | ✗ | — | マルチビュー画像のビューラベル(例:['front', 'back', 'left']) |
voiceName |
文字列 | ✗ | — | 音声生成時のボイス選択 |
durationInSeconds |
整数 | ✗ | — | サウンドの長さ(1〜10秒) |
loop |
ブール値 | ✗ | — | シームレスループを生成するか |
サポートするcommandリスト:
| command | 説明 |
|---|---|
GenerateSprite |
スプライトを生成(その後RemoveImageBackgroundの呼び出しを推奨) |
GenerateImage |
画像を生成(ポートレート、背景など) |
RemoveImageBackground |
既存スプライト/画像の背景を除去 |
UpscaleImage / UpscaleSprite |
画像/スプライトをアップスケール |
RecolorImage / RecolorSprite |
カラーパレット画像を基準に再着色 |
EditSpriteWithPrompt / EditImageWithPrompt |
プロンプトでスプライト/画像を編集 |
GenerateSpritesheet |
プロンプトからスプライトシートを生成 |
GenerateCubemap / UpscaleCubemap |
キューブマップを生成/アップスケール |
GenerateMaterial / AddPbrToMaterial |
マテリアルを生成 / PBRマップを追加 |
GenerateTerrainLayer / AddPbrToTerrainLayer |
TerrainLayerを生成 / PBRマップを追加 |
GenerateSound |
効果音または音声を生成 |
GenerateMesh |
3Dモデル(プレハブ)を生成 |
RetopologyMesh |
既存メッシュをリトポロジー |
TextureMesh |
既存メッシュにテクスチャを追加 |
RigMesh |
既存メッシュにリギングを追加 |
Unity.AssetGeneration.GetModels ★ デフォルト有効
アセット生成に使用可能なAIモデルのリストを照会します。GenerateAssetを呼び出す前にmodelIdの確認に使用します。
パラメータなし
戻り値:モデルリスト(各エントリにModelId GUIDを含む)
Unity.AssetGeneration.GetCompositionPatterns
マテリアルやTerrainLayer生成時に参照画像として使用できるコンポジションパターンのリストを照会します。GenerateMaterialやGenerateTerrainLayerを呼び出す前に照会することを推奨します。
パラメータなし
Unity.AssetGeneration.ManageInterrupted
中断されたアセット生成ジョブの確認・再開を行います。
パラメータの詳細はソースで確認できませんでした。
Unity.AssetGeneration.ConvertToMaterial
既存のTexture2DまたはCubemapアセットからMaterialを作成します。生成型AIは使用しません。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
targetAssetPath |
文字列 | ✓ | — | Texture2DまたはCubemapアセットのパス |
savePath |
文字列 | ✓ | — | 生成する.matファイルの保存パス |
Unity.AssetGeneration.ConvertToTerrainLayer
既存のTexture2DアセットからTerrainLayerを作成します。生成型AIは使用しません。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
referenceImagePath |
文字列 | ✓ | — | Texture2Dアセットのパス |
savePath |
文字列 | ✓ | — | 生成する.terrainlayerファイルの保存パス |
Unity.AssetGeneration.ConvertSpriteSheetToAnimationClip
あらかじめスライスされたTexture2Dスプライトシートから AnimationClipを作成します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
referenceImagePath |
文字列 | ✓ | — | スライス済みTexture2Dアセットのパス |
savePath |
文字列 | ✓ | — | 生成する.animファイルの保存パス |
Unity.AssetGeneration.CreateAnimatorControllerFromClip
既存のAnimationClipからAnimatorControllerを作成し、そのクリップをデフォルト状態として設定します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
animationClipPath |
文字列 | ✓ | — | 既存の.animアセットのパス |
savePath |
文字列 | ✓ | — | 生成する.controllerファイルの保存パス |
Unity.AssetGeneration.EditAnimationClipTool
Unityのヒューマノイド AnimationClipを編集します。ヒューマノイドクリップのみサポートします。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
command |
文字列 | ✓ | — | 'MakeStationary'(ルートモーション除去) | 'TrimToBestLoop'(最適ループ区間のトリミング) |
targetAssetPath |
文字列 | ✓ | — | 対象の.animファイルパス |
Unity.AudioClip.Edit
AudioClipアセットの無音除去・トリミング・音量調整・ループ作成を行います。自然なループを得るには、LoopSoundの前にTrimSilenceで無音を先に除去することを推奨します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
command |
文字列 | ✓ | — | 'TrimSilence' | 'TrimSound' | 'ChangeVolume' | 'LoopSound' |
targetAssetPath |
文字列 | ✓ | — | 対象のAudio Clipアセットパス |
startTime |
浮動小数点 | 条件付き | — | TrimSound時のトリミング開始時間(秒) |
endTime |
浮動小数点 | 条件付き | — | TrimSound時のトリミング終了時間(秒) |
volume |
浮動小数点 | 条件付き | — | ChangeVolume時の音量値 |
Unity.FindProjectAssets
名前マッチングと視覚的意味論的検索を組み合わせてプロジェクトアセットを検索します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query |
文字列 | ✓ | — | 検索クエリ。以下のプレフィックス構文をサポート |
クエリプレフィックス構文:
| プレフィックス | 意味 | 例 |
|---|---|---|
t:<type> |
アセット型フィルタ | t:Texture2D、t:Prefab |
dir:<path> |
検索ディレクトリ制限 | dir:Assets/Characters |
l:<label> |
アセットラベルフィルタ | l:Environment |
k:<keyword> |
キーワード検索 | k:fire particle |
返り値にはResponseGuidanceフィールドが含まれており、結果を表示する際は、この指示に従ってください。
Assistant(1個)
Unity.Grep
ripgrep(rg)でプロジェクトのファイル内容を検索したり、パスパターンでファイルを一覧表示したりします。デフォルトでは.csファイルのみが対象です。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
args |
文字列 | ✓ | — | ripgrepの引数文字列。検索パターンを含みます。--glob/--typeでファイル型を指定し、-lでファイルパスのみ出力 |
path |
文字列 | ✗ | — | 検索範囲ディレクトリ(指定するとそのフォルダに限定) |
使用例:
– 全.csファイルでNavMeshAgentを検索:args="NavMeshAgent"
– JSONファイルを検索:args="--type json \"someKey\""
– ファイルパスのみを出力:args="-l \"TODO\""
Debug & Diagnostics(14個)
Unity.ReadConsoleは[McpTool]で直接登録、Unity.GetConsoleLogsとProfilerツール11個はAgentToolMcpAdapterによるブリッジングです。
Profilerの前提条件:Profilerツール群はUnity Profilerウィンドウにキャプチャされたデータが存在する場合のみ動作します。データなしで呼び出すと空の結果が返されます。
Unity.ReadConsole
Unity Editorのコンソールメッセージを照会またはクリアします。Unity.GetConsoleLogsよりも細かいフィルタリング(型・タイムスタンプ・フォーマット)をサポートしています。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
Action |
文字列 | ✓ | — | 'Get' | 'Clear' |
Types |
文字列 | ✗ | 'All' |
'Error' | 'Warning' | 'Log' | 'All' |
Count |
整数 | ✗ | — | 返却するメッセージの最大数 |
FilterText |
文字列 | ✗ | — | メッセージテキストフィルタ |
SinceTimestamp |
文字列 | ✗ | — | この時刻以降のメッセージのみ照会(ISO 8601) |
Format |
文字列 | ✗ | 'Plain' |
'Plain' | 'Detailed' | 'Json' |
IncludeStacktrace |
ブール値 | ✗ | — | スタックトレースを含めるか |
戻り値:{ success, data: { messages } }
Unity.GetConsoleLogs ★ デフォルト有効
スタックトレースを含むUnityコンソールログを手軽に照会します。素早いデバッグにはこのツールが、細かいフィルタリングが必要な場合はUnity.ReadConsoleが適しています。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
maxEntries |
整数 | ✗ | 50 |
最大エントリ数 |
includeStackTrace |
ブール値 | ✗ | true |
スタックトレースを含めるか |
logTypes |
文字列 | ✗ | "info,warning,error" |
照会するログタイプ(カンマ区切り) |
Profilerツール(11個)
ProfilerツールはすべてProfilingSummaryTools.csにMcpAvailability.Availableとして登録されています。パラメータの詳細はソースコードを直接参照してください。
| ツールID | 主な入力 | 説明 |
|---|---|---|
Unity.Profiler.GetFrameRangeTopTimeSummary |
フレーム範囲 | 複数フレーム区間の上位時間サマリー |
Unity.Profiler.GetFrameTopTimeSamplesSummary |
フレーム番号 | 特定フレームの総時間基準上位サンプル |
Unity.Profiler.GetFrameSelfTimeSamplesSummary |
フレーム番号 | 特定フレームの自己時間基準上位サンプル |
Unity.Profiler.GetSampleTimeSummary |
サンプル識別子 | 特定サンプルの時間サマリー |
Unity.Profiler.GetBottomUpSampleTimeSummary |
サンプル識別子 | ボトムアップ分析基準のサンプル時間 |
Unity.Profiler.GetSampleTimeSummaryByMarkerPath |
Marker IDパス | Markerパス基準のサンプル時間 |
Unity.Profiler.GetRelatedSamplesTimeSummary |
サンプル識別子 | 同時実行中の他スレッド関連サンプル |
Unity.Profiler.GetOverallGcAllocationsSummary |
(なし) | 全データのGCアロケーションサマリー |
Unity.Profiler.GetFrameGcAllocationsSummary |
フレーム番号 | 特定フレームの上位GCアロケーションサンプル |
Unity.Profiler.GetFrameRangeGcAllocationsSummary |
フレーム範囲 | 複数フレーム区間のGCアロケーションサマリー |
Unity.Profiler.GetSampleGcAllocationSummary |
サンプル識別子 | 特定サンプルのGCアロケーションサマリー |
Editor(7個)
すべてAgentToolMcpAdapterを介してブリッジングされます。
Unity.GetUserGuidelines
プロジェクトのコーディング規約・フォルダ構造・命名規則などのコンテキストを読み込みます。ファイルの作成・編集・分析の前に呼び出すことで、既存のプロジェクトスタイルに合った結果を得られます。
パラメータなし
Unity.GetProjectData
プロジェクト概要のMarkdown生成に必要な基本プロジェクトデータを返します。
パラメータなし
Unity.PackageManager.GetPackageData
Unityパッケージの説明・バージョン・依存関係情報を照会します。パッケージのインストールには使用できません。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
packageName |
文字列 | ✓ | — | パッケージ名(例:com.unity.addressables) |
※ パラメータ名はソースから直接確認できなかったため、実際の名前と異なる場合があります。
Unity.PackageManager.PackageManagerExecuteAction
Unityパッケージの追加・削除、またはサンプルのインストールを行います。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
action |
文字列 | ✓ | — | 'Add' | 'Remove' | 'InstallSample'(推定) |
packageName |
文字列 | ✓ | — | パッケージ名 |
※ パラメータ名はソースから直接確認できなかったため、実際の名前と異なる場合があります。
Unity.Camera.Capture ★ デフォルト有効
シーンの特定カメラまたは現在のシーンビューを画像でキャプチャします。計算コストが高いため、シーンビューコンテキストが必ず必要な場合のみ使用してください。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
instanceId |
整数 | ✗ | — | Cameraコンポーネントを持つGameObjectのインスタンスID。省略時は現在のシーンビューをキャプチャ |
Unity.SceneView.Capture2DScene ★ デフォルト有効
2Dシーンの特定矩形領域を正射影(トップダウン)でキャプチャします。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
x |
浮動小数点 | ✓ | — | キャプチャ領域の中心ワールドX座標 |
y |
浮動小数点 | ✓ | — | キャプチャ領域の中心ワールドY座標 |
width |
浮動小数点 | ✓ | — | キャプチャ領域のワールド幅 |
height |
浮動小数点 | ✓ | — | キャプチャ領域のワールド高さ |
pixelsPerUnit |
浮動小数点 | ✗ | — | 解像度(高いほど詳細だが画像サイズが増大) |
Unity.SceneView.CaptureMultiAngleSceneView ★ デフォルト有効
3Dシーンをアイソメトリック・正面・上部・右側の4方向でキャプチャし、2×2グリッドで返します。3Dシーン専用であり、2DシーンにはUnity.SceneView.Capture2DSceneを使用してください。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
focusObjectIds |
整数配列 | ✗ | — | フレームを合わせるGameObjectのインスタンスIDリスト。省略時はシーン全体のオブジェクトにフレームを合わせる |
実際によく使う組み合わせ
リファレンスをひと通り確認すると、どのツールを組み合わせるか感覚がつかめてきます。実務で繰り返し登場するパターンをいくつか整理しておきます。
スクリプト編集フロー: Unity.GetSha → Unity.ReadResource → Unity.FindInFile → Unity.ApplyTextEditsの順が安全です。事前にSHAを取得しておくと、同時編集の競合を防げます。構造的な変更の場合は、Unity.ScriptApplyEditsを先に検討してください。
AIアセット生成フロー: Unity.AssetGeneration.GetModelsで有効なmodelIdを確認してからGenerateAssetを呼び出すのが基本です。スプライトの場合、生成直後にRemoveImageBackgroundを続けて呼び出すことをUnity公式ソースでも推奨しています。
Profiler分析フロー: Unity Profilerウィンドウにキャプチャデータがなければ、Profilerツール11個はすべて空の結果を返します。まずデータをキャプチャしてから、GetFrameRangeTopTimeSummaryでボトルネック区間を絞り込み、GetSampleTimeSummaryで特定のサンプルを深掘りする順序が効率的です。
合わせて読みたいポスト
- Unity MCP完全ガイド:Claude Code・Codex・Gemini・CursorをUnity Editorと連携する — Unity MCP・AI Gatewayのセットアップ全工程。このリファレンスのツールを使用するための前提設定
- Unity MCPカスタムツール作成:McpTool Deep Dive — ビルトインツールでは不十分な場合に自作する方法。4つの登録方式と実務例3つ
- Unity AI Assistant完全入門:Ask・Plan・Agentモード — Unity内蔵AIエージェントの3つのモード比較