RPGツクール2000/システム【サイトトップへ戻る】
■歩くと実行するイベント
(更新:2020/07/05)


主人公が移動するごとに、何らかの処理が実行するイベントの作り方を紹介します。

応用次第では1歩歩くごとにHPが回復するイベント歩数カウントイベント
自作エンカウント足音イベントなどを作る事ができます。

ショートカット
■移動したかどうかを判断する方法
■座標を変数に保存する方法
■現在位置の保存方法
■基本イベントの作成
■10歩歩くごとにイベントを実行させる
■1回だけ処理を止める
■補足


  
■移動したかどうかを判断する方法

RPGツクール2000のマップには、マスごとに座標が設定されており、
マップの左上を「X座標=0Y座標=0」として、
右に行くとX座標が増え、下に行くとY座標が増えます。



RPGツクール2000には、現在主人公がいるマスのX座標、Y座標を調べる機能があります。

上図で言えば、パーティーの初期位置があるので、
ゲームを開始すると「X座標9、Y座標7」に主人公が表示されます。

そして主人公が右へ1歩移動した場合は、「X座標10、Y座標7」になります。

主人公が移動すると、必ずX座標かY座標が変化するので、
今回の処理では、主人公のX座標とY座標の変化を調べて、
変化があった場合は「移動した」と判断します。


▲トップへ戻る▲


  
■座標を変数に保存する方法

主人公の現在位置の情報は、変数に保存します。

変数に保存する方法としては、
イベントコマンド:変数の操作を使う方法と、
イベントコマンド:現在の場所を保存を使う方法があります。

基本的に現在のマップID、X座標、Y座標を単体で保存する時には変数の操作を使い、
マップID、X座標、Y座標を全て保存する時には現在の場所を保存を使います。

▼設定例:「変数の操作」の場合
◆変数の操作:[0001:X座標]代入,主人公のX座標
◆変数の操作:[0002:Y座標]代入,主人公のY座標

▼設定例:「現在の場所を保存」の場合
◆現在の場所を保存:[0001],[0002],[0003]


▲トップへ戻る▲


  
■現在位置の保存方法

主人公の現在位置の保存する方法は、X座標、Y座標の情報を
別々の変数に保存する方法」と
1つの変数にまとめて保存する方法」があります。



▼別々の変数に保存する

◆変数の操作:[0001:X座標]代入,主人公のX座標
◆変数の操作:[0002:Y座標]代入,主人公のY座標



▼1つの変数にまとめて保存する

◆変数の操作:[0001:現在のXY]代入,主人公のX座標
◆変数の操作:[0001:現在のXY]乗算,1000
◆変数の操作:[0001:現在のXY]加算,主人公のY座標

まずX座標を変数に代入し、値を1000倍にします。
そしてY座標を変数に加算する事で、1つの変数にX座標とY座標の情報が保存されます。

仮に現在位置が「X座標=9、Y座標=7」の場合は、変数[0001]の値は「9007」になります。

そして右へ移動した時には「10007」になり、さらに下へ移動した時には「10008」になります。

このように移動すると確実に変数の値が変わるので、
常に変数の値の変化を調べる事で、主人公が移動したかどうかを調べる事ができます。



別々の変数に保存する方法」でも「1つの変数にまとめて保存する方法」でも、
どちらでも歩いたかどうかの判断する事ができるので、
どちらか使いやすい方を選択して設定してください。

なお、YADOT内では使用する変数の数を抑えるために、
基本的に「1つの変数にまとめて保存する方法」を使っています。


▲トップへ戻る▲


  
■基本イベントの作成

ゲーム全体で使う場合は、コモンイベントに設定してください。

世界マップのみで使うなど、一部のマップのみで使う場合は、
そのマップのどこかにマップイベントで設定してください。



▼X座標Y座標を別々の変数に保存する場合の設定例

イベント開始条件:定期的に並列処理する

◆変数の操作:[0003:座標確認]代入,主人公のX座標
◆条件分岐:変数[0001:現在のX座標]がV[0003]と同値<左右に移動していない
 ◆変数の操作:[0003:座標確認]代入,主人公のY座標
 ◆条件分岐:変数[0002:現在のY座標]がV[0003]と同値<上下に移動していない
   ◆イベント処理の中断<移動していないのでイベント処理を中断
   ◆
 :分岐終了
 ◆
:分岐終了
◆変数の操作:[0001:現在のX座標]代入,主人公のX座標
◆変数の操作:[0002:現在のY座標]代入,主人公のY座標
〜移動した時に実行するイベント〜



▼X座標Y座標を1つの変数に保存する場合の設定例

イベント開始条件:定期的に並列処理する

◆変数の操作:[0002:XY確認]代入,主人公のX座標
◆変数の操作:[0002:XY確認]乗算,1000
◆変数の操作:[0002:XY確認]加算,主人公のY座標
◆条件分岐:変数[0001:現在のXY]がV[0002]以外<移動した時
 ◆変数の操作:[0001:現在のXY]代入,変数[0002]の値
 ◆〜移動した時に実行するイベント〜
 ◆
:分岐終了


▲トップへ戻る▲


  
■10歩歩くごとにイベントを実行させる

1歩ごとではなく、10歩歩くごとに何らかのイベントを実行させたい時には、
以下のようにイベントを設定してください。



▼X座標Y座標を別々の変数に保存する場合の設定例

イベント開始条件:定期的に並列処理する

◆変数の操作:[0003:座標確認]代入,主人公のX座標
◆条件分岐:変数[0001:現在のX座標]がV[0003]と同値
 ◆変数の操作:[0003:座標確認]代入,主人公のY座標
 ◆条件分岐:変数[0002:現在のY座標]がV[0003]と同値
   ◆イベント処理の中断
   ◆
 :分岐終了
 ◆
:分岐終了
◆変数の操作:[0001:現在のX座標]代入,主人公のX座標
◆変数の操作:[0002:現在のY座標]代入,主人公のY座標
◆変数の操作:[0004:歩数]加算,1
◆条件分岐:変数[0004:歩数]が10以上
 ◆変数の操作:[0004:歩数]代入,0
 ◆〜10歩移動したら実行するイベント〜
 ◆
:分岐終了




▼X座標Y座標を1つの変数に保存する場合の設定例

イベント開始条件:定期的に並列処理する

◆変数の操作:[0002:XY確認]代入,主人公のX座標
◆変数の操作:[0002:XY確認]乗算,1000
◆変数の操作:[0002:XY確認]加算,主人公のY座標
◆条件分岐:変数[0001:現在のXY]がV[0002]以外
 ◆変数の操作:[0001:現在のXY]代入,変数[0002]の値
 ◆変数の操作:[0003:歩数]加算,1
 ◆条件分岐:変数[0003:歩数]が10以上
  ◆変数の操作:[0003:歩数]代入,0
  ◆〜10歩移動したら実行するイベント〜
  ◆
 :分岐終了

 ◆
:分岐終了


▲トップへ戻る▲


  
■1回だけ処理を止める

ゲーム開始時に「X座標=0、Y座標=0」では無いマスにいたり、
別のマップへ移動した時に移動前のマップとは異なるマス座標にいる場合は、
主人公が移動していなくても1歩移動した事になります。

これが気になる場合は、以下のように設定してください。



▼X座標Y座標を別々の変数に保存する場合の設定例

イベント開始条件:定期的に並列処理する

◆変数の操作:[0003:座標確認]代入,主人公のマップID
◆条件分岐:変数[0004:現在のマップID]がV[0003]以外
 ◆現在の場所を保存:[0004],[0001],[0002]
 ◆
:分岐終了

◆変数の操作:[0003:座標確認]代入,主人公のX座標
◆条件分岐:変数[0001:現在のX座標]がV[0003]と同値
 ◆変数の操作:[0003:座標確認]代入,主人公のY座標
 ◆条件分岐:変数[0002:現在のY座標]がV[0003]と同値
   ◆イベント処理の中断
   ◆
 :分岐終了
 ◆
:分岐終了
◆変数の操作:[0001:現在のX座標]代入,主人公のX座標
◆変数の操作:[0002:現在のY座標]代入,主人公のY座標
〜移動した時に実行するイベント〜



▼X座標Y座標を1つの変数に保存する場合の設定例

イベント開始条件:定期的に並列処理する

◆変数の操作:[0002:XY確認]代入,主人公のX座標
◆変数の操作:[0002:XY確認]乗算,1000
◆変数の操作:[0002:XY確認]加算,主人公のY座標
◆変数の操作:[0003:マップID確認]代入,主人公のマップID
◆条件分岐:変数[0004:現在のマップID]がV[0003]以外
 ◆変数の操作:[0004:現在のマップID]代入,主人公のマップID
 ◆変数の操作:[0001:現在のXY]代入,変数[0002]の値
 ◆
:分岐終了

◆条件分岐:変数[0001:現在のXY]がV[0002]以外
 ◆変数の操作:[0001:現在のXY]代入,変数[0002]の値
 ◆〜移動した時に実行するイベント〜
 ◆
:分岐終了


▲トップへ戻る▲


  
■補足

イベントコマンド:キャラクターの動作指定などで強制的に主人公を移動させる時に、
〜移動した時に実行するイベント〜を動かしたくない時には、
出現条件:スイッチを設定して、使う時にはスイッチをON、
使いたくない時にはスイッチをOFFにしてください。


▲トップへ戻る▲



◎関連ページ

●森を歩くと○○が回復する
●装備して歩くとHP回復
●使用すると一定歩数の間、敵が出なくなる
●歩くたびに時間が経過する
●自作エンカウント
●ドラホコ(主人公を列にして歩かせる)を作る
●足跡を残す

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