
今いる場所のリージョンIDをスクリプトで取得する方法はあるの?

あるぞ。$gameMap.regionId() を使えば、
指定した座標のリージョンIDを取得できるぞ。
RPGツクールMVでは、マップに設定したリージョンIDをスクリプトで取得できます。
例えば、プレイヤーが現在立っている場所のリージョンIDを調べたり、特定のリージョンに入ったときだけイベントを実行したりできます。
この記事では、リージョンIDを取得するスクリプトと、その具体的な使い方を解説します。
1. プレイヤーがいる場所のリージョンIDを取得する
プレイヤーが現在立っている場所のリージョンIDを取得するには、次のスクリプトを使用します。
$gameMap.regionId($gamePlayer.x, $gamePlayer.y)
$gamePlayer.x はプレイヤーのX座標、$gamePlayer.y はプレイヤーのY座標です。
このスクリプトでは、プレイヤーがいる座標のリージョンIDを取得できます。
例えば、プレイヤーがリージョンID5の場所にいる場合、取得結果は 5 になります。
2. 特定のリージョンIDかどうか判定する
プレイヤーが特定のリージョンにいるかどうかを判定することもできます。
例えば、リージョンID5の場所にいる場合に条件を満たすスクリプトです。
$gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 5
このスクリプトは、プレイヤーがリージョンID5の場所にいる場合に true、それ以外の場合に false になります。
イベントコマンド「条件分岐」の「スクリプト」に入力すれば、現在いる場所のリージョンIDに応じて処理を分岐できます。
使用例
- 特定のリージョンにいる場合だけイベントを実行する
- 特定の地形にいる場合だけダメージを受ける
- 特定のエリアに入った場合だけメッセージを表示する
- リージョンごとに異なる移動速度や効果を設定する
3. リージョンIDを変数に代入する
取得したリージョンIDを変数に代入したい場合は、次のスクリプトを使用します。
$gameVariables.setValue(10, $gameMap.regionId($gamePlayer.x, $gamePlayer.y));
この例では、プレイヤーが現在いる場所のリージョンIDを変数ID10に代入します。
例えば、プレイヤーがリージョンID5の場所にいる場合、変数ID10の値は 5 になります。
変数に代入しておけば、後からイベントコマンドや別のスクリプトで利用できます。
4. 指定した座標のリージョンIDを取得する
プレイヤーの現在位置だけでなく、指定した座標のリージョンIDを取得することもできます。
次のスクリプトでは、X座標10、Y座標15のリージョンIDを取得します。
$gameMap.regionId(10, 15)
この場合、マップ上の座標(10, 15)に設定されているリージョンIDが取得できます。
例えば、イベントの位置に設定されたリージョンIDを取得したい場合は、次のように記述します。
$gameMap.regionId($gameMap.event(2).x, $gameMap.event(2).y)
このスクリプトでは、イベントID2がいる座標のリージョンIDを取得します。
5. 複数のリージョンIDを判定する
複数のリージョンIDをまとめて判定することもできます。
例えば、リージョンID5またはリージョンID10の場所にいる場合に条件を満たすスクリプトです。
$gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 5 ||
$gameMap.regionId($gamePlayer.x, $gamePlayer.y) === 10
このスクリプトでは、プレイヤーがリージョンID5または10の場所にいる場合に true になります。
|| は、複数の条件のうち、どれか1つでも満たしていれば true になる演算子です。
複数の条件を組み合わせる方法については、以下の記事も参考にしてください。

6. 使用する際の注意点
リージョンIDを取得する際は、次の点に注意してください。
$gameMap.regionId(X座標, Y座標)で指定した座標のリージョンIDを取得できます。- プレイヤーの現在位置を調べる場合は、
$gamePlayer.xと$gamePlayer.yを指定します。 - 取得結果は数値です。
- リージョンIDが設定されていない場所の取得結果は
0になります。 - リージョンIDは、マップ編集画面のリージョン設定で確認できます。
以上が、リージョンIDを取得するスクリプトです。
リージョンIDを取得できるようになると、プレイヤーやイベントがいる場所に応じて、さまざまな処理を実行できるようになります。


コメント