#============================================================================ # # ■壁タイル拡張 □Ver.4.20 □製作者:月紳士 # ・RPGツクールVX用 RGSS2スクリプト(マニュアル) # # ●…書き換えメソッド(競合注意) ◎…メソッドのエイリアス ○…新規メソッド # # ※二次配布禁止!配布元には利用規約があります。必ずそちらを見てください。 #------------------------------------------------------------------------------ # ※ このスクリプトは「段差マップ 通行判定拡張」をリネームしたものです。 #------------------------------------------------------------------------------ # 更新履歴 # Ver.4.20 イベント側からの接触判定に段違い処理を導入。 # Ver.4.13 前回の修正より、エリア系処理が機能しなくなっていた不具合の修正。 # Ver.4.12 ゲームロード時に特殊通行判定が無効になっていた不具合の修正。 # Ver.4.11 影消しタイルの不具合修正。 # Ver.4.10 マップデータの先読み機能、処理無視エリア設定の追加。 # Ver.4.00 マップ移動時の処理軽量化と様々な不具合修正。 # Ver.3.10 乗り物拡張併用時の魔法の絨毯の処理に関する修正。 # Ver.3.01 斜め移動時の処理修正。 # Ver.3.00 斜め移動処理の追加、それに伴う内部処理大幅変更。 # 壁に扉などを配置した際の重なり順の不具合改善。(通常マップ時) # フキダシは裏に隠れないように修正。 # 飛行船搭乗時に裏に隠れないように修正。 # Ver.2.12 不具合修正。 # Ver.2.10 月紳士のスクリプト「乗り物拡張」との併用機能の強化。 # Ver.2.00 月紳士のスクリプト「乗り物拡張」との併用を(一応)可能に。 # Ver.1.11 接触イベント処理修正。 # Ver.1.10 月紳士のスクリプト「追加地形タイル」との併用に対応。 #============================================================================ =begin  ※このマニュアルは素材としてプロジェクト内に貼り付ける事も可能です。   こちらはマニュアルとなります。スクリプト本体は、別にあります。      詳しい活用例はサンプルプロジェクトも参考にしてみてください。   サンプルプロジェクトには各特殊タイルに使用する為のEタイル画像も入っています。   そちらを流用してもかまいません。加工などして、お使いください。 #------------------------------------------------------------------------------ ・基本機能   スクリプトを導入することで、以下の機能が働きます。  ○ 天井や屋根を歩くことが出来るようになる。   ・壁タイルの天井部分や屋根タイルが通行可能になり、    その変わりにその境目は越えることが出来なくなる。   という通行判定ルールが追加されます。   天井や屋根には境目が通行不能の為に普通は進入できませんが、   ハシゴや階段タイルを配置することでそこから侵入できるような   仕組みになっています。  ○ 壁・天井・屋根タイル・橋タイルの裏(下)へキャラが回り込む   まるで建物や壁の向こう側を通っているような表現にすることができます。   RPGツクールXPにあったような機能です。   また、吊り橋に見立てた橋の上を渡ったり、下をくぐったり、という表現を   同じマップで行えます。  ※ このスクリプトは、タイルの境目の配置などの情報を元に、    状況を判断して裏にまわったり、上にのせたりすることで    「擬似的に」裏側を再現するものです。    配置によっては、ありえない動きをしますが、    現状の動作は“仕様”と捉えていただき、    このスクリプトでの出来る範囲での演出でお楽しみください。 #------------------------------------------------------------------------------ ・カスタマイズ  ● 段差のあるマップ表現   このスクリプトでは、天井タイルの上にさらに壁タイルを配置することで作る   擬似的な「階段状の立体マップ」を表現する際の、通行判定の補助も行えます。      その際には、    草原といった地形タイルにも、境目に通行判定を持たせて    天井タイルを使うように段差表現に利用することもできます。    この機能を反映させると、   通行判定や表現に、いくつか制約が出来てしまう為、    マップ毎に「段差マップにするか」を設定する形式にしてあります。    カスタマイズ項目の    CLIFF_MAP = []    の[]内に、地形タイルの段差表現を使用したいマップのIDを記入してください。    例えばマップID004、ID005で地形タイルの段差表現を使用したい場合は、    CLIFF_MAP = [4, 5]    となります。半角の , で区切り、頭のゼロは省いてください。    表現上の制約    横幅32ピクセルを超えるキャラクターが裏回りすると、    おかしな位置からはみ出してしまうことがあります。    また、キャラクター同士の上下の重なりでも不具合があります。    このマップでは(裏回りする可能性のある)キャラクターは    縦幅、横幅共に32ピクセル以下のサイズで構成する必要があります。    (デフォルトのチビキャラのサイズです)      地形タイルについて    地形タイルにより、段差となる境目が出来るのは    隣り合ったタイルの一方のみに境目がある場合です。    (通常は配置すると自動で隣り合ったタイル両方に境目が出来ます)    SHIFTキーを使ったタイルのコピー・ペーストのテクニックが必須になります。    上級者向けです。サンプルマップをご参考に、研究してみてください。  ● 船に乗った際、橋の下をくぐれるようにしたい場合は…    エリアの名前に    <架け橋>    と記入したエリアで、くぐらせたい橋を指定してください。    橋の下のタイルが水面の場合に限り、    船にのった状態でくぐれるようになります。    通常は、橋は船の通行を妨げます。(船の乗り降りが出来ます)  ● イベントを裏位置に初期配置したい場合は…    イベントの名前に    <裏配置>    と記入してください。    壁の裏側にいるキャラクターや、壁の裏に隠れた宝箱を作成できます。    裏側の通行障害が必要な時などにも活用してください。  ● 深く裏回りする機能    壁の裏へ2タイル分、潜り込むようにも出来ます。(通常は1タイル分)        カスタマイズ項目の     BACK_TILE_DEEP = false    を = true に書き換えてください。  ● 裏回り時の透過機能    プレイヤーが裏へ回った際、プレイヤーと    周囲のキャラクター(イベント)を透過、すなわち透けてみせる機能です。        カスタマイズ項目の     BACK_SEEING = false    を = true に書き換えてください。   ※この機能は乗り物拡張との併用に未対応です。  ● 裏回り時に透過しないイベントを設定    イベントの名前に    <裏透過禁止>    と記入してください。    半透明の装飾用タイル替わりのイベントなど、    透過表現にふさわしくないイベントがあった際、設定してみてください。  ● 自動生成された影を消す    配置すると、配置した場所に自動生成された影をゲーム中では消去できる    「影消しタイル」を使用できます。    カスタマイズ項目の SHADOW_ERASER_TILE_ID にて、ID指定してください。    このタイルの画像は、ゲーム中には表示されません。    ※ この機能の詳細に関しましては     月紳士配布の「影消しタイル」スクリプトもご参照ください。  ● 船から降りれない場所を設定する    配置することで、大型船・小型船からその場所に降りることが出来なくなる    「接岸禁止タイル」を使用できます。    カスタマイズ項目の PROHIBITED_GET_OFF_TILE_ID にて、ID指定してください。    このタイルの画像は、ゲーム中には表示されません。    ※ この機能の詳細に関しましては     月紳士配布の「接岸禁止タイル」スクリプトもご参照ください。      ● 裏回り部分を追加するタイル   主に、抜け道などを作る為に使います。    カスタマイズ項目の ADDITION_BACK_TILE_ID で設定したIDのタイルを    元々裏回りしない場所の壁や天井、屋根にのせてください。    (元々裏回りする場所に配置すると誤動作するかもしれません)  ● 裏回り部分を削除するタイル   裏回り部分は、天井の上端を基準にして自動的に配置されますが、    その自動配置された裏回り部分を削除するタイルを設定できます。    カスタマイズ項目の DELETE_BACK_TILE_ID で設定したIDのタイルを    裏回りする場所の壁や天井、屋根にのせてください。    (配置により効果的でない場合があるかもしれません) #------------------------------------------------------------------------------ ・軽量化処理  このスクリプトは、マップが大きくなればなるほど、  初期のデータ準備にどうしても時間がかかってしまいます。  その対策の為に用意した、処理軽量化の方法を説明します。  ● 処理を無視するマップ    カスタマイズ項目の、下記の項目で設定します。 ESCAPE_MAP = [1, 2]  このマップでは、裏回りを行いません。  処理の準備をしない為、読み込みも速くなります。    ● 処理を無視するエリア    通常ですと、裏回り用のタイルを準備する必要があるか?    マップの隅々までチェックを行います。    その為、広いマップほど準備処理に時間がかかります。    マップの中に、下記の名前を含んだエリアを作ると、    そのエリアの段差マップ用データの準備処理を飛ばします。    いくらか、準備処理を早めることができます。    マップ内の、裏回り処理の必要のない位置に    <処理無視>    と書いたエリアを用意してください。    マップ内に、同名の複数のエリアを作っても良いです。  ● マップデータの先読み    通常、データ準備はマップ移動時に行われます。    これを、別のタイミングでおこなったり、    ひとつのマップの読み込み時に複数のマップのデータを準備しておき    以後のマップ移動時の処理を軽くしたり出来ます。   ・別タイミングでの先読み     イベントコマンド・スクリプトにて $game_player.beforehand_load([1, 2])     と記述して実行してください。     ([ ]) 内がマップのIDです。     上記ですと、マップID 001 と 002 のマップデータを先読みします。     複数のID指定は、半角ピリオドで区切ります。     ※準備中は、画面がフリーズします。   ・マップ移動時に先読み     マップ移動よりも前に、次の記述を     イベントコマンド・スクリプトにて実行してください。 $game_player.reserve_load_map_id = [1, 2]  = [ ] 内がマップのIDです。  このコマンドが実行された後のマップ移動の暗転中に、データを準備します。  (暗転の時間が長くなりますが、処理は自然に見えると思います)  どちらのコマンドも、最後に指定されたデータがのみが準備され、  それ以前のコマンドによるデータは破棄されます。 #------------------------------------------------------------------------------ =end