先日アップしたランダムダンジョンVer3にセーブポイントを追加しVer3.1を作りました。
前回同様にサンシロ様作「SAN_MapGenerator」プラグインを使用します。
Ver3ではランダムマップの中でセーブした後に、設定を変更してしまうと、不都合が生じるケースがある事をお知らせしました。
しかし、長くランダムマップを続けて、途中でセーブしたいというケースを想定し、セーブポイントを追加することでトラブルが避ける方法を考えました。
- ランダムマップ上でセーブを禁止するイベント追加
- セーブポイントのマップを追加
- Start(上り階段)、Goal(下り階段)、SavePoint(ワープホール)のどれを使ったかで変数を設定。
- イベントが入れ替わる処理を行う。
大まかに上記の流れになります。
Start(上り階段)・Goal(下り階段)以外のランダム配置イベントを使うので、先日のイベントIDを調べる方法は使いません。
(調整すれば使えますが、複雑でミスが生じそうなので、避けます。)
1つずつ分解してまとめます。
ランダムマップ上でセーブを禁止するイベント追加
下記のようなイベントを作成して下さい。
トリガー:自動実行
実行内容:
◆セーブ禁止の変更:禁止
◆イベントの一時消去
メモ:<RateMap:1>
このイベントを各ランダムマップに入れます。
セーブポイントのマップを追加
どんな形でも良いので、セーブができる部屋を別のマップとして作ります。
下記のようなイベントを作成して下さい。
トリガー:自動実行
実行内容:
◆セーブ禁止の変更:許可
◆セーブ画面を開く
◆イベントの一時消去
Start、Goal、SavePointで変数とイベント設定
各マップのStart(上り階段)、Goal(下り階段)、Savepoint(ワープホール)のイベントを下記のように設定します。
サンプルプロジェクトの中間地点である4-6階とセーブポイントのイベントを代表として下記に載せます。
Start(上り階段)
Goal(下り階段)
Savepoint(ワープホール)
最後にセーブポイントから出てくるワープホールのイベントを設定します。
イベント設定の情報の整理
「SAN_MapGenerator」プラグインの動作は、大まかに下記のように動いています。
- 指定されたタイル・イベントを読み込む。
- マップをまっさらにする。
- ランダムマップを生成する。
- Start(上り階段)を設置する。
- 主人公をStart(上り階段)の位置へ移動する。
- Goal(下り階段)を設置する。
- 各種イベントを確率に合わせて設置する。
通常通り使用すると、マップを生成した時点で主人公はStart(上り階段)地点にいます。
前回は上り階段を使った場合に、下り階段の位置を調べて、フェードイン前に主人公を移動させる方法を取りました。
今回は、ワープホールが加わるため、分岐が複雑になるのを防ぐため、主人公を移動させずに、使用したイベント(階段・ワープホール)に合わせて、イベントの方を変化させる設定をしました。
(実は上り階段を作る時にサンシロ様にいただいたアドバイスがこれだったのですが、サンプルプロジェクトをあまり変えないで…と考えて出した結果がVer3でした…)
今回は変数#5MoveTypeを下記の時に値を入れ、マップイベント側を変化させています。
変数ではなくスイッチでも良かったのですが、管理対象が1つで済むので、今回は変数を使用しました。
(情報の整理用にはスイッチの方が良かったかも知れませんが…。)
下記の通り、イベントを使った場合に指定した数値です。
Goal(下り階段) = 0
Start(上り階段) = 1
ワープホール = 2
後はマップイベントを互いのEVページをコピー・貼り付けを行い、「出現条件」を上記の変数に合わせて設定しました。
マップイベントのEVページの出現条件はページ数が大きいものから順に当てはまったイベントが出現します。
この仕様により、ページの順が入れ替わると正しく動作しないので、ご注意下さい。
(ムノクラはこれを知らずにツクール2000でハマったことがあります。)
「出現条件」の変数は≧しか使えないので、必ず数字が大きい方が後のページにならなくてはなりません。
これが = などが選択できる仕様ならば、分かりやすいような気もしますが、きっとこの仕様である理由があるのだと思います。
ちょっとしたアイディアレベルの使い方でしたが、よりスムーズにプラグイン使用の一助になれば幸いです。

コメントを投稿するにはログインしてください。