マップ上のキャラクター移動やイベントシステムを拡張し、立体的な謎解きの幅を広げるための様々な機能を追加します。
※元ネタは 黄金の太陽シリーズ の謎解きシステムです。
English document in process: English page
Gallery ページ でサンプルの画面を見ることができます。
ダウンロード
Version | File |
---|---|
v0.6.0 | ⬇️ LN_AdvancedMapPuzzleSystem.js |
サンプルプロジェクトについて
RPG ツクール MV で新規プロジェクトを作成し、⬇️ こちら からダウンロードしたすべてのファイルを上書きしてください。
開発状況について
このプラグインは以前に @lriki がRPGツクールXP用に開発したプラグインのリメイクです。 そちらで実装されていた全ての機能の達成を以って、バージョン 1.0.0 とする予定です。
また JavaScriptでの実装 を TypeScript に移行中です。
プラグインを変更する場合は 開発ガイド を参照してください。
不具合情報について
既知の問題や修正済みの問題については次のリンク先をご確認ください。
- 前提条件・注意事項
- プラグインの用語
- キャラクター移動の拡張
- マップオブジェクト
- マップオブジェクト - 箱
- マップオブジェクト - 感圧板
- マップオブジェクト - 丸太
- マップオブジェクト - 滑り台
- マップオブジェクト - ホール
- マップスキル
- タッチ操作による自動移動について
- ライセンス情報
- [パーティの隊列歩行] はテストされていません。システムの設定は OFF にしてください。
- マップ画面のシステムに大きな変更を行いますので、他のキャラクター移動系プラグインと競合し、正しく動作しないことがあります。
- 特に半歩移動やピクセル単位移動などの細かい移動単位をサポートするプラグインは注意が必要です。
- @triacontane 様の HalfMove.js ではテストを行っていますが、「イベントのすり抜け」オプションを false にしないと、おそらくレベルデザイン上の不都合が発生します。(例えばジャンプ先とおせんぼ用のイベントをすり抜けてしまう)
プラグイン開発中に作成した素材を、AMPS_Materials で配布しています。
こちらはツクールMVの加工素材となりますので、MIT ライセンスではありません。ご利用はツクールMVの利用規約に従ってください。
水路や穴など、キャラクターが移動できる地形よりも見かけ上高さが低く通行不可であるタイルを、ホールタイルと呼びます。
タイルセットの「A1(アニメーション)」は既定でホールタイルとみなされます。
次の画面の水地形は A1 オートタイルで、すべてホールタイルとなります。
タイルセットの「通行(4方向)」により個別の通行可能方向が設定されたタイルを、エッジタイルと呼びます。
崖などを表現するためのオートタイルは自動的に通行可能方向が設定されることがありますので注意してください。
本プラグインによって様々な効果を与えられるイベントを、マップオブジェクトと呼びます。
キャラクターが上に乗ることができるイベントは代表的なマップオブジェクトです。
箱オブジェクトの移動可能範囲を示すタイルです。
地形タグ 7
のタイルはガイドラインとなります。(プラグインのパラメータの GuideLineTerrainTag で変更できます)
ガイドラインとして地形タグが設定されたタイルは、下層タイルの通行可否などの設定を上書きしません。 次の画面の例では、小石で囲まれたタイルがガイドラインです。通常は崖から右へ移動できてしまいますが、この性質により移動できなくなります。
マップオブジェクトに対して移動やイベント起動などの効果を与えるスキルを、マップスキルと呼びます。
このセクションの機能は、本プラグインを有効にするだけですべてのキャラクター(プレイヤーとイベント)に対して有効になります。
ホールタイルへ向かって移動したときに1マス先に移動可能タイルがある場合、ホールタイルをジャンプで飛び越えます。
移動先にすり抜けできないイベントがある場合はジャンプできません。
エッジタイルの通行不可方向が1マス分開けて向かい合っている場合、ジャンプで飛び越えます。
間のタイルの通行可否は関係ありません。
リージョンID=1 のタイルは滑る床となります。(プラグインパラメータの SlipperyTileRegionId で変更できます)
この上でキャラクターが移動すると、通常の床や障害物にぶつかるまで前進を続けます。
イベントの [実行内容] に、注釈として @MapObject
を含めると、そのイベントはマップオブジェクトとなります。
さらに @MapObject
に続く { }
の中にマップオブジェクトの詳細設定を記述します。
名前 | 値 | デフォルト | 説明 |
---|---|---|---|
box | - | - | - |
height | 整数値 | 1 | オブジェクトの高さをタイル単位で指定します。1以上にしてください。 |
fallable | bool 値 | false | true を指定すると、崖際などから落下できるようになります。 |
注釈の例:
@MapObject {
box,
height:1,
}
エッジタイルの通行不可能方向に隣接している箱オブジェクトへ歩行移動で乗ることができます。
エッジタイルの通行不可能方向に1マス離れている箱オブジェクトへジャンプ移動で乗ることができます。
キャラクターは箱オブジェクトに乗っている場合、移動操作に制限を受ける状態となります。 (例えば、斜め移動はできません)
イベントの場所移動コマンドや移動ルートのジャンプコマンドなど、上下左右の移動以外でキャラクターの位置が変更される場合、キャラクターは箱オブジェクトから降り、通常の移動ができるようになります。
次の例は、移動ルートのジャンプコマンドによって箱オブジェクトから降ります。
箱オブジェクトはキャラクターが接触すると、キャラクターの向きの方向へ移動します。
この移動は ガイドライン (地形タグ 7 のタイル)
上に限られます。
基本としてオートタイルに地形タグを割り当て、地形を装飾しつつ移動可能な範囲を示す使い方を想定しています。
エッジタイルの通行禁止方向に押して移動させたとき、落下することができます。
デフォルトでは落下しません。パラメータとして fallable:true
を指定することで落下できるようになります。
処理としては、 地形タグ 7
のタイルが見つかるまで下方向へのすり抜け移動を行います。
そのため 必ず落下可能な場所の下方向に 地形タグ 7 のタイルを配置してください。
落下中の箱オブジェクトは、下方向に別の箱オブジェクトがある場合、その上に乗ります。
箱オブジェクトが積み重なっている場合、下の箱オブジェクトは押して移動することができなくなります。
パラメータとして trigger:onStartedFalling,
を指定すると、落下開始時にイベントを起動します。
パラメータとして trigger:onRideOnEvent
を指定すると、キャラクターが上に乗った時にイベントを起動します。
なお、trigger
が指定されている場合、通常の "トリガー" によるイベント実行は行われません。
パラメータとして positional
を指定すると、マップを移動しても位置を記憶するようになります。
感圧板はキャラクターが上に乗った時と降りた時にイベントを起動できるマップオブジェクトです。
感圧板を作成するには、次のようにパラメータとして plate
を指定します。
@MapObject {
plate,
}
- 感圧板 は常に "すり抜け" がON です。
- 感圧板 の見た目上のプライオリティは常に "通常キャラの下" になります。
次のように、乗った時と降りた時のイベントページをそれぞれ作成し、パラメータに trigger:onRideOnEvent
または trigger:onRideOffEvent
を指定します。
乗った時にイベントを起動する:
@MapObject {
plate,
trigger:onRideOnEvent,
}
降りた時にイベントを起動する:
@MapObject {
plate,
trigger:onRideOffEvent,
}
ホールタイルと同様、1マスまでならジャンプで飛び越えられるオブジェクトです。
- triacontane 様の HalfMove.js と併用する場合は、本プラグインをリストの下に追加してください。
- サンシロ 様の SAN_AnalogMove.js と併用する場合は、本プラグインをリストの下に追加してください。
本プラグインはMITライセンスのもとで公開しています。
また、テストプロジェクトには動作確認のため以下のプラグインが含まれています。
- HalfMove.js が含まれています。
- SAN_AnalogMove.js