NRP マップ選択&移動画面を実装 - NRP_MapTravel.js
シェア用テキスト:
▼NRP マップ選択&移動画面を実装(砂川赳様作) - NRP_MapTravel.js
https://plugin.fungamemake.com/archives/28980
選択した地点(マップ)に移動するための画面を実装します。 * ※いわゆるファストトラベルやルーラに相当する機能です。
ふりがな:まっぷせんたく&いどうがめんをじっそう
機能概要: 選択した地点(マップ)に移動するための画面を実装します。 * ※いわゆるファストトラベルやルーラに相当する機能です。
利用規約(ライセンス):
・著作権:保持
・商用利用:許可
・追加改変:許可
・再配布:許可
・詳細はダウンロードページ・プラグイン内を確認
作者:砂川赳
作者サイト:https://newrpg.seesaa.net/
解説ページ:https://newrpg.seesaa.net/article/484927929.html
ファイル名:NRP_MapTravel.js
プラグインのヘルプ:
/*:ja * @target MV MZ * @plugindesc v1.00 マップ選択&移動画面を実装します。 * @author 砂川赳(http://newrpg.seesaa.net/) * @url http://newrpg.seesaa.net/article/484927929.html * * @help 選択した地点(マップ)に移動するための画面を実装します。 * ※いわゆるファストトラベルやルーラに相当する機能です。 * * ◆主な特徴 * ・フィールドと地図を対応させて各地点を表示 * ・地図画像はエディタから出力するだけでOK * ・コモンイベントによって演出可能 * ・メニュー画面に追加可能 * ・地点名の横にスイッチ切替によるアイコン表示が可能 * イベント発生中の地点を知らせるなど。 * ・移動を禁止すれば、単なる地図としても利用可能 * * 当プラグイン内で指す『フィールド』とは地図に対応するマップを意味します。 * 基本的にはフィールドと地点(町やダンジョン)を対応させる想定ですが、 * 町と施設を対応させた移動画面を作成しても構いません。 * * ------------------------------------------------------------------- * ■使用方法 * ------------------------------------------------------------------- * 設定内容の多いプラグインなので、段階に分けて説明します。 * まずは地図を使わない方法から始めます。 * * ◆基本 * まず地点一覧をプラグインパラメータに登録します。 * * ・『地点名』 * ・『移動先マップ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) * ------------------------------------------------------------------- * ◆シーン開始 * マップ選択画面を表示します。 * 表示専用の指定をすれば、純粋に地図としての利用もできます。 * * また『地点一覧(追加)』を指定すれば、 * 独自の一覧を追加することも可能です。 * * ------------------------------------------------------------------- * ■プラグインコマンド(MV) * ------------------------------------------------------------------- * ※大文字個別は区別しません。 * * ◆シーン開始 * NRP.MapTravel.SceneStart * * また、以下で表示専用になります。 * NRP.MapTravel.SceneStart true * * ------------------------------------------------------------------- * ■利用規約 * ------------------------------------------------------------------- * 特に制約はありません。 * 改変、再配布自由、商用可、権利表示も任意です。 * 作者は責任を負いませんが、不具合については可能な範囲で対応します。 * * @------------------------------------------------------------------ * @ プラグインコマンド * @------------------------------------------------------------------ * * @command SceneStart * @text シーン開始 * @desc 地点選択画面を呼び出します。 * * @arg AddSpotList * @text 地点一覧(追加) * @type struct<Spot>[] * @desc 表示される地点一覧の追加分です。 * プラグインパラメータの地点一覧に結合します。 * * @arg ReadOnly * @text 表示専用 * @type boolean * @desc 場所移動を禁止します。 * 純粋に地図として使用する場合を想定しています。 * * @arg HideCommonList * @text 共通一覧を非表示 * @type boolean * @desc 共通の地点一覧を表示せず追加分だけを表示します。 * * @------------------------------------------------------------------ * @ プラグインパラメータ * @------------------------------------------------------------------ * * @param SpotList * @text 地点一覧 * @type struct<Spot>[] * @desc 表示される地点の一覧です。 * 表示条件なども含めて登録してください。 * * @param FieldMapList * @text 地図情報一覧 * @type struct<FieldMap>[] * @desc 地図として表示されるフィールドマップの一覧です。 * マップIDや画像などを登録してください。 * * @param SymbolList * @text シンボル画像一覧 * @type struct<Symbol>[] * @desc 地図上に表示されるシンボル(各地点、選択地点、現在地)の一覧です。 * * @param <TransferCommonEvent> * @text <場所移動用コモン関連> * @desc 場所移動時に実行されるコモンイベント関連項目です。 * * @param TransferCommonEvent * @parent <TransferCommonEvent> * @text 移動用コモンイベント * @type common_event * @desc 地点選択後に実行するコモンイベントです。 * このイベント内で場所移動を実行してください。 * * @param MapIdVariable * @parent <TransferCommonEvent> * @text マップID変数 * @type variable * @desc 地点選択後に場所移動先のマップIDを格納する変数です。 * * @param XVariable * @parent <TransferCommonEvent> * @text X座標変数 * @type variable * @desc 地点選択後に場所移動先のX座標を格納する変数です。 * * @param YVariable * @parent <TransferCommonEvent> * @text Y座標変数 * @type variable * @desc 地点選択後に場所移動先のY座標を格納する変数です。 * * @param IdentifierVariable * @parent <TransferCommonEvent> * @text 識別用変数 * @type variable * @desc 地点選択後に識別値を格納する変数です。 * 地点毎に異なる処理をしたい場合に有用です。 * * @param <FieldMap> * @text <地図情報関連> * @desc 地図情報関連の項目です。 * * @param UpdateWhenExitField * @parent <FieldMap> * @text 自動更新(フィールド脱出) * @type boolean * @default true * @desc フィールドから別のマップへ移動する際に地図座標用の変数を自動更新します。 * * @param UpdateWhenEnterSpot * @parent <FieldMap> * @text 自動更新(地点進入) * @type boolean * @default true * @desc 各地点へ移動した際に地図座標用の変数を自動更新します。 * 『移動先マップID』および『座標更新用マップID』が基準。 * * @param CurrentSymbolId * @parent <FieldMap> * @text 現在地のシンボルID * @type number @min -999 @max 999 * @default -1 * @desc 現在地を表示するシンボルのIDです。 * * @param SelectedSymbolId * @parent <FieldMap> * @text 選択地点のシンボルID * @type number @min -999 @max 999 * @default 0 * @desc 選択地点を表示するシンボルのIDです。 * * @param <Layout> * @text <レイアウト関連> * @desc レイアウト関連項目です。 * * @param SpotListWidth * @parent <Layout> * @text 地点一覧の横幅 * @type number * @default 300 * @desc 地点一覧の横幅です。 * * @param HelpHeight * @parent <Layout> * @text 解説枠の縦幅 * @type number * @desc 解説枠の縦幅です。 * 初期値(空欄)では二行分を確保します。0にすると非表示。 * * @param <Menu Command> * @text <メニューコマンド関連> * @desc メニューコマンドに移動機能を表示する際の関連項目です。 * * @param ShowMenuCommand * @parent <Menu Command> * @text メニューコマンドに表示 * @type boolean * @default false * @desc メニューコマンドに移動機能を追加します。 * * @param ShowMenuCommandPosition * @parent <Menu Command> * @text メニューコマンド挿入位置 * @type number * @default 4 * @desc メニューコマンドに移動機能を挿入する位置です。 * 0が先頭になります。 * * @param TravelName * @parent <Menu Command> * @text メニュー表示名 * @type text * @default 移動 * @desc 移動機能の表示コマンド名を設定します。 * * @param MenuCommandSwitch * @parent <Menu Command> * @text 表示許可するスイッチ * @type switch * @desc スイッチがオンの時のみコマンドを表示します。 * 空白なら常に表示します。 * * @param TravelSymbol * @parent <Menu Command> * @text [上級]記号 * @type text * @default maptravel * @desc 移動機能の記号を設定します。 * この値は他のプラグインと連携する際に使用できます。 * * @param ReadOnlyMenu * @parent <Menu Command> * @text 参照専用 * @type boolean * @default false * @desc 移動コマンドを参照専用にします。 * 地図としての利用を想定しています。 * * @param <Other> * @text <その他> * @desc その他の項目です。 * * @param StartCommonEvent * @parent <Other> * @text 開始時コモンイベント * @type common_event * @desc シーン開始時に実行されるコモンイベントです。 * メッセージ表示等が可能ですが、機能は限定的です。 */