【プラグイン】デバッグ支援

ツミオ

ユーザー
プラグイン名:DebugToolEx.js
概要:デバッグを支援するプラグインです。
最新版:バージョン1.0.1(2017/10/07 公開)

【ダウンロード】
https://github.com/Tsumio/rmmv-plugins/raw/master/DebugToolEx.zip

【エラーが発生した場合の対処法】
エラーが発生した場合の対処法を以下の記事にてまとめてみました。
このプラグインとは直接関係ないですが、ご覧ください。
http://ntgame.wpblog.jp/2017/09/25/post-962/

【紹介画像】
WS000083.JPG/ WS000108.JPG /WS000110.JPG / WS000093.JPG/WS000107.JPG

入力補完の例
WS000100.JPG


エラー捕捉の例
WS000106.JPG


【紹介動画】

【特徴】
・特定のキー(初期設定はタブキー)を押すと、コマンドパレットが起動します。
コマンドパレットにコマンドを入力することにより、予約された機能を実行できます
・コマンドを指定しない場合、スクリプトとして実行されます。
変数やスイッチの管理ウィンドウを表示させることができます
入力補完機能があります。
・ローカル環境でのテストプレイ時のみ有効になります。
・現在有効になっているプラグインが一瞥でわかります。
ゲーム実行時にエラーが発生した場合、エラー発生元のプラグインを特定しようと試みます

【使用方法】
当プラグインはローカル環境でのテストプレイ時のみ有効になります。
プラグインの導入後、所定の「debug.html」ファイルをプロジェクトフォルダ(index.htmlの置いてあるフォルダ)に設置することで利用が可能になります
また、デプロイメント時は当プラグインをプラグインリストから消去することを推奨します。

このプラグインは「コマンドパレット」から操作します。
コマンドパレットを起動するには、ゲーム起動後に「コマンドパレット起動キー」を押す必要があります(初期設定はタブキー)。
コマンドパレット起動後、もう一度「コマンドパレット起動キー」を押すと、コマンドパレットに入力したスクリプトやコマンドが実行されます。
実行後はデベロッパーツールのコンソール画面に結果が表示されるので、ご確認ください。

なお、当プラグインはWindows10以外での動作確認をしていません。

【コマンドパレット】
コマンドパレットにはコマンドもしくはスクリプトを入力します。
全てのコマンドは「->」もしくは「=>」から始まります(どちらも同じ意味です。好みの方を使用してください)。
コマンドは一行目に書く必要があり、二行目以降は認識しません
また、説明上では視認性のためにカギカッコを使用していますが、実際にコマンドパレットに入力する際にはカギカッコの入力は不要です。

全てのコマンドは大文字と小文字を区別します
各単語の間は半角スペースで区切ります(全角では認識しません)。
間違わないように気をつけてください。

「-> save 保存名」 : コマンドパレット上のスクリプト(2行目以降)を「保存名」で保存します。
「-> exe 保存名」 : saveコマンドで保存した「保存名」のスクリプトを実行します。
「-> bind オブジェクト名」 : コマンドパレット上のthisを指定します(詳細は後述)。
「-> open」 : 管理ウィンドウを起動します。
「-> com 番号」: 「番号」で指定した番号のコモンイベントを実行します。
「-> e 番号 ページ」 : 現在のマップ上にあるイベント番号「番号」の、指定された「ページ」のイベントを実行します。
「-> memo」 : メモシステムを起動します(詳細は後述)。

【thisについて】
コマンドパレットに入力するthisは、現在のシーンのインスタンスへの参照を指します(つまりSceneManager._scene)。
マップ画面のみ、thisは$gameMap._interpreterを指すようになっています(こちらの方が使いやすいと僕が感じるため)。
また、マップ上ではイベントの実行も可能です。
戦闘画面は$gameTroop._interpreterではなく、他と同じくシーンを指します(つまり戦闘画面では、スクリプトの実行は工夫しないと不可)。

コマンド「bind」でthisを変更した場合、そちらの設定が優先されます。
「bind」を解除したい場合、「-> bind null」とするか、そのまま「-> bind」とだけコマンドパレットに入力してください。

【管理ウィンドウ】
管理ウィンドウでは、スイッチや変数の操作ができます。
ゲーム内の値を変えると、管理ウィンドウ内の値も変わります。逆も同じです。

管理ウィンドウを通じて変数へ値を代入する際、気をつけなければならないことが一つあります。
それは、変数への代入は全てプリミティブ型の文字列として認識されることです。
オブジェクトや文字列以外のプリミティブ型として代入したい場合、文頭に半角のアットマークもしくは「#」をつけてください。
このドキュメンテーション内ではアットマークを使用できないので全て「#」で表現しますが、半角のアットマークに置き換えても動作します。

また、計算式の結果を代入することも可能です。
例:「#1000」「#100+$gameParty.gold()」「#false」「#undefined」
計算式の結果を代入する場合、Game_Variables.prototype.setValue()の挙動に準拠します。
すなわち、setValueメソッドに特に何も変更を加えていない場合、小数点以下は切り捨てられます

オブジェクトや、メソッド(関数)の結果を代入することも可能です。
メソッドの結果を代入したい場合、末尾を「);」で終わらせてください。
また、オブジェクトを代入する場合、グローバルオブジェクトを暗黙的に参照します。
例:「#$gameActors.actor(1);」「#$gameParty.steps();」「#$gameSystem」
「#$gameParty._weapons」「#$gameParty['_weapons']」

管理ウィンドウ内の「登録済みコマンド一覧」にあるボタンをクリックすると、登録済みのコマンドが実行されます。
これはパレットウィンドウで「-> exe コマンド名」を実行することと等価です。

【メモシステム】
コマンド「-> memo」を実行すると、メモシステムが起動します。
通常のテキストエリアとは違い、コマンドの入力は受け付けません。
また、入力終了後(タブキーを押した時点)、テキストエリアの文字列がファイルに保存されます。
この保存されたファイルは、次回のメモシステム起動時に読み込まれます。

【ファイルの保存先】
コマンド「save」を実行すると、jsフォルダ内に「dte_commands.txt」というファイルが作られます。
コマンド「exe」を実行する際はこのファイルを読み取ります。
つまり、直接ファイルを編集することも可能です。

また、コマンド「memo」を実行すると、jsフォルダ内の「dte_memo.txt」というファイルを読み込みます。
コマンド「memo」を終了した時点(タブキーを押した時点)で、jsフォルダ内に「dte_memo.txt」は上書きされます

【ショートカットキー】
コマンドパレット起動後、Ctrl+Shift+Pキーを押すと「->」が自動で入力されます。

【変数入力中の補完】
変数に値を代入するとき、ツクールMVに用意されているグローバル変数に対して入力補完が働きます。
値を返さない(ことを意図している)メソッドについては、undefinedしか返ってこないため入力補完から除外しています。
未対応の入力補完もあるかと思いますので、抜けがあればご報告ください。

また、現在は$gameXXX系に属する直接のメソッドのみに対応しています。
$gameXXX系のメソッドから派生するプロパティに対する入力補完や、$dataXXX系への対応も一応は予定しています。

【プラグイン管理機能】
管理ウィンドウ内には、現在のプロジェクトで使用されているプラグインの一覧が表示されます。
プラグインパラメーターで設定をおこなうと、プラグインの一覧はプラグインのON/OFF順でソートさせることもできます。

ゲームの実行時にエラーが発生した場合、エラー発生元と思われるプラグインをリストアップします
この機能により、エラー発生元のプラグインを特定しやすくなります。
ただし読み込み時のエラー(例えば画像ファイルの指定が不正だった場合など)は捕捉しません。
また、エラーの発生元を正確に捕捉し、情報を提供するものでもありません
詳細なエラー情報を知りたい場合、必ずコンソール画面のスタックトレースをご確認ください。

なお、コアスクリプト内でエラーが発生したとしても、そのエラーは捕捉されません
コアスクリプトを直接編集している方はご注意ください。

【プラグインコマンド】
このプラグインにプラグインコマンドはありません。

【プラグインの更新方法】
プラグインを更新する場合、DebugToolEx.jsとdebug.htmlの二つを更新する必要があります
DebugToolEx.jsはプラグインフォルダに設置し、debug.htmlはプロジェクトフォルダ(index.htmlの置いてあるフォルダ)に設置してください。

【既知の不具合】
現在はありません。

【その他のデバッグツール】
他の制作者様によるデバッグツールの紹介です。

・総合開発支援プラグイン(トリアコンタンさん)
https://triacontane.blogspot.jp/2016/04/blog-post_23.html
・変数スイッチ監視ウインドウ(奏ねこまさん)
http://makonet.sakura.ne.jp/rpg_tkool/contents/MPI_ValueMonitor.js
・イベントデバッグプラグイン(トリアコンタンさん)
https://triacontane.blogspot.jp/2017/01/blog-post.html

特に総合開発支援プラグインは多機能なので、このプラグインを使用する前にぜひ一度導入してみてください。

【備考】
当プラグインを利用したことによるいかなる損害に対しても、制作者は一切の責任を負わないこととします。


【ライセンス(MITライセンス)】
  • 製作者: ツミオ
  • 非商用利用: 自由
  • 商用利用: 自由
  • 再配布: OK
  • 加工: OK
  • 加工後の再配布: OK
  • シリーズ: ツクールMV(他の用途で使用しても問題ありません)
バージョン情報
  • 1.0.1 2017/10/07 ゲームパッドの接続を監視する機能を追加。入力補完機能の調整と追加。
  • 1.0.0 2017/10/04 コマンドパレットに入力補完機能を追加。MadeWithMV.jsとの衝突を解消。
  • 0.9.4 2017/10/01 説明を少し変更。
  • 0.9.3 2017/09/30 GitHubのアドレスを追加。
  • 0.9.2 2017/09/21 変数入力欄におけるエラー出力の調整。
  • 0.9.1 2017/09/21 変数入力欄に「#」を指定しても文字列として認識されていた不具合の修正。
  • 0.9.0 2017/09/20 バグ修正。プラグイン管理機能の追加。入力補完機能の向上。デザインの改善。
  • 0.8.2 2017/09/18 バグ修正。変数入力欄に入力補完機能を実装。
  • 0.8.1 2017/09/17 細かい修正と英語版に対応。
  • 0.8.0 2017/09/16 公開。

【あんまり関係のない話】
このプラグインは使い方がやや特殊なので、説明文をよくお読みください。
また、プラグインの使用前に「debug.html」ファイルをプロジェクトフォルダ(index.htmlの置いてあるフォルダ)に設置することを忘れないようお願いいたします。
不具合の報告はいつでも歓迎です。
 
最後に編集:

ツミオ

ユーザー
0.8.2に更新しました。
今回の更新は起動時にエラーが出る不具合の調整と、入力補完機能の追加です。
起動時にエラーが出る不具合の調整をしているので、以前のバージョンをお使いの方も更新をおすすめします。
詳細はトップの記事に書きましたが、こちらにもコピペしておきます。

以下コピペ。

【変数入力中の補完】
変数に値を代入するとき、ツクールMVに用意されているグローバル変数に対して入力補完が働きます。
値を返さない(ことを意図している)メソッドについては、undefinedしか返ってこないため入力補完から除外しています。
未対応の入力補完もあるかと思いますので、抜けがあればご報告ください。

また、現在は$gameXXX系に属する直接のメソッドのみに対応しています。
$gameXXX系のメソッドから派生するプロパティに対する入力補完や、$dataXXX系への対応も一応は予定しています。
WS000100.JPG
 
最後に編集:

ツミオ

ユーザー
0.9.0に更新しました。
ファイルを更新する際、debug.htmlの更新も忘れないようにお願い致します。

今回の更新では、プラグインで発生したエラーを特定する機能が多くの人に役立つかなと思っています。
実際の画面はこんな感じです。
WS000106.JPG
他にはデザインの細かい調整と、入力補完のデータを追加した感じです。

以下は追加した機能の紹介のコピペです。

【プラグイン管理機能】
管理ウィンドウ内には、現在のプロジェクトで使用されているプラグインの一覧が表示されます。
プラグインパラメーターで設定をおこなうと、プラグインの一覧はプラグインのON/OFF順でソートさせることもできます。

ゲームの実行時にエラーが発生した場合、エラー発生元と思われるプラグインをリストアップします。
この機能により、エラー発生元のプラグインを特定しやすくなります。
ただし読み込み時のエラー(例えば画像ファイルの指定が不正だった場合など)は捕捉しません。
また、エラーの発生元を正確に捕捉し、情報を提供するものでもありません。
詳細なエラー情報を知りたい場合、必ずコンソール画面のスタックトレースをご確認ください。

なお、コアスクリプト内でエラーが発生したとしても、そのエラーは捕捉されません。
コアスクリプトを直接編集している方はご注意ください。
 

ツミオ

ユーザー
正式版の1.0.0をリリースしました。

変数入力画面だけではなく、コマンドパレット上でも入力補完ができるようになりました。
WS000119.JPG

また、MadeWithMV.jsとの競合を解消しました。

現在コマンドパレット上で対応している補完は以下の通りです。
・ツクール側で用意しているグローバル変数($マークで始まるやつ)
・コマンドパレット用のコマンド(exeなど)

グローバル変数のプロパティ(.マークで出る奴)にも対応する予定です。
 
トップ