RPGツクールMV初心者的備忘録

プラグイン紹介が中心です

プラグイン解説

MVでランダムダンジョン具体的設定Ver2

更新日:

今回は少し大きめのマップで、疑似ランダムダンジョンを作る方法をご紹介します。
疑似と言っても、完全ランダムにすると詰まってしまうのを避けるためであり、労力の割にはかなりランダムに感じる仕組みです。
下記からサンプルプロジェクトがダウンロードできます。


下ごしらえ

プラグイン導入

前回同様に「イベント動的生成プラグイン」(トリアコンタン様作)を使用します。
下記よりダウンロードしてください。

Delusional Field: イベント動的生成プラグイン
https://triacontane.blogspot.com/2016/08/blog-post.html

タイルセットの地形タグを指定

データベース>タイルセット>4ダンジョン>地形タグ
で、使用・通過可能なタイルの数字を0以外に変更します。
今回は、1を使用します。

ダンジョンのマップを作る

小さいマップだと通路上に階段が塞いでしまい、回りきれないので、今回は少し広い設定にします。

最初の1マップは 右クリック>新規… で下記の通り作成します。

タイルセット:4_ダンジョン
幅:34
高さ:26

出来たマップは空白ですので、このマップを 右クリック>ダンジョン生成… でとりあえず作ります。

  • タイプ : 迷路
  • オプション:広い通路のみチェック
  • 壁 :デフォルト
  • 床:デフォルト
    • (これを変更したい場合は、上記で変更した地形タグの箇所で指定して下さい)

気に入らない作りだった場合は、同じマップを 右クリック>ダンジョン生成… で何度でも作り変えられます。
今は1つだけマップを作ったら次へ進みます。
あとで追加するのは簡単な作業です。

コモンイベントを作成

この内容は少し複雑なので、サンプルプロジェクトからコピーするのをお勧めします。

マップイベントを作成

ダンジョン内で作成するイベントは以下の3種類です。

作る順に気をつけてください。
作る順にIDが自動的につけられます。
上記のコモンイベント(3.フロアセット)はこのイベントIDが各マップで固定されている前提で作られています。
1.上り階段
2.下り階段
3.フロア設定
もし、順を間違えたても、今回の量は全部削除して作り直しても、大した手間ではないです。
しかし、覚えておくと使えるかも知れないテクニックがあります。

番号が小さいイベントをコピー、ペースとして、番号が小さいイベントを削除して下さい。
次にその番号へ変更したいイベントをコピー、ペーストすると、空いている小さい番号からイベントIDがつけられていきます。
こうして、IDを入れ替えることが可能です。

ダンジョンマップを複製・変更

マップを 右クリック>コピー し、そのまま 右クリック>貼り付け… すると、マップの設定やマップイベントがそのまま複製されます。
このままマップを5つ複製して下さい。
その後、各マップを 右クリック>ダンジョン生成… で気に入る形に生成して下さい。
もちろん、手作業で変更しても問題ありません。
合計6つのダンジョンフロアが出来たら、次の段階です。

地上の入口を作成

地上の入口を作りましょう。

マップイベントでダンジョンの入口っぽいければ何でも良いです。

ここまでで完成です。

カラクリの種明かし

4つのコモンイベントがカラクリの全てです。

  1. 下り階段
  2. 上り階段
  3. フロアセット
  4. マップ選択

処理の流れをご説明します。

簡単に2つの流れに分かれます。
1.下り階段途中まで ⇒ 4.マップ選択 ⇒ 1.下り階段続き ⇒ 3.フロアセット
2.上り階段途中まで ⇒ 4.マップ選択 ⇒ 2.上り階段続き ⇒ 3.フロアセット

下り階段イベント処理の詳細

  • フェードアウト。
  • 上り階段と下り階段で共通の処理を行う前に、どちらを使ったのか変数でマークをつける。(変数#10の処理)
  • 今、何階に居るのか記録する。
  • どのマップに行くのか選択するイベントを呼ぶ。(4.マップ選択)
  • コモン4.マップ選択
  • 移動前のマップIDを記録。
  • 乱数でマップIDを作る。
  • 移動前IDと乱数IDが同じだったら、乱数を作り直し。
  • 移動前IDと乱数IDが異なったら、乱数IDを移動先のマップIDへ代入する。
  • コモン1.下り階段イベント処理の続きに戻る。
  • コモン4.マップ選択で得られたマップへ移動する。
  • フロア設定イベントによりコモン3.フロアセットが移動先で自動実行される。
  • 上り階段のコピーをランダムに移動した場所へコピーする。
  • コピーされた上り階段のイベントIDを変数#4へ代入する。
  • コピー前の上り階段を消去する。
  • コピーされた上り階段の座標を変数#5(X1)、変数#6(Y1)へ代入する。
  • 下り階段のコピーをランダムに移動した場所へコピーする。
  • コピー前の下り階段を消去する。
  • 配置された上り階段と同じ場所に主人公を移動させる。
  • フェードイン。
  • 今いる階層をメッセージ表示する。

上り階段はこれと逆のことをやっています。
違うのは階が0になったら、地上に出るという判定が加わっていることです。

また、処理の最初にフェードアウトし、最後にフェードインしているのは、移動を2回する必要があるため、主人公や階段の位置が移動するのが見えてしまうのを避けるためです。

この仕組を応用し、宝箱・敵シンボル・障害物の位置をそれぞれランダムに配置することで、よりランダム性は増すでしょう。
ただ、完全な無作為だと困った動作になる場合もあると思います。
例:階段を降りたら、四方を敵に囲まれていた。

こういったことを避けたり、完成度を上げていくには、「下ごしらえ」の項目で行った「タイルの地形タグの設定」と「イベント配置」の地形タグの指定で細かく決めることができます。
地形タグ以外にもリージョンを使うことが出来ます。

今回は少々複雑でしたが、ご理解いただけたでしょうか?
分かり難いところがございましたら、twitterなどでご連絡いただければ、リライトに挑戦いたします。

※追記
別の手法を追加しました。

スポンサードリンク

スポンサードリンク

-プラグイン解説

執筆者:

関連記事

YEP Gab Window プラグイン初心者入門

「YEP Gab Window」は「メッセージウィンドウ無しで画面上におしゃべりを表示できる」プラグインです。 最新版(英語)のプラグインは下記からダウンロードできます。 http://yanfly. …

YEP X Visual Hp Gauge プラグイン初心者入門

「YEP X Visual Hp Gauge」は敵のHPをゲージなどで表示できるプラグインです。 「YEP X Visual Hp Gauge」の動作には「YEP Battle Engine Core …

YEP Core Engine プラグイン初心者入門

YEPとは 「Yanfly Engine Plugins」の頭文字を取ったもので、Yanfly様が開発しているプラグイン群をYEPシリーズ等と呼んでいます。 かなりRPGツクールMVの内部に踏み込んだ …

MVでランダムダンジョン具体的設定Ver1

今回の記事のサンプルプロジェクトは下記からダウンロードできます。参照しながらお読みいただければ、より理解が早いと思います。 ▼ランダムダンジョンのサンプルプロジェクトをダウンロード▼ 今回ご紹介するラ …

YEP X Turn Order Display プラグイン初心者入門

「YEP X Turn Order Display」は「ターン戦闘の戦闘順をアイコン表示」するプラグインです。 「YEP X Turn Order Display」を動作させるには「YEP Battl …