RPGツクール2000/演出
■穴に落ちて下の階へ移動する
(更新:2016/02/20)


上の階のマップに空いている穴の上に主人公が乗ると、
下の階のマップへ移動するイベントの作り方を紹介します。

▼動作イメージ
上の階のマップで穴と重なる


下の階のマップへ移動

なお、今回の設定では下の階のマップIDは0002番とします。
【マップIDについての説明を見る】



☆準備
上の階のマップ下の階のマップの2マップを用意してください。
2つのマップのサイズはなるべく同じマップのサイズが良いでしょう。
上の階
下の階
上の階のマップに設定する穴の位置(X座標、Y座標)は、
下の階では壁ではない所に設定してください。
▼うまく設定しないと穴の下が壁の位置になってしまう可能性もあります



データベース「チップセット」を開き、
穴の下層チップの通行設定を「移動可能」にしてください。


以上で準備完了です。



☆2種類の設定方法
イベントの設定方法は、
穴の上にマップイベントを設定するタイプと、
地形IDで穴の有無を判断するタイプがあります。

基本的に穴の上にマップイベントを設定するタイプの方が良いですが、
状況によっては地形IDで穴の有無を判断するタイプの方が良い場合もあります。



穴の上にマップイベントを設定するタイプは、
穴の数だけマップイベントを置く必要があります。

穴の数が多いと大量にマップイベントを設定する必要があり、
処理落ちなどの問題が発生しやすくなります。

移動するキャライベントが穴の上に移動する事はありません。

マップイベントにグラフィックを設定する事で、
特定の条件で穴が出現したり消えたりさせる事ができます。



地形IDで穴の有無を判断するタイプは、
定期的に並列処理するで常に主人公がいるマスの地形IDを調べ、
穴の地形IDの時には、落下処理を実行します。

数百個の穴があっても、1個のマップイベントで処理する事ができます。

移動するキャライベントが穴の上に移動してしまいます。

マップイベントで穴を塞いでも、
その塞いだ穴の上に移動すると「穴に落ちた」と判断されてしまいます。

穴の上にマップイベントを設定するタイプよりも設定が難しいです。



☆穴の上にマップイベントを設定するタイプ
穴の上にマップイベントを設定し、
主人公が穴の上のマップイベントを重なった時に、
下の階へ場所移動を行うようにします。

下層チップで穴を設定
穴の上にマップイベントを設定


変数
番号 名前 使用内容
0001 マップID 下の階(下のマップ)へ移動する時に使用
0002 X座標 主人公のX座標を設定
0003 Y座標 主人公のY座標を設定


■マップイベント「穴の上」
イベント開始条件:主人公から触れたとき
プライオリティタイプ:通常キャラの下
別のイベントと重ならない:チェックする
グラフィック:透明
◆変数の操作:[0001:マップID]代入,2<下の階のマップID
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆記憶した場所へ移動:V[0001](V[0002],V[0003])


上記マップイベントを作成しましたら、
穴のマスにコピー&貼り付けで設定してください。



☆地形IDで穴の有無を判断するタイプ
主人公がいるマスの地形IDを調べて、
穴の地形の時には下の階のマップへ場所移動します。

データベース「地形」にて「」と言う地形を作成してください。
※敵出現倍率は「0%」にしてください。
※今回の設定例では、穴の地形番号を「
11」で設定しています。


データベース「チップセット」にて、
穴の下層チップ穴の地形番号を設定してください。



変数
番号 名前 使用内容
0001 X座標 主人公のX座標を設定
0002 Y座標 主人公のY座標を設定
0003 地形ID 地形IDやイベントIDを取得する時に使用
0004 画面移動中チェックX 移動中かどうかを画面位置でチェック
0005 画面移動中チェックY 移動中かどうかを画面位置でチェック
0006 マップID 下の階(下のマップ)へ移動する時に使用


上の階のマップのどこか(壁のマスなど)に、
以下のマップイベントを設定してください。

■マップイベント「落下イベント」
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆変数の操作:[0001:X座標]代入,主人公のX座標
◆変数の操作:[0002:Y座標]代入,主人公のY座標
◆指定位置の地形ID取得:(V[0001],V[0002]),[0003:地形ID]
◆条件分岐:変数[0003:地形ID]が11<主人公がいるマスが穴の地形IDの時
 ◆変数の操作:[0004:画面移動中チェックX]代入,主人公の画面X
 ◆変数の操作:[0005:画面移動中チェックY]代入,主人公の画面Y
 ◆変数の操作:[0004:画面移動中チェックX]減算,このイベントの画面X
 ◆変数の操作:[0005:画面移動中チェックY]減算,このイベントの画面Y
 ◆変数の操作:[0004〜0005]剰余,16
 ◆条件分岐:変数[0004:画面移動中チェックX]が0
  ◆条件分岐:変数[0005:画面移動中チェックY]が0
   ◆変数の操作:[0006:マップID]代入,2<下の階のマップID
   ◆記憶した場所へ移動:V[0006](V[0001],V[0002])
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:分岐終了


今回のイベント実行内容には、画面位置を使った設定があります。
これは主人公が穴の上に移動したかどうかを確認するためのイベントです。
一応、
◆変数の操作:[0001:X座標]代入,主人公のX座標
◆変数の操作:[0002:Y座標]代入,主人公のY座標
◆指定位置の地形ID取得:(V[0001],V[0002]),[0003:地形ID]
◆条件分岐:変数[0003:地形ID]が11
 ◆変数の操作:[0006:マップID]代入,2
 ◆記憶した場所へ移動:V[0006](V[0001],V[0002])
 ◆
:分岐終了

だけの処理でも穴に落ちる場所移動の設定は可能ですが、
この場合は、穴の上に主人公が移動する前(穴のマスへ移動し始めた瞬間)に、
場所移動が実行されてしまいます。



◎関連ページ
 ●穴に落ちて下の階へ移動する
 ○穴の上に移動床を設定


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール