RPGツクールMV

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

更新日:

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


下ごしらえ

プラグイン導入

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

Delusional Field: イベント動的生成プラグイン
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などでご連絡いただければ、リライトに挑戦いたします。

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

スポンサードリンク

スポンサードリンク

-RPGツクールMV

執筆者:

関連記事

MV作品をRPGアツマール投稿前に軽量化する

「そもそもデプロイしても容量が足りなくて投稿できない!」という方もいらっしゃると思います。そういった方は、下記の記事・フォーラムを一読されるのも良いかも知れません。 RPGツクールMVの最適なファイル …

MV用プラグインのダウンロードで初心者が戸惑うケース(作者皆様へのお願い)

公式でも解説はありますが、初心者は意外なところで引っかかるものです。 プラグイン編 tkool.jp/mv/guide/011_001.html まず、上記のページではプロジェクトに新しいプラグインを …

no image

MVの快適度を上げるプラグイン

ゲームをプレイするのに、プレイヤーに「面倒だな」とか「分かり難いな」と思わせないための工夫ができるプラグインをご紹介します。 オプション設定 常時ダッシュをONにするのが推奨されるゲームってありますよ …

no image

YEP Region Restrictions プラグイン初心者入門

「YEP_RegionRestrictions」は「YEP_CoreEngine」が入っていなくても単体で動作します。 「YEP_RegionRestrictions」はリージョンでタイルに通行許可・ …

no image

YEP Victory Aftermath & YEP X Aftermath Level Up プラグイン初心者入門

「YEP_VictoryAftermath」は「YEP_CoreEngine」が入っていなくても単体で動作します。 「YEP_VictoryAftermath」は戦闘終了時の情報表示を詳細に設定できる …

サイト内検索