2016年3月31日木曜日

キャラクターの浮遊プラグイン

RPGツクールMVで使用可能な自作プラグイン「キャラクターの浮遊プラグイン」の紹介です。


プラグインの説明

プレイヤーやフォロワー、イベントを浮遊させ、宙に浮いているような演出ができます。

スクリーンショット

浮遊中は演出以外にも以下の効果があります。

  • 指定した地形タグ(複数)を通行可能にします。
  • 指定したリージョン(複数)を通行可能にします。
  • タイルの梯子属性、茂み属性、ダメージ床属性を無効にします。

ダウンロード

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

ダウンロード(Download)

利用規約

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

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

更新履歴

  • 2016/04/03 一定以上の高度の場合のみ通行可能になる地形タグとリージョンを指定できる機能を追加。着地可能な場合のみ着地する機能を追加、指定されたキャラクターが浮遊中かどうかの判定を追加
  • 2016/03/31 隊列歩行でない場合のフォロワーや画像が指定されていないイベントでも影が表示される不具合を修正
  • 2016/03/29 初版

2016年3月13日日曜日

GUI画面デザインプラグイン

 RPGツクールMVで使用可能な自作プラグイン「GUI画面デザインプラグイン」の紹介です。


プラグインの説明

 メニュー画面や戦闘画面など各画面のウィンドウや画像の表示位置をドラッグ&ドロップで微調整して画面の外観をグラフィカルに設計できます。横幅、高さ、余白、背景画像なども画面上で変更して、即座に反映されます。

スクリーンショット

 パラメータ「デザインモード」を「ON」にすると、マウスのドラッグ&ドロップで既存のウィンドウや追加したウィンドウの位置をグラフィカルに調整し、横幅などのプロパティを自由に変更できます。位置を調整したらデザインモードをOFFにして起動すると、変更した位置が反映されています。

指定可能なプロパティ

  1. ウィンドウの横幅
  2. ウィンドウの高さ
  3. ウィンドウの余白
  4. ウィンドウのフォントサイズ
  5. ウィンドウの1行のあたりの高さ
  6. ウィンドウの背景透明度
  7. ウィンドウの行数
  8. ウィンドウの背景画像ファイル名

デベロッパツール

 パラメータ「デザインモード」を「ON」にするとデベロッパツールが同時に起動し、操作方法や操作した内容が出力されていきます。Ctrl+Zで直前の変更を元に戻すこともできます。編集した内容は「data/ContainerProperties.json」に保存されます。JSONエディタ等で編集することも可能です。さらに、モバイル端末用に異なるウィンドウ配置を定義することもできます。モバイル用の配置情報は「data/ContainerPropertiesMobile.json」に保存されます。

その他の機能

・モバイル偽装:
モバイル偽装のオプションを有効にすると、モバイル端末での実行をPC上で再現できます。モバイル実行を再現すると音声や動画ファイルの使用形式が変化したり、音声ファイルの再生が行われなくなったりする可能性があります。

・ウィンドウ透過:
ウィンドウ透過のオプションを有効にすると、ウィンドウが重なったときに奥のウィンドウが透けて表示されるようになります。

ダウンロード

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

ダウンロード(Download)

利用規約

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

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

更新履歴

  • 2016/04/02 liply_memoryleak_patch.jsとの競合を解消
  • 2016/03/13 初版

2016年3月8日火曜日

Canvasモード実行でメモリリークによるクラッシュを回避する

 本稿は未だ(2016/03/08)に大きな懸案事項のひとつであるツクールMVメモリリーク問題について、プレイヤーの視点から解決方法を提案するものです。

 2016/05/10追記 遠景由来のメモリリーク問題は本体バージョン1.2.0にて修正されました。ただ、メモリリーク以外の問題でもVista SP2互換モードでの実行が問題の解決に繋がる場合があるようなので記事そのものは参考として残しておきます。ただでさえ少ない記事を減らしたくないし……


メモリリークについて

 さて、RPGツクールMVにはメモリリーク問題が存在することは周知の事実かと思います。ご存じない方はこちらをご覧ください。

 そして上記の問題のうち遠景のメモリリークを解決するのが以下のパッチです。JavaScriptのプラグイン形式になっています。上の記事を書かれたliply氏によるものです。

 なんだプラグインが出ているのなら話は終わりじゃん……と言いたいところなのですが、プレイヤー視点から見れば、遊びたいゲームの作者が上記プラグインを適用してくれるとは限りません。現状、どのくらいの作者が上記プラグインを適用しているのかは不透明な状況です。上記対策が施されていないゲームを少しでも安全にプレーするためにプレイヤーが独自にできる対策はないか? そこで考えたのが「Canvasモードでゲームを実行する」ことです。まずは下の画像をご覧ください。

WebGLの実行結果

 まずWebGLモードで以下の条件でテストを行いました。遠景の指定された17×13のイベントが配置されていないマップで、メニューの開閉を繰り返して回数を記録していくというものです。実施環境はSurface Pro3(Win10 Pro) Core i5(GPU内蔵) メモリ4GBになります。すると回数を重ねるごとに使用量(コミット(KB))が増大し、400回ほど繰り返したところでなんの前触れもなくクラッシュしてしまいました。

Canvasの実行結果

 一方、こちらはCanvasモードでの実行結果です。画像が小さくて恐縮ですが、こちらは使用量は一定以上は増えることなくメニュー開閉を3000回繰り返しても安定していることが分かるかと思います。

 もちろん、この結果をもってCanvasモードにはメモリリークは存在しないと言い張るつもりはありません。実際、存在するのだけれどブラウザ(chromium)側でうまく処理してくれているのかもしれません。それでも、もしプレイヤーとして快適にプレーできないツクールMV作品に遭遇したときに、そこでプレーを諦めてしまうくらいなら試してみる価値くらいはあると思います。とはいえ、二つほど問題が残ります。

どうやってCanvasモードで実行するのか?

 これについては先日、たまたま知ることができました。

 Game.exeを右クリック→プロパティ→互換性から、「互換モードでこのプログラムを実行する」にチェックを入れ、Windows Vista(Service Pack2)を選択してから、実行するとCanvasモードで実行されるのです。互換モードでもWindows 7以降だとWebGLモードとなります。互換モード実行についてはメモリリーク問題とは別に恩恵があるようで、ある方のゲームが開始時に1000枚ほどのピクチャをキャッシュする仕様になっていて、通常の起動だと非常に時間が掛かるうえに動作も不安定になっていたものが、互換モード(Vista SP2)だと数秒で起動した、という事例がありました。これはいわゆるメモリブロートに近い問題ですね。(ただし、この件に関しては原因はよく分かっていません)

Canvasモードで実行することによるデメリットは何があるか?

 これも気になるところです。基本的にツクールMVはマルチプラットフォームを謳っており、かつモバイルでは基本的にCanvasモードで実行されます。つまり、少なくともプラグインを全く使用しない状態では二つのモードに傍目にも分かるような差異はないということです(もし差異があればマルチプラットフォームの前提が崩壊してしまうので)。もちろん現状ではブラウザやOSごとの細かい挙動の違いを完全に吸収できているとは言えない状況ですが、それはまた別問題でしょう。ですがプラグインを使う場合は話は別です。例えば、以下はPixi.jsのフィルタ機能を使ってタイトル画面を加工したものです。

 もともとはRTPのタイトル画像ですが、Pixi.jsのTwistFilterを適用することこんな動的演出が簡単にできてしまいます。フィルタは他にもこんなものがあります。

 これはInvertFilterを適用させたものです。いずれも既存のコードに数行追加するだけです。こんなフィルタがPixi.jsには複数用意されていますが、これらは全てWebGLモードでしか使用できません。Canvasモードでも異常終了したりはしませんが画像が変化しなくなります。もっとも、現状これらのフィルタを使用するようなMVのゲームはまだ出回っていないと思いますが……

まとめ

 RPGツクールMV製のゲームを長時間プレーし続けてパフォーマンスが低下してきたら、Windows Vista SP2の互換モードで実行すると快適になるかもしれない……というお話でした。

2016年3月7日月曜日

フルスクリーンで起動プラグイン

RPGツクールMVで使用可能な自作プラグイン「フルスクリーンで起動プラグイン」の紹介です。


プラグインの説明

プオプション画面に「フルスクリーンで起動」を追加します。有効な場合、ゲームをフルスクリーンで起動します。またタイトル画面にシャットダウンを追加します。

スクリーンショット

VX Ace以前の仕様であるフルスクリーンで起動を実装することで、旧作のプレイヤーの円滑な移行を促すことができます。このプラグインはローカル環境で実行した場合のみ有効です。

ダウンロード

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

ダウンロード(Download)

利用規約

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

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

更新履歴

  • 2016/03/06 初版