WOLF RPGエディター(ウディタ)[3.662]/イベントコマンド【サイトトップへ戻る】
■セーブ・ロード操作
(更新:2025/10/31)


イベントコマンド【セーブ・ロード操作】について解説します。



ショートカット
■イベントコマンド【セーブ・ロード操作】とは?
■システム変数・システム文字列の一覧
■セーブデータについて
■「保存・読込」と「各セーブデータの内容読み書き」との違い
■設定画面の説明:保存・読込
■設定画面の説明:セーブデータからの読み込み[数値・文字列]
■設定画面の説明:セーブデータへの書き込み
■セルフ変数の読み書きについて
■ ウディタ[3.13]以前のシステム変数[25:現在セーブデータ番号(0〜)]について



以下は【セーブ・ロード操作】を使った別のページにある使用例です。
クリックするとYADOT-WOLF内の別ページが開きます。

別ページの使用例
■周回プレイやクリア特典の基礎
「保存・読込」「セーブデータの内容読込」「セーブデータに書き込み」


  
■イベントコマンド【セーブ・ロード操作】とは?

【セーブ・ロード操作】はセーブやロードの処理を実行する時に使います。



【コモンイベント】コモンイベント[014:○各種メニュー呼出]を呼び出す事で、
セーブ画面、ロード画面を呼び出す事ができます。





セーブ画面(ロード画面)では、最大20個のセーブデータ(セーブ番号[1〜20])に対応していますが、
可変DB[18:基本システム用変数]データ[52:1ページセーブ数][53:セーブページ数]の設定を変える事で、
セーブできる数を変える事ができます。

可変DB[18:基本システム用変数]
データID データ名 内容・値の設定位置
52 1ページセーブ数 1画面に表示されるセーブ項目数を設定。
▼値の設定位置
コモン[048]121行目=4
▼「コモン[48]の107行目=3」にした場合
53 セーブページ数 セーブ画面をページ数を設定。
▼値の設定位置
コモン[048]122行目=5
▼「コモン[48]の108行目=1」にした場合



並列実行で動かしているイベントの中でセーブやロードを行うと強制終了する可能性があります。


▲トップへ戻る▲


  
■システム変数の一覧

【セーブ・ロード操作】に関連する「システム変数」の一覧です。
変数名をクリックすると詳細情報を見る事ができます。

【システム変数の説明ページを見る】

システム変数 説明
24:[読]セーブデータ読込判定(1=成功 0=失敗)]
セーブファイルがあるかどうかを調べる時に使用。
25:現在セーブデータ番号(0〜) 最後にセーブした時のセーブ番号を保存。


▲トップへ戻る▲


  
■セーブデータについて

セーブデータはフォルダー[Save]の中に保存されます。

フォルダー[Save]が無い場合は、セーブを実行すると自動的にフォルダー[Save]が作成されます。



セーブデータは…
セーブ番号[1] → SaveData01.sav
セーブ番号[2] → SaveData02.sav
などとセーブ番号を含めたファイル名で保存されます。



セーブを実行すると上記のセーブデータとは別にセーブファイル「System.sav」が作成されます。



このセーブファイル「System.sav」には、システム変数[25:現在セーブデータ番号(0〜)]の値を保存します。
(保存場所はセーブファイル「System.sav」の通常変数[0])

そしてゲームを最初から開始した時にコモンイベント[048:X[共]基本システム自動初期化]にて、
セーブファイル「System.sav」からシステム変数[25:現在セーブデータ番号(0〜)]の値が読み込まれます。

ゲーム開始時にシステム変数[25:現在セーブデータ番号(0〜)]の値を読み込む事で、
セーブデータがあるかどうかを調べる事ができ、
セーブデータがある時にはタイトル画面の選択肢で最初に「コンティニュー」が選択されるようになります。
(セーブデータが無い場合は最初に「スタート」が選択される)

なお、このセーブファイル「System.sav」はウディタの基本システムのコモンイベントで作成されるため、
オリジナルのセーブ設定で処理する場合はセーブファイル「System.sav」は作成されず、
またオリジナルのセーブ設定ではシステム変数[25:現在セーブデータ番号(0〜)]の情報は更新されません。



セーブ番号は「変数呼び出し値」で設定する事もできます。
【「変数呼び出し値」の説明を見る】

例えば実行中のマップイベントのセルフ変数[0]にセーブ番号を設定する場合は、以下のように設定します。

▼セルフ変数[0]でセーブ番号[2]を呼び出す場合
【イベントコード表示】

■変数操作: このEvのSelf0 = 2 + 0
■データのセーブ: このEvのSelf0

▼「対象セーブデータ」にセルフ変数[0]の変数呼び出し値を設定




文字列タイプの変数呼び出し値を使う事で、セーブデータのファイル名を任意で自由に設定する事ができます。

▼「あいうえお」のファイル名でセーブする場合
【イベントコード表示】

■文字列操作:S1[] = "Save/あいうえお.sav"
■データのセーブ: S1[]

▼文字列変数[1]の「変数呼び出し値」を設定した時の設定画面



ファイル名を任意で設定する場合は、セーブデータの保存先をフォルダー[Save]の中ではなく、
実行ファイル「Game.exe」がある所に保存する事もできます。

【イベントコード表示】

■文字列操作:S1[] = "セーブデータ.sav"
■データのセーブ: S1[]

▼ウディタの実行ファイルと同じ位置に保存



なお、ファイル名を任意で設定する場合…
■文字列操作:S1[] = "セーブデータ"
■データのセーブ: S1[]
などと拡張子「.sav」を付けない設定にしても、セーブ・ロードは問題無く実行されます。


▲トップへ戻る▲


  
■「保存・読込」と「各セーブデータの内容読み書き」との違い

両者の違いは以下のとおりです。

  保存・読込 各セーブデータの内容読み書き
保存する変数 変動する全ての変数 指定した1つの変数
主人公の現在位置など、
読み書きできない物もある
ロード時の主人公の現在位置 セーブした場所へ移動 変わらない
ロード時のイベント処理 イベント処理中断を実行 そのまま処理を継続
セーブデータが無い場合は
そのまま処理を継続
可変DBの読み書き 全てのデータを
まとめて読み書きする
一度「保存・読込」でセーブした
セーブファイルでないと保存できない
セルフ変数の読み書き 全てのデータを
まとめて読み書きする
「1100000」や「1600000」では
読み書きができない
「1000000」や「15000000」なら
読み書きができる
XY配列の読み書き 全てのデータを
まとめて読み書きする
指定したXY配列の
読み書きはできない



通常のゲーム中のセーブ&ロードは、「保存・読込」を使って行ってください。



各セーブデータの内容読み書き」で新規作成したセーブデータの場合、
指定した変数の値しか保存されていないため、
そのセーブデータを「保存・読込」でロードすると、大量のエラーが発生します。

保存・読込」でロードする場合は、「保存・読込」でセーブしたセーブデータでロードしてください。


▲トップへ戻る▲


   
■設定画面の説明:保存・読込



[セーブ]または[ロード]を選択して、セーブデータの番号を設定ください。



対象セーブデータ「0」はウディタ内で使用するので、セーブ番号は「1以上」にしてください。



ロードを実行した時に指定したセーブデータが存在しない場合は、そのままイベントコマンドの処理が進みます。

セーブデータが存在する場合は、イベント処理を中断して、すぐにセーブされた所からゲームが再開されます。

例えば…
■文章:あいうえお
■データのロード: 1
■文章:かきくけこ
と設定した場合で、セーブデータ[1]が存在しない場合は、
「あいうえお」が表示されたあとに「かきくけこ」が表示されますが、セーブデータ[1]が存在する場合は、
「あいうえお」が表示されたあとに「かきくけこ」は表示されず、すぐにセーブした所からゲームが再開します。



イベント処理の途中でセーブした場合は、ロード時にイベント処理の途中からは実行されません。

例えば…
■文章:あいうえお
■データのセーブ: 1
■文章:かきくけこ
と設定した場合、セーブ時は「かきくけこ」が表示されますが、ロード時は「かきくけこ」が表示されません。



なお、上記の設定例のようにセーブの直前に【文章の表示】を実行すると、
ロード時に文章ウィンドウが残った状態になります。

▼ロード時に文章ウィンドウが消えない


このような問題を防ぐためには…
■文章:あいうえお
■ウェイト:5 フレーム
■データのセーブ: 1
■文章:かきくけこ
と言ったように、セーブ前にウェイトを設定して、文章ウィンドウが消える時間を確保してください。


▲トップへ戻る▲


  
■設定画面の説明:セーブデータからの読み込み[数値・文字列]



指定した1つの変数の値だけをロードします。



左側にはセーブデータからの情報を受け取る変数を設定します。

真ん中の[データ〜番の]には、呼び出すセーブ番号を設定します。

右側にはセーブデータから呼び出す変数を変数呼び出し値で設定します。



セーブデータから呼び出す情報が「文字列」の場合は、
左側に設定する変数も文字列タイプの変数にしてください。

▼選択肢の下の方に文字列変数があります



と言ったように、文字列タイプの変数の情報を数値タイプの変数で受け取ろうとすると、
「変数」呼び出し時の呼び出しIDが不適切です」のエラーが表示されます。

逆に…
と言ったように、数値タイプの変数の情報を文字列タイプの変数で受け取ろうとすると、
エラーは表示されませんが、文字列変数には「<<ERROR>>」が設定されます。



X番の変数読込」にチェックを入れた場合は、
右側に設定した変数の値に変数呼び出し値を設定してください。

例えば、通常変数[1]の値に「2000010(通常変数[10]の変数呼び出し値)」を設定した場合は、
以下のように設定します。

【イベントコード表示】

■変数操作: V1[] = 2000010 + 0<右辺は[データを呼ばない]にチェック
■セーブデータの内容読込: このEvのSelf0 = セーブデータ[1]の V[V1[]]<[X番の変数読込]にチェック

この場合は、セーブデータ内の通常変数[10]の値を取得します。



X番の変数読込」を使えば、例えば通常変数[10〜19]の値を順番に呼び出して、
呼び出した値を全て加算した合計を出すような処理が簡単に設定する事ができます。

【イベントコード表示】

■変数操作: このEvのSelf0 = 2000010 + 0
■変数操作: このEvのSelf1 = 0 + 0
■回数付きループ [ 10 ]回
|■セーブデータの内容読込: このEvのSelf2 = セーブデータ[1]の V[このEvのSelf0]
|■変数操作: このEvのSelf1 += このEvのSelf2 + 0
|■変数操作: このEvのSelf0 += 1 + 0
|■
◇ループここまで◇◇
■文章:合計「\self[1]」


▲トップへ戻る▲


  
■設定画面の説明:セーブデータへの書き込み



指定した1つの変数の値だけをセーブします。



左側の[データ〜番の]には、セーブするセーブ番号を設定します。

真ん中には、情報を置き換える変数を変数呼び出し値で設定します。

右側には、変更する変数の値を設定します。



設定は「数値タイプ変数=数値データ」「文字列タイプ変数=文字列」と設定してください。

数値タイプ変数=文字列データ」と設定すると、
「文字列」を格納すべき場所に「変数」を代入しようとしました」のエラーが表示されます。

文字列タイプ変数=数値データ」を設定すると、処理は無効となり、
セーブデータに保存されていた情報はそのままの状態になります。



X番の変数読込」にチェックを入れた場合は、
真ん中に設定した変数の値に変数呼び出し値を設定してください。
※上記の「セーブデータからの読み込み[数値・文字列]」と同じ仕様です。



数値を手動入力」にチェックを入れた場合は、
変更する変数の値を直接入力で設定する事ができ、変数呼び出し値の設定もできます。

▼システム変数[29:プレイ時間(1秒単位)]の変数呼び出し値を設定した時



▲トップへ戻る▲


  
■セルフ変数の読み書きについて

セーブデータからの読み込み[数値・文字列]」や「セーブデータへの書き込み」では、
1100000」(このマップイベントのセルフ変数)や
1600000」(このコモンイベントのセルフ変数)の変数呼び出し値は設定できません。



セルフ変数の値を読み書きする場合は、
1000000」(指定したマップイベントのセルフ変数)や
150000000」(指定したコモンイベントのセルフ変数)で設定してください。

例えばマップイベント[3]のセルフ変数[2]を読み書きする場合は「1000032」を設定し、
コモンイベント[215]のセルフ変数[18]を読み書きする場合は「15021518」を設定してください。



コピー&貼り付けでマップイベントを複製した場合は、
貼り付けたマップイベントのイベントIDに合わせて「1000032」の設定を修正してください。

なお、以下のように設定する事で、実行中のマップイベントやコモンイベントのイベントIDに合わせて、
自動的に変数呼び出し値の値が変わるように設定する事もできます。

※設定例では予備変数[9-0]を使用し、セーブ[99]に書き込む設定になっています。

▼実行中のマップイベントのセルフ変数[2]に「123」を書き込み
【イベントコード表示】

■変数操作+: V9-0[] = [処理]マップイベントID(コモンなら呼び出し元マップイベントID)
■変数操作: V9-0[] *= 10 + 0
■変数操作: V9-0[] += 1000002 + 0
■セーブデータに書き込み:セーブデータ[99]の V[V9-0[]] = 123

▼実行中のコモンイベントのセルフ変数[2]に「123」を書き込み
【イベントコード表示】

■変数操作+: V9-0[] = [処理]このコモンイベントID[コモンでなければ-1]
■変数操作: V9-0[] *= 100 + 0
■変数操作: V9-0[] += 15000002 + 0
■セーブデータに書き込み:セーブデータ[99]の V[V9-0[]] = 123


▲トップへ戻る▲


  
■ウディタ[3.13]以前のシステム変数[25:現在セーブデータ番号(0〜)]について

※ウディタ[3.13]以前に対応したコモン素材を作る人向けの情報です。

ウディタ[3.13]以前の古いバージョンでは「セーブデータへの書き込み」でセーブすると、
システム変数[25:現在セーブデータ番号(0〜)]のセーブ番号が更新されていました。

そのため、例えば「セーブデータへの書き込み」でセーブ番号「99」に保存した場合は、
セーブ後にシステム変数[25:現在セーブデータ番号(0〜)]の値を元のセーブ番号に戻す処理が必要でした。

【イベントコード表示】

■変数操作: このEvのSelf0 = Sys25:現在セーブデータ番号(0〜) + 0
■セーブデータに書き込み:セーブデータ[99]の V1-0[] = 1
■変数操作: Sys25:現在セーブデータ番号(0〜) = このEvのSelf0 + 0

現行のバージョンでは「セーブデータへの書き込み」で…
■セーブデータに書き込み:セーブデータ[99]の V1-0[] = 1
を実行しても、システム変数[25:現在セーブデータ番号(0〜)]が「99」になる事はありません。


▲トップへ戻る▲



◎関連ページ

◆セーブ画面をカスタマイズ

◆「イベントコマンド」って何?
┣◆文章の表示
┃┗◆特殊文字
┣◆選択肢
┃┗◆【使用例】選択肢
┣◆変数操作
┃┗◆演算子について
┣◆DB操作
┣◆文字列操作
┃┗◆【使用例】文字列操作
┣◆変数操作+
┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い
┃┣◆【使用例】変数操作+の「キャラ」と「位置」
┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」
┣◆条件(数値)
┣◆条件(文字列)
┣◆キー入力
┃┗◆【使用例】キー入力
┣◆ピクチャ
┃┗◆表示形式(通常・加算・減算・乗算)について
┣◆エフェクト
┃┣◆「Zオーダー」について
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能
 ┗◆起動時の引数について

YADOT-WOLFトップ  気紛れな空間へ戻る  メール