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

2021年12月30日

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


主な特徴

  • フィールドと地図を対応させて各地点を表示
  • 地図画像はエディタから出力するだけで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)

[上級]記号(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)

表示スイッチ(DispSwitch)


導入方法(install)


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

 NRP_MapTravel.js ver1.00(2021/12/30)

 ※MVにてDynamicAnimationと併用する場合、エラーになることがある模様です。NRP_DynamicAnimation.jsおよびNRP_DynamicAnimationMap.jsを以下から最新へ更新すれば対処できます。
 http://newrpg.seesaa.net/article/473569739.html#install

素材(Material)


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


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

更新履歴(History)


2021/12/30(ver1.00)

  • 公開!

使用方法(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)

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


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

[上級]記号(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)

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

表示スイッチ(DispSwitch)

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

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

マップイベントやコモンイベントの呼び出しを拡張【RPGツクールMZプラグイン】

 マップイベントやコモンイベントの呼び出しを行います。


 ツクールMZでは通常、マップイベントの呼び出しはできません。そんなわけで、かつてのツクール2000のように呼び出せるようにします。

 イベント名や変数を参照するなどして、自由度の高い呼び出しができます。
 また呼び出したイベントから『このイベント』を対象とする操作を行った場合、通常とは異なるキャラクターを対象にできます。
 例えば、通常は不可能なフォロワー(隊列歩行の仲間)を対象とすることもできます。

 ※ツクールMVには対応していません。
 マップイベントの呼び出しについてはテンプレートイベントプラグインなどでも可能です。プラグインコマンドで制御文字を有効にするプラグインと組み合わせれば変数指定も可能なので、大抵の要件には足りるはずです。


目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

マップイベントの呼び出し(CallMapEvent)

コモンイベントの呼び出し(CallCommonEvent)


謝辞(Acknowledgements)


導入方法(install)


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

 NRP_CallEvent.js ver1.011(2021/12/30)

更新履歴(History)


2021/10/05 -> 2021/12/30(ver1.01 -> 1.011)

  • イベント名を指定して呼び出した場合、現在ページが正しく取得されない不具合修正。
  • TemplateEvent.jsが存在しない場合、エラーとなる不具合修正。(2021/12/30 ver1.011)

2021/06/24(ver1.00)

  • 公開!

使用方法(Usage)


 以下のプラグインコマンドを実行してください。

マップイベントの呼び出し(CallMapEvent)

 イベントID(イベント名)とページ番号を指定して、マップイベントを呼び出します。
 複数のイベントを同時に対象とすることも可能です。
 イベントIDのコンボボックスにサンプルが設定されているのでご活用ください。

コモンイベントの呼び出し(CallCommonEvent)

 コモンイベントID(コモンイベント名)を指定して、コモンイベントを呼び出します。
 要領はマップイベントとほぼ同じです。

 コモンイベントからさらにコモンイベントを呼び出す場合、『現在のコモンイベントID + 1』といった呼び出し方も可能です。
 ただし、この機能は正規の手順で呼び出したコモンイベントのみに有効です。
 外部のプラグインなどから呼び出した場合は、機能しない可能性があります。

謝辞(Acknowledgements)


 このプラグインはRPGツクールMZ公式のTemplateEvent.js(トリアコンタン様)を参考にさせて頂きました。

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

移動ルートの設定用コマンド(画像の変更など)を即時実行【RPGツクールMZ&MVプラグイン】

2021年12月23日

 移動ルートの設定用コマンドを即時実行し、タイムラグをなくします。
 特に画像の変更と向きの変更を組み合わせたアニメを行う際、別の画像が見えてしまう問題(下記動画)に対処できます。


 イベントコマンドで『移動ルートの設定』を呼び出した場合、各コマンドは1/60秒毎に実行される仕様になっています。
 この仕様によって困るのは、キャラクター画像の変更によってアクションをさせたい場合です。

 例えば、MZのデフォルトヒロインであるプリシアに対して、しゃがむアクションをさせたいとします。

 プリシアの画像はActor1.pngの左上から二番目です。対して、しゃがんだ画像はというと、
 Damage1.pngの左上から一番目の左向き画像となっています。

 プリシアが下向きだったとすると、『移動ルートの設定』によって変更する手順は以下の通りになります。

  1. 画像の変更:Damage1.pngの左上を指定
  2. 左を向く

 ところが、仕様により二つの動作の間には1/60秒の隙間が生じます。そうして起こってしまうのが、以下の現象というわけです。


 ※実際はもっと一瞬ですが、強調のため編集しています。

 画像を変更した直後はまだ下向きなので、Damage1.pngでは下向きの画像(=リード)が表示されてしまいます。
 直後に一瞬でプリシアに変化するとはいえ、プレイヤーが違和感を持つには十分な時間です。


 そんなわけで、移動ルートの設定時にコマンド間の隙間をなくすのがこのプラグインです。画像の変更や向きの変更以外にも、透明化やスイッチのON/OFFなど全般に効果があります。
 ※ちなみに、RPGツクール2000〜2003では元から一瞬で実行される仕様でした。XP〜VXAは知りませんが、旧来のツクールから移籍してきたユーザは注意が必要です。

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

プラグインパラメータ

最大同時処理数(MaxImmediate)

自律移動カスタムに適用(ApplyMoveTypeCustom)


導入方法(install)


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

 NRP_QuickMovementRoute.js ver1.00(2021/12/16)

更新履歴(History)


2021/12/23(ver1.00)

  • 公開!

使用方法(Usage)


 適用するだけでOKです。

 なお、初期状態では自律移動タイプが『カスタム』の場合のルートには適用されません。
 ※プラグインパラメータで変更可能です。

プラグインパラメータ


最大同時処理数(MaxImmediate)

 即時処理を同時に行う最大数です。

自律移動カスタムに適用(ApplyMoveTypeCustom)

 自律移動タイプがカスタムの場合にも処理を適用します。
 ただし、移動頻度が最大の場合が条件です。

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