マガジン

RPGツクールのゲームが重い:軽くする設定

遊びをつくる

執筆にClaudeを使用しています。

同じ絵の厚いカード束と薄い束を比べ、画像容量の最適化を表した写真風イメージ。
記事のテーマをもとに制作したAI生成イラスト。

RPGツクールで作ったゲームを友人に渡したら「重くて動かない」と言われた、あるいはブラウザ公開したらスマホで読み込みに数十秒かかる——こうした経験は多くの制作者が通る道です。原因のほとんどは「素材の扱い方」と「イベント処理の作り方」の二点に集中しています。 この記事では、RPGツクールMZ・MVを主な対象に、ゲームが重くなる原因を整理し、設定や構成の見直しで実際に軽くする手順を説明します。エンジンを替えたり外部プラグインを大量に入れたりしなくても、標準機能の範囲で改善できる点が多くあります。

この記事の目次
  1. なぜ重くなるのか:原因を三層に分ける
  2. 素材を削る:未使用ファイルの除去と圧縮
  3. イベント処理を見直す:並列処理の整理が最優先
  4. プラグインの影響を切り分ける
  5. ブラウザ公開時の追加チェック
  6. 次の行動
  7. 参考資料

なぜ重くなるのか:原因を三層に分ける

重さの原因は「素材(アセット)」「イベント処理」「プラグイン」の三層に分けると整理しやすいです。

素材層は読み込みサイズの問題です。画像・音楽・効果音が大きいほど初回ロードが遅くなります。とくに未使用ファイルをimgフォルダやaudioフォルダに置き続けると、デプロイ(書き出し)時にすべて同梱されてしまいます。

イベント処理層はフレームレートの問題です。並列処理(トリガーが「並列処理」のコモンイベント)は毎フレーム実行されるため、数が増えると処理落ちが起きます。

プラグイン層はスクリプト実行コストの問題です。互いに相性が悪いプラグインを組み合わせたとき、内部で同じ処理が二重に走ることがあります。

どの層が原因かを切り分けないまま「プラグインを全部外す」「マップを作り直す」といった作業をすると、時間だけが消えます。まず原因層を特定してから対策を打つのが効率的です。

素材を削る:未使用ファイルの除去と圧縮

デプロイ時に「未使用ファイルを含めない」を選ぶ

RPGツクールMZ・MVのデプロイダイアログには「未使用ファイルを含めない」チェックボックスがあります。これをオンにするだけで、プロジェクトフォルダに入っているが一度もマップやデータベースから参照されていない素材を除外できます。素材をたくさん試した後に整理していないプロジェクトでは、このチェック一つで出力サイズが半分以下になることもあります。

ただし「参照されているかどうか」の判定はデータベース・マップ上の直接指定に基づきます。スクリプトコマンドやプラグインから文字列で動的に読んでいる素材は「未使用」と誤判定されて削除される場合があるため、デプロイ後に一通りプレイして確認するのが安全です。

画像ファイルのサイズを下げる

タイルセットやキャラクター素材は、元のPNGをそのまま使うと想定以上に大きいことがあります。PNG圧縮ツール(TinyPNGなど広く使われているウェブサービスが複数あります)で再圧縮するだけで、見た目をほぼ変えずにファイルサイズを6〜7割に抑えられるケースは珍しくありません。とくに背景画像やタイトル画面の一枚絵は解像度が高いため効果が出やすいです。

音楽・効果音のフォーマットを確認する

RPGツクールMZはOGGとM4Aを両用することでブラウザ互換性を確保する設計になっています。同じ曲のOGGとM4Aを両方置いている場合、ファイル数は倍になります。配布先がブラウザ限定であればOGGのみでも動作するブラウザが多いですが、iOSへの対応を考慮するならM4Aも必要です。自分のターゲット環境を決めてから必要なフォーマットだけ残すと、全体のサイズが圧縮されます。公式の最新仕様は出力時のドキュメントで確認してください。

イベント処理を見直す:並列処理の整理が最優先

並列処理コモンイベントを棚卸しする

ゲームが進むにつれてコモンイベントが増え、気づかないまま並列処理が何本も走っているケースがあります。プロジェクトのコモンイベント一覧を開き、トリガーが「並列処理」になっているものをすべてリストアップしてください。

そのうえで各コモンイベントに「常時実行が本当に必要か」を問い直します。たとえば「特定のスイッチがオンになったら一度だけ演出を出す」処理であれば、並列処理でスイッチを監視し続けるより、スイッチを変えた側のイベントから直接そのコモンイベントを呼び出す方が処理コストはゼロに近くなります。

ウェイトを挟んで負荷を間引く

どうしても並列処理が必要な場合、ループの先頭に「ウェイト:1フレーム」を入れるだけで処理負荷が体感で下がることがあります。毎フレーム実行していた判定が「1フレームおき」になるため、重い処理でなければゲームの挙動に影響は出ません。タイマーや歩数カウントなど精度が重要な処理には使えませんが、環境音の切り替えやHUDの更新程度であれば有効な手です。

マップイベントのページ条件を整理する

マップ上のイベントもページ数が多いと、現在表示すべきページを探す処理がかかります。複雑な条件分岐を一つのイベントに詰め込みすぎているときは、条件が成立しないページをできるだけ前に配置して早期に確定させると、後のページを評価するコストを減らせます。

プラグインの影響を切り分ける

プラグインを多数入れているプロジェクトで重さが気になるときは、まずプラグイン管理画面で「すべてオフ」にした状態でテストプレイします。それで軽くなるなら原因はプラグインにあります。次に半分だけオンにして試す、という二分探索を繰り返すと、問題のあるプラグインを最短で特定できます。

競合の多いパターンとして「同じ機能(例:メニュー改造)を別々のプラグインで二重に拡張している」があります。後から入れた方のプラグインが前のものを内部でループ処理のたびに参照していると、互いに呼び出し合って処理が膨らみます。同種のプラグインは一本にまとめるか、どちらか一方に統一するのが基本です。

プラグイン作者が更新している場合、バグ修正とあわせて処理効率が改善されていることがあります。長期間バージョンを固定しているプラグインは、最新版を公式配布先で確認する価値があります。

ブラウザ公開時の追加チェック

ブラウザで動かすゲームは、ローカル起動と異なる遅延が加わります。とくに初回ロードでの素材一括取得はネットワーク速度に左右されるため、素材の削減が最も直接的に効きます。

また、RPGツクールMZはブラウザ向けにEffekseerのエフェクトもすべて読み込みます。使っていないエフェクトファイルが大量にあるなら、デプロイ時の未使用除外の対象になっているか確認してください。カスタムエフェクトをフォルダに入れただけで参照していない場合は特に注意が必要です。

キャッシュが効いていない初回アクセスの重さが気になるときは、ゲームのタイトル画面で意図的に待機時間を作り、その間に裏側でアセットをプリロードする仕組みをプラグインで実装する方法もあります。ただしこれは標準機能の範囲を超えるため、プラグインの信頼性と自身のカスタマイズ経験に応じて判断してください。

次の行動

まずデプロイ設定の「未使用ファイルを含めない」をオンにして出力サイズを確認し、次にコモンイベントの並列処理を棚卸しするという二つの手順から始めてみてください。この二点だけで多くのケースで体感が変わります。軽量化したブラウザゲームをアソバースに投稿する際は、ZIPファイルの直接アップロードとURLの登録どちらにも対応しているため、出力フォルダをそのまま使えます。

参考資料

  • RPGツクールMZ 公式ヘルプドキュメント(デプロイ・コモンイベント・プラグイン管理)
  • RPGツクールMV 公式ヘルプドキュメント