2016年4月23日土曜日

デベロッパツール管理プラグイン

 RPGツクールMVで使用可能な自作プラグイン「デベロッパツール管理プラグイン」の紹介です。


プラグインの説明

 デベロッパツールの挙動を調整する制作支援プラグインです。デベロッパーツールに限らず、テストプレー効率化や快適な開発支援のために以下の多彩な機能を提供します。以前の記事から様々な機能を追加したので、こちらに新しく記事を作成しました。テストプレー時以外は全機能が無効となりますが、完成品には含めないことを推奨します。

  1. デベロッパツールの自動立ち上げ機能
  2. エラー発生時のデベロッパツールアクティブ化機能
  3. ゲーム画面を常に前面に表示する機能
  4. VX Aceの後方互換機能
  5. alertの仕様変更機能
  6. テストプレー中のマップ自動更新機能
  7. FPS表示の自動表示機能
  8. タイトル画面のカット機能
  9. ゲームスピード高速化機能
  10. 強制的に敵を全滅させる機能
  11. スクリプトのその場実行機能
  12. スクリプトの常駐実行機能
  13. モバイル実行の偽装機能
  14. ゲーム画面を一時的にフリーズする機能
  15. セーブデータのエンコード・デコード機能

デベロッパツールの自動立ち上げ機能

 ゲームを起動したタイミングでデベロッパツールを同時に立ち上げます。最小化した状態で立ち上げることもできます。

エラー発生時のデベロッパツールアクティブ化機能

 エラー発生時にデベロッパツールが自動でアクティブになってエラー内容をすぐに確認することができます。自動立ち上げを無効にしていてもアクティブになります。

ゲーム画面を常に前面に表示する機能

 ゲーム画面とデベロッパツールのウィンドウを常に前面に表示しておくことができます。エディタ画面と並行して操作するのが少し楽になります。

VX Aceの後方互換機能

 F12キーでリセットする機能と、ログを出力するp関数を実装します。VX Aceに近い間隔でテストプレーできます。

alertの仕様変更機能

 alertの仕様がログ出力+デベロッパツールのアクティブ化に変更されます。

テストプレー中のマップ自動更新機能

 テストプレー中に、エディタからマップやイベントを変更してプロジェクトを保存すると、ゲーム画面にフォーカスを戻したときに自動で最新の内容に更新されます。ゲームを実際にプレーしながらマップの細部の修正やイベントの追加ができます。

FPS表示の自動表示機能

 画面左上にFPSを表示した状態でゲーム開始できます。FPS/MSのどちらを表示するかを選択できます。MS表示は更新処理に掛かった時間をミリ秒単位で表示する機能です。

タイトル画面のカット機能

 タイトル画面をとばして自動で最新のセーブファイルをロードします。セーブファイルが一つもない場合はニューゲームを開始します。

ゲームスピード高速化機能

 マップ上でのゲームスピードを2~8倍速に変更できます。メニュー等には影響を及ぼしません。高速化中はフェードアウトやメッセージ表示、ウィンドウの開閉も自動で高速スキップします。

強制的に敵を全滅させる機能

 戦闘中に指定したキーを入力すると、全ての敵を倒して戦闘が勝利扱いで終了します。報酬もちゃんと獲得できます。

スクリプトのその場実行機能

 画面上で指定されたキーを入力するとダイアログが表示され、入力した内容がスクリプトとして実行されます。エラーが発生した場合、ログは出力されますがゲームは続行できます。実行したスクリプトはそのままクリップボードに保存されます。

スクリプトの常駐実行機能

 画面上で指定されたキーを入力するとダイアログが表示され、入力した内容がスクリプトとして毎フレーム実行されます。実行結果が変化した場合にリアルタイムでログ出力します。エラーが発生した場合もゲーム続行できます。

モバイル実行の偽装機能

 内部的にモバイルデバイスで実行しているかのように偽装します。Canvasモードで実行され、音声ファイルはm4aが選択されます。主にモバイル専用のUIをプラグインで実装している場合の表示確認をするのに使用します。ただし、現在は制約事項としてオーディオが演奏されません。

ゲーム画面を一時的にフリーズする機能

ゲーム画面の更新を停止します。タイミングの難しいキャプチャを取得したい場合などに使用してください。

セーブデータのエンコード・デコード機能

Base64でエンコーディングされたセーブデータをJSON形式に相互変換します。JSONエディタ等で編集することでセーブデータの中身を改変できます。

スクリーンショット

ダウンロード

プラグインファイルはGithubで公開しています。

ダウンロード(Download)

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。

http://opensource.org/licenses/mit-license.php

更新履歴

  • 2016/06/25 スクリプト常駐実行機能を追加
  • 2016/06/03 色々な機能を追加
  • 2016/05/04 スクリプトのその場実行機能を追加、モバイル偽装機能を追加
  • 2016/03/19 色々な機能を追加
  • 2015/12/12 初版

7 件のコメント:

  1. バグ発見:
    SceneManager.initializeの内部で例外出すと
    _nwjsGui初期化前にcatchExceptionが作動して落ちます。

    何が恐ろしいってこれで落ちるとF8使えなくなってなんで落ちたかわからなくなることですね…
    新たな犠牲者が出る前に修正よろしくお願いします!

    返信削除
    返信
    1. 修正しました(1.4.2)。_nwjsGui初期化前に例外が発生した場合に対処しています。
      ご報告ありがとうございます。

      削除
  2. 質問なのですが、テストプレー中のマップ自動更新機能で、他のプラグインに加えた変更もリアルタイムで反映されますか?

    返信削除
    返信
    1. マップ自動更新で更新されるのは、対象マップとイベントのみになります。
      プラグインの変更を有効にするには、再度テストプレーを実行する必要があります。

      削除
    2. ご回答ありがとうございます。
      プラグイン関連はこちらの機能の対象から外れてしまうのですね。了解しました。

      削除
  3. 256行目の式の
    SceneManager.isBattleTest() || SceneManager.isEventTest()
    ですが、正しくは
    DataManager.isBattleTest() || DataManager.isEventTest()
    ではないでしょうか?

    返信削除
    返信
    1. 確認しました。ご推察の通りです。
      改めて確認したところ、イベントテストとバトルテストの判定自体不要みたいです。
      ご報告ありがとうございます!

      削除