暗号化画像のキャッシュ対応【RPGツクールMZプラグイン】

2026/05/31

 暗号化した画像のロードをキャッシュ処理で高速化します。


 RPGツクールMZはChromeと同じエンジンを使用しており、一度読み込んだ画像はブラウザと同様の仕組みでキャッシュされます。

 しかしながら、デプロイ時に暗号化された画像は画像と認識されなくなるため、キャッシュも働かなくなってしまいます。
 そのため、場所移動を行う度にほぼ全ての画像をリクエストして復号(暗号解除)し直すということをしています。
 (タイルセット、キャラクター、SVアクター、ピクチャなど)

 このプラグインは復号済みの画像をキャッシュとして保持します。
 2回目以降のアクセスでは各処理をスキップするため、場所移動時を始めとした画像読込を高速化できます。

 基本的には、暗号化しない場合とほぼ同じロード時間になるはずです。
 当然ながら、画像の暗号化を使用しないプロジェクトには意味がありません。

目次


導入方法(Install)

更新履歴(History)

仕組み

注意事項

プラグインパラメータ(Plugin Parameters)

最大キャッシュ数(MaxCacheCount)

ロード時にクリア(ClearOnLoad)


導入方法(Install)


 以下のファイルをダウンロードし、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMZ専用です。

 NRP_DecryptCache.js ver1.00(2026/05/31)

更新履歴(History)


2026/05/31(ver1.00)

  • 公開!

仕組み


 RPGツクールMZは場所移動時に ImageManager.clear() を呼び出して画像キャッシュを全消去します。そのため、暗号化画像には毎回「リクエスト取得 → 復号 → Blob → ObjectURL」という取得処理が走ります。

 このプラグインはObjectURLをImageManagerのキャッシュとは別の領域に保持することで、ImageManager.clear()の影響を受けずに再利用します。
 2回目以降のアクセスではXHRと復号処理を完全にスキップできるため、暗号化しない場合とほぼ同等のロード速度を実現します。

プラグインパラメータ(Plugin Parameters)


最大キャッシュ数(MaxCacheCount)

 キャッシュする画像の最大数です。
 この数を超えると古いものから順に破棄されます。
 デフォルト値は300です。

 値を増やすほどメモリを消費します。imgフォルダ以下のファイル数とサイズを参考に設定してください。
 ※MZの動作環境はメモリ8GBなので、100MB程度で問題になることはまずないはずです。余裕があるなら全ファイル数より多く設定してもよいかと思います。
 ※正確にはsystemフォルダ以下の画像は対象外(別でキャッシュ済)です。

ロード時にクリア(ClearOnLoad)

 セーブデータのロード時にキャッシュをリセットするかどうかです。
 デフォルトはオン(true)です。

 オンにすると、ロード時に古いObjectURLを破棄してメモリリークを防ぎます。
 オフにするとロード後もキャッシュを継続して使用します。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 12:46 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする

描画FPSを変更する【RPGツクールMZプラグイン】

2026/05/29

 描画FPSを変更して、描画負荷を軽減します。


 RPGツクールMZの描画は標準で60回/秒(60FPS)に固定されています。
 このプラグインを導入すると、描画の回数を30FPSや45FPSなどに間引いて処理負荷を下げることができます。

 ゲームロジック(キャラ移動・イベント・戦闘計算など)は引き続き60FPS相当で動作します。つまり、プレイヤーの操作感やゲーム速度は変わりません。

 プラグインを適用すると、オプション画面でFPSを選択できるようになります。
 重い演出が多い作品や、スペックの低い環境でのプレイ体験向上に役立つプラグインです。

目次


導入方法(Install)

更新履歴(History)

FPSの切替方法

オプション画面を使う方法(初期状態)

変数で制御する方法

FPS候補リストについて

注意点

仕組み

プラグインパラメータ(Plugin Parameters)

FPS変数(VariableId)

戦闘時に限定(OnlyBattle)

起動時のデフォルトFPS(DefaultFps)

オプションに表示(UseOption)

オプション挿入位置(OptionPosition)

オプション表示名(OptionName)

FPS候補リスト(FpsList)


導入方法(Install)


 以下のファイルをダウンロードし、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMZ専用です。

 NRP_ChangeFpsMode.js ver1.00(2026/05/29)

更新履歴(History)


2026/05/29(ver1.00)

  • 公開!

FPSの切替方法


オプション画面を使う方法(初期状態)

 プラグインパラメータ『オプションに表示』がオンの場合、オプション画面でFPSを選択できるようになります。

 プレイヤーは左右キーで『FPS候補リスト』に登録したFPS値を切り替えることができます。
 この設定はセーブデータとは独立して保存されます(config.rmmzsave)。

 設定を変更すると、連動して『FPS変数』にも現在のFPS値が格納されます。
 イベント等で現在のFPS状態を参照したい場合は、この変数の値を確認してください。

 ※変数を直接操作した場合は一時的にFPSを変更できますが、オプション側には連動しませんのでご注意ください。

変数で制御する方法

 『オプションに表示』をオフにした場合は、イベントコマンドの変数操作によってFPSを切り替えます。

 変数に希望のFPS値(例:30)を設定してください。
 値が0以下または60より大きい場合は、自動的に60FPSとして扱われます。
 状態は、セーブデータ毎に個別に記録されます。

FPS候補リストについて


 プラグインパラメータの『FPS候補リスト』で、オプション画面に表示するFPS値と表示ラベルを複数登録できます。

設定例

FPS: 60 ラベル: 60(標準)
FPS: 30 ラベル: 30(低負荷)
FPS: 15 ラベル: 15(超低負荷)

 ラベルは長い文字列も設定できますが、MZのオプション画面の仕様上、値の表示領域は120px固定のため、文字が縮小されて表示されてしまいます。

 表示領域の幅を広げたい場合は、NRP_OptionCustomize.js(ver1.01以上)などの外部プラグインを組み合わせてください。

注意点


  • アニメーションや移動の見た目は多少カクつきます(描画間引きの性質上)。
  • BGMや効果音のタイミングには影響しません。
  • ゲーム速度・操作応答は60FPS時と同一です。
  • 他のFPS変更プラグインとの併用はしないでください。
  • このプラグインは解説含め大体をClaudeAIで作成しました。
    作者は↓のBresenham方式が何かよく分かっていませんが、テストなどのチェックはしています。


仕組み


 描画はrmmz_core.jsのGraphics._onTick()内のthis._app.render()で行われています。
 このプラグインはGraphics._onTickをラップし、render呼び出しを指定FPSの比率でスキップすることで、ロジックに一切手を加えずに描画だけを制限します。
Graphics._onTick(deltaTime)
 ├─ fpsCounter.startTick() : 毎フレーム
 ├─ tickHandler(deltaTime) : 毎フレーム(ロジックは変わらない)
 ├─ this._app.render()   : 比率に応じてスキップ
 └─ fpsCounter.endTick()  : 毎フレーム(FPS表示は補正)

 描画のスキップはBresenham方式の誤差蓄積によって均等に間引かれるため、ムラなく滑らかな間引きが実現されています。

プラグインパラメータ(Plugin Parameters)


FPS変数(VariableId)

 現在の描画FPSを格納する変数を指定します。
 値が0以下または60より大きい場合は、通常の60FPSとして扱われます。
 デフォルトは変数1番になっていますが、必ず適切な変数を設定してください。

戦闘時に限定(OnlyBattle)

 オンにすると、FPS低下の効果を戦闘シーンのみに限定します。
 マップ上では常に60FPSを維持したい場合に使用します。
 デフォルトはオフです。

起動時のデフォルトFPS(DefaultFps)

 ゲーム起動時に使用するFPSを指定します。
 必ず下記の『FPS候補リスト』に存在する値を設定してください。
 デフォルトは60です。

オプションに表示(UseOption)

 オンにすると、オプション画面にFPS選択項目を追加します。
 オフにすると、イベントコマンドによる変数操作でFPSを制御するモードになります。
 デフォルトはオンです。

オプション挿入位置(OptionPosition)

 オプション画面へのFPS選択項目の挿入位置(0始まりの番号)を指定します。
 デフォルトの2は「コマンド記憶」の下に相当します。
 『オプションに表示』がオンの場合のみ有効です。

オプション表示名(OptionName)

 オプション画面に表示する項目名を設定します。
 デフォルトは「描画FPS」です。
 『オプションに表示』がオンの場合のみ有効です。

FPS候補リスト(FpsList)

 オプション画面でプレイヤーが選択できるFPS値の一覧です。
 各エントリにFPS値(1〜60)と表示ラベルを設定します。
 ラベルを空欄にするとFPS値の数字がそのまま表示されます。

 デフォルトは30/40/50/60の4段階が登録されています。
 『オプションに表示』がオンの場合のみ有効です。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 12:53 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする

マップをタイトル画面として使用する【RPGツクールMZプラグイン】

2026/04/19

 マップをタイトル画面として使用することで、様々な演出を実現可能とします。


 特にマップ版DynamicAnimationとの組み合わせにより、自由度の高いタイトル画面の作成が可能となります。

 当プラグインはN_TitleMap.js Version 1.0.3(Nolonar様)を元に、砂川赳が競合対策などの改造を施したものです。

 また、セーブファイルの内容を参照する機能を追加しています。
 (初期状態ではオートセーブを参照します。)
 スイッチや変数、仲間、アイテムなどが参照できるので、進行状況によって、背景やBGMを変更するような演出が可能となります。

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

プラグインパラメータ

マップID(mapId)

開始X座標(startX)

開始Y座標(startY)

マップをリセットする(mapReset) ver1.05

セーブファイルを参照(readSaveFile) ver1.04

セーブファイル番号(saveFileId) ver1.04

並列コモンの無効化(disabledParallelCommon) ver1.04


導入方法(install)


 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMZ用です。MVでは動作未確認です。
 ※改変元に従い、規約はMITライセンスとなります。

 NRP_N_TitleMap.js ver1.07(2026/04/19)

更新履歴(History)


2026/04/19(ver1.07)

  • ver1.06〜1.061の対応が不完全だったので、処理を見直して安定化した。

2026/04/14 -> 2026/04/17(ver1.06 -> 1.061)

  • ブラウザ環境においてセーブファイルの参照に失敗する不具合を修正。
  • Electron環境で起動時に低確率でエラーになる問題に対応。
    (2026/04/17 ver1.061)

2024/05/24(ver1.05)

  • コンティニューやオプションから戻った際にマップ状態をリセットしないように変更した。
  • それに伴い、プラグインパラメータにマップをリセットするを追加した。

2024/05/19(ver1.04)

  • セーブデータの参照機能を追加。
    ゲームの進行に応じてタイトル画面の内容を変化させることができます。

2022/07/17(ver1.03)

  • ExtraGauge.jsと併用時にエラーとなる競合に対処。
    ※上にExtraGauge.jsを配置してください。

2022/07/03(ver1.02)

  • ニューゲーム時に瞬間暗転する仕様になっていたので、通常のフェードアウト処理を行うよう修正。

2022/06/11(ver1.01)

  • コンティニューやオプションを選択した際、ウィンドウ跡が白く表示されてしまう問題に対応。

2022/02/04(ver1.00)

  • 公開!

使用方法(Usage)


 タイトルとして使用するマップ画面を自由に作成してください。その後、プラグインパラメータで、タイトル画面として使用したいマップIDを指定すればOKです。

 なお、プレイヤーは表示されませんが、プラグインパラメータで画面の中央となる座標を変更できます。
 画面スクロールをさせたい場合は、プレイヤーを移動させるのではなく『マップのスクロール』を実行してください。

プラグインパラメータ


マップID(mapId)

 タイトル画面として使用するマップのIDです。

開始X座標(startX)

 開始時のX座標です。
 空欄なら自動でマップ中央に配置されます。

開始Y座標(startY)

 開始時のY座標です。
 空欄なら自動でマップ中央に配置されます。

マップをリセットする(mapReset)ver1.05

 コンティニューやオプションから戻った際、タイトルマップの状態をリセットします。

セーブファイルを参照(readSaveFile)ver1.04

 セーブファイルを参照し、内容を反映できるようにします。
 スイッチや変数、仲間、アイテムなどが参照できるので、進行状況によって、背景やBGMを変更するような演出が可能となります。

セーブファイル番号(saveFileId)ver1.04

 参照するセーブファイルの番号です。
 0:オートセーブ, 1:一番目のファイル
 ※初期状態ではオートセーブを参照します。

 ちなみにツクールMZでは、以下のスクリプトでセーブを強制実行することができます。
DataManager.saveGame(ファイル番号);

 以下のように通常はありえない番号を指定してしまえば、タイトル画面専用のファイルを作成することもできます。
DataManager.saveGame(9999);


並列コモンの無効化(disabledParallelCommon)ver1.04

 トリガーが『自動実行』や『並列処理』に該当するコモンイベントを無効化します。
 セーブファイルを参照する設定にした場合、意図せずコモンイベントが実行されてしまうことがあるため、それを無効化するための措置です。オフにする場合はご注意ください。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 14:10 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする