RPGツクール2000/バグ・エラー【サイトトップへ戻る】
■セーブ画面(ロード画面)が開くのが遅い
(更新:2019/07/14)


セーブ画面やロード画面を開く時に、スムーズに開かなくなりましたか?



☆原因と対策

セーブ画面を開くのが遅くなった原因は、セーブデータの容量が大きくなった事が原因です。
さらに複数のセーブ番号に保存すると、よりセーブ画面を開くのが遅くなります。

セーブデータの容量は、通常の場合はあまり気にする必要がありませんが、
特殊な状況下ではセーブデータの容量が増大し、セーブ画面の表示速度に影響が出てきます。



▼変数番号の使用数

変数は5000番まで使用する事ができますが、
イベントコマンド:変数の操作にある「変数〜の番号の変数」の設定を使い、
◆変数の操作:[0001]代入,999999
◆変数の操作:[V[0001]]代入,0
と設定する事で、5000番を超える変数番号を使用する事ができます。

しかし最大番号である「999999番」まで使用するとセーブデータの容量が4MB近くまで増大し、
セーブ画面の表示速度に影響が出てしまいます。

また一度でも使用すると使用状態を解除する事が出来ず、
その後はずっとセーブデータの容量が増えた状態になります。

もしも5000番を超える変数番号を使う場合は、20000番程度までに抑えた方が良いでしょう。

ちなみに意味の無い設定ですが、
◆変数の操作:[0001]代入,999999
◆スイッチの操作:[V[0001]]をONにする
と設定する事で、スイッチ999999番のON/OFFを操作する事ができます。
しかし操作したスイッチのON/OFFを読み取る方法が無いので、
単にセーブデータの容量が増えるだけになります。

もしも変数の値やスイッチのON/OFFを変数で操作している場合で、
セーブデータの容量が大きくなる場合は、
◆条件分岐:変数[0001]が10000以上
 ◆文章:変数1万番を超えます。(コモン0001)
 ◆
:分岐終了
◆変数の操作:[V[0001]]代入,0
のような監視イベントを設定して、原因となっている場所を探してみると良いでしょう。



▼定期的に並列処理する

イベントの実行途中にセーブを実行しますと、
セーブデータには実行途中だったイベントの情報が保存されます。
これはロード時にセーブした所から処理が再開するためだと考えられます。

問題は定期的に並列処理する以外の場合は一時的な保存であり、
イベントが終了するとセーブデータには保存されなくなりますが、
定期的に並列処理するの場合は一度でも実行すると、
イベント出現条件を満たさなくなって動かなくなっても、
ずっとセーブデータには保存され続けます。



マップイベントの定期的に並列処理するの場合は、
別のマップへ移動する事で定期的に並列処理するのデータが初期化されますので、
あまり気にする必要はありません。

しかしコモンイベントの場合は、別のマップへ移動しても、
イベント出現条件を満たさなくなっても初期化されませんので、
実行する定期的に並列処理するの数が多くなればなるほど、
セーブデータの容量が増えていきます。



コモンイベントの場合は、イベントコマンド:イベントの呼び出しを使う方法が有効的です。

例えばコモンイベント「巨大な並列処理」と言った定期的に並列処理するがある場合、
そのコモンイベントのイベント開始条件を「呼び出されたときのみ」に変えてください。

そして別の未使用のコモンイベント、またはマップイベントにて、以下のように設定してください。
■コモンイベント「代理並列処理」
イベント開始条件:定期的に並列処理する
出現条件スイッチ:「呼び出されたときのみ」に変えたコモンイベントの設定と同じにする
◆イベントの呼び出し:巨大な並列処理

呼び出したコモンイベント「巨大な並列処理」の処理が終わっていて、
呼び出し元のコモンイベント「代理並列処理」に処理が戻っている時にセーブしますと、
呼び出したコモンイベント分のイベント容量がセーブデータには保存されません。

なお、コモンイベント「巨大な並列処理」の中にラベルや繰り返し、ウェイトの設定などがあり、
呼び出したコモンイベント「巨大な並列処理」の処理が終わっていない状態でセーブを実行しますと、
コモンイベント「巨大な並列処理」のイベント容量分がセーブデータに保存されます。



呼び出すコモンイベントを毎フレームごとに実行する必要が無い場合は、
必要な時のみ呼び出すようにした方が良いでしょう。

例えば主人公のHPを表示するコモンイベントを呼び出す場合、
◆変数の操作:[0001:現在HP]代入,主人公01のHP
◆条件分岐:変数[0001:現在HP]がV[0002]以外
 ◆変数の操作:[0002:表示HP]代入,変数[0001]の値
 ◆イベントの呼び出し:巨大な並列処理
 ◆
:分岐終了
と言ったように、HPの値が変わった時のみ呼び出すようにすれば、処理落ちの軽減に繋がります。



☆容量増加のタイミングの確認方法

セーブデータが増加したかどうかは実際にセーブして見ないと分かりませんが、
「タスクマネージャー」の「プロセス」の画面を見ていると、
RPGツクール2000のゲーム実行中には「RPG_RT.exe」の名前でアプリの状況が表示され、
現在のメモリの使用状況を確認する事ができます。

「タスクマネージャー」の画面は『Windows10』の画面下のタスクバーの上で、
右クリック→「タスクマネージャー」を選択すると開きます。

実行中のアプリ名しか表示されない「簡易表示」の場合は、
画面左下にある「詳細」をクリックしてください。

「タスクマネージャー」の「プロセス」の画面にあるメモリの使用状況は、
画像データなどを読み込んでも増減しますので、
メモリ容量が増えた=セーブ容量が増えた」にはなりませんが、
ある程度の増加するタイミングを見る事ができるでしょう。



実際に怪しい設定があった場合は、
◆セーブ画面の呼び出し
〜怪しい設定〜
◆セーブ画面の呼び出し
のように設定して、
作品フォルダ内に保存されるセーブデータ用のファイルの容量を確認してください。

制作中の作品フォルダへアクセスする場合は、ショートカットを作っておくと便利です。
【ツクールのフォルダのショートカットの作り方を見る】



◎関連ページ

●セーブデータに保存される情報
●ツクールのフォルダ

YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール