1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RPGツクールMZプラグイン開発環境を2026年仕様にする — VS Code拡張機能を作った話

1
Posted at

TL;DR

RPGツクールMZ(RMMZ)のプラグイン開発には専用ツールがほぼ存在しません。アノテーション補完もバリデーションもデバッガ統合もない。そこで VS Code 拡張機能 RMMZ Dev Tools を作りました。無料14機能 + Pro14機能。

MZプラグイン開発の現状

RPGツクールMZのプラグインは JavaScript で書きます。/*: */ という独自アノテーション形式でパラメータやコマンドを定義しますが、これを支援するツールがありません。

/*:
 * @target MZ
 * @plugindesc 自作プラグインの説明
 * @author 作者名
 *
 * @param MaxHP
 * @text 最大HP
 * @type number
 * @min 1
 * @default 100
 * @desc 最大HPの設定値
 *
 * @command HealAll
 * @text 全回復
 * @desc パーティ全員を回復する
 */

このアノテーションを書くとき:

  • @type に何が指定できるかわからない(24種以上ある)
  • @param の中で使えるタグ、@command の中で使えるタグが違うが、どこにもドキュメントがない
  • タイプミスしても何のエラーも出ない
  • デバッグは NW.js 用の古い拡張機能が必要で、Variables パネルの変数編集すらできない

要するに、2026年に2010年代のJavaScript開発体験を強いられています。

解決: RMMZ Dev Tools

アノテーション支援

@ を打つとコンテキストに応じた補完候補が出ます。@param ブロック内なら @text, @desc, @type, @min 等、トップレベルなら @param, @command, @base 等。

@type の後にスペースを打つと24種以上の型が説明付きで表示されます。struct<> やその配列型もスニペットで展開。

バリデーションはリアルタイムで動作し:

  • タイプミス(@commnd → 「Unknown annotation tag: @commnd」)
  • スコープ違反(@command ブロック内の @min
  • 型とタグの不一致(@type string@min
  • 必須タグの不足(@plugindesc, @target

を検出します。

デバッガー: nwjs → chrome で変数編集を可能に

MZのテストプレイは NW.js(Chromium ベース)で動作します。既存の方法では VS Code の nwjs デバッグタイプを使いますが、これは旧 debugger-for-chrome ベースで setVariable リクエストをサポートしていません。Variables パネルで変数を書き換えようとすると Unrecognized request: setVariable エラーになります。

解決策はシンプルで、VS Code 組み込みの chrome デバッグタイプに切り替えるだけです。

{
  "type": "chrome",
  "request": "launch",
  "name": "RMMZ Testplay (Debug)",
  "runtimeExecutable": "path/to/nw.exe",
  "runtimeArgs": [".", "--remote-debugging-port=9222"],
  "webRoot": "${workspaceFolder}",
  "port": 9222
}

chrome タイプは js-debug(VS Code 内蔵)が処理するため:

  • 追加拡張機能が不要(nwjs-debug 拡張を入れなくていい)
  • setVariable が動く(Variables パネルで値をダブルクリック → 編集 → 即反映)
  • NW.js は Chromium ベースなので CDP 互換性に問題なし

runtimeArgs"." を入れてカレントディレクトリ(= MZ プロジェクト)をアプリとして渡すのがポイントです。

その他の機能

無料(14機能):

機能 説明
シンタックスハイライト /*:, /*:ja, /*~struct~ ブロックの色分け
スマートタグ補完 コンテキスト対応の @tag 補完
@type 補完 24種以上の型値を説明付きで表示
バリデーション タイプミス、スコープ違反、型不一致をリアルタイム検出
ホバードキュメント @tag@type にホバーで説明表示
フォーマッター アノテーションタグを正規順序に整列
カラープロバイダー @default の16進カラーにインラインピッカー
競合検出 同一メソッドを上書きする複数プラグインをCodeLensで警告
素材参照チェック @dir/@require の参照先ファイル存在確認
IntelliSense セットアップ jsconfig.json 自動生成
プラグインテンプレート 正しいアノテーション付きの新規プラグインを生成
クイックアクションパネル 全コマンドをサイドバーに一覧表示
データベースブラウザ Actors, Items 等のデータファイルをツリー表示
ノートタグインデックス プロジェクト内の全ノートタグを一覧

Pro($12 買い切り、14機能):

機能 説明
デバッガーセットアップ ワンクリックで launch.json 生成、ポート自動修復
クイックシーンリロード プラグイン保存 → シーン即リロード
ライブゲームプレビュー 実行中ゲームのスクリーンショットをリアルタイム表示
テストプレイコンソール ゲーム内 console.log を VS Code に取り込み
ゲーム状態インスペクター マップ、パーティ、スイッチ、変数をライブ表示
アノテーションプレビュー プラグインマネージャでの表示をライブプレビュー
依存関係グラフ @base/@orderAfter の可視化、循環依存検出
パラメータリネーム @param リネームでコード内の参照も自動更新
多言語同期チェック /*:/*:ja の構造一致を検証
データホバー(Pro) $dataActors[3] ホバーでアクター名/ステータス表示
計算式評価 ダメージ計算式ホバーで評価結果表示
ノートタグエディター ビジュアルWYSIWYGエディター
クラス階層ブラウザ RMMZ クラス継承ツリーを検索・ジャンプ
プラグインレジストリ プラグイン更新チェック

デモ動画

デバッガーで $gameParty._gold を 9999999 に書き換えるデモです:

まとめ

MZプラグイン開発のツール不足は深刻ですが、VS Code 拡張機能でかなりのことができます。特にデバッガーの nwjschrome 切り替えは簡単で効果が大きいので、この拡張を使わなくても launch.json の type を変えてみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?