RPGツクールMV/MZで制作したゲームが重い場合の改善方法


私は、RPGツクールMV(MZ)でゲームを制作しています。
テストプレイしてみたら、なぜかゲームの動作が重いです。
フレームレートも30fpsを頻繁に下回り、映像表示もカクつきます。
処理落ちを軽減して軽量化する方法があれば教えてほしいです!
こんなお悩みを解決します。
この記事の内容
- RPGツクールMVやRPGツクールMZで制作したゲームが重い場合の改善方法を解説

開発中のゲームが重い場合、対処法が分からないと悩みますよね。

筆者もRPGツクールMVを使い始めた2017年頃はそうでした。
当時のネット上では、「イベントの作り方」は紹介されていました。
しかし、軽量化に関する情報は少なかったからです。
そこで、この記事では、RPGツクールMV(MZ)製のゲームの処理落ちを改善する方法をお伝えします。
数ある軽量化の方法の中から、特に効果的といえる方法のみを解説します。
ちなみに、他の方の記事ではさまざまな方法が解説されています。
しかし、筆者のこれまでの経験から言うと、実際に効果を体感できるのは一部の方法だけ。
率直に言って、軽量化に時間や労力を割きすぎるのはもったいないです。
なので、実施するのは、今回お伝えする方法だけで十分といえます。
この記事を読めば、あなたのゲームを効果的に軽量化する方法を必ず知ることができます。
それではご覧ください!
RPGツクールMV/MZで制作したゲームが重い場合の改善方法

RPGツクールMV/MZで制作したゲームが重い場合は、以下の方法をお試しください。
- イベントをマップ上に大量配置しないようにする
- ピクチャを一度に大量表示しないようにする
- サイズが大きすぎる画像は分割して表示する
- 並列処理イベントやループ処理内にはウェイトを入れる
つまり、画像処理の負荷と、繰り返し処理内の負荷を軽減させるのが効果的です。
率直に言って、これ以外は無理してやらなくてOK。
他の方の記事では、画像や音声のプリロード(事前読み込み)などもよく紹介されています。
しかし、筆者もかつては実施していましたが、あまり大きな効果は得られませんでした。

それどころか、ブラウザゲームとしてリリースする場合、かえって動作が不安定になるリスクもあります。
なぜなら、プリロードの際にメモリ使用量が急激に増加するからです。
なので、RPGツクールMV/MZのゲームを軽量化させたいなら、上記の4つに重点を置いて実施しましょう。
順番に解説していきます。
イベントをマップ上に大量配置しないようにする
まず、イベントをマップ上に大量配置しないようにしましょう。
特に、自律移動するイベントは大量配置すると重くなりやすいです。
その理由は、以下のとおり。
- 定期的なイベント位置の更新で負荷がかかるから
- 歩行グラフィックとそのアニメーションの描画で負荷がかかるから
- スイッチや変数の操作時にリフレッシュが入るから

なので、負荷を少なくするために、こういった処理の実行を少なくする必要があります。
したがって、特に自律移動するイベントは、マップ上からなるべく減らしましょう。
イベントの処理を軽量化するプラグインを使うのも効果的
ちなみに、イベントの描画にかかる負荷を軽減できるプラグインが存在します。
以下のプラグインです。
»NRP_EventLightLoad.js(制作者:砂川赳様)
このプラグインを使うことで、画面外のイベント描画を停止し、負荷を軽減できます。

つまり、画面に映っていないイベントの描画処理だけ停止できるということです。
とはいえ、やはり大量配置しないに越したことはありません。
これはあなたのゲームの仕様上、どうしてもイベント数を減らせない場合におすすめです。
ピクチャを一度に大量表示しないようにする
ピクチャを一度に大量表示するのは避けましょう。
なぜなら、画像の読み込みには少なくない処理負荷がかかるからです。
これはプリロード(事前読み込み)の場合も同様です。
なので、大量のピクチャを表示したい場合は、小分けにして表示しましょう。

例えば、十分なフレーム間隔を空けて、段階的に表示していくのがおすすめです。
サイズが大きすぎる画像は分割して表示する
サイズが大きすぎる画像は、小さな画像に分割して表示しましょう。
縦と横のサイズが大きい画像は、展開するのに負荷がかかるからです。
ゲームの動作環境によっては、大きすぎる画像は表示できない場合もあります。

実際にこの現象は、筆者のゲーム『血染めのナナ』でも確認済みです。
ゲーム中でサイズが「1,280×4,320」の大きな画像を扱っていました。
しかし、スマホでプレイした際に正常に表示できませんでした。
なので、大きすぎる画像は小さく分けて別々のファイルとして保存し、ゲーム中で表示する際にくっつけましょう。
並列処理イベントやループ処理内にはウェイトを入れる
並列処理イベントやループ処理内にはウェイトを入れましょう。
つまり、繰り返し処理には、再度処理が開始されるまでの待機時間を設けてください。
なぜなら、ウェイトを入れないと、1秒間に60回の頻度で繰り返し実行されるからです。
1秒間に60回も実行しないといけない処理は、そんなに多くありません。
なので、繰り返し処理には、基本的にウェイトを入れましょう。

なお、1~3フレーム程度のウェイトを入れておけばまず問題ありません。
スイッチや変数の操作は、実は重くなる原因の一つ
RPGツクールMV/MZのスイッチや変数の操作は、実は意外と負荷がかかります。
なぜなら、これらの実行時に、マップ上の全イベントとコモンイベントの状態の確認処理が行われるためです。
つまり、スイッチや変数を操作するたびに、この処理が実行されます。
もし、ウェイト無しの並列処理やループ処理に、スイッチや変数の操作を入れてしまうとどうなるでしょうか?
これが1秒間に60回も繰り返し実行されることになるのです。

ゲームが重くなるのは、容易に想像がつくかと思います。
なので、繰り返し処理にはウェイトを入れて負荷を軽減しましょう。
これが、並列処理イベントやループ処理内にウェイトを入れておくべき理由の一つです。
まとめ

今回は、RPGツクールMV/MZで制作したゲームが重い場合の効果的な改善方法を解説しました。
お伝えした方法を実践すれば、あなたのゲームはPCやスマホで快適に遊べるゲームに変わります。
ツクール製ゲームの処理落ちを減らして、軽量化を実現したい場合はぜひお試しください。

ちなみに、ゲームのファイルサイズ(容量)を減らすのも、軽量化に効果がある場合もあります。
以下の記事で、ゲームに使う画像や音声ファイルの容量を減らす方法を解説しています。
参考にご覧ください。
»自作ゲームの容量を減らす方法【画像や音声データサイズを圧縮】