【ウディタ】セーブ禁止の区域にセーブ可能なエリアを作成する

ハロー、レビニアよ。今回はセーブポイントの作成よ。

昔のファイナルファンタジーでよくあった、ダンジョン内の「ここだけセーブしてもいいですよ」っていう場所のことね(最近のFFにもあるのかしら?)。

え? 「わざわざセーブ可能エリアなんて作らなくても、イベント接触か決定キーでセーブ画面を呼び出すイベントを置けばいいだけだろ」ですって?

まぁそのとおりなのだけど、アレよ。演出的こだわりというやつよ。こだわり的演出とも言うわ。大事なことよとっても。

それはともかくとして、いつもなら先に作り方を解説するのだけど、今回はまず出来上がりから見てもらいましょうか。


サンプルゲームのダンジョンマップ。ここはセーブができないように設定されているわよね。このマップにセーブポイントを作ったわ(右に見えてる魔法陣よ)。


魔法陣の上に移動すると……(画像じゃ分からないけど一応、画面フラッシュと効果音の演出も入れているわ)。


なんとダンジョン内なのにセーブが可能に


魔法陣から離れると、


またセーブができなくなる。とまぁこんな感じのものを作成していくのよ。

ダンジョン内セーブポイントの作り方

さてこのセーブポイント、どのように実現させているかというと……。


じゃん!

これを見たらもう察しがつくとは思うけど、詳しく解説していくわね。


セーブポイントのマップイベントはこちら。起動条件はプレイヤー接触(X0、Y0)、処理内容は「主人公とマップイベントの座標を取得して、それらが一致する場合にセーブを許可させる」ということをしているわ(詳細は↑画像を参照して頂戴)。


上下の透明なマップイベント。同じく起動条件はプレイヤー接触だけど、こちらはセーブを禁止にしているの。上下に配置しているから接触範囲は横に広げているわ(セーブポイントを囲うためね)。


左右の透明なマップイベント。処理内容は一緒だけど、こちらは左右配置だから上方向に範囲を広げているわ。

つまり「踏むとセーブ可能になるマップイベント」の周囲を「踏むとセーブ禁止になるマップイベント」で囲っているということよ。構造自体は単純なものね。

ただこのセーブポイント、1つ上手くいかない点もあったりするの。


移動が0.5マス設定だと挙動が怪しくなるの。踏んだ時のエフェクトが二重で発生しちゃうことがあるのよね。移動幅が1マスなら問題ないんだけど。

※2020/03/05追記
もっとスマートな方法をこちらの記事で解説しているわ。

とまぁダンジョン内セーブポイントの作り方は以上なんだけど、これだけで終わるのも短いからアレも作りましょうか。

セーブポイントと言ったらアレよね。「セーブ可能な場所でだけ使える、宿泊して全快するアイテム」よね、テントとかコテージとかいうやつ(FF1だと「ねぶくろ」もあったわね)。ソレも作りましょう。

セーブ可能エリアでだけ使えるアイテム「テント」を作成する

アイテムを作っていく前に、そもそも基本システムのコモン「15-〇セーブ許可・禁止設定」が何をしているのかというと、


可変DB書込みをしているだけなの。基本システムはこの値を参照して「今はセーブが可能か不可能か」を判別しているのね。

なら同じくこの可変DBの値を参照すれば、「(セーブ可能エリアだけで使用できる)テントが使えるか否か」も設定できるわよね。


まずはアイテムから作ってしまいましょう。ユーザーDBのアイテム設定ではセーブ可か不可かを判別することはできないから、処理はコモンイベントを呼び出して行うわ(コモンは237番に作成するからイベント番号に500237を入力してね)。
→名前:テント
→使用可能な場面:マップ時だけ
→効果のタイプ:イベント起動
→イベント番号:500237
→使用可能制限:1回でなくなる

イベントを呼び出すためのアイテムの作成はこれでOK。


次に呼び出すコモンイベントを作成するわ。さっき入力したとおり場所は237番よ(空いてなければ別に作ってアイテム側も修正してね)。
→名前:〇宿泊して全回復
→起動条件:呼び出しのみ


まず入力するのは条件分岐よ。条件に使うのはさっきのセーブ可か不可を設定している可変DBね。ちなみに0がセーブ不可で1がセーブ可能よ。
→条件分岐:「可変DB18-33-0が0と同じ」と「可変DB18-33-0が1と同じ」を作成する


分岐1(セーブ不可の場合)ではテントを使えない旨のメッセージを表示。あとテントは使った時点で個数が-1されているから、これを+1して戻しているわ。
→分岐1:「文章表示:テント使用不可のメッセージを表示」と「アイテム増減:テントの数を+1」を入力


分岐2(セーブ可能)ではそのままテントを消費してパーティを全回復。これでテントで全回復させるコモンイベントはOKよ。
→分岐2:「回復・ダメージ処理:パーティ全員を完全回復」を入力

※下にも長々と入力しているけどただの演出だから気にしないでいいわ。画面暗転やBGMを変えたりテントの画像を表示して、「宿泊してますよー」という画面演出をしているだけだから、省略してもお好きに作っても自由よ。

作成したアイテム「テント」を使って試してみる

それじゃサンプルゲームで試してみましょう。言い忘れたけど、作成した「テント」は可変DBで所持個数を増やしておいてね。


サンプルゲームはダンジョン以外ならどこでもセーブが可能だから、


テントで宿泊して全回復することができるわ。

街中でテント泊するというシュールな光景をご覧いただいた後はダンジョンマップへ移動。こんどはセーブ不可のマップで試してみましょう


当然使えないわ。可変DBで条件分岐させたとおり、セーブ不可の場合はテントも使うことができず個数も消費しないはずよ。


でもセーブポイント(魔法陣)上ならセーブが可能だから、


テントを消費して全回復が可能。うん、ちゃんと昔のファイナルファンタジーっぽいセーブポイントが作れたわね(最近のFFにもあるのかしら?)。

以上、セーブポイントと宿泊して全回するアイテムの作成解説でした。ちなみに今回はあまり出来に自信がないから「こうすればもっとうまくできる」という方はご意見下さいね。