MVの重さとは? 解像度編

ゲーム画面の解像度を変えると重くなるの?

ゲーム画面の解像度を上げると、RPGツクールMVが重くなるのかどうかを調べてみた。

計測条件

  • RPGツクールMV バージョン 1.6.1(Windows版)を使用する。
  • 使用するマップは、RPGツクールMVにあらかじめ用意されているサンプルマップの「フィールド2」(100×100マス)とする。
  • サンプルマップにあらかじめ組み込まれているイベントを除き、独自のイベントは何も配置しない。
  • マップの設定で、スクロールタイプを「ループしない」から「縦横ともループする」に変更する。
  • 主人公の座標は (50, 50) とする。主人公のキャラクターは移動しない。
  • テストプレイ機能を用いてゲーム画面を開き、FPSの値と処理時間(ミリ秒)の値を記録する。
  • FPSの値を細かく読み取るため、FPSMeterは SA_FPSMeter_Customizer プラグインを用いて表示をカスタマイズする。
  • ゲーム画面の解像度は、Community_Basic プラグインを用いて設定する。
  • 計測に使用するPCではCPUが速すぎて比較にならないため、低いスペックのPCでプレイされたことを想定し、電源オプションの「プロセッサの電源管理」を用いてプロセッサの速度を 20% に下げてから計測する。
  • 各解像度ごとに50回計測する。
  • 計測の仕組み上、FPS表示とms表示を切り替えてから、それぞれ記録を取っているため、フレームレート(fps)のグラフと、処理時間(ミリ秒)のグラフに時間的な関連は全く無いことを断っておく。

プラグイン:ほとんど何も無し

プラグインの導入は必要最小限とした。プラグインの重さは別の方法で調べているので、そちらも併せて確認してもらいたい。(参考:プラグイン編

ゲーム画面の解像度は、RPGツクールMVの標準搭載のプラグインで設定する。

プラグインのパラメータの「screenWidth」に画面の幅を、「screenHeight」に画面の高さを指定すると、ゲーム画面は指定された解像度に変更される。

マップ:サンプルマップを使用

この検証を再現可能とするため、サンプルマップを使用した。この「フィールド2」は、マップの大きさが 100×100 マスであり、サンプルらしく数個のイベントも設置されていたりする。

フィールドマップということで遠景はスクロールしているが、重くなるとしたらそのくらいの理由しか思いつかない超軽量マップだ。

計測時の画面

画面左上に FPS が表示されているのが分かると思う。この値を記録する。また、FPS 表示は処理時間の ms表示(ミリ秒表示)に切り替えることもできるので、そちらも別途記録する。

実は主人公パーティは4人いる。

816 × 624 (MVの既定の解像度) 約51万ピクセル

グラフの縦軸はFPSを表す。50回測定した結果を全て横軸に並べる。

フレームレートは終始 60 FPSを維持しており、ゲーム画面の速度は何ら問題ない。

グラフの縦軸は処理時間(単位:ミリ秒)を表す。

処理時間は、17回目の計測時に スパイク(瞬間的な負荷上昇)が見られるが、おおむね問題はない。また、スパイクの規模も 60 FPS の維持に影響を与えない範囲におさまっている。なお、このような突発的な負荷上昇は、RPGツクールMVのようなブラウザゲームに特有の現象であり、また構想上、避けられない現象でもある。

960 × 540 約52万ピクセル

フレームレートはおおむね 60 FPSを維持しており、ゲーム画面の速度は安定している。15回目の計測にFPSの落ち込みがみられるが、PCのCPUコアの使用率にかなりの余力があることは確認しているので、原因は不明である。

処理時間によると、負荷の低い状態を長時間維持しており、何ら問題は見られない。

1024 × 576 約59万ピクセル

フレームレートはおおむね 60 FPSを維持しているが、FPSの落ち込みが数回発生しているのは気になる点である。CPUの性能が100%ならば、まず速度の問題として表面化しないのだが、CPUの性能を20%に下げて計測しているため、時折FPSが低下する現象が顕著に見られた形だ。このときもCPU使用率に余裕はあるため、原因は不明である。

不思議なことに、処理時間に余裕はある。おおむね2ミリ秒未満、多くても4ミリ秒未満を維持しており、この値は本来であれば相当の余裕がある。

1280 × 720 約92万ピクセル

フレームレートはおおむね 60 FPSを維持しているが、FPSの落ち込みが時折発生するのは避けようがないようだ。CPU使用率に余裕はあるため、原因は不明である。

処理時間に変化はないようだが、スパイク(瞬間的な負荷上昇)が見られる。しかし、このスパイクが問題があるかといえば、何ら問題はないだろう。

1920 × 1080 約207万ピクセル

フレームレートは比較的安定して 60 FPSを維持している。予想していたほどに負荷はみられない。画面の解像度が増えたことにより、そのことが直接、速度低下に繋がるとは限らないようだ。

23回目の計測の際に大規模なスパイクがみられた。このとき、FPSMeter の表示によると 267 msの処理時間が記録されている。おかげで歪なグラフになってしまった。CPU使用率には余裕があるため、ブラウザゲーム特有の現象だろう。諦めるほかないようだ。

まとめ

  • MVのゲーム画面の解像度を増やすことは、必ずしも速度低下の原因とはならない。むしろ、ゲーム画面の解像度と処理時間の関連は実質的には無いと考えてよい。
  • プラグインをほぼ何も追加しておらず、イベントもほとんど何も置かれていない、デフォルトのスカスカのマップであっても、ゲーム画面の表示中に突発的に生じるスパイク(瞬間的な負荷上昇)は画面の解像度に関わらず発生し、避けようがない。
  • スパイクの発生頻度や大きさと、ゲーム画面の解像度の関連性は、計測回数が少ないため不明である。また、スパイクが生じる原因も不明である。今後の課題とする。

NEXT – 3. 並列処理編

  1. MVのゲームの重さの正体は?
  2. 解像度編 ★
  3. 並列処理編
  4. プラグイン編
  5. プラグイン編(おまけ)
  6. 光源システム編
  7. まとめ

ツクールフォーラムアドベントカレンダー Advent Calendar 2018