Warcraft III Map Tools について
Warcraft III マップ制作者向けの MCP サーバーで、AI アシスタントによる `.w3x` と `.w3m` の読み取り、監査、編集を可能にし、変更していないバイト列を保持します。付属資料を検索でき、ローカルインデックスの導入後はセマンティック検索とグラフ検索にも対応します。
主な機能
- 01マップの読み取り、監査、編集
- 02未変更ファイルのバイト列を保持
- 03アセット、オブジェクトデータ、動作の検査
- 04付属資料のオフライン検索
- 05ローカルインデックスによる意味検索とグラフ検索
活用シーン
- 01マップのアセットやオブジェクトデータの問題を確認
- 02他のファイル内容を変えずにマップを編集
- 03Warcraft III エディター資料を検索
- 04マップのバージョン比較や互換性確認
MCP 対応
wc3ctl に含まれる MCP サーバーで、標準 stdio を通じてマップ操作、監査、ドキュメント検索のツールを MCP クライアントに公開し、参考資料全体を MCP リソースとして提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
wc3-mcp
GodMephisto 製
Claude などの AI アシスタントが、Warcraft III の .w3x および .w3m マップをバイト単位で忠実に読み取り、監査、編集できる MCP サーバーです(変更していないファイルのバイト列は保持されます)。
wc3ctl の MCP サーバーです。wc3ctl にはコマンドラインツールとデスクトップエディターもあります。これらも利用したい場合は wc3ctl をインストールしてください。このサーバーは wc3ctl mcp serve と同じものです。
必要なもの
- 64 ビット版 Windows。ゲームデータリーダー(CascLib)は Windows ライブラリです。
- Warcraft III Reforged。必要なのは、ベースゲームのデータを読み取るツールのみです。マップツールはなくても動作します。
- MCP に対応した AI アプリ。ほかに必要なものはありません。リリースには独自の .NET が含まれています。
インストール
PowerShell を開き、次を実行します。
irm https://raw.githubusercontent.com/GodMephisto/wc3-mcp/main/install.ps1 | iex
最新リリースをダウンロードして SHA-256 を確認し、%LOCALAPPDATA%\Programs\wc3-mcp に展開して、そのフォルダーを PATH に追加し、検出されたすべての対応 AI アプリを設定します。管理者権限は不要です。同じコマンドを再度実行すると更新できます。その後、AI アプリを再起動してください。
手動でインストールする場合は、リリースページから ZIP をダウンロードし、任意のフォルダーに展開して、そのフォルダーから次を実行します。
.\wc3-mcp.exe install --all
セットアップでは、実際に exe が置かれている場所が記録されるため、どのフォルダーでも使えます。また、そのフォルダーはユーザーの PATH に一度だけ追加されるので、以降は新しいターミナルで wc3-mcp を実行できます。PATH への追加を省略するには --no-path を渡し、代わりにそのフォルダーから .\wc3-mcp.exe を実行してください。
Claude Desktop だけを使う場合は、リリースページから wc3-mcp-<version>-win-x64.mcpb をダウンロードし、ダブルクリックしてください。Claude Desktop に拡張機能としてインストールされます。設定項目は Warcraft III のフォルダーのみで、空欄のままにするとインストール先が自動検出されます。また、サーバーは MCP レジストリにも io.github.GodMephisto/wc3-mcp として登録されており、そこからインストールできるアプリでも利用できます。
コンテキストと RAG
インストール直後から、サーバーは同梱された Warcraft III リファレンス、Big UI-Frame Tutorial、Editor Ability Insight ドキュメントを使って、語彙ベースかつオフラインで docs_search に応答し、それぞれの全文を MCP リソースとして提供します。
コーパス全体とセマンティック検索を利用するには、ローカルインデックスをインストールしてください。AI アプリから rag_install ツールを呼び出すか、シェルから次を実行します。
wc3ctl rag install
2 つのファイルを一度だけ取得し、それぞれを固定されたダイジェストと照合して検証します。埋め込みモデル BAAI/bge-small-en-v1.5 は約 130 MB、コーパスはこのリポジトリの dataset-v1 リリースから取得する約 61 MB です。その後、ローカルのベクトルインデックスとグラフを構築します。データベース、サービス、キーは不要で、デフォルトでは CPU の使用量を低く抑える設定になっています。完了すると docs_search でセマンティック検索が使えるようになり、グラフツール graph_neighbors、graph_hubs、graph_path も利用できます。インストール状況は wc3ctl rag status で確認できます。
AI アプリをセットアップする
これらの操作には wc3-mcp が PATH に設定されている必要があります。1 行のインストールコマンドと、最初の
wc3-mcp.exe install コマンドで設定されます。それまでは、exe があるフォルダーから
.\wc3-mcp.exe ... として実行してください。
wc3-mcp install --all set up every supported app found on this PC
wc3-mcp install cursor vscode set up only the apps named
wc3-mcp uninstall --all remove it again
wc3-mcp config <app> print the settings to paste by hand
wc3-mcp clients list supported apps and whether each is set up
wc3-mcp doctor check the install, the game folder and the apps
| アプリ | 使用する名前 | 書き込み先 |
|---|---|---|
| Claude Code | claude-code | claude mcp add --scope user を通じて設定 |
| Claude Desktop | claude-desktop | %APPDATA%\Claude\claude_desktop_config.json(Store 版も同様) |
| Cursor | cursor | %USERPROFILE%\.cursor\mcp.json |
| VS Code(GitHub Copilot) | vscode | %APPDATA%\Code\User\mcp.json |
| Windsurf | windsurf | %USERPROFILE%\.codeium\windsurf\mcp_config.json または %APPDATA%\devin\mcp_config.json |
| Gemini CLI | gemini | %USERPROFILE%\.gemini\settings.json |
| Codex CLI | codex | %CODEX_HOME% または %USERPROFILE%\.codex\config.toml |
| Cline | cline | Cline 用の VS Code ストレージ内にある cline_mcp_settings.json |
| LM Studio | lmstudio | %USERPROFILE%\.lmstudio\mcp.json |
| Zed | zed | %APPDATA%\Zed\settings.json |
セットアップで変更されるのは wc3 のエントリだけです。ファイル内のほかのサーバーや設定はすべてそのまま保持され、先にファイルのコピーが NAME.wc3-mcp.bak として作成されます。コメントを含むファイル(Zed や VS Code では一般的です)は、コメントが削除されてしまうため、書き換えられることはありません。代わりに、貼り付ける設定が表示されます。
その他の MCP アプリ
これは標準の stdio MCP サーバーです。引数を指定せずに、アプリから wc3-mcp.exe を呼び出してください。wc3-mcp config cursor を実行すると、実際のパスが入力された、そのまま使える JSON エントリが出力されます。ほとんどのアプリでは、そのまま受け付けられます。
設定
Warcraft III のフォルダーは、まず Windows レジストリから自動検出され、次に
C:\Warcraft III、C:\Program Files (x86)\Warcraft III、
C:\Program Files\Warcraft III の順に検索されます。別の場所にある場合は、次のいずれかを行ってください。
wc3-mcp install --all --game-dir "D:\Games\Warcraft III"でインストールします。各アプリのエントリにWC3_GAME_DIRが設定されます。または、- 1 回のツール呼び出しに
game_dirを渡します。
game_dir 引数は WC3_GAME_DIR より優先され、WC3_GAME_DIR は自動検索より優先されます。wc3-mcp doctor を実行すると、使用中のフォルダーが表示されます。
ソースからビルドする
.NET 8 SDK をインストールした状態で PowerShell を開き、次を実行します。
git clone https://github.com/GodMephisto/wc3-mcp
cd wc3-mcp
dotnet test --filter "Category!=Corpus&Category!=GameData&Category!=Doctor"
dotnet publish src/Wc3.Mcp/Wc3.Mcp.csproj -c Release --self-contained -r win-x64 -o dist-mcp
.\dist-mcp\wc3-mcp.exe install --all
アプリは、クローンしたリポジトリの dist-mcp フォルダー内にある exe を起動します。また、このフォルダーを PATH に設定します。そのため、クローンしたリポジトリは現在の場所に置いたままにするか、移動後に最後の行を再実行してください。
正確な SDK とパッケージのバージョンは REQUIREMENTS.md に記載されています。
CascLib.dll は wc3-mcp.exe の隣に置いてください。
ツール
251 個のツールです。
| 名前 | 読み取り/書き込み | 説明 |
|---|---|---|
| asset_audit | 読み取り専用 | インポート済みアセットのうち、不審なものを検出します。max_bytes を超えるエントリ、幅または高さが 2 の累乗ではない BLP テクスチャ、.m... がないバイナリ .mdx を報告します。 |
| asset_convert_batch | 書き込み | フォルダー内のすべてのテクスチャを 1 つのターゲット形式に変換します。共通コンバーターを再利用し、相対パスを維持して out_dir にコピーを書き込みます。... |
| asset_duplicates | 読み取り専用 | マップにインポートされたファイルのうち、バイト列が同一のものを sha256 でグループ化し、各重複グループが無駄にしている容量を報告します。0 バイトのエントリは除外されます。読み取り専... |
| asset_import_wire | 書き込み | ディスク上のファイルをマップにインポートし、ファイルがモデルまたはアイコンで、object がオブジェクトを指定している場合は、一致するモデルまたはアイコンのフィールドを新しいインポ... |
| asset_list | 読み取り専用 | アイコンまたはモデルのオブジェクトフィールドに実際に設定できるアセットパスを、マップ独自のインポート済みファイルと基本ゲームから一覧表示します。設定する前に、必ずこれを確認してくだ... |
| asset_model_lint | 読み取り専用 | マップ内のすべてのインポート済みモデル(.mdx/.mdl)をスキャンし、静的チェックで検出可能な構造上の問題を報告します。たとえば、マテリアルのないジオセットや、t... |
| asset_replace | 書き込み | アセットパスが参照されているすべての箇所(オブジェクトデータのフィールド値、スクリプトの文字列リテラル、war3map.imp インポートテーブル)を置換し、編集済みコピーを保存します... |
| asset_size_report | 読み取り専用 | マップにインポートされたバイト数を親フォルダーごとに分類し、合計が大きい順に表示します。マップ容量の大部分を占めるフォルダーが一目でわかります。読み取り専用です。 |
| asset_thumbnails | 書き込み | フォルダー内のすべてのモデル、またはフォルダー内の各マップにインポートされたすべてのモデルのサムネイル PNG をレンダリングし、out_dir に書き込みます。モデル... |
| asset_unused | 読み取り専用 | オブジェクトデータのフィールド値にもスクリプトの文字列リテラルにも参照されていない、マップのインポート済みファイルを、各ファイルのサイズとともに一覧表示します。削除前に確認する... |
| audit_ability | 読み取り専用 | ヒーローに配置された各アビリティについて、実行時のチェーン全体に PASS または問題のあるリンクを正確に報告します。キャストがハンドラに到達することだけを確認する audit_hero より、はる... |
| audit_fidelity | 読み取り専用 | 移植されたオブジェクトのデータが忠実に引き継がれたかを、移植元の SOURCE マップにおけるオブジェクトとカスタムオブジェクトの依存関係全体を比較して報告します... |
| audit_hero | 読み取り専用 | 配置されたヒーローのアビリティが、オブジェクトデータとして存在するだけでなく、実際にマップのスクリプトに接続されているかを報告します。各アビリティについて、w... |
| audit_map | 読み取り専用 | マップのオブジェクトデータを動作面から監査します。読み取り専用です。'validate' がマップを LOAD できるかを答えるのに対し、こちらはアビリティが CLAIM どおりに動作するかを答えます... |
| audit_readiness | 読み取り専用 | 配置されたヒーローのスクリプトが、単に発動するだけでなく、実際に正しく実行されるかを報告します。キャストがハンドラに到達することしか確認しない audit_hero では検出できない差異... |
| audit_trend | 読み取り専用 | 2 つのマップに動作監査を実行し、2 つ目のマップで追加・削除された指摘をチェック別に報告します。現在の問題を答える audit_map に対し、こちらは変更内容を示します... |
| bench_compat | 読み取り専用 | すべてのマップをすべてのターゲットビルドに対してチェックし、各セルの指摘件数とともに合否マトリックスを返します。さらにグリッド全体の集計も返します。合... |
| bench_leaks | 読み取り専用 | フォルダー内のすべてのマップで静的リーク検出を実行し、マップ別およびリーク種別ごとの件数と、頻出および重複の合計を報告します。フォルダー全体のスキャン... |
| bench_open | 読み取り専用 | フォルダー内のすべてのマップをローダーで開き、マップごとのオープン時間(ミリ秒)、エントリ数、合計展開済みバイト数を記録し、最も遅いマップを報告します... |
| bench_perf_gate | 読み取り専用 | 記録済みのベンチマーク結果 JSON ファイル 2 つを比較し、いずれかの指標がしきい値を超えて悪化したかを報告します。CI ゲートとして使用できます。各ファイルはオブジェクト... |
| bench_schema_coverage | 読み取り専用 | スキーマコーパスに含まれるオブジェクトデータを測定します。スキーマフォルダーごとに 1 行で、ビルド、その時代区分、オブジェクトデータが実データか(フォルダーに実データが含...)を示します。 |
| bundle_diff | 読み取り専用 | 2 つの依存バンドル('bundle unit -o' が書き出す JSON)をオブジェクトとアセットのメンバーごとに比較し、それぞれが追加、削除、または名前変更した項目を一覧表示します。 |
| bundle_merge | 書き込み | 2 つの依存バンドルを 1 つにマージし、out_path に JSON として書き込みます。同じ rawcode が 2 つのバンドルで異なる定義になっている場合(種類が異なる...)は拒否します。 |
| bundle_unit | 読み取り専用 | ユニットのすべての依存関係を解決します。移植プレビューとして、参照オブジェクト(カスタムからマップへのフラグ付き)、アセットファイル、トリガー文字列、依存エッジなどを表示します... |
| camera_add | 書き込み | 指定した位置にカメラを追加し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。名前が空白または重複している場合は拒否します。 |
| camera_list | 読み取り専用 | マップのカメラ(war3map.w3c)を一覧表示します。各カメラの名前、ターゲット位置、回転、攻撃角度、距離、視野角を表示します。 |
| camera_remove | 書き込み | カメラを削除し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| camera_set | 書き込み | カメラのフィールドを設定し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。編集可能なフィールド:Name|TargetX|TargetY|ZOffset|Rotation... |
| camera_tour | 書き込み | 既存の 2 台のカメラの間を補間した N 台のカメラを追加し、滑らかなツアーパスを作成して、編集済みマップを out_path に保存します。すべての浮動小数点フィールドは線形に補間され... |
| changelog | 読み取り専用 | 2 つの参照間の git log からリリースノートを生成します。Conventional Commit の種類(feat、fix、perf、docs、chore など)ごとにグループ化し、各グループに見出しを付けます... |
| ci_all | 読み取り専用 | lint、validate、および target が指定されている場合は compat を一括実行します。各ゲートの要約行と、終了コード(0 は成功、1 は失敗)を伴う全体の合否を返します... |
| ci_compat | 読み取り専用 | CI ゲートとして compat チェックを実行します。確認した内容と終了コード(0 は成功、1 は失敗)を含む合否を返します。エラーレベルの指摘、または nat... がある場合に失敗します。 |
| ci_lint | 読み取り専用 | CI ゲートとして lint を実行します。チェックごとに確認した内容と終了コード(0 は成功、1 は失敗)を含む合否を返します。エラーレベルの指摘がある場合、または... |
| ci_schema | 読み取り専用 | CI ゲートとしてスキーマデータセットのリグレッションをチェックします。チェックごとに確認した内容と終了コード(0 は成功、1 は失敗)を含む合否を返します。... の場合は失敗します。 |
| ci_validate | 読み取り専用 | CI ゲートとして検証を実行します。確認した内容と終了コード(0 は成功、1 は失敗)を含む合否を返します。マップを読み込めない場合、または... と報告した場合に失敗します。 |
| compat_explain | 読み取り専用 | ターゲットビルドに対して 1 つの識別子を説明します。ターゲットでネイティブ、グローバル、型、関数として宣言されているかを報告し、宣言されていない場合は、最も古いビルドを示します... |
| compat_matrix | 読み取り専用 | 複数のマップを複数のターゲットビルドに対してチェックし、各セルの指摘件数とともにセルごとの合否グリッドを返します。合格とは、ターゲットビルドが... |
| deprotect_map | 書き込み | 保護されたマップで削除されたファイル名を復元します。保護されたマップには (listfile) がないため、ほとんどのエントリには名前がなく、名前で検索できません。... |
| diff | 読み取り専用 | 2 つのマップを比較し、追加、削除、変更された内部ファイルを報告します。編集によってマップに実際に何が起きたかを確認し、... をチェックする直接的な方法です。 |
| doctor_check | 読み取り専用 | このマップは Reforged 3.0 で動作するか、動作しない場合はその理由を示します。判定と指摘を返し、それぞれにコード、重大度(ブロッカー、警告、情報)、影響を受けるファイルまたは mod... が含まれます。 |
| doctor_compare | 読み取り専用 | マップの 2 つのバージョンの違いをファイルごとに(追加、削除、変更)表示します。保護されたアーカイブでは名前を復元し、オブジェクト、スクリプト、文字列の差異も示します... |
| doctor_fix | 書き込み | doctor の Fix map を使い、マップのコピーを Reforged 3.0 用に修復します。対象は保護、偽のファイルテーブル、スクランブルされた ID、3.0 エンジンが拒否するデータ、壊れた SLK テーブル... です。 |
| doctor_inspect | 読み取り専用 | 1 つのマップに関する読み取り専用の doctor レポートを生成します。diag はマップの保護内容と World Editor が必要とするものを示し、SLK モードで実行されるか、および修正手順も含みます... |
| editor_catalog_get | 読み取り専用 | World Editor カタログの項目を 1 つ表示します。各項目の保存キー(マップファイルが実際に保持するトークン)、解決済みの表示名、すべてのペイロードフィールドを表示します... |
| editor_catalog_list | 読み取り専用 | UI\WorldEditData.txt から World Editor のカタログ名と項目数を一覧表示します(TileSets、SkyModels、LoadingScreens、SoundChannels、MapSizes、ブラシ...)。 |
| file_get_text | 読み取り専用 | 内部ファイルを UTF-8 としてデコードして読み込みます。先頭の BOM は削除されます。マップの s... を含む war3mapSkin.txt などの上書きテキストファイルに使用します。 |
| file_list | 読み取り専用 | アーカイブの内部エントリを現在のサイズとともに一覧表示します。現在のサイズは、古い元ファイルではなく、保留中の置換を反映します。名前がないエントリの name は null です... |
| file_set | 書き込み | ディスク上のファイルから内部ファイルのバイト列をそのまま置換し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。バイト列は... |
| force_list | 読み取り専用 | マップのフォース/チーム(war3map.w3i)を一覧表示します。各フォースのインデックス、名前、メンバーのプレイヤー ID、同盟/共有フラグを表示します。 |
| force_rename | 書き込み | war3map.w3i のフォース(チーム)名を変更し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| force_set_flags | 書き込み | フォースの同盟/共有フラグを設定し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| force_set_players | 書き込み | フォース(チーム)へのプレイヤーの追加または削除を行い、編集済みマップを out_path に保存します。add または remove のいずれか 1 つだけを指定してください。追加すると、プレイヤーは元のフォースから... |
| gamedata_bounds | 読み取り専用 | 1 つのビルド、またはフィールドが存在するすべてのビルドについて、フィールドコードの型、最小値と最大値、空にできるかどうか、および定義しているオブジェクトメタデータファイルを報告します... |
| gamedata_changelog | 読み取り専用 | 2 つのビルドのオブジェクトデータをフィールドごとに比較します。追加、削除、型変更、または最小値や最大値が変更されたフィールドを、オブジェクトメタデータファイル別に報告します... |
| gamedata_coverage | 読み取り専用 | スキーマフォルダーごとに 1 行で、ビルド、その時代区分、含まれるセクション(objects、triggers、script、enums)、フィールド数、ネイティブ数を一覧表示します。... |
| gamedata_enum | 読み取り専用 | ビルドの UnitEditorData.txt から、列挙型オブジェクトフィールドで有効な値の集合を報告します。1 つのビルド、またはそのフィールドが存在するすべてのビルドが対象です... |
| gamedata_export_schemas | 書き込み | スキーマデータセットを書き出します。すべてのスキーマフォルダーをターゲットディレクトリにコピーするか、out_path が .zip で終わる場合はデータセット全体を 1 つの zip にまとめます。... |
| gamedata_field_lookup | 読み取り専用 | 1 つのビルドまたはすべてのビルドで、表示名に検索語句が含まれるオブジェクトフィールドコードを検索します。一致した各項目について、コード、表示名、型、ビルドを報告します。 |
| gamedata_history | 読み取り専用 | すべての記録済みビルドについて、名前がオブジェクトフィールドコード、ネイティブ、型、グローバル、関数のいずれかかを報告します。各種類が登場するすべてのビルドを一覧表示します... |
| gamedata_schema_diff | 読み取り専用 | 2 つのスキーマフォルダー(gamedata schema が生成)を比較し、追加、削除、変更されたオブジェクトフィールド、トリガー関数、スクリプト型、ネイティブを報告します... |
| gamedata_sources | 読み取り専用 | データセットの出典インデックスを返します。各スキーマフォルダーについて、ビルド、時代区分、存在するセクション、各セクションファイルの SHA-256 を報告します... |
| hero_install | 書き込み | ヒーロー定義をマップにインストールし、結果を out_path に保存します。衝突する可能性がある rawcode を再割り当てし、ヒーローのアセットを書き込み、ターゲ... を報告します。 |
| hero_lint | 読み取り専用 | ヒーロー定義フォルダーを検証してからインストールします。アセットの存在とハッシュの一致、オブジェクトがインストール可能か、宣言されたスクリプト関数が存在するか、未解決の... がないかを確認します。 |
| hero_roster | 読み取り専用 | マップに登録されているプレイ可能なヒーローを一覧表示します。各ヒーローの rawcode、表示名、登録呼び出しの文字列タグ(通常は役割とポートレート...)を表示します。 |
| imports_list | 読み取り専用 | マップのインポートテーブル(war3map.imp)を、アーカイブに実際に含まれる内容と照合して一覧表示します。これにより、ファイルが存在しないテーブルエントリや、テーブルにないファイルを... |
| leak_ab | 読み取り専用 | 2 つの wc3watch セッションを比較し、それぞれの強制ガベージコレクションから測定したハンドルとメモリの傾きが低下したかを報告します。通常の形は... |
| leak_benchmark | 読み取り専用 | 合成マップ一式でリーク検出器を実行します。各マップには既知のリークが作成者の種類ごとに 1 つ注入され、リークのない対照マップも含まれます。真陽性数と偽... を報告します。 |
| leak_harness | 書き込み | マップ自身の言語(jass または lua)で小さなマップ内ハーネスを出力します。指定した頻出リーク候補を短いタイマーで動作させ、実行時のハンドルとメモリ... を確認します。 |
| leak_join | 読み取り専用 | マップの静的リークリストを wc3watch セッションフォルダーに結合します。samples.csv と events.csv を読み込み、セッションの強制ガベージコレクションからハンドルとメモリの傾きを算出します... |
| leak_list | 読み取り専用 | マップのスクリプトにおける静的ハンドルリーク一覧を、順位付きで表示します。リークに関係する周期タイマーとトリガー、および関数ごとの頻出リーク対象もすべて表示します。読み取り専用です... |
| leak_model | 読み取り専用 | マップにインポートされたモデルとテクスチャ全体を対象に、モデルレベルのリークと無駄を報告します。モデル監査の結果とインポートテーブルを結合し、インポート済み... を検出します。 |
| library_audit | 読み取り専用 | フォルダー内のすべてのマップに動作監査を実行し、マップごとの指摘とチェックごとの合計を報告します。これにより、ライブラリ全体を必要な作業量で順位付けできます... |
| library_compare | 読み取り専用 | マップの 2 つのフォルダーをファイル名と内容ハッシュで比較し、最初のフォルダーだけにあるマップ、2 つ目のフォルダーだけにあるマップ、両方にあるが変更されたマップを一覧表示します... |
| library_report | 書き込み | マップフォルダー全体を対象に、要約行、マップごとの表、集計された指摘を含む Markdown レポートを 1 つ作成し、out_path に書き込みます。このレポートは同じ... から生成されます。 |
| library_scan | 読み取り専用 | フォルダー内のすべてのマップをローダーで開き、マップごとのサイズ(バイト数)、判明している場合は対象ビルド、読み込みの可否、アーカイブエントリ数を報告します... |
| library_validate | 読み取り専用 | フォルダー内のすべてのマップに読み込み検証を実行し、失敗するマップとその理由を一覧表示します。開けないマップは無効として扱います。マップを 1 つ開きます... |
| lint | 読み取り専用 | マップを事前チェックします。スクリプトはコンパイルできるか、war3map.imp はアーカイブの内容と一致するか、参照されているアセットパスは解決できるか、すべてのエントリは読み込み可能か... |
| lint_baseline | 書き込み | マップの現在の lint 指摘をベースライン JSON ファイルに書き込みます。後続のゲートで CLI の 'lint --baseline ' を実行すると、このファイルに記録され... の指摘だけが失敗になります。 |
| list_files | 読み取り専用 | マップアーカイブの内部ファイルを一覧表示します。各ファイルの名前(null = 名前なし/保護されたエントリ)、サイズ(バイト数)、wc3ctl が形式を認識/解析できるかどうか、... を表示します。 |
| map_compat | 読み取り専用 | Warcraft III マップをターゲットビルド(スキーマフォルダーのパスまたはビルド名)に対してチェックします。コンパイル時の非互換性(不足しているネイティブ、グローバル、型...)を報告します。 |
| map_info | 読み取り専用 | Warcraft III マップのメタデータ(名前、作成者、プレイヤー数、プレイ可能なサイズ、読み込み診断)を表示します。 |
| map_info_get | 読み取り専用 | マップの編集可能なシナリオフィールド(war3map.w3i)を読み込みます。名前、作成者、説明、推奨プレイヤー数、タイルセット、環境、フォグ、マップオプションのフラグを表示します... |
| map_info_set | 書き込み | シナリオフィールドを設定し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。編集可能なフィールド:MapName|Author|Description|RecommendedPl... |
| map_optimize | 書き込み | マップ内のすべてのインポート済みモデルとテクスチャを一括で縮小し、置換したファイル以外はすべてバイト単位で同一の新しいマップを out_path に書き込みます... |
| map_overview | 読み取り専用 | マップごとに 1 回の呼び出しで、メタデータ(名前、作成者、プレイヤー数、サイズ)、すべてのアーカイブファイル、Object Editor の種類別のカスタムまたは変更済みオブジェクト数、および... を表示します。 |
| mcp_audit_annotations | 読み取り専用 | MCP ツールのインターフェース自体を監査します。名前とアノテーションが一致しないツール(変更を行う名前なのに読み取り専用とされているもの)と、... を宣言しているすべてのツールを報告します。 |
| mcp_export_verify | 読み取り専用 | wc3-mcp のチェックアウトに、このリポジトリから server source scripts/export-wc3-mcp.py が書き出すものと同じソースが含まれているか検証し、異なるファイルをすべて報告します... |
| model_audit | 読み取り専用 | .mdx または .mdl モデルを監査し、オプティマイザーで削除できるリソースの無駄や描画されない要素の問題を報告します。重複テクスチャ、ジオ... を検出します。 |
| model_export_obj | 書き込み | マップにインポートされたモデルを Wavefront OBJ として out_path に書き出し、MTL と、マップから解決可能なテクスチャを PNG に変換して隣に書き込みます。マップ自体は... |
| model_import | 書き込み | 外部モデルファイルを Warcraft III MDX に変換し、out_path に書き込みます。Wavefront OBJ(.obj)、glTF 2.0(.gltf および .glb)、STL(.stl、バイナリおよび ASCII)、PLY(...)に対応します。 |
| model_lod | 書き込み | .mdx または .mdl モデルの詳細度チェーンを生成し、比率ごとにオプティマイザーを 1 回実行して、間引き済み MDX を out_dir に書き込みます。ratios i... |
| model_optimize | 書き込み | .mdx または .mdl モデルのジオメトリを二次誤差メトリックで間引き、面積ゼロの面と重複テクスチャを削除して、より小さな MDX を out_path に書き込みます... |
| mpq_add | 書き込み | ディスク上のファイルから内部アーカイブファイルを 1 つ追加または置換し、バイト列を忠実に保持します。名前が追加されたか置換されたか、およびペイロードが... かを報告します。 |
| mpq_bytes_diff | 読み取り専用 | 2 つのアーカイブをエントリ名ごとに比較します。両方に存在する各名前について、ペイロードの SHA256 が一致するかを報告し、片方にしか存在しない名前も一覧表示します... |
| mpq_extract_all | 書き込み | アーカイブ内の名前のない保護ブロックを含め、マップアーカイブのすべてのエントリをディレクトリに展開します。'extract' と同じパス安全性ルールを使用します。アーカイブに対して読み取り専用... |
| mpq_listfile | 読み取り専用 | アーカイブの listfile の網羅状況を 3 つに分けて報告します。含まれる listfile が名前を示すエントリ、標準名プローブで復元されたエントリ、および... |
| mpq_merge | 書き込み | 2 つのマップアーカイブを 1 つにマージし、両方から読み取り可能な名前付きエントリをすべて取り込みます。両方にある名前は優先側を採用し、競合として報告します。書き込み... |
| mpq_name_recover | 読み取り専用 | 候補名の辞書をアーカイブのハッシュテーブルと照合し、名前のないブロックに一致した名前を報告します。名前のないブロックを... する deprotect_map より対象が限定されています。 |
| mpq_rebuild | 書き込み | マップアーカイブを最初から正常な状態に再構築し、読み取り可能なエントリをすべて再配置します。保護によって読み取れなくなったブロック、または名前が失われたブロックを削除します。... |
| mpq_remove | 書き込み | 対象ファイルを除いてアーカイブを再構築することで、内部ファイルを 1 つ削除します。再構築で実際にその名前が削除されたかを報告します。コピーを書き込み、入力マップは決して... |
| mpq_strip_bookkeeping | 書き込み | (listfile) と (attributes) の管理用エントリを削除したマップのコピーを保存し、そのコピーを再度開けることを確認します。入力マップは決して上書きされません... |
| mpq_verify | 読み取り専用 | マップアーカイブのすべてのエントリを開き、末尾まで読み込みます。読み込みに失敗したエントリと発生したエラー、および件数の要約を報告します。アーカイブが... であることの確認に使用します。 |
| new_map | 書き込み | World Editor で開ける空のマップ(.w3x)を out_path に作成します。入力マップは不要です。書き込み先を返します。 |
| object_bulk_set | 書き込み | where 条件にすべて一致する種類のすべてのオブジェクトについて、1 つのフィールドを設定し、編集済みコピーを out_path に保存します。入力マップは元の場所では絶対に変更されません。where... |
| object_clone | 書き込み | 新しい rawcode でマップオブジェクトをディープコピーし、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。複製はソースのフィールドをコピーします... |
| object_deprecated | 読み取り専用 | ターゲットビルドのスキーマで定義されていないのに、マップで設定されているオブジェクトフィールドを一覧表示します。これらのフィールドはそのビルドでは無視されます。読み取り専用です。ターゲットはス... |
| object_export | 読み取り専用 | 1 種類のオブジェクト(基本ゲームデータにマップの差分を重ねたもの)を、out_path の CSV ファイルに書き出します。オブジェクトごとに 1 行、フィールドコードごとに 1 列で... |
| object_field_options | 読み取り専用 | 基本ゲームデータで実際に使われている値に基づいて、オブジェクトデータフィールド 1 つで有効な値を表示します。列挙型フィールドで object_set を実行する前に確認してください。これにより... |
| object_form | 読み取り専用 | オブジェクトをフラットなフィールド一覧ではなく、編集可能な FORM として取得します。フィールドは World Editor のグループ分け(Art、Combat、Stats、...)に従って分類・並べ替えられます... |
| object_get | 読み取り専用 | オブジェクトのマージ済みフィールド(基本ゲームデータにマップの差分を重ねたもの)を取得します。各フィールドには 'base' または 'map' のラベルが付き、フィールド名は解決済みです。kind を省略すると自動判... |
| object_import | 書き込み | 1 種類の CSV をマップにインポートし、マップで未定義のオブジェクトを追加し、定義済みのオブジェクトを更新してから、編集済みコピーを out_path に保存します。入力... |
| object_list | 読み取り専用 | 1 種類の Object Editor のカスタム/変更済みオブジェクトを一覧表示します。rawcode、ベース rawcode(null = 新規作成)、解決済みの名前を表示します。brief を true にすると... |
| object_migrate | 書き込み | マップのオブジェクトデータを書き換えてターゲットビルドのフィールドセットに合わせ、ターゲットで定義されていないフィールドをすべて削除してから、編集済みコピーを out_path に保存します。入力マ... |
| object_new | 書き込み | ベース rawcode から派生した新しいカスタムオブジェクトを作成し(未使用の rawcode を新たに割り当て)、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更... |
| object_noop_fields | 読み取り専用 | マップの値が基本ゲームの値と等しく、編集しても何も変わらないオブジェクトフィールドを一覧表示します。読み取り専用です。基本値を取得するには game_dir が必要です。指定しない場合は... |
| object_rawcode_suggest | 読み取り専用 | マップ内のオブジェクトにも基本ゲームデータにも存在しない、1 種類の Object Editor で使える空き 4 文字 rawcode を提案します。読み取り専用です。ゲーム... がない場合は... |
| object_rename | 書き込み | オブジェクトの rawcode を変更し、編集済みコピーを out_path に保存します。入力マップは元の場所では絶対に変更されません。rewrite_refs が true の場合は、すべてのオブジェクトデータフィールド値... |
| object_search | 読み取り専用 | 基本ゲームデータとマップ独自の差分の両方を対象に、すべてのカスタムまたは変更済みオブジェクトのフィールド値を全文検索します。読み取り専用です。種類、raw... を報告します。 |
| object_set | 書き込み | 1 種類の Object Editor オブジェクトのフィールドを設定し、編集済みマップを out_path に保存します(その種類の war3map.* ファイルのみ再シリアライズされます)。入力マップは... |
| palette_doodad | 読み取り専用 | マップに配置できるデコレーションの種類を一覧表示します。place_doodad の前に参照するパレットです。基本ゲームのデコレーションカタログ(インストール済み GameData)とマップの... を統合します。 |
| pathing_export_png | 書き込み | マップの war3map.wpm パスグリッドを色分けした PNG として out_path にレンダリングします。パスセルごとに 1 ピクセルで、パスフラグの凡例を付けます。読み取り専用です... |
| pathing_import_png | 書き込み | 色分けした PNG からパスフラグを設定し、編集済みマップを out_path に保存します。各セルのフラグは、ピクセルのデコード結果に置き換えられます。画像... |
| pathing_paint | 書き込み | 円形または正方形のブラシでパスビットを塗り、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。フラグ(カンマ区切り):Wa... |
| pathing_validate | 読み取り専用 | マップの war3map.wpm にあるパス上の問題を検出します。通行不能なタイルが通行可能なタイルに完全に囲まれた箇所や、開始位置が通行不能な... 上にある場合などを報告します。 |
| place_doodad | 書き込み | マップのデコレーションレイヤー(war3map.doo)に、指定した (x, y) でデコレーションを配置し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません... |
| place_grid | 書き込み | 1 種類のユニットまたはデコレーションを rows × cols の規則的なグリッド状に配置し、編集済みコピーを out_path に保存します。グリッドはマップ原点を中心に配置されます。入力... |
| place_item | 書き込み | 指定した種類の配置済みアイテムをワールド座標 (x, y) に置き、編集済みマップを out_path に保存します。アイテムはユニットと war3mapUnits.doo を共有します(WC3 は地面のアイテムを...) |
| place_region | 書き込み | マップのリージョンレイヤー(war3map.w3r)に長方形リージョンを定義し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません... |
| place_scatter | 書き込み | 1 種類のユニットを N 体、決定論的なランダム位置に配置し、編集済みコピーを out_path に保存します。位置は名前付きリージョン内、または... 全体から一様に選ばれます。 |
| place_start_location | 書き込み | プレイヤーの開始位置をワールド座標 (x, y) に配置または移動し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。開始位置は... |
| place_unit | 書き込み | 指定した種類のユニットを指定プレイヤーの所有でワールド座標 (x, y) に配置し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。結果を返します... |
| placed_doodad_get | 読み取り専用 | 作成番号を指定して、配置済みデコレーション 1 つの状態全体を表示します。種類、位置、回転、スケール、バリエーション、ライフの割合を含みます。 |
| placed_doodad_remove | 書き込み | マップに配置済みのデコレーションを削除し、編集済みコピーを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| placed_doodad_set | 書き込み | マップに配置済みのデコレーションのフィールドを 1 つ設定し、編集済みコピーを out_path に保存します。入力マップは元の場所では絶対に変更されません。位置フィールドには 'x... |
| placed_doodads_list | 読み取り専用 | マップに配置済みのすべてのデコレーションと破壊可能オブジェクト(war3map.doo)を一覧表示します。編集または削除に必要な作成番号、種類の rawcode、... を含みます。 |
| placed_fix_refs | 書き込み | 存在しない rawcode を参照する配置を削除する(または to_rawcode を指定して書き換える)ことで、編集済みコピーを out_path に保存し、変更を報告します。... の場合は拒否します。 |
| placed_missing_refs | 読み取り専用 | マップのオブジェクトデータにも基本ゲームデータにも定義されていない rawcode を持つ配置を一覧表示します。game_dir を指定しない場合は、マップのオブジェクトデータのみ確認できます... |
| placed_stats | 読み取り専用 | マップに配置済みのユニットとデコレーションの数を rawcode と種類別に集計し、名前を取得できる場合は各種類の解決済み名称も表示します。読み取り専用です。 |
| placed_unit_get | 読み取り専用 | 作成番号を指定して、配置済みユニット 1 体の状態全体を表示します。種類、所有者、位置、向き、スケール、ヒーローレベルと能力値、ヒットポイントとマナの割合、ゴールド... を含みます。 |
| placed_unit_remove | 書き込み | マップに配置済みのユニットを削除し、編集済みコピーを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| placed_unit_set | 書き込み | マップに配置済みのユニットのフィールドを 1 つ設定し、編集済みコピーを out_path に保存します。入力マップは元の場所では絶対に変更されません。位置フィールドには 'x,y... |
| placed_units_list | 読み取り専用 | マップに配置済みのすべてのユニット(war3mapUnits.doo)を一覧表示します。編集または削除に必要な作成番号、種類の rawcode、所有者、位置... を含みます。 |
| player_list | 読み取り専用 | マップのプレイヤースロット(war3map.w3i)を一覧表示します。各プレイヤーの ID、名前、色、種族、コントローラー、開始位置が固定かどうかを表示します。 |
| player_set_color | 書き込み | プレイヤーのチームカラーを設定し、編集済みマップを out_path に保存します。war3map.w3i にはプレイヤーごとのカラー用フィールドがないため、マップのスクリプトにある SetPlayerColor 呼び出しを書き換えます... |
| player_set_force | 書き込み | プレイヤーをフォース(チーム)に移動し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| player_set_name | 書き込み | プレイヤーの表示名(war3map.w3i)を設定し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| player_set_race | 書き込み | プレイヤーの種族(war3map.w3i)を設定し、編集済みマップを out_path に保存します。有効な値は human、orc、undead、nightelf、random です。入力マップは元の場所では絶対に変更されません... |
| port_deps | 読み取り専用 | rawcode の依存関係全体を報告します。種類別のオブジェクト、バイトサイズ付きアセット、表示文字列、スクリプト関数を含みます... |
| port_into_version | 書き込み | ユニットを移植し、その結果をターゲットビルドのスキーマに合わせてダウングレードします。ビルドで宣言されていないオブジェクトフィールドと、存在しないスクリプト識別子は削除されます... |
| port_preview | 読み取り専用 | ドライランを実行し、rawcode をターゲットマップに移植した場合に追加または変更される内容を正確に一覧表示します。書き込みは行いません。port_unit と同じコードパスを使うため、プレビューと... |
| port_unit | 書き込み | ソースマップからターゲットマップにユニットを移植します(カスタムオブジェクトの依存関係全体、インポート済みアセット、文字列、および可能な範囲で JASS トリガーの依存関係全体)。rawcode は自動的に再割り当て... |
| quickstart | 読み取り専用 | 概要レベルのリクエストを適切なワークフローに振り分けます。マップ作業で通常使われる主要な 10 ワークフロー(inspect、port-hero、reforged-3-fix、black-portrait...)を返します。 |
| region_create | 書き込み | 南西の角 (x, y)、幅 w、高さ h から長方形リージョンを作成し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません... |
| region_list | 読み取り専用 | マップの長方形リージョン(war3map.w3r)を一覧表示します。各リージョンの作成番号、名前、境界を含みます。リージョンの追加には place_region を使用してください。 |
| region_remove | 書き込み | 名前でリージョンを削除し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| region_to_rect | 読み取り専用 | 名前を指定してリージョンを解決し、JASS トリガーの Rect 呼び出しで必要な 4 つの角の値(left、bottom、right、top)と、すぐにコピーできる Rect(...) の行を返します。読み取り専用です。 |
| region_validate | 読み取り専用 | マップの war3map.w3r にある、重複するリージョン、面積ゼロのリージョン、プレイ可能範囲外のリージョンを検出します。境界だけを共有するリージョンは重複とみなしません... |
| render_model | 書き込み | オブジェクトのモデル(マップにインポートされた .mdx/.mdl)をレンダリングし、PNG を out_path に書き込みます。保存先とバイトサイズを返し、小さい画像は M... としてインラインでも返します。 |
| repair_generated | 書き込み | wc3ctl 自身が生成したマップについて、そこにインストールされているヒーロー数に対して狭すぎる配置済みヒーローヘルパーブロックを修復し、修復済みマップを out... に保存します。 |
| replay_diff | 読み取り専用 | 記録されたゲーム(.w3g)を 2 つ比較します。同じマップでプレイされたか、長さの差、プレイヤーごとの退出時間の差をスロット別に報告します。結果を返します... |
| replay_find_map | 読み取り専用 | リプレイ(.w3g)に記録されたマップのパスと、Maps フォルダーにそのマップファイルが存在するかを報告し、.w3x または .w3m を解決します。既定のフォルダーはユーザーの Documents... |
| replay_players | 読み取り専用 | 記録されたゲーム(.w3g)のプレイヤー別テーブルを表示します。名前、スロット、結果、退出時間、退出理由を報告します。このリプレイパーサーではチームと種族は記録されません... |
| replay_stats | 読み取り専用 | 記録されたゲーム(.w3g)の集計統計を報告します。継続時間、プレイヤー数、記録に含まれる場合はプレイヤーごとの毎分アクション数、切断... を表示します。 |
| replay_summary | 読み取り専用 | 記録されたゲーム(.w3g)を読み込み、それぞれのマップ、長さ、プレイヤー、および各プレイヤーの退出方法と時刻を報告します。結果 0x01 で退出したプレイヤーがいるゲームは... |
| replay_timeline | 読み取り専用 | 記録されたゲーム(.w3g)のイベント一覧を時系列順に表示します。ゲーム開始、各チャット行、理由付きのプレイヤー退出、ゲーム終了時刻を報告します。読み取り専用です。 |
| roundtrip | 読み取り専用 | マップの読み込みと保存を行っても、バイト単位で変化しないことを検証します。異なるファイルは、このツールキットで忠実に再現できないものです。これは... 前に知っておくとよい情報です。 |
| script_api_usage | 読み取り専用 | マップスクリプトが使用しているネイティブと関数のうち、ターゲットゲームビルドで宣言されていないものを一覧表示します。移植におけるコンパイル時の互換性を確認できます。同じスキーマメンバーシップ... を使用します。 |
| script_callgraph | 読み取り専用 | マップの war3map.j で宣言されている関数間の呼び出し関係を、呼び出し元から呼び出し先へ表示します。このスクリプトで宣言されている関数間の関係のみを含むため、ネイティ... |
| script_check | 読み取り専用 | マップのスクリプト(war3map.j または war3map.lua)の読み込みを妨げるエラーをチェックします。Lua は luac 5.3.6 と同じように Lua 5.3 に対して厳密にチェックし、行と... を報告します。 |
| script_complexity | 読み取り専用 | 各関数の循環的複雑度を測定します。関数本体にある if、loop、and、or の分岐キーワード数を数え、行番号とともに複雑度の高い順に表示します。... を確認できます。 |
| script_conversion_notes | 読み取り専用 | JASS から Lua へのコンバーターが適用するルールと、変換結果が異なる箇所を示します。構文ごとに 1 行で、JASS 形式、出力される Lua、その Lua が同じように実行されるかを表示します... |
| script_decompile | 書き込み | コンパイル済み Lua 5.3 バイトコードとして収録されたマップのすべての Lua エントリ(war3map.lua、または YDWE マップでよく使われる require 対象のモジュール)を Lua ソースに逆コンパイルします... |
| script_duplicate_bodies | 読み取り専用 | コメント、空白、ローカル変数名の違いを無視して正規化した本体が同一の関数を検出します。コピーされた関数はメンテナンス上の問題となり、ある箇所の修正が... |
| script_format | 書き込み | Lua マップスクリプトを整形し直し、マップを out_path に保存します。pretty はインデント付きでコメントを保持し、canonical はビルド間の差分比較に使える固定形式です。結果... |
| script_functions | 読み取り専用 | コンパイル済みマップスクリプトで宣言されているすべての関数を、開始位置と終了位置とともに一覧表示します。インデントに依存しないため、単純な行スキャンでは見落とす宣言も検出します... |
| script_leaks | 読み取り専用 | マップの war3map.j にあるハンドルリークを検出します(location、group、force、effect、timer、text tag、lightning、作成後に破棄されていない trigger)。各リークを順位... 付けします。 |
| script_lua_api | 読み取り専用 | Lua スクリプトが呼び出しているネイティブと関数のうち、ターゲットゲームビルドで宣言されていないものを一覧表示します。compat チェックと同じスキーマメンバーシップテストを使用し、... |
| script_lua_check | 読み取り専用 | マップ内のすべての Lua ファイルを解析し、luac 5.3 が拒否する構文エラーとその行・列を報告します。script_check より対象が広く、script_check が解析するのは... |
| script_lua_globals | 読み取り専用 | Lua マップで定義されているグローバルと、それぞれが読み書きされる箇所、および書き込まれているが一度も読まれていないグローバルを一覧表示します。script_unused_globals の Lua 版です... |
| script_lua_leaks | 読み取り専用 | Lua マップスクリプトのハンドルリークを検出します。Lua はラッパーを回収しますが、エンジンはハンドルを保持するため、文として呼び出されて破棄されない生成関数や、... ごとの生成関数を検出します。 |
| script_lua_to_jass | 書き込み | 可能な範囲で Lua マップを JASS に変換し、out_path に保存します。JASS から Lua への変換は一般に可逆ではないため、マップで... 構文だけを変換します。 |
| script_modernize | 書き込み | 既知の対応表がある場合、マップスクリプト内の非推奨または名前変更されたネイティブを、ターゲットビルドの表記に書き換え、マップを out_path に保存します。書き換え... |
| script_null_locals | 読み取り専用 | 古典的な JASS ハンドルリークを検出します。関数が破棄するハンドル型のローカル変数(location、group、force、effect、timer、trigger、text tag、lightning)が... |
| script_reachable | 読み取り専用 | マップスクリプトのエントリポイント(main と InitTrig 関数)から到達可能な関数と、どこからも呼び出されないデッド関数を、宣言... とともに一覧表示します。 |
| script_references | 読み取り専用 | マップのコンパイル済みスクリプトにある名前の使用箇所をすべて検出します。直接呼び出しと、コード値として渡される箇所(Condition、Filter、TriggerAddAction)を含みます。... |
| script_semantic_diff | 読み取り専用 | 空白を正規化し、コメントを削除し、ローカル変数名だけの変更を無視して、2 つのマップスクリプトを行ごとに比較し、実質的な変更を報告します... |
| script_to_lua | 書き込み | JASS マップを Lua マップに変換し、out_path に保存します。スクリプトは war3map.lua になります。Lua にない JASS の規則(32 ビット整数の折り返し、整数除算...)は維持されます。 |
| script_unused_functions | 読み取り専用 | マップの war3map.j で宣言されている関数のうち、他の関数から呼び出されず、ほかからも到達されない関数を検出します。エンジンのエントリポイント(main、config、InitC...)は除外します。 |
| script_unused_globals | 読み取り専用 | マップの war3map.j で宣言されているグローバルのうち、一度も読み込まれないものを検出します。デッドコードの変数に関する部分です。代入されるだけで、右辺には一度も登場しないグローバル... |
| search | 読み取り専用 | 大文字と小文字を区別せずに、マップの内容を文字列検索します。アーカイブのファイル名、スクリプト行(行番号付き)、文字列テーブルのエントリ、オブジェクトデータ(カスタム...)を対象にします。 |
| sound_add | 書き込み | 名前をキーとする新しいサウンド定義をマップのサウンドカタログに追加し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| sound_list | 読み取り専用 | マップのサウンドカタログ(war3map.w3s)を一覧表示します。各定義の名前、ファイルパス、チャンネル、フラグ、音量、ピッチ、優先度、最小/最大距離を表示します。 |
| sound_optimize | 書き込み | サウンドファイルをデコードして縮小し、ターゲットレート(既定値は 22050 Hz)にリサンプリングし、必要に応じてチャンネル数を設定してエンコードします。形式は... に基づきます。 |
| sound_remove | 書き込み | マップのサウンドカタログからサウンド定義を削除し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| sound_set | 書き込み | サウンド定義のフィールドを設定し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。編集可能なフィールド:Name|File|Eax|Volume|Pitch|... |
| strings_diff | 読み取り専用 | 2 つのマップの文字列テーブル(war3map.wts)を比較し、追加、削除、変更されたエントリを報告します。エントリは ID で照合されるため、同じキーのテキスト変更も... |
| strings_find | 読み取り専用 | 指定したテキストを含む war3map.wts のエントリを、大文字と小文字を区別せずに検索し、それぞれの ID とともに表示します。読み取り専用です。空の検索語句はすべてのエントリに一致します。 |
| strings_list | 読み取り専用 | マップの文字列テーブル(war3map.wts)を一覧表示します。オブジェクトデータやスクリプトにあるすべての TRIGSTR_ 参照はここで解決されるため、ツールチップなどを読むには... |
| strings_missing | 読み取り専用 | マップのスクリプトと GUI トリガーツリーが参照している TRIGSTR_ キーのうち、対応する war3map.wts エントリがないものを一覧表示します。キーがない場合は、リテラルのトークン TR... が表示されます。 |
| strings_set | 書き込み | war3map.wts のエントリ 1 つのテキストを設定するか、ID が存在しない場合はエントリを追加し、編集済みマップを out_path に保存します。ファイル固有のエンコーディングと改行は... |
| strings_unused | 読み取り専用 | オブジェクトデータのフィールド、マップ情報フィールド、GUI トリガー、スクリプト行のいずれからも参照されていない war3map.wts のエントリを、各エントリのテキストとともに一覧表示します。読み取り専用です。未参照のエントリ... |
| target_get | 読み取り専用 | 現在のターゲットビルド設定を表示します。compat または lint で --target を省略した場合にチェック対象となるビルドと、その設定元(オプション、環境、設定...)を示します。 |
| target_list | 読み取り専用 | スキーマディレクトリで利用できるすべてのビルドと、そのセクションを一覧表示します。--full_only を指定すると、スクリプトのみのビルドを除外します。 |
| target_set | 書き込み | --target が省略されたときに compat と lint が使用するターゲットビルドを設定します。スキーマフォルダーにビルドが存在するか検証します。 |
| terrain_audit | 読み取り専用 | マップの地形(war3map.w3e)について、サイズと測定可能な無駄を監査します。グリッドとタイルの数、使用中の地面および崖テクスチャの種類、崖/傾斜/水... を報告します。 |
| terrain_blight | 書き込み | ブラシ範囲の荒廃(汚染された地面)フラグを設定または解除し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| terrain_cliff | 書き込み | ブラシ範囲の崖(段差のある地形)のレベルを上げる、下げる、または設定し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| terrain_corner_get | 読み取り専用 | 地形コーナー 1 つの状態全体を表示します。地面の高さ、崖のレベル、水、地面と崖のテクスチャインデックスおよびバリエーション、傾斜、荒廃、境界... を含みます。 |
| terrain_corner_set | 書き込み | 地形コーナーを 1 つ選び、そのフィールドを 1 つ設定して、編集済みコピーを out_path に保存します。入力マップは元の場所では絶対に変更されません。領域全体の作業には terrain_deform、terr... を使用してください。 |
| terrain_deform | 書き込み | 円形または正方形のブラシ範囲で地面の高さを上げる、下げる、設定する、平坦化する、または滑らかにし、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません... |
| terrain_export_heightmap | 書き込み | マップの地形の高さを、(Width+1) × (Height+1) のコーナーグリッドを表す 16 ビットグレースケール PNG として out_path に書き出します。コーナーごとに 1 ピクセルです。マップは... |
| terrain_fill | 書き込み | ブラシを 1 回ずつ適用する代わりに、包含矩形内のコーナーに地形ツールを適用して、編集済みマップを out_path に保存します。コーナーは... で指定できます。 |
| terrain_import_heightmap | 書き込み | グレースケール PNG から地形タイルの高さを設定し、編集済みマップを out_path に保存します。PNG の寸法はマップのコーナーグリッドと完全に一致する必要があります。そうでない場合は... |
| terrain_info | 読み取り専用 | コーナー単位で見た地形グリッドの範囲と、マップの地面・崖タイル一覧を表示します。コーナーのテクスチャフィールドはこれらの一覧のインデックスです。最初にこれを確認してください... |
| terrain_optimize | 書き込み | 地形が一度も参照していない、宣言済みの地面および崖のタイル種類を削除し、各コーナーの地面・崖テクスチャを再割り当てして、マップの war3map.w3e を縮小します... |
| terrain_paint | 書き込み | ブラシで地面テクスチャを塗り、編集済みマップを out_path に保存します。texture_index はマップのタイルセットテーブル内のスロットを指定します。入力マップは元の場所では絶対に変更されません... |
| terrain_ramp | 書き込み | ブラシ範囲の傾斜(崖の斜面遷移)フラグを切り替え、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| terrain_smooth | 書き込み | マップ全体を滑らかにします。各パスで、各コーナーの高さを自身とグリッド内の上下左右の 4 隣接コーナーの平均に置き換え、編集済みマップを out_path に保存します。... |
| terrain_stats | 読み取り専用 | マップの地形(war3map.w3e)を要約します。タイル数、地面の高さの最小/平均/最大値、崖レベルの最小/最大値を表示します。読み取り専用です。 |
| terrain_water | 書き込み | ブラシ範囲の水を設定、増加、減少、または削除し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| texture_atlas | 書き込み | 2 枚以上の .blp、.dds、または標準画像テクスチャを 1 つの 2 の累乗アトラスにまとめ、最初の入力形式で out_path に書き込みます。すべての入力をデコードします... |
| texture_optimize | 書き込み | .blp、.dds、または標準画像テクスチャを縦横比を維持したまま最大辺に収まるよう縮小し、同じ形式で out_path に書き込みます。入力は決して... |
| trigger_add | 書き込み | マップの GUI トリガーツリーのカテゴリにトリガーを追加し、編集済みマップを out_path に保存します。新しいトリガーは有効かつ初期状態でオンとして作成され、... と一致します。 |
| trigger_add_category | 書き込み | マップの GUI トリガーツリーにカテゴリを追加し、編集済みマップを out_path に保存します。カテゴリはトリガーツリー内のフォルダーなので、カテゴリ... は常に安全です。 |
| trigger_add_eca | 書き込み | GUI トリガーにイベント、条件、またはアクションを追加し、編集済みマップを out_path に保存します。パラメーターは関数で宣言された順に指定します。指定されていないパラメーターがある場合... |
| trigger_catalog_describe | 読み取り専用 | 名前(例:'DoNothing')を指定して、GUI トリガー関数 1 つの詳細を表示します。種類、ゲームバージョン、戻り値の型、引数の型、表示名、パラメーターレイアウト... を含みます。 |
| trigger_catalog_list | 読み取り専用 | World Editor カタログ(UI\TriggerData.txt)にある GUI トリガー関数を一覧表示します。種類や名前/表示名で絞り込めます。カタログ... |
| trigger_dead | 読み取り専用 | 何も実行できないトリガーと、その理由を検出します。アクションのないトリガーや、イベントが発生しないトリガー(値に依存するイベントなど)を一覧表示します... |
| trigger_diff | 読み取り専用 | 2 つのマップの GUI トリガーツリーを比較し、追加、削除、名前変更されたトリガーと、両方のマップにあるトリガー内のイベント、条件、アクションの変更を報告します... |
| trigger_export | 読み取り専用 | マップの GUI トリガーツリー全体を構造化された出力として書き出します。各トリガーには名前、有効状態、初期状態でオンかどうか、マップ初期化時に実行するかどうかのフラグ、イベント... が含まれます。 |
| trigger_lint | 読み取り専用 | マップの GUI トリガーツリーにある 3 つの構造上の問題をチェックします。発火することのないトリガー(イベントがなく、マップ初期化時にも実行されない)、登録するトリガー... |
| trigger_recover_from_script | 書き込み | GUI トリガーツリーがないマップについて、ゲームが実行するコンパイル済みスクリプトを逆コンパイルして、閲覧可能な GUI トリガーツリー(war3map.wtg)を再構築し、out_path に保存します... |
| trigger_remove | 書き込み | GUI トリガーツリーからトリガー項目(カテゴリ、トリガー、コメント)を削除し、編集済みマップを out_path に保存します。2 つの項目を誤って... しないよう、危険がある場合は拒否します。 |
| trigger_remove_eca | 書き込み | GUI トリガーからイベント、条件、またはアクションを 1 つ、0 起点の位置で指定して削除し、編集済みマップを out_path に保存します。位置は triggers_read の結果から取得します... |
| trigger_rename | 書き込み | GUI トリガーツリー内の項目(カテゴリ、トリガー、削除済みスタブ)の名前を変更し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません... |
| trigger_set_code | 書き込み | カスタムテキストトリガーのカスタムテキスト JASS 本文を設定し、編集済みマップを out_path に保存します。本体は war3map.wct にバイトレベルで書き込まれ、... を置き換えます。 |
| trigger_set_eca_enabled | 書き込み | トリガー内のイベント、条件、またはアクションを 1 つ、有効または無効にします。トリガー全体ではなく、World Editor の行ごとの切り替えです。編集済みマップを保存します... |
| trigger_set_enabled | 書き込み | GUI トリガーを有効または無効にし、編集済みマップを out_path に保存します。無効なトリガーはマップスクリプトにコンパイルされません。このため、... する場合に使用します。 |
| trigger_set_initially_on | 書き込み | GUI トリガーがオンの状態で開始するかを設定し、編集済みマップを out_path に保存します。開始時にオフのトリガーは、何かによってオンにされるまで発火しません... |
| trigger_set_run_on_map_init | 書き込み | GUI トリガーをマップ初期化時に実行するかを設定し、編集済みマップを out_path に保存します。入力マップは元の場所では絶対に変更されません。 |
| trigger_to_script | 読み取り専用 | マップの GUI トリガーツリー(war3map.wtg)を、World Editor の「カスタムテキストに変換」で 1 つのトリガーを表示する形式に合わせて、JASS 風テキストに出力します。読み取り専用です... |
| trigger_var_add | 書き込み | マップの wtg にグローバル変数を追加し、編集済みマップを out_path に保存します。名前と型(integer、real、string、boolean、unit、group など)を指定します... |
| trigger_var_list | 読み取り専用 | マップのグローバル変数(.wtg の Variables リスト)を一覧表示します。各変数の名前、型、配列フラグ、宣言サイズ、初期値を含みます。読み取り専用です。 |
| trigger_var_remove | 書き込み | 名前を指定してマップの wtg からグローバル変数を削除し、編集済みマップを out_path に保存します。その変数を参照していたトリガーは、参照先がない状態のままになります... |
| trigger_var_set | 書き込み | 名前を指定してマップの wtg にある既存のグローバル変数を更新し、編集済みマップを out_path に保存します。省略した引数は現在の値を保持するため、フィールドを 1 つ... |
| triggers_read | 読み取り専用 | マップの GUI トリガーツリー(war3map.wtg)、カスタムテキスト本文(war3map.wct)、スクリプト言語を読み込みます。すべてのカテゴリと、イベントを含むすべてのトリガー... |
| uabi_profile | 読み取り専用 | 複数のマップにわたるユニットのアビリティリスト(uabi)を一度に測定し、マップごとに 1 行で表示します。ユニットの種類、参照、異なる ID、通常リスト内のヒーローおよびアイテムのアビリティ... |
| unit_abilities | 読み取り専用 | ユニットが持つすべてのアビリティを、それぞれの取得元とともに表示します。ObjectNormal と ObjectHero はユニット種類独自のリスト(uabi、uhab)です。Spellbook は... 内にあります。 |
| validate | 読み取り専用 | マップに構造上の問題がないかチェックします。ファイルの欠落または空ファイル、読み込みに失敗するエントリ、コンパイルできないスクリプトを検出します。lint より対象が狭く、最初の... に適しています。 |
| validate_strict | 読み取り専用 | validate より厳しい検証です。既定のチェックに加えて、既定にするには厳しすぎる 3 つのチェックを実行します。(listfile) がないマップ、エントリポイントを宣言していないスクリプト... |
| version_info | 読み取り専用 | このビルドに記録された製品バージョン、git の短縮ハッシュ、UTC ビルド時刻、および同梱されている MCP サーバーの名前とバージョンを報告します。読み取り専用です。 |
安全性
書き込みツールでは、out_pathを入力マップとは異なるパスにする必要があります。元のファイルが上書きされることはありません。
制限事項
Windows x64 のみ対応しています(ネイティブの CascLib を使用)。ベースゲームのデータを照会するツールには、Warcraft III Reforged のインストールが必要です。
トラブルシューティング
- まず
wc3-mcp doctorを実行してください。 exe の場所、CascLib.dll が同じ場所にあるか、使用する Warcraft III フォルダー、セットアップ済みのアプリを確認できます。 - ゲームが見つからない場合。
wc3-mcp install --all --game-dir "<your Warcraft III folder>"を実行するか、ツールにgame_dirを渡してください。 - アプリにツールが表示されない場合。 アプリを完全に再起動してください。Claude Desktop では、ウィンドウを閉じるだけでなく、トレイから終了する必要があります。
- 設定ファイルが変更されなかった場合。 コメントが含まれているか、有効な JSON ではないため、貼り付ける設定が代わりに表示されました。
wc3-mcp config <app>を実行すると、再度表示できます。 - 保護されたマップの場合。
deprotect_mapにlistfilesを渡すと、コミュニティの名前リストを指定できます。
クレジット
以下を基盤として構築されています。
| ライブラリ | 作者 |
|---|---|
| War3Net (War3Net.Build, War3Net.IO.Mpq, War3Net.Drawing.Blp, War3Net.CodeAnalysis.Decompilers) | Drake53 およびコントリビューター |
| CascLib | Ladislav Zezula |
| CascLib.NET | Kizari |
| ImageSharp | Six Labors およびコントリビューター |
| MCP C# SDK (ModelContextProtocol) | Model Context Protocol プロジェクト |
| Microsoft.Extensions.Hosting | Microsoft、.NET Foundation |
直接使用したもの:Luashine/jass-history(インベントリ変更の調査)、pjass(JASS 構文チェック)、devoltz と Arakunido(SLK 修復ガイド)、Hive Workshop コミュニティ(コマンドライン引数)。
HiveWE(stijnherfst)、Warsmash、Retera's Model Studio(Retera)、WC3MapTranslator(ChiefOfGxBxL)、Wurst、TheHelper、Hive Workshop など、多くのプロジェクトから知見を得ました。調査したすべてのプロジェクトとコミュニティの完全な一覧(全197件)は CREDITS.mdにあります。
Warcraft III は Blizzard Entertainment が制作したものです。このプロジェクトは非公式であり、Blizzard との提携や同社による推奨を受けていません。お使いのインストールを読み込みますが、ゲームファイルは同梱していません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。