RPGツクール2000/システム
■歩くと実行するイベント
(更新:2014/09/06)


主人公が移動するごとに何らかのイベントが実行するイベントの作り方を紹介します。
応用次第では1歩歩くごとにHPが回復するイベント歩数カウントイベント
自作エンカウント足音イベントなどを作る事ができます。



☆移動したかどうかを判断する方法
RPGツクール2000のマップには、全てのマスに番号(座標)が付けられています。
マップの左上を「X座標=0Y座標=0」として、
右に行くとX座標が増え、下に行くとY座標が増えます。

RPGツクール2000の機能の中には、X座標、Y座標を調べる機能があり、
主人公の現在位置も主人公の現在のX座標、Y座標を代入する事で調べる事ができます。

上の図で言えば、パーティーの初期位置が「X座標9、Y座標7」の位置にありますので、
ゲーム開始時の主人公の現在位置は、
X座標=9
Y座標=7

になります。
そして主人公が1歩右に移動した場合は、X座標が1増えるので、
X座標=10
Y座標=7

になります。

このように主人公が移動すると必ずX座標かY座標のどちらかに変化しますので、
常に主人公の現在位置の変化を調べる事で、
主人公が移動したかどうかを判断する事ができます。



☆座標を変数に記憶する方法
主人公の現在位置の情報は、変数に記憶します。

変数に記憶する方法としては、
イベントコマンド:変数の操作を使う方法と、
イベントコマンド:現在の場所を記憶を使う方法があります。
基本的にX座標Y座標のみを変数に記憶したい時には変数の操作を使い、
現在のマップIDも含めて変数に記憶したい時には現在の場所を記憶を使います。

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


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



☆現在位置の記憶方法
現在位置の記憶方法としては、
X座標、Y座標の情報を別々の変数に記憶する方法と、
X座標、Y座標の情報を1つの変数にまとめて記憶する方法があります。



▼別々の変数に記憶する場合
◆変数の操作:[0001:X座標]代入,主人公のX座標
◆変数の操作:[0002:Y座標]代入,主人公のY座標

と言った様に、X座標、Y座標の情報を別々の変数へ記憶させます。


▼1つの変数にまとめて記憶する場合
◆変数の操作:[0001:現在のXY]代入,主人公のX座標
◆変数の操作:[0001:現在のXY]乗算,1000
◆変数の操作:[0001:現在のXY]加算,主人公のY座標


まずX座標の位置を変数に代入し、
そのX座標の値を1000倍にします。(X座標「12」の場合は「12000」になる)
そしてY座標を加算する事で1つの変数にX座標とY座標の情報が記憶されます。

現在位置がX座標「9」Y座標「7」の場合に上記の設定で処理しますと、
変数0001番には「9007」が設定されます。
もしも右に移動した場合は「10007」となり、下に移動した場合は「9008」となります。
このように移動すると確実に変数の値が変わりますので、
常に変数の値の変化を調べる事で、主人公が移動したかどうかを調べる事ができます。



別々の変数に記憶する方法でも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トップ  このサイトは何?  気紛れな空間へ戻る  メール