マップ選択&移動画面を実装【RPGツクールMZ&MVプラグイン】

2024年11月01日

 選択した地点(マップ)に移動するための画面を実装します。
 ※いわゆるファストトラベルやルーラに相当する機能です。


主な特徴

  • フィールドと地図を対応させて各地点を表示
  • 地図画像はエディタから出力するだけでOK
  • コモンイベントによって演出可能
  • メニュー画面に追加可能
  • 地点名の横にスイッチ切替によるアイコン表示が可能
    イベント発生中の地点を知らせるなど。
  • 移動を禁止すれば、単なる地図としても利用可能

 当プラグイン内で指す『フィールド』とは地図に対応するマップを意味します。
 基本的にはフィールドと地点(町やダンジョン)を対応させる想定ですが、以下のような町と施設を対応させた移動画面を作成しても構いません。


目次


導入方法(Install)

更新履歴(History)

素材(Material)

使用方法(Usage)

基本

移動演出を追加

地図を表示

地図上に地点を表示

現在地の表示

MZ用プラグインコマンド(Plugin Command MZ)

MV用プラグインコマンド(Plugin Command MV)


プラグインパラメータ

地点一覧(SpotList)

地図設定一覧(FieldMapList)

シンボル画像一覧(SymbolList)

移動用コモンイベント(TransferCommonEvent)

マップID変数(MapIdVariable)

X座標変数(XVariable)

Y座標変数(YVariable)

識別用変数(IdentifierVariable)

自動更新(フィールド脱出)(UpdateWhenExitField)

自動更新(地点進入)(UpdateWhenEnterSpot)

現在地のシンボルID(CurrentSymbolId)

選択地点のシンボルID(SelectedSymbolId)

地点一覧の横幅(SpotListWidth)

解説枠の縦幅(HelpHeight)

メニューコマンドに表示(ShowMenuCommand)

メニューコマンド挿入位置(ShowMenuCommandPosition)

メニュー表示名(TravelName)

表示許可するスイッチ(MenuCommandSwitch)

マスク文字列(MaskString)ver1.03

禁止するスイッチ(DisableSwitch)ver1.01

[上級]記号(TravelSymbol)

参照専用(ReadOnlyMenu)

開始時コモンイベント(StartCommonEvent)


プラグインパラメータ(地点情報)

地点名(SpotName)

説明文(Description)

移動先マップID(TransferMapId)

移動先X座標(TransferX)

移動先Y座標(TransferY)

移動後の向き(TransferDirection)

移動先識別値(TransferIdentifier)

移動用コモンイベント(TransferCommonEvent)

アイコン(複数)(Icons)

地図用マップID(FieldMapId)

地図用X座標(FieldX)

地図用Y座標(FieldY)

座標更新用マップID(LocationUpdateMapId)

シンボルID(SymbolId)

一覧表示スイッチ(ListingSwitch)

点表示スイッチ(PointSwitch)

選択禁止スイッチ(DisableSwitch)


プラグインパラメータ(地図情報)

マップID(MapId)

マップ画像(MapImage)

背景色(BackgroundColor)

現在地用マップID変数(CurrentMapIdVariable)

現在地用X座標変数(CurrentXVariable)

現在地用Y座標変数(CurrentYVariable)

有効とするスイッチ(ValidSwitch)


プラグインパラメータ(シンボル情報)

シンボルID(SymbolId)

メモ(Memo)

シンボル画像(SymbolImage)

点滅周期(BlinkPeriod)

不透明度(Opacity)

シンボルの色(SymbolColor)

シンボルの半径(SymbolRadius)


プラグインパラメータ(アイコン情報)

アイコン番号(IconIndex)

文字色(NameColor)

表示スイッチ(DispSwitch)


導入方法(install)


 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMV、MZの両方で有効です。

 NRP_MapTravel.js ver1.042(2024/11/01)

素材(Material)


 上記のサンプルで使用している現在地用のシンボル画像です。武器画像のロッドを改変したものですが、お好みでご使用ください。


 ちなみに画像を設定しない初期状態だと、水色の丸で現在地を表示します。

更新履歴(History)


2024/09/20 - > 2024/11/01(ver1.04 -> 1.042)

  • シーン開始のプラグインコマンドにカーソルの初期識別値を追加した。
  • MVにて、アイコン表示時にエラーとなる不具合修正。
    (2024/11/01 ver1.041)
  • MVにて、アイコンが表示されない不具合修正。(2024/11/01 ver1.042)

2023/08/06 -> 2024/08/08(ver1.03 -> 1.031)


2022/11/02 -> 2023/04/03(ver1.02 -> 1.022)

  • 別フィールドのマップを表示している時も、地図に現在地が表示されてしまう不具合修正。
  • 地点名の文字色変更機能を追加。
  • MVで動作しない不具合修正。(2022/11/05 ver1.021)
  • メニューコマンドの挿入位置が想定通りにならないことがある不具合修正。
    (2023/04/03 ver1.022)

2022/06/13(ver1.01)


2021/12/30 -> 2022/05/24(ver1.00 -> 1.001)

  • 公開!
  • 表示する地点がない場合にエラーとなる不具合修正。

使用方法(Usage)


 設定内容の多いプラグインなので、段階に分けて説明します。
 まずは地図を使わない方法から始めます。

基本

 まず地点一覧をプラグインパラメータに登録します。

  • 『地点名』
  • 『移動先マップID』
  • 『移動先X座標』
  • 『移動先Y座標』

 などの情報を指定してください。

 また『一覧表示スイッチ』を指定すれば、スイッチがオンになるまで地点は表示されなくなります。

 これでプラグインコマンドを実行すればOKです。
 ※パラメータは指定不要


 シンプルなマップ選択&移動画面が実現できます。

移動演出を追加

 しかしながら、上記だけでは場所移動の演出もなく味気ないです。
 そこでコモンイベントを呼び出すことで演出を追加します。

  • 『移動用コモンイベント』
  • 『マップID変数』
  • 『X座標変数』
  • 『Y座標変数』

 の各プラグインパラメータを設定してください。
 ※いずれも地点一覧ではなく通常のパラメータです。

 この際、指定したコモンイベント内に、自力で場所移動処理を記述する必要があります。パラメータで指定した変数に座標情報が格納されるので、場所移動先をその変数で指定してください。


 後はイベントコマンドで好きなように演出を追加してください。
 移動に失敗して、別の場所に飛ばされるなんて変わったこともできます。


地図を表示

 フィールドに対応する地図を表示し、各地点を地図上の点(シンボル)として表示することが可能です。

 まずは地図画像を用意してください。
 最も簡単なのはマップツリー上で地図を作成したいマップを選択し、右クリックで「画像として保存」を選択して出力する方法です。


 用意した画像をピクチャーとして『地図設定一覧』に登録し、マップIDと紐付けてください。

 なお、自力で地図を加工したり完全に自作しても構いません。
 比率さえ合っていれば、地図のサイズも自由です。

地図上に地点を表示

 『移動先マップID』『移動先X座標』『移動先Y座標』の各項目にフィールド上の座標が設定されているならば、この時点で地図上に地点がシンボルとして表示されるようになります。


 問題は、移動先が町の中などフィールド以外だった場合です。
 この場合、地点毎に地図に対応する座標を入力する必要があります。

  • 『地図用マップID』
  • 『地図用X座標』
  • 『地図用Y座標』

 の各項目を設定してください。

 なお、シンボルをゲームの開始時から表示したくないという場合は『点表示スイッチ』を設定して切り替えてください。
 『一覧表示スイッチ』と同じ番号のスイッチでも構いません。

現在地の表示

 地図上にプレイヤーの現在地を表示するのは意外に困難です。
 フィールド上にプレイヤーがいるなら、現在の座標を参照するだけですが、町やダンジョンなどの地点にいる場合は、そうもいきません。


 よって、地点内にいる場合もフィールドの座標情報を保持する必要があります。
 まず、プラグインパラメータの地図情報に以下項目を設定し、保持する変数を決めてください。

  • 『現在地用マップID変数』
  • 『現在地用X座標変数』
  • 『現在地用Y座標変数』

 このプラグインでは、以下二つの自動化手段を用意しています。

1.フィールドから地点へ場所移動した際の座標を保持する。

 ただし、イベントなどで地点から地点へ移動した際は当てになりません。
 最初に入った地点の座標が保持されたままになります。

 また、イベントの演出で一時的にフィールドへ場所移動した場合、この処理の対象になってしまうことも注意してください。

2.地点へ場所移動した際に、地図用座標を取得する。

 該当の地点かどうかの判定は、『移動先マップID』で行います。
 それだけでは不十分な場合は『座標更新用マップID』に追加できます。

 もっとも、地点に属する全てのマップを登録するのは非現実的です。
 外部から遷移する可能性があるマップだけで十分です。

 ※ダンジョンなど地図上に表示しない地点を登録したい場合は『移動先マップID』を空欄にした上で、さらに『座標更新用マップID』だけを設定してください。
 ※MZ用プラグインコマンドの『地点一覧(追加)』で追加した地点についてはこの機能は働きません。ご注意ください。


 上記の自動取得機能を停止したい場合は、プラグインパラメータで切替も可能です。

 自動取得せずに、手動で上記の変数に値を設定しても構いません。
 状況によって柔軟に対応してください。
 例えば、ダンジョンからの脱出座標などと共有する方法もあります。


MZ用プラグインコマンド(Plugin Command MZ)


シーン開始

 マップ選択画面を表示します。

地点一覧(追加)

 表示される地点一覧の追加分です。
 プラグインパラメータの地点一覧に結合します。

表示専用

 場所移動を禁止します。
 純粋に地図として使用する場合を想定しています。

共通一覧を非表示

 プラグインパラメータで設定した共通の地点一覧を表示せず、地点一覧(追加)で指定した地点だけを表示します。

カーソルの初期識別値

 画面を開いた時のカーソルの初期選択地点を設定します。
 値はプラグインパラメータ(地点情報)の移動先識別値に対応します。

MV用プラグインコマンド(Plugin Command MV)


 機能はMZ版と同じため、説明は割愛します。
 ※大文字個別は区別しません。

シーン開始

NRP.MapTravel.SceneStart

また、以下で表示専用になります。
NRP.MapTravel.SceneStart true

プラグインパラメータ


地点一覧(SpotList)

 表示される地点の一覧です。
 表示条件なども含めて登録してください。
 詳細はプラグインパラメータ(地点情報)をご確認ください。

地図情報一覧(FieldMapList)

 地図として表示されるフィールドマップの一覧です。
 マップIDや画像などを登録してください。

シンボル画像一覧(SymbolList)

 地図上に表示されるシンボル(各地点、選択地点、現在地)の一覧です。

移動用コモンイベント(TransferCommonEvent)

 地点選択後に実行するコモンイベントです。
 このイベント内で場所移動を実行してください。

マップID変数(MapIdVariable)

 地点選択後に場所移動先のマップIDを格納する変数です。

X座標変数(XVariable)

 地点選択後に場所移動先のX座標を格納する変数です。

Y座標変数(YVariable)

 地点選択後に場所移動先のY座標を格納する変数です。

識別用変数(IdentifierVariable)

 地点選択後に識別値を格納する変数です。
 地点毎に異なる処理をしたい場合に有用です。

自動更新(フィールド脱出)(UpdateWhenExitField)

 フィールドから別のマップへ移動する際に地図座標用の変数を自動更新します。

自動更新(地点進入)(UpdateWhenEnterSpot)

 各地点へ移動した際に地図座標用の変数を自動更新します。
 『移動先マップID』および『座標更新用マップID』が基準。

現在地のシンボルID(CurrentSymbolId)

 現在地を表示するシンボルのIDです。

選択地点のシンボルID(SelectedSymbolId)

 選択地点を表示するシンボルのIDです。

地点一覧の横幅(SpotListWidth)

 地点一覧の横幅です。

解説枠の縦幅(HelpHeight)

 解説枠の縦幅です。初期値(空欄)では二行分を確保します。
 0にすると非表示。

メニューコマンドに表示(ShowMenuCommand)

 メニューコマンドに移動機能を追加します。

メニューコマンド挿入位置(ShowMenuCommandPosition)

 メニューコマンドに移動機能を挿入する位置です。
 0が先頭になります。

メニュー表示名(TravelName)

 移動機能の表示コマンド名を設定します。


 スイッチがオンの時のみコマンドを表示します。
 空白なら常に表示します。

マスク文字列(MaskString)ver1.03

 表示許可するスイッチがオフの際、指定した文字列でコマンドを表示します。
 例えば、機能を解放する前のコマンドを「????」というように表示できます。

 空欄ならコマンド自体を非表示にします。

禁止するスイッチ(DisableSwitch)ver1.01

 スイッチがオンの時のみコマンドを禁止(灰色表示)します。
 空白なら常に許可します。

[上級]記号(TravelSymbol)

 移動機能の記号を設定します。
 この値は他のプラグインと連携する際に使用できます。

参照専用(ReadOnlyMenu)

 移動コマンドを参照専用にします。
 地図としての利用を想定しています。

開始時コモンイベント(StartCommonEvent)

 シーン開始時に実行されるコモンイベントです。
 メッセージ表示等が可能ですが、機能は限定的です。

プラグインパラメータ(地点情報)


 『地点一覧』内に登録する地点情報のパラメータです。

地点名(SpotName)

 表示される地点の名前です。
 \i[1]などのアイコン表示も有効です。

説明文(Description)

 地点の説明文です。

移動先マップID(TransferMapId)

 移動先のマップIDです。数式可。

 空欄だと一覧に表示されなくなります。
 地図にシンボルだけを表示したい場合や、『座標更新用マップID』だけを設定したい場合に有効です。


移動先X座標(TransferX)

 移動先のX座標です。数式可。

移動先Y座標(TransferY)

 移動先のY座標です。数式可。

移動後の向き(TransferDirection)

 移動後の向きです。

移動先識別値(TransferIdentifier)

 移動先の地点を識別するための値です。
 『識別用変数』に値が格納されます。

 例えば、場所移動後に乗り物の位置も移動させたい場合、『識別用変数』で分岐させて『乗り物の位置設定』を実行すればOKです。
 ちなみに『移動先マップID』だけで識別できる場合は、わざわざこの項目を使う必要はありません。

移動用コモンイベント(TransferCommonEvent)

 地点選択後に実行するコモンイベントです。
 全体で設定したものより優先されます。

アイコン(複数)(Icons)

 地点名の横にアイコンを追加します。
 例えば、イベント発生中の地点を明示するなど。
 詳細はプラグインパラメータ(アイコン情報)をご覧ください。

地図用マップID(FieldMapId)

 地図に対応するフィールドのマップIDです。数式可。
 空欄だと『移動先マップID』を流用します。

地図用X座標(FieldX)

 地図に対応するフィールド上での地点のX座標です。数式可。
 空欄だと『移動先X座標』を流用します。

地図用Y座標(FieldY)

 地図に対応するフィールド上での地点のY座標です。数式可。
 空欄だと『移動先Y座標』を流用します。

座標更新用マップID(LocationUpdateMapId)

 地図座標の更新を行うマップIDです。複数指定可
 例1:1,2,3
 例2:1~3

シンボルID(SymbolId)

 表示するシンボルのIDです。
 空欄にすると非表示になります。

一覧表示スイッチ(ListingSwitch)

 地点がリスト上に表示される条件となるスイッチです。
 空欄なら常に表示します。

点表示スイッチ(PointSwitch)

 地点を地図上の点として表示する条件となるスイッチです。
 空欄なら常に表示します。

選択禁止スイッチ(DisableSwitch)

 選択を禁止するスイッチです。
 リスト上には灰色で表示されるようになります。

プラグインパラメータ(地図情報)


 『地図情報一覧』内に登録する地図情報のパラメータです。

マップID(MapId)

 地図に対応するマップのIDです。

マップ画像(MapImage)

 地図として使用する画像です。

背景色(BackgroundColor)

 地図の背景色です。
 例:rgb(255, 255, 255)
 数値は赤、緑、青に対応。空欄なら透明となります。

現在地用マップID変数(CurrentMapIdVariable)

 地図上の現在地となるマップIDを格納する変数です。

現在地用X座標変数(CurrentXVariable)

 地図上の現在地となるX座標を格納する変数です。

現在地用Y座標変数(CurrentYVariable)

 地図上の現在地となるY座標を格納する変数です。

有効とするスイッチ(ValidSwitch)

 地図を有効とするスイッチです。
 空欄なら常に表示します。

 同じマップIDに対して複数の設定が存在していた場合は、リストの上側が優先されます。ゲーム進行に応じて地図を変更したい場合に有効です。

プラグインパラメータ(シンボル情報)


 『シンボル画像一覧』内に登録するシンボル情報のパラメータです。

シンボルID(SymbolId)

 シンボルに対応するIDです。
 各地点との紐付けに使います。

メモ(Memo)

 ユーザが識別するためのメモです。
 ゲーム中には一切使用しません。

シンボル画像(SymbolImage)

 シンボルとして使用するピクチャー画像です。
 未指定の場合は円形の点が描画されます。

点滅周期(BlinkPeriod)

 シンボルが点滅する周期です。
 1/60秒単位で設定してください。0で点滅なし

不透明度(Opacity)

 シンボルの不透明度(0~255)です。
 255を超えると点滅時の表示時間が伸びます。

シンボルの色(SymbolColor)

 ※シンボル画像が設定されていない場合のみ有効です。
 シンボル色です。
 例:rgb(255, 255, 255)
 数値は赤、緑、青に対応します。

シンボルの半径(SymbolRadius)

 ※シンボル画像が設定されていない場合のみ有効です。
 シンボルの半径です。

プラグインパラメータ(アイコン情報)


 地点情報の『アイコン(複数)』内に登録するパラメータです。

アイコン番号(IconIndex)

 地点名の横に表示するアイコンの番号です。
 右クリックで『アイコン番号の挿入』ができます。

文字色(NameColor)

 地点名の文字色を変更します。
 システムカラーの番号を指定してください。

表示スイッチ(DispSwitch)

 アイコンの表示条件となるスイッチです。
 空欄なら常に表示します。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 21:47 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする