RPGツクール2000/マップイベント
■別のマップまで敵が追いかけて来る
(更新:2014/08/08)


別のマップへ移動しても敵キャラが追いかけて来る設定方法を紹介します。

別のマップへ移動
すぐには敵は来ないが…
しばらくすると敵がやって来る


動作見本用のサンプルデータ
サンプルのダウンロードは↓をクリックしてください。
サンプルのイベント設定状況を見る場合は、
ツクールの作品データが入っているフォルダを開いて、
その中にサンプルの作品データを入れてください。
【ツクールのフォルダの開き方を見る】
このサンプルデータのイベント設定をコピー&貼り付けして、
制作中の作品に使用する場合は、
イベントの処理構造を理解した上自己責任でご利用ください。

動作確認用のサンプル内では正常に動いていたイベントが、
制作中の作品にコピー&貼り付けしたら正常に動かなくなった場合は、
明らかにコピー&貼り付けの作業に問題があった事になります。



☆処理の確認
全てのマップに敵キャラのマップイベントを設定する必要があります。

敵キャラの移動は、主人公に近寄るで移動します。

場所移動する際には、移動前に主人公と敵キャラとの距離を調べ、
両者の距離に応じて移動先マップに敵キャラがやってくる時間を設定します。
※出現時間は3秒以内とします。

別のマップへ移動してすぐに元のマップへ戻った場合は、出現時間は「0」となり、
すぐに敵キャラが主人公と同じ位置に出現するようにします。



☆スイッチ・変数
スイッチと変数の番号使用内容の一覧表です。

スイッチ
番号 名前 使用内容
0001 敵配置 敵を配置する時にON
0002 敵キャラの出現 ゲーム開始のマップの敵を出現させる時に使用

変数
番号 名前 使用内容
0001 移動先のマップID これから移動するマップIDを設定
0002 X座標 X座標を設定/両者の距離を設定
0003 Y座標 Y座標を設定
  
0011 敵出現時間:01 敵キャラ01の出現時間を設定
0012 敵出現時間:02 敵キャラ02の出現時間を設定
0013 敵出現時間:03 敵キャラ03の出現時間を設定
  
0016 敵マップID:01 敵キャラ01が現在いるマップIDを設定
0017 敵マップID:02 敵キャラ02が現在いるマップIDを設定
0018 敵マップID:03 敵キャラ03が現在いるマップIDを設定

【スイッチ・変数の一覧表を別ウィンドウで表示する】



☆コモンイベントを設定
コモンイベントに「出現時間カウント」のイベントを設定します。

今回の処理では、
変数が0未満=まだ敵が出現していない
変数が0以上=
敵が現在のマップに出現している
と設定します。

そのため、出現時間の設定はマイナス値で設定し、
出現時間カウントで60分の1秒単位で「加算1」を実行して敵を出現させます。

敵の出現時間は、前のマップの両者の距離で1マスに付き、-16(60分の16秒)とします。
この-16(60分の16秒)の時間は、標準速で歩いた時には2マス分の移動時間と同じです。



■コモンイベント「出現時間カウント」
イベント開始条件:定期的に並列処理する
◆変数の操作:[0011:敵出現時間:01]加算,1<出現時間を減らします
◆条件分岐:変数[0011:敵出現時間:01]が0<敵が出現する時間になった時
 ◆変数の操作:[0016:敵マップID:01]代入,主人公のマップID<敵のマップIDを修正
 ◆
:分岐終了




☆敵のマップイベントを設定
敵キャラのマップイベントを設定します。
設置場所は最初にいて欲しいマスが良いでしょう。
設定は2ページ目構成で行い、1ページ目には通常の敵キャラとして設定。
2ページ目には敵キャラを配置するイベントを設定します。



■マップイベント「敵キャラ01」
▼1ページ目
イベント出現条件:変数[0011:敵出現時間:01]が0以上
イベント開始条件:イベントから触れたとき
プライオリティタイプ:通常キャラと重ならない
グラフィック:敵キャラの画像
移動タイプ:主人公に近寄る(移動頻度6)
イベント実行内容敵キャラが主人公に触れた時に実行するイベントを設定してください。

▼2ページ目
イベント出現条件:スイッチ[0001:敵配置]がON
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆イベントの位置を設定:このイベント, (V[0002],V[0003])<このマップへ来た時の主人公の位置へ移動
◆画面の表示:場所移動の設定<真っ暗を解除する
◆スイッチの操作:[0001:敵配置]をOFFにする




☆場所移動イベントを設定
場所移動イベントを設定する時には、移動前に主人公と敵キャラとの距離を調べ、
次のマップに敵キャラを出現させる出現時間を設定します。

■マップイベント「階段」
イベント出現条件:なし
イベント開始条件:主人公から触れたとき
プライオリティタイプ:通常キャラの下
グラフィック:階段の画像
◆画面の消去:場所移動の設定<画面を真っ暗にします
◆注釈:■■■■■■■■■■■■■■■■■■■■■■■■■■■■
:  :▼「別のマップまで敵が追いかけて来る」の出現時間の設定
:  : 

◆変数の操作:[0001:マップID:主人公]代入,2<これから移動するマップのIDを設定
◆注釈:■■■■■■■■■■■■■■
:  :▼出現時間:敵キャラ01
:  : 

◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0002:X座標]減算,敵キャラ01のX座標<両者のX座標の距離を出す
◆変数の操作:[0003:Y座標]減算,敵キャラ01のY座標<両者のY座標の距離を出す
◆条件分岐:変数[0002:X座標]が-1以下<マイナスをプラスに変える
 ◆変数の操作:[0002:X座標]乗算,-1
 ◆
:分岐終了
◆条件分岐:変数[0003:Y座標]が-1以下
 ◆変数の操作:[0003:Y座標]乗算,-1
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0003]の値<XYを足して両者の距離を出す
◆変数の操作:[0002:X座標]乗算,-16<1マス単位の出現時間を乗算
◆条件分岐:変数[0016:敵マップID:01]がV[0001]以外(オプション:ON)<次のマップにこの敵キャラがいない時
 ◆変数の操作:[0011:敵出現時間:01]代入,変数[0002]の値<距離に応じた出現時間を設定
 ◆
:それ以外の場合<次のマップにこの敵キャラがいる時
 ◆変数の操作:[0011:敵出現時間:01]代入,-1<すぐに出現とする
 ◆
:分岐終了
◆条件分岐:変数[0011:敵出現時間:01]が-180以下<3秒以内の出現とする
 ◆変数の操作:[0011:敵出現時間:01]代入,-180
 ◆
:分岐終了
◆注釈:■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◆場所移動:0002:MAP0002(002,004)<次のマップへ移動
◆スイッチの操作:[0001:敵配置]をONにする<敵キャラを主人公の位置に配置する



以上で設定完了です。



☆別のマップへイベントを貼り付ける時の注意点
別のマップへイベントを貼り付ける場合、イベントIDが異なっている時には、
イベントを貼り付けた後に修正する必要があります。

▼イベントIDが異なるとこのような感じに違うイベントが設定された状態になってしまう
◆変数の操作:[0002:X座標]減算,階段のX座標
◆変数の操作:[0003:Y座標]減算,階段のY座標



☆ゲーム開始のマップに敵キャラがいない場合
ゲーム開始のマップには敵キャラがおらず、
別のマップへ移動すると敵キャラが出現する(追跡を開始する)場合は、
敵キャラの1ページ目イベント出現条件:スイッチを設定し、
場所移動のイベントの中にスイッチをONにする設定を行うと良いでしょう。



■マップイベント「敵キャラ01」
▼1ページ目
イベント出現条件:スイッチ[0002:敵キャラの出現]がON<追加
         変数[0011:敵出現時間:01]が0以上
イベント開始条件:イベントから触れたとき
プライオリティタイプ:通常キャラと重ならない
グラフィック:敵キャラの画像
移動タイプ:主人公に近寄る(移動頻度6)

イベント実行内容敵キャラが主人公に触れた時に実行するイベントを設定してください。

▼2ページ目
イベント出現条件:スイッチ[0001:敵配置]がON
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆イベントの位置を設定:このイベント, (V[0002],V[0003])
◆画面の表示:場所移動の設定
◆スイッチの操作:[0001:敵配置]をOFFにする




■マップイベント「階段」
イベント出現条件:なし
イベント開始条件:主人公から触れたとき
プライオリティタイプ:通常キャラの下
グラフィック:階段の画像
◆画面の消去:場所移動の設定

◆注釈:■■■■■■■■■■■■■■■■■■■■■■■■■■■■
:  :▼「別のマップまで敵が追いかけて来る」の出現時間の設定
:  : 

◆スイッチの操作:[0002:敵キャラの出現]をONにする
<追加
〜あとの設定はそのまま変更なし〜



☆敵キャラを増やす
敵キャラを増やす手順です。
今回は2体の敵キャラを増やし、最大で3体の敵キャラが出現するようにします。
敵キャラ02=マップ2で出現
敵キャラ03=マップ3で出現




■コモンイベント「出現時間カウント」
イベント開始条件:定期的に並列処理する
◆変数の操作:[0011〜0013]加算,1
◆条件分岐:変数[0011:敵出現時間:01]が0
 ◆変数の操作:[0016:敵マップID:01]代入,主人公のマップID
 ◆
:分岐終了
◆条件分岐:変数[0012:敵出現時間:02]が0
 ◆変数の操作:[0017:敵マップID:02]代入,主人公のマップID
 ◆
:分岐終了
◆条件分岐:変数[0013:敵出現時間:03]が0
 ◆変数の操作:[0018:敵マップID:03]代入,主人公のマップID
 ◆
:分岐終了





敵キャラ01のマップイベントをコピー&貼り付けして、敵キャラ02敵キャラ03を準備してください。

■マップイベント「敵キャラ02」
▼1ページ目
イベント出現条件:変数[0012:敵出現時間:02]が0以上
イベント開始条件:イベントから触れたとき
プライオリティタイプ:通常キャラと重ならない
グラフィック:敵キャラの画像
移動タイプ:主人公に近寄る(移動頻度6)

イベント実行内容敵キャラが主人公に触れた時に実行するイベントを設定してください。
※2ページ目は削除してください。

■マップイベント「敵キャラ03」
▼1ページ目
イベント出現条件:変数[0013:敵出現時間:03]が0以上
イベント開始条件:イベントから触れたとき
プライオリティタイプ:通常キャラと重ならない
グラフィック:敵キャラの画像
移動タイプ:主人公に近寄る(移動頻度6)

イベント実行内容敵キャラが主人公に触れた時に実行するイベントを設定してください。
※2ページ目は削除してください。



敵キャラ012ページ目敵キャラ02敵キャラ03の配置イベントを追加します。

▼マップ1の場合

■マップイベント「敵キャラ01」
▼1ページ目
イベント出現条件:変数[0011:敵出現時間:01]が0以上
イベント開始条件:イベントから触れたとき
プライオリティタイプ:通常キャラと重ならない
グラフィック:敵キャラの画像
移動タイプ:主人公に近寄る(移動頻度6)

イベント実行内容敵キャラが主人公に触れた時に実行するイベントを設定してください。

▼2ページ目
イベント出現条件:スイッチ[0001:敵配置]がON
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆イベントの位置を設定:このイベント, (V[0002],V[0003])
◆イベントの位置を設定:敵キャラ02, (V[0002],V[0003])
◆イベントの位置を設定:敵キャラ03, (V[0002],V[0003])

◆画面の表示:場所移動の設定
◆スイッチの操作:[0001:敵配置]をOFFにする


▼マップ2の場合(敵キャラ02が出現するマップ)

■マップイベント「敵キャラ01」
▼1ページ目
イベント出現条件:変数[0011:敵出現時間:01]が0以上
イベント開始条件:イベントから触れたとき
プライオリティタイプ:通常キャラと重ならない
グラフィック:敵キャラの画像
移動タイプ:主人公に近寄る(移動頻度6)

イベント実行内容敵キャラが主人公に触れた時に実行するイベントを設定してください。

▼2ページ目
イベント出現条件:スイッチ[0001:敵配置]がON
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆イベントの位置を設定:このイベント, (V[0002],V[0003])
◆条件分岐:変数[0017:敵マップID:02]が0(オプション:ON)<このマップへ初めて来た時
 ◆変数の操作:[0017:敵マップID:02]代入,主人公のマップID
 ◆変数の操作:[0012:敵出現時間:02]代入,0<出現させておく
 ◆
:それ以外の場合<このマップへ再び来た時
 ◆イベントの位置を設定:敵キャラ02, (V[0002],V[0003])
 ◆
:分岐終了
◆イベントの位置を設定:敵キャラ03, (V[0002],V[0003])

◆画面の表示:場所移動の設定
◆スイッチの操作:[0001:敵配置]をOFFにする


▼マップ3の場合(敵キャラ03が出現するマップ)

■マップイベント「敵キャラ01」
▼1ページ目
イベント出現条件:変数[0011:敵出現時間:01]が0以上
イベント開始条件:イベントから触れたとき
プライオリティタイプ:通常キャラと重ならない
グラフィック:敵キャラの画像
移動タイプ:主人公に近寄る(移動頻度6)

イベント実行内容敵キャラが主人公に触れた時に実行するイベントを設定してください。

▼2ページ目
イベント出現条件:スイッチ[0001:敵配置]がON
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆イベントの位置を設定:このイベント, (V[0002],V[0003])
◆イベントの位置を設定:敵キャラ02, (V[0002],V[0003])
◆条件分岐:変数[0018:敵マップID:03]が0(オプション:ON)<このマップへ初めて来た時
 ◆変数の操作:[0018:敵マップID:03]代入,主人公のマップID
 ◆変数の操作:[0013:敵出現時間:03]代入,0<出現させておく
 ◆
:それ以外の場合<このマップへ再び来た時
 ◆イベントの位置を設定:敵キャラ03, (V[0002],V[0003])
 ◆
:分岐終了

◆画面の表示:場所移動の設定
◆スイッチの操作:[0001:敵配置]をOFFにする




■マップイベント「階段」
イベント出現条件:なし
イベント開始条件:主人公から触れたとき
プライオリティタイプ:通常キャラの下
グラフィック:階段の画像
◆画面の消去:場所移動の設定
◆注釈:■■■■■■■■■■■■■■■■■■■■■■■■■■■■
:  :▼「別のマップまで敵が追いかけて来る」の出現時間の設定
:  : 

◆変数の操作:[0001:マップID:主人公]代入,2
◆変数の操作:[0011〜0013]代入,-999999<出現時間を初期化
◆注釈:■■■■■■■■■■■■■■
:  :▼出現時間:敵キャラ01
:  : 

◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0002:X座標]減算,敵キャラ01のX座標
◆変数の操作:[0003:Y座標]減算,敵キャラ01のY座標
◆条件分岐:変数[0002:X座標]が-1以下
 ◆変数の操作:[0002:X座標]乗算,-1
 ◆
:分岐終了
◆条件分岐:変数[0003:Y座標]が-1以下
 ◆変数の操作:[0003:Y座標]乗算,-1
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0003]の値
◆変数の操作:[0002:X座標]乗算,-16
◆条件分岐:変数[0016:敵マップID:01]がV[0001]以外(オプション:ON)
 ◆変数の操作:[0011:敵出現時間:01]代入,変数[0002]の値
 ◆
:それ以外の場合
 ◆変数の操作:[0011:敵出現時間:01]代入,-1
 ◆
:分岐終了
◆条件分岐:変数[0011:敵出現時間:01]が-180以下
 ◆変数の操作:[0011:敵出現時間:01]代入,-180
 ◆
:分岐終了
◆注釈:■■■■■■■■■■■■■■<敵キャラ01の設定をコピーして黄色の部分を修正
:  :▼出現時間:敵キャラ02
:  : 

◆条件分岐:変数[0017:敵マップID:02]が1以上
 ◆変数の操作:[0002:X座標]代入,主人公のX座標
 ◆変数の操作:[0003:Y座標]代入,主人公のY座標
 ◆変数の操作:[0002:X座標]減算,敵キャラ02のX座標
 ◆変数の操作:[0003:Y座標]減算,敵キャラ02のY座標
 ◆条件分岐:変数[0002:X座標]が-1以下
  ◆変数の操作:[0002:X座標]乗算,-1
  ◆
 :分岐終了
 ◆条件分岐:変数[0003:Y座標]が-1以下
  ◆変数の操作:[0003:Y座標]乗算,-1
  ◆
 :分岐終了
 ◆変数の操作:[0002:X座標]加算,変数[0003]の値
 ◆変数の操作:[0002:X座標]乗算,-16
 ◆条件分岐:変数[0017:敵マップID:02]がV[0001]以外(オプション:ON)
  ◆変数の操作:[0012:敵出現時間:02]代入,変数[0002]の値
  ◆
 :それ以外の場合
  ◆変数の操作:[0012:敵出現時間:02]代入,-1
  ◆
 :分岐終了
 ◆条件分岐:変数[0012:敵出現時間:02]が-180以下
  ◆変数の操作:[0012:敵出現時間:02]代入,-180
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:■■■■■■■■■■■■■■<敵キャラ01の設定をコピーして黄色の部分を修正
:  :▼出現時間:敵キャラ03
:  : 

◆条件分岐:変数[0018:敵マップID:03]が1以上
 ◆変数の操作:[0002:X座標]代入,主人公のX座標
 ◆変数の操作:[0003:Y座標]代入,主人公のY座標
 ◆変数の操作:[0002:X座標]減算,敵キャラ03のX座標
 ◆変数の操作:[0003:Y座標]減算,敵キャラ03のY座標
 ◆条件分岐:変数[0002:X座標]が-1以下
  ◆変数の操作:[0002:X座標]乗算,-1
  ◆
 :分岐終了
 ◆条件分岐:変数[0003:Y座標]が-1以下
  ◆変数の操作:[0003:Y座標]乗算,-1
  ◆
 :分岐終了
 ◆変数の操作:[0002:X座標]加算,変数[0003]の値
 ◆変数の操作:[0002:X座標]乗算,-16
 ◆条件分岐:変数[0018:敵マップID:03]がV[0001]以外(オプション:ON)
  ◆変数の操作:[0013:敵出現時間:03]代入,変数[0002]の値
  ◆
 :それ以外の場合
  ◆変数の操作:[0013:敵出現時間:03]代入,-1
  ◆
 :分岐終了
 ◆条件分岐:変数[0013:敵出現時間:03]が-180以下
  ◆変数の操作:[0013:敵出現時間:03]代入,-180
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◆場所移動:0002:MAP0002(002,004)
◆スイッチの操作:[0001:敵配置]をONにする



以上で設定完了です。



☆「主人公に近寄る」以外の移動設定
移動先のターゲットが主人公以外だったり、ちょっと障害物を避けるイベントが欲しい時には、
最短ルートで移動する座標の差で移動座標の位置で移動などの設定を行うと良いでしょう。

【「最短ルート移動/座標の差で移動」のページを開く】
【「最短ルート移動/座標の位置で移動」のページを開く】



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