RPGツクール2000/システム【サイトトップへ戻る】 ■マップランダム接続 (更新:2020/07/05) ダンジョンに入る度にマップの繋がり方が変わるように設定します。 当ページの処理は、気紛れな空間で公開中の「ランダムマップサンプル」の改良版になります。
■仕様の確認 この「マップランダム接続」は、通路の形状が異なる複数のマップを繋ぎ合わせて、 1つのダンジョンを構成しています。 ダンジョン内のマップは、仕様上では「10×10」まで設定する事ができますが、 サンプルの初期設定では「5×5」のマップを繋げてダンジョンを構成しています。 ▼5×5の設定イメージ 左上と右下には出口用のマップが設定されており、 出口用のすぐ横のマップには丁字路のマップが設定されています。 それ以外の部分は、ランダムでマップが設定されます。 マップの種類は、左上と右下に設定する出口用のマップ以外に15種類のマップがあります。 この15種類のマップには「1〜15」のマップ番号が設定されています。 このマップ番号は通路ごとに設定されている番号(上=1、右=2、下=4、左=8)を加算する事で、 マップ番号が決定します。 例えば、上と右に通路がある場合は「上(1)+右(2)」によってマップ番号は「3」、 右と下と左に通路がある場合は「右(2)+下(4)+左(8)」によってマップ番号は「14」になります。 マップ番号は「マップID」として変数[0101〜0200]に保存されますが、 マップ番号は「1〜15」に対して、マップIDは「4〜18」と「3」のずれがあるため、 変数[0101〜0200]に保存する値は「マップ番号+3」になります。
出口用のマップにはマップ番号の設定は無く、マップIDも[2][3]の固定になっています。
変数[0101〜0200]にはマップIDが保存されます。 左上が変数[0101]になり、右に行くと「+1」、下に行くと「+10」になります。
変数[0101〜0200]にマップIDを設定する時や、 変数[0101〜0200]に保存されたマップIDを呼び出す時には、 設定or呼び出ししたい変数番号(101〜200)を変数[0001:変数番号[101-200]]に設定して、 イベントコマンド【変数の操作】の「変数〜の番号の変数」を使って操作します。 例えば左上の出口からスタートする時には、 変数[0001:変数番号[101-200]]には「101」を設定します。 右のマップへ移動すると、 変数[0001:変数番号[101-200]]に「加算1」が実行されて「102」になります。 そして…
その呼び出されたマップIDへ移動します。 【「変数〜の番号の変数」の説明を見る】 今回の処理では、全てのマップサイズを同じにする必要があります。 今回のマップサイズは全て「横20×縦15マス」になっていますが、 これを一部のマップのみ「横30×縦25マス」にする事はできません。 しかし一部では無く、全てのマップサイズを「横30×縦25マス」にする事はできます。 また通路の位置や幅も同じにする必要があります。 今回の場合は、上下左右を2マス幅の通路で繋ぎます。 ▲トップへ戻る▲ ■通路の設定処理 通路の設定では、まず左上と右下に出口用のマップが設定され、 さらに出口の手前にあるマップには丁字路のマップを設定されます。 そして丁字路の先には行き止まりのマップを設定します。 通路の作成では、左上の出口の右隣りにあるマップをスタート地点とし、 ゴール地点となる右下の出口の左隣りにあるマップまで通路を作ります。 ▼通路を設定する前の初期状態 通路の設定では、まず移動方向「0〜4」(上=0、右=1、下=2、左=3)を決めます。 この移動方向を決める処理では乱数を使いますが、この乱数の設定は…
乱数[0〜3]にしない理由は、来た道を引き返さないようにするためです。 例えば1つ前の移動方向が「1」(右方向)だった時に乱数[3〜5]が加算されると、 変数の値は「4〜6」になります。 そして「剰余4」を実行すると「4以上は減算4」になるため、変数の値は「0〜2」になります。 つまり1つ前の移動方向が「1」(右方向)だった場合は、 次の移動方向は「0」(上方向)、「1」(右方向)、「2」(下方向)になり、 Uターンして来た道を戻る「3」(左方向)の移動設定にはなりません。 このように設定する事で「右→左→右→左」のような行ったり来たりする無駄な動きが無くなり、 効率よく通路を作る事ができます。 通路の設定では、移動前と移動先の両方で通路設定を行います。 例えば以下の2つのマップの場合、 ヤドカリ君がいる左側のマップの通路は「下(4)+左(8)」でマップ番号は「12」になります。 右側のマップの通路は「上(1)+下(4)」でマップ番号は「5」になります。
この状態で2つのマップを繋ぐ通路を作る場合、 まずヤドカリ君がいる移動前のマップに「右(2)」の通路を追加し、 「右(2)+下(4)+左(8)」でマップ番号を「14」にします。
右側のマップへ移動し、移動先のマップに「左(8)」の通路を追加し、 「上(1)+下(4)+左(8)」でマップ番号を「13」にします。
このようにマップを移動する度に移動前と移動先のマップを繋ぐ通路を設定していき、 ゴールとなるマップまで通路を繋げていきます。 ゴールのマップまで辿り着き、2つの出口が通路で繋がったら、 全てのマップをチェックし、通路が何も設定されていないマップがあった場合は、 1方向だけ通路を設定し、行き止まりとなるマップにします。 例えば以下の場合は、白で示した4つのマップが通路未設定になっています。 この4つのマップに1方向だけ通路を設定し、行き止まりのマップにします。 通路の追加は乱数[0〜3]で設定しますので、 場合によっては以下の右上の2つのマップのように孤立した状態になる場合もありますが、 このようになっても再設定は行わずに、このまま通路の設定を終了します。 ▲トップへ戻る▲ ■変数の一覧 変数の番号と使用内容の一覧表です。 ※スイッチは使用していません。
【変数の一覧表を表示】 ▼補足 変数[0002:右下出口の上変数番号]と変数[0003:右下出口の左変数番号]の値は、 マップ構成が「5×5」の場合は以下のようになります。 変数[0002:右下出口の上変数番号]=135 変数[0003:右下出口の左変数番号]=144
▲トップへ戻る▲ ■イベントの設定
場所移動の設定は、例えば左端(X座標=0)へ移動した場合は、 移動先のマップの右端(X座標=18)へ移動します。 この時にY座標は移動前と移動後は同じY座標になります。
ダンジョン内へ入る入り口となるマップイベントを設定。
以上で設定完了です。 ▲トップへ戻る▲ ■補足 コモンイベント「通路の準備」の最初にある…
縦横の設定は同じ数にする必要は無く…
このページのイベントを異なる変数番号で設定したい方は、 ↓のページを参考に改良してください。 ▲トップへ戻る▲ |