高機能な立体交差を実現【RPGツクールMZ&MVプラグイン】

2021年08月12日

 マップ上で橋などの立体交差を表現できます。


 ツクールMZ公式プラグイン『OverpassTile.js』の機能強化版です。
 立体交差上に通行禁止のタイルを配置できるため、より自由度の高い立体交差を作成できます。

 立体交差を使わないマップでも、すり抜け可能な隠し通路として利用することもできます。


 また、イベントのメモ欄やプラグインコマンドによって、プレイヤーやイベントが存在する層を切替できます。

 『OverpassTile.js』はツクールMVにも存在しますが、当プラグインはより高機能なMZ版に準拠しています。その上でMVでも使用できるように改良しました。

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

メモ欄(Note)

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

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

プラグインパラメータ(Plugin Parameter)

立体交差リージョン(OverPathRegion)

立体交差地形タグ(OverPathTerrainTag)

立体交差入り口リージョン(GatewayRegion)

立体交差入り口地形タグ(GatewayTerrainTag)

ハシゴ属性に対応(ConsiderLadder)ver1.01


問題点(Problem)

☆タイル

縦の立体交差


謝辞(Acknowledgements)

参考(Reference)


導入方法(install)


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

 NRP_OverpassTile.js ver1.021(2021/08/12)

 ※このプラグインは以下のプラグインと競合します。
  これらより下に配置すれば問題ありません。
  また、NRP_EventCollisionEXは最新化(ver1.01)してください。

  • NRP_EventCollisionEX
  • NRP_BushEX

更新履歴(History)


2021/07/05 -> 2021/08/12(ver1.02 -> 1.021)

  • 乗り物(小型船、大型船)が立体交差の下をくぐれるように対応。
  • イベントが自律移動時に他のイベント(プライオリティが通常キャラと同じ以外)と重なる位置に移動してしまう不具合修正。

2021/06/23(ver1.01)


2021/06/17(ver1.00 -> 1.001)

  • 公開!
  • 立体交差外→立体交差下に移動した際の通行判定を修正。(ver1.001)

使用方法(Usage)


 上層(MZにおけるレイヤー3〜4)にタイルを配置すれば、立体交差として扱われます。
 あとは『OverpassTile.js』と同じようにリージョンや地形タグで立体交差とその入口を指定してください。


 この例ではリージョン8を立体交差、9を立体交差の入口として指定しています。
 リージョン8の立体交差部分は、上層部分をレイヤー3〜4に切り替えて配置しています。
 MVでは細かい指定はできません。タイルB〜Eが自動的に上層として扱われます。

 初期状態では、キャラクターは立体交差の下にいるものとして扱われます。
 立体交差の入口を通過すると、キャラクターが立体交差の上に移動します。

 あえて立体交差の入口を設定しなければ、すり抜け可能な隠し通路のような使い方も可能です。

メモ欄(Note)


 イベントのメモ欄に以下を指定すれば、最初から立体交差の上にいるものとして扱われます。
<OverpassHigher>


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


高さを変更

 対象となるキャラクターを指定し、立体交差との上下関係を変更します。
 詳細は実際のプラグインコマンドを確認してください。

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


NRP.OverpassTile.Higher [対象] [高さ(true/false)]

 MZ版と同じく対象を表示する高さを変更します。
 ※高さを省略するとtrueになります。
 ※大文字小文字は問いません。


 以下は例です。
NRP.OverpassTile.Higher 0

 このイベントを上層に移動します。
 ※0は省略可能です。

NRP.OverpassTile.Higher 1 false

 ID=1のイベントを下層に移動します。

NRP.OverpassTile.Higher 1~10

 ID=1〜10のイベントを上層に移動します。

NRP.OverpassTile.Higher -1

 プレイヤー(-1)を上層に移動します。

NRP.OverpassTile.Higher -1~-4

 パーティ4人を上層に移動します。
 ※-2以下は隊列歩行の仲間になります。

プラグインパラメータ(Plugin Parameter)


 プラグインパラメータは『OverpassTile.js』と同一です。

立体交差リージョン(OverPathRegion)

 橋などの立体交差部分に設定するリージョンIDです。

立体交差地形タグ(OverPathTerrainTag)

 橋などの立体交差部分に設定する地形タグです。

立体交差入り口リージョン(GatewayRegion)

 橋の両端など、立体交差の入り口部分に設定するリージョンIDです。

立体交差入り口地形タグ(GatewayTerrainTag)

 橋の両端など、立体交差の入り口部分に設定するリージョンIDです。

ハシゴ属性に対応(ConsiderLadder) ver1.01

 ハシゴ属性を立体交差に対応させます。
 立体交差上にいる場合、下層のハシゴ属性を無視します。

 例えば、以下のような立体交差を作れます。



問題点


 OverpassTile.jsの元々の仕様により、以下の問題点が存在します。

☆タイル

 立体交差の上層に☆判定のタイルを配置しても、キャラクターの下に表示されてしまいます。


 これは内部的に、立体交差の上層を全て☆タイルとして扱っているためです。本来の☆タイルまでキャラクターの下として扱われてしまいます。

 対処法としては☆タイルをイベント画像として配置し、プライオリティタイプをスクリプトで変更する方法などがあります。
 『this.setPriorityType(6)』を移動ルートで指定すればOKです。『動作を繰り返す』をオフにするのを忘れずに!

縦の立体交差

 『縦の立体交差』かつ『キャラクターが1マスに収まらない高さ』の場合、表示の考慮がされていません。


 ご覧の有様です。
 二番目のキャラが先頭のキャラの頭を踏んでいます。
 これは立体交差の入口で、キャラクターのプライオリティタイプを切り替えているために発生する問題です。

 僕のように頭身の高いキャラを使いたい制作者にとっては困った問題です。
 対処法としては「立体交差の入口には左右から侵入させる」「そもそも、縦の立体交差は作らない」などです。

謝辞(Acknowledgements)


 このプラグインはRPGツクールMZ公式のOverpassTile.js(トリアコンタン様&Yoji Ojima様)を改修させて頂きました。

 利用規約も元のプラグインに準じます。……が、特に何の記載もないので、自由に使ってもらって大丈夫だと思われます。

参考(Reference)


 以下、OverpassTile.jsの解説の引用です。
 マップ上で橋などの立体交差を表現できます。
 ツクールMV公式プラグイン「OverpassTile.js」のMZ向け機能強化版です。

 リージョンだけでなく地形タグも指定可能で、さらにイベントの起動や衝突判定に関する考慮がなされています。
 乗り物の存在は考慮しません。

 通行可能判定に関する仕様
 ・橋の入り口にいる場合
  →立体交差に対して必ず移動できます。
 ・立体交差にいる場合
  →橋の上にいる場合、立体交差と橋の入り口に対して必ず移動できます。
  →橋の下にいる場合、橋の入り口に対して必ず移動できません。
 ・上記の条件で移動可否を判定しなかった場合
  →マップの本来の通行設定に従います。

 イベントの起動判定、衝突判定を考慮できます。
 ・高さが異なる(橋の上と下にいる)イベントは起動、衝突しません。


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