MVのゲームの重さの正体は?

RPG Maker MV(RPGツクールMV)のゲームが重いと言われることがある。

また、別の場所では軽いと言われることがある。何がその違いを生じさせるのだろうか? 本当はどちらなのだろうか? ここでは、MVのゲームが重いと言われる原因を探っていこう。

ゲームの重さは何によって決まるか

ゲーマーは何を見て、ゲームが重いと感じるのだろうか? 重いゲームと軽いゲームの違いは何だろうか? その要因は主に次の二つに分類できる。

  • 待ち時間が長い(応答が遅い、ロード時間が長い)
  • 画面の動きがカクカクする(カクつく、一瞬止まる、FPSが低い)

代表的なものは、待ち時間の問題と、画面描画の問題の二つだろう。括弧内には、それらのバリエーションを記している。応答が遅かったり、ロード時間が長かったりすると、そのためにゲーマーは何もせず待つことになってしまい、待たせれば待たせるほど「重い」と評される可能性が高まってしまう。

逆に、これらの現象がゲーム内に見られなければ、ゲームが重いという表現はあまり適切とは言えないだろうが、なにか一つでも重いものがあれば、十分そのゲームは重いと言える。

今回は、後者の「画面の動きがカクカクする」に焦点を当ててみよう。

画面の動きがカクカクするとは何か?

ゲームの印象はまず見た目で決まる。(実は画面上のキャラクターが1マスずつしか動けないという)黎明期のゲームならともかく、現在のゲームは全て、キャラクターはプレイヤーの操作に応じて画面内をスムーズに動くものと期待されている。

また、ゲーム画面のスムーズなスクロールも、当然期待されていると考えて良い(コンシューマーゲームでは、最初の家庭用ゲーム機の頃からスムーズスクロールを採用するゲームが多い)。

つまり、画面の動きがカクカクするというのは、あえて狙った表現でもない限り、本来起こってはならないことだ。ここまでは、ゲーマーも制作者も意見の一致するところと思うが、いかがだろうか? (なかには、カクカクするくらいの重いゲームのほうが楽しいんだよ! というコアゲーマーも居るかもしれないが……)

一般に、PCに接続されて使われるディスプレイの、画面書き換え頻度は1秒あたり60回である。そのため、RPGツクールMVのゲーム画面は 60 FPS(fps、frames per second、フレームレート) を目標として描画するように作られている。

逆に考えると、60 FPS を維持するには、1フレームの描画を約 16 ミリ秒以内に完了しなくてはならない。実際にグラフィックの描画だけでなく、その元となる様々な計算やゲームに必要な処理も全部足して 16 ミリ秒以内だ。

その仕様上の制限時間(16 ミリ秒)までに完了しないと、描画しようとするフレームは、ディスプレイの次の画面書き換えのタイミングに間に合わないことになり、ディスプレイは表示を更新できない。これをゲーマーが見たとき、「カクカクする」と言われたりする。

こんなにヒドくは無いが

カクつく現象には別の原因もあったりするのだが、ひとまずここでは、1フレームあたりに使用できる時間は限られていると考えておこう。

MV製ゲームの軽さを決める3大要素

  1. CPUの Turbo Boost(シングルスレッド性能)
  2. ブラウザの性能
  3. PCのバックグラウンド処理の有無

1.CPUの Turbo Boost(シングルスレッド性能)

身も蓋もないコトだが、MV製ゲームの軽さは、プレイヤーが使用するPCに搭載されているCPUの性能に最も大きく依存する。特に、Turbo Boost がどの程度まで効いて、その結果シングルスレッド性能がどの程度まで出るかによって、ゲーム画面の軽さの上限がほぼ決まってしまう。

制作者の環境がプレイヤーの環境に比べて高速なCP`Uだった場合、そのままではプレイヤーが感じるゲーム画面の重さを体感することができない。そこで、擬似的にCPUの遅さを再現する方法として、次のようなものがある。

「電源オプション」を開き、プロセッサの電源管理 → 最小のプロセッサの状態を20%、最大のプロセッサの状態を20% に変更してみよう。「電源オプション」は、Windows 10 の場合は「Windows の設定」の「システム」の「電源とスリープ」の「電源の追加設定」の「プラン設定の変更」リンクをたどると開くことができる。

この設定を適用すると、すぐに CPU の速度が一気に低下したことに気付くはずだ。最高速度の五分の一に制限されて動作するため、アプリの起動が遅くなり、ウィンドウを一つ開くのにも、かなり待たされるのではなかろうか。もっさりして、すぐに元の100%に戻したくなるのをぐっと抑えて、その状態でMVのゲーム画面を開いてみよう。

元々のCPU性能やゲームの作りにもよるが、快適にプレイできているだろうか? 60 FPS は維持できているだろうか? おそらく、たくさんのプレイヤーのうちの何割かは、その状態でプレイを開始することになるだろう。制作者の想像を遙かに上回る「遅い環境」というのは実在する。

筆者の環境では、プロセッサの状態を20%にすると、FPS は 60 を維持できずに 59 に低下してしまった。

キャラクターが静止している状態のFPS

F2 キーをもう一度押して、処理時間(ミリ秒)の表示に切り替えると、次のように、おおむね約 13 ミリ秒から 18 ミリ秒の間におさまるようだ。

60 FPS を維持するには、1フレームあたり 16ミリ秒以内におさめなくてはならないので、この状態では、60 FPSをギリギリ維持できないくらいの辺りで、落ち着かない FPS 値になるだろう。

さて、この結果を見て 58 FPSなら良い方じゃないかと思われるかもしれないが、全くダメである。

この値は、キャラクターを動かしていない、とても良い条件下において確認した値に過ぎず、例えばキャラクターをマウスで操作して動かすと、一気に 30 FPS台や 40 FPS台の値に落ちてしまう。当然、移動中はカクカクするし、一瞬画面が止まったりもする。マップ移動をともなうRPGの類のゲームにおいて、マップ移動中にカクカクするのはマイナス要素が大きく、ゲームとして終わっている。

これらの体験(実験)から一つ言えることは、処理時間を 16 ミリ秒以内にギリギリおさめても、それでは遅すぎると言うことだ。キャラクターを縦横無尽に動かしたときに、絶対に 16 ミリ秒を超えないようにしなくてはならない。

また、プロセッサの状態の%値を変更しながら確かめることで、どのくらいスペックの低いPC環境まで対応できるかを大雑把に予想することができる。もちろん、実際のPCを用いて動作確認するのがベストだが、制作段階からCPUの性能をわざと下げてみて、60 FPS を維持できているかどうかを確認する手法も有効だ。

確認が済んだら、元の100%の設定に戻しておこう。戻し方は簡単で、「電源オプション」の プロセッサの電源管理 → 最小のプロセッサの状態を100%、最大のプロセッサの状態を100% に変更して適用すれば良い。この元に戻す作業を忘れてしまうと、PCのスペックが下がったままになってしまう。最近の Windows 10 では、電源オプションのカスタマイズは滅多にリセットされないのだ。

2.ブラウザの性能

MV製のゲームをブラウザ上で動かしている場合は、そのブラウザの性能の影響をまともに受けることになるのは、致し方のないところだ。

ブラウザが高速に動作すればゲームは快適にプレイできる可能性が高く、ブラウザの速度が遅いとゲームプレイに支障が出る可能性が高い。この差は、ゲーム側の努力で埋められないほど大きな差となる場合もあるので油断ならない。

2018年12月現在、Windows用のダウンロード版のゲームが最も高速に動作する。

FirefoxブラウザとChromeブラウザのどちらが高速に動作するかは、ゲームの内容による。ベンチマークテストの結果によるとFirefoxが高速だが、Firefox 64.0(2018年12月現在)はHTML5のゲーム画面にCPUの割り当てが減らされてしまう問題点が見つかっており、比べるとChromeのほうが高速に動作することがある。

ここでいうブラウザの性能とは、ブラウザがHTML5のゲーム(MV製のゲーム作品のことだゾ)に、どの程度までCPUリソースを割り当ててくれるか? という根本的な部分を含んでいる。

厄介なことに最近のブラウザは、省電力化の流れなのか、CPUをそれほど割り当てないケースが多くなってきている。特に軽量なゲームには、最小限のCPUしか割り当ててくれず、制作者の軽量化の努力がブラウザ上では無駄になることがある。ダウンロード版はこの影響を受けにくいので、軽量なゲームでFPSを安定させやすい。

3.PCのバックグラウンド処理の有無

なんだかMVのゲーム画面が重いなぁ、カクカクするなぁと思っていたら、裏で Windows Update が動いていたことがある。

まさかそんな単純な理由で! と一笑に付すかもしれないが、意外とこれが侮れないのだ。勝手に動き始めることに定評がある Windows Update を甘く見ない方が良いだろう。特にMVなどのブラウザゲームは Windows 10 からはそれがゲームであると認識されていないのか、裏で Windows Update を動かしても構わないだろうと判断されるらしいのだ。

Windows Update が動くと、まずCPUのリソースの一部が Update 関連の処理に取られてしまう。一部だけではあるが、それが問題だ。一般に、CPU の Turbo Boost 機能は、負荷のかかっているCPUコアの数が少ないほど、高い CP`U 周波数まで Boost してくれる。裏で Update が動いていると、複数のCPUコアが動いているため Boost が限定的になり、その結果必然的にMVのゲーム画面が重くなる。

この現象は Windows PC において避けようがないという厄介な特徴もある。OSの省電力機能は電源オプションの設定を変更することで、ある程度の制御は可能だが、Windows Update を完全に止めてしまうことは事実上不可能だろう。

また、Windows Update に限らず、Windows OS ではバックグラウンドで多くの処理が動作する可能性がある(もちろん、特に何も動いていない「静かな時」もある)。

そして、バックグラウンド処理の多くはユーザーは意識的に止めようがないため、ゲーム画面はそのたびに一々重くなり、カクカクしてしまう。その本当の原因を知る由もないプレイヤーの不満は、MV製ゲームの制作者や、RPGツクールMVの開発元(販売元)に矛先が向く。
ゲーム専用機ではない、Windows でゲームを動かすということは、そういうことなのだろう。

NEXT – 2. 解像度編

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

執筆者:seea / nekono.org.
イラスト素材:いらすとや

当サイトの記事や画像の無断転載を禁じます。

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