ゲーム制作

【RPGツクールMV】リージョンIDを取得するスクリプト

【RPGツクールMV】リージョンIDを取得するスクリプト ゲーム制作
スポンサーリンク
ゴス丸
ゴス丸

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

ドラ男
ドラ男

あるぞ。$gameMap.regionId() を使えば、

指定した座標のリージョンIDを取得できるぞ。

RPGツクールMVでは、マップに設定したリージョンIDをスクリプトで取得できます。

例えば、プレイヤーが現在立っている場所のリージョンIDを調べたり、特定のリージョンに入ったときだけイベントを実行したりできます。

この記事では、リージョンIDを取得するスクリプトと、その具体的な使い方を解説します。

1

スポンサーリンク

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 になる演算子です。

複数の条件を組み合わせる方法については、以下の記事も参考にしてください。

【RPGツクールMV】条件分岐で複数の条件をスクリプトで判定する方法
...

6. 使用する際の注意点

リージョンIDを取得する際は、次の点に注意してください。

  • $gameMap.regionId(X座標, Y座標) で指定した座標のリージョンIDを取得できます。
  • プレイヤーの現在位置を調べる場合は、$gamePlayer.x と $gamePlayer.y を指定します。
  • 取得結果は数値です。
  • リージョンIDが設定されていない場所の取得結果は 0 になります。
  • リージョンIDは、マップ編集画面のリージョン設定で確認できます。

以上が、リージョンIDを取得するスクリプトです。

リージョンIDを取得できるようになると、プレイヤーやイベントがいる場所に応じて、さまざまな処理を実行できるようになります。

コメント