RPGツクール2000/イベントコマンド(フィールド・バトル)
変数の操作
■変数〜の番号の変数
(更新:2015/11/21)


イベントコマンド:変数の操作変数〜の番号の変数と言った設定があります。



この変数〜の番号の変数は変数の設定の中で、
最も難解なイベント設定であると言えるでしょう。

変数〜の番号の変数は、
自作メニューや自作戦闘などのオリジナルのシステムを作る時によく使いますので、
今後オリジナルのシステムやRPG以外のジャンルを作ろうと考えている方は、
ぜひ変数〜の番号の変数の使い方を習得された方が良いでしょう。



☆「単独」と「変数〜の番号の変数」の違い
変数の操作操作する変数にて、
「単独」と「変数〜の番号の変数」の両方に変数101番を設定して、
2つの処理の違いを確認してみましょう。

◆変数の操作:[0101]代入,987 ◆変数の操作:[V[0101]]代入,987
両方とも変数に987を代入するになりますが、
どこの変数に代入するのかが異なります。
▼処理結果▼
変数101番987を代入します。
変数101番の値が「」の場合は、
変数3番987が代入されます。
変数101番の値が「45」の場合は、
変数45番987が代入されます。

このように変数〜の番号の変数を使うと、変数101番を変える事で、
処理する変数の番号を変える事ができます。



オペランド変数〜の番号の変数も同じように処理されます。



☆Vが付いたら「変数〜の番号の変数」の設定
変数の操作で「変数〜の番号の変数」を設定しますと、変数番号の前に「」が付きます。

「変数〜の番号の変数」ではない設定 「変数〜の番号の変数」である設定
◆変数の操作:[0101]代入,987 ◆変数の操作:[V[0101]]代入,987
◆変数の操作:[0001]代入,変数[0101]の値 ◆変数の操作:[0001]代入,変数[V[0101]]の値

YADOTの中にも「V」が付いている設定と付いていない設定があります。
当然ながら設定を間違えると正しいイベントの処理ができなくなりますので、
変数〜の番号の変数を使っています」と書かれているYADOTのページでは、
変数の操作を設定する時には、Vの有無をよ〜く確認してから設定を行ってください。



☆試しに使ってみる
主人公の移動ルートを記憶するイベントを作成し、
実際に変数〜の番号の変数を使ってみましょう!



主人公の移動した向きの情報は、以下の数値で記憶します。
   上:8
左:4    右:6
   下:2

変数に「8」が代入されましたら、「上に移動した」になります。



移動方向の情報は変数0021番から記憶します。
1歩につき変数を1個使用しますので、
50歩移動すると変数0021〜0070番を使用する事になります。

主人公が移動したかどうかの処理は、歩くと実行するイベントを使います。
【歩くと実行するイベントのページを見る】



主人公が移動できるマップを作成し、マップ内にパーティーの初期位置を設定してください。
そしてマップのどこかに以下のマップイベントを設定してください。

■マップイベント
▼1ページ目
イベント出現条件:なし
イベント開始条件:自動的に始まる
◆変数の操作:[0001:前のXY]代入,主人公のX座標
◆変数の操作:[0001:前のXY]乗算,1000
◆変数の操作:[0001:前のXY]加算,主人公のY座標
◆変数の操作:[0003:記憶する変数番号]代入,21


▼2ページ目
イベント出現条件:変数[0003:記憶する変数番号]が21以上
イベント開始条件:定期的に並列処理する
◆変数の操作:[0002:現在のXY]代入,主人公のX座標
◆変数の操作:[0002:現在のXY]乗算,1000
◆変数の操作:[0002:現在のXY]加算,主人公のY座標
◆条件分岐:変数[0001:前のXY]がV[0002]以外
 ◆変数の操作:[0001:前のXY]代入,変数[0002]の値
 ◆変数の操作:[V[0003]]代入,主人公の向き
 ◆変数の操作:[0003:記憶する変数番号]加算,1
 ◆
:分岐終了




イベント設定が終わりましたら、テストプレーを実行してみてください。
主人公が表示されましたら1歩だけ移動して、すぐに[F9]を押してください。
そして変数0021番の値に移動した方向の数値が設定されているかどうかを確認してください。

取り消しキーを押して[F9]の画面を閉じ、
さらに4歩適当に移動してから再び[F9]を押してみてください。
これで変数0021〜0025番に5歩分の移動した向きが記憶されていると思います。

このように変数〜の番号の変数を使う事で、
少ないイベント設定で移動方向を記憶する事ができます。

もしも変数〜の番号の変数を使わないで移動方向を記憶するイベントを作った時には、
2ページ目の設定は以下のようになります。
◆変数の操作:[0002:現在のXY]代入,主人公のX座標
◆変数の操作:[0002:現在のXY]乗算,1000
◆変数の操作:[0002:現在のXY]加算,主人公のY座標
◆条件分岐:変数[0001:前のXY]がV[0002]以外
 ◆変数の操作:[0001:前のXY]代入,変数[0002]の値
 ◆条件分岐:変数[0003:記憶する変数番号]が21
  ◆変数の操作:[0021:1歩目]代入,主人公の向き
  ◆
 :分岐終了
 ◆条件分岐:変数[0003:記憶する変数番号]が22
  ◆変数の操作:[0022:2歩目]代入,主人公の向き
  ◆
 :分岐終了
 ◆条件分岐:変数[0003:記憶する変数番号]が23
  ◆変数の操作:[0023:3歩目]代入,主人公の向き
  ◆
 :分岐終了
 ◆条件分岐:変数[0003:記憶する変数番号]が24
  ◆変数の操作:[0024:4歩目]代入,主人公の向き
  ◆
 :分岐終了
 ◆条件分岐:変数[0003:記憶する変数番号]が25
  ◆変数の操作:[0025:5歩目]代入,主人公の向き
  ◆
 :分岐終了
 ◆変数の操作:[0003:記憶する変数番号]加算,1
 ◆
:分岐終了

たった5歩を記憶するだけでこれだけのイベント設定が必要になります。
もしも100歩分の記憶となるとイベント設定はかなり多くなるでしょう。



今回の移動方向を記憶するイベントは、あまり使い道が無いイベント処理だと思いますが、
リプレイ処理最初の位置に戻されるイベントを作りたい時には、
このような移動方向を記憶するイベントが必要になります。

なお、以下の黄色で表示されたイベントを追加する事で、
Shiftキーを押すとスタート地点に戻る処理を作る事ができます。

■マップイベント
▼1ページ目
イベント出現条件:なし
イベント開始条件:自動的に始まる
◆変数の操作:[0001:前のXY]代入,主人公のX座標
◆変数の操作:[0001:前のXY]乗算,1000
◆変数の操作:[0001:前のXY]加算,主人公のY座標
◆変数の操作:[0003:記憶する変数番号]代入,21


▼2ページ目
イベント出現条件:変数[0003:記憶する変数番号]が21以上
イベント開始条件:定期的に並列処理する
◆変数の操作:[0002:現在のXY]代入,主人公のX座標
◆変数の操作:[0002:現在のXY]乗算,1000
◆変数の操作:[0002:現在のXY]加算,主人公のY座標
◆条件分岐:変数[0001:前のXY]がV[0002]以外
 ◆変数の操作:[0001:前のXY]代入,変数[0002]の値
 ◆変数の操作:[V[0003]]代入,主人公の向き
 ◆変数の操作:[0003:記憶する変数番号]加算,1
 ◆
:分岐終了

◆キー入力の処理:[0004:Shiftキー](Shift/オプションにチェックなし)
◆条件分岐:変数[0004:Shiftキー]が7
 ◆スイッチの操作:[0001:戻る処理]をONにする<3ページ目を起動
 ◆
:分岐終了



▼3ページ目<3ページ目を追加
イベント出現条件:スイッチ[0001:戻る処理]がON
イベント開始条件:自動的に始まる
◆条件分岐:変数[0003:記憶する変数番号]が21
 ◆変数の操作:[0003:記憶する変数番号]代入,0<1ページ目の初期設定を起動
 ◆スイッチの操作:[0001:戻る処理]をOFFにする
 ◆イベント処理の中断
 ◆
:分岐終了
◆変数の操作:[0003:記憶する変数番号]減算,1
◆変数の操作:[0005:向き情報]代入,変数[V[0003]]の値<向き情報を呼び出す
◆条件分岐:変数[0005:向き情報]が2
 ◆キャラクターの動作指定:主人公,向き固定,下を向く,上に移動,向き固定解除
 ◆
:分岐終了
◆条件分岐:変数[0005:向き情報]が4
 ◆キャラクターの動作指定:主人公,向き固定,左を向く,右に移動,向き固定解除
 ◆
:分岐終了
◆条件分岐:変数[0005:向き情報]が6
 ◆キャラクターの動作指定:主人公,向き固定,右を向く,左に移動,向き固定解除
 ◆
:分岐終了
◆条件分岐:変数[0005:向き情報]が8
 ◆キャラクターの動作指定:主人公,向き固定,上を向く,下に移動,向き固定解除
 ◆
:分岐終了
◆指定動作の全実行


イベントを設定しましたら、テストプレーを実行し、
適当に歩いてからShiftキーを押してみてください。



◎関連ページ
 ●イベントコマンド:変数の操作(フィールド仕様)
 ●イベントコマンド:変数の操作(バトルイベント仕様)
 ●「変数」って何?


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