テストのレポートを作るプラグイン

テストのレポート

ゲームのテストをしたときにバグや良かったところとか報告をします。
しかし、画面のキャプチャをしたりセーブファイルを添付したり、結構大変ですし、そういう作業をしながらでは、ゲームに集中できません。
そこでレポート作成を楽にできるプラグインを制作しました。

レポート作成ウィンドウ

ゲーム本体側に影響を与えず、すぐにレポートを書けることを重視して、レポート作成画面は別ウィンドウで自動起動します。
以下の画面のような構成です。

レポート作成ウィンドウ

レポートのHTML

レポートは以下の画像のようにHTMLで出力されます。

以下の2つのセーブが添付されます。

  1. 最後にプレイヤーが実際にセーブした時点のセーブファイル
  2. レポートを送信した時点のセーブファイル

2に関しては場合によっては正しくないセーブファイルになります。
例えば、イベント途中でレポートを書いた場合、イベントを途中まで実行しているので中途半端なデータになりかねません。
使用するときは注意が必要です。

使い方

動作バージョン: RPGツクールMV1.6以上

以下よりzipをダウンロードし、解凍します。解凍した中身のTestReportフォルダとTestReport.jsの両方をjs/pluginsフォルダに配置します。
https://github.com/kido0617/rpgmakerMV-plugin/raw/master/TestReportSet.zip

プラグインをONにすれば起動時にウィンドウが表示されます。
作成されたレポートはエディタだとプロジェクトファイル直下のreportフォルダに、デプロイ後だとwwwフォルダ内に作られます。

制限事項など

書いているつもりがレポート生成されてなかったら大変なので、テスト時に「レポートを開く」リンクからレポートが正常に生成されているか確認してください。
レポートを削除するときはreportフォルダを削除してください。
製品リリース時に残らないよう気をつけてください。

ライセンス

TestReport.jsについては完全に自由にどうぞ。クレジットの表記もいりません。
フォルダ内のbootstrap.min.cssはMITライセンスによりTwitter社が配布しています。https://github.com/twbs/bootstrap/blob/v4.1.3/LICENSE

フィルタをかけると画面全体が拡大されてしまう

概要

以下のようなpixi.jsのオーバーレイフィルタをピクチャにかけると画面全体(マップ全体)が拡大されてしまう現象があるそうで、その解析をしていました。

1
$gameScreen.picture(1)._blendMode = PIXI.BLEND_MODES.OVERLAY;

フィルタかける前

フィルタかけた後

ただ発生するのはスペックの低めのPCだけであり、通常は発生しないようです。
手持ちのPCで発生するのが一台あり、簡単なスペックは以下です。

1
2
3
Windows 7 Home Premium 32-bit 
Core(TM) i5 CPU M 520
Intel(R) HD Graphics

オーバーレイについて

pixi.jsはデフォルトでは以下にコメントされているようにオーバーレイは利用できず、pixi-picture.jsを読み込むことによって利用できます。
ファイルはツクールMVのlibフォルダに存在していて自動的に読み込まれています。

1
2
IMPORTANT - The WebGL renderer only supports the NORMAL, ADD, MULTIPLY and SCREEN blend modes.
Anything else will silently act like NORMAL.

フィルタをかけると

ピクチャのblendModeをOVERLAYに変えると最終的に以下の箇所の処理が大きく変わります。
細かいことはおいといて、最終的にstageにvoidFilterが適用されるようになります。
ここでいうstageはScene_Mapです。
このvoidFilterは何もしないフィルターのはずですが、なぜかこれが適用されると拡大されます。
Scene_Mapに適用されるので画面全体が拡大されてしまいます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sprite.prototype._speedUpCustomBlendModes = function(renderer) {
var picture = renderer.plugins.picture;
var blend = this.blendMode;
if (renderer.renderingToScreen && renderer._activeRenderTarget.root) {
if (picture.drawModes[blend]) {
var stage = renderer._lastObjectRendered;
var f = stage._filters;
if (!f || !f[0]) {
setTimeout(function () {
var f = stage._filters;
if (!f || !f[0]) {
stage.filters = [Sprite.voidFilter];
stage.filterArea = new PIXI.Rectangle(0, 0, Graphics.width, Graphics.height);
}
}, 0);
}
}
}
};

ためしに、コンソールからSceneManager._scene.filters = [Sprite.voidFilter]と実行すると拡大されるのでOVERLAYフィルタの問題ではなく、このvoidFilterの影響だと考えられます。

voidFilterのpadding?

pixi.jsのfilterにはpaddingというメンバがあります。これはデフォルトで4に設定されていて、このpaddingを0に変えると拡大がなぜか直ります・・・。

pixi.jsのバージョンについて

この現象ですが最新のchromeでゲームをブラウザで起動しても発生します。
また、pixi.jsの4.7.1以降だと発生せず、4.7.0だと発生します(MVは4.5.4)。

解決策

ベストな解決策は不明。せめて何かで処理の切り分けができたらいいのですが・・・。

並列実行中のコモンを最初から実行するプラグイン

概要

並列実行中のコモンイベントを中断し、最初から実行します。

・プラグインコマンド

1
RestartCommon 3

ダウンロード

動作バージョン: RPGツクールMV1.6以上

こちら

ライセンス

完全に自由にどうぞ。
クレジットの表記もいりません。

コンフィグ画面を右クリックで戻るようにするプラグイン

はじめに

セーブやロード画面は右クリックで前の画面に戻れるのですが、独自に作ったコンフィグ画面に関してはそうはなりません。
コンフィグ画面も右クリックで戻れるようにしたいとの要望で作ったプラグインです。
ティラノスクリプト バージョン471bで動作を確認しています。

概要

コンフィグ画面から右クリックで戻るを実現するには、右クリックを押した時に、画面上の戻るボタンが押されたのと同じ動作をすれば良いです。そのためのプラグインを作りました。

ダウンロードはこちら
いろいろ入っていますがrightClickButtonというフォルダが今回のプラグインです。

画面上のボタンのnameにrightClickButtonを設定すると、右クリック時にそのボタンが押されたのと同じ動作になります。

設定例

1
[button graphic="back.png" name="rightClickButton" fix=true target="backtitle" x=800 y=100]

すでにname属性を使用している場合は、以下のように,で区切って指定してください。
name="test,rightClickButton"

ライセンス

完全に自由にどうぞ。
クレジットの表記もいりません。

メニューとマップのスクリーンショットについて

メニューの背景のマップ画像

以下の画像のようにメニューの背景にはマップが映っています。
しかし、この画像は実際のマップではなくただの画像です。
メニューを開く瞬間にスクリーンショットが撮られ、それをぼかして表示しているだけです。

メニューの裏に表示されているマップ

ツクールはシーンが2つ以上存在するような構造になってなく、別のシーンに遷移したときに前のシーンは破棄されます。
マップからメニューやショップ、メニューからスキル画面やアイテム画面に遷移したとき、シーンは破棄され、戻った時に作り直されます。
もちろんマップからメニューなどに遷移するときはそのマップの情報(キャラの位置、歩行ルートの進行状況、使用しているピクチャの情報など)は保持されますが、戻った時はその情報をもとにマップを組み立て直します。