「マップ上でプレイヤー/イベント/地形/リージョンで反応が変わる発射物を作成できるプラグイン」です。
こちらはRPGツクールMZ向けの記事です。
RPGツクールMV向けの記事もございます。
プラグイン本体は 下記ページで英語版が配布されています。
galvs-scripts.com/2020/10/16/mz-map-projectiles/
本体プラグインと日本語化パッチをダウンロードして、パッチを貼ってください。
どなたかのお役に立てば幸いです。
/*:ja
* @plugindesc (v.1.1) マップ上でプレイヤー/イベント/地形/リージョンで反応が変わる発射物を作成できます
* @url galvs-scripts.com
* @target MZ
* @author Galv
*
* @param Fade Speed
* @text フェード速度
* @desc 発射体が最大距離に達した時、フェードする速度
* @default 40
*
* @param premade
* @text 既製の発射体
* @desc ここで既成の発射物設定を作成します
* @type struct<Projectiles>[]
*
* @help
* 翻訳:
* fungamemake.com/
*
* Galv's Map Projectiles MZ
* ---------------------------------------------------------------------------
* このプラグインを使用すると、
* イベントやプレーヤー等と衝突する発射物をマップ上に作成できます。
* これは、トラップ、パズル、エフェクトなどを作成するために使用でき、
* ABSを作成するようには設計されていません。
* 発射物は /img/pictures/ フォルダーの画像を使用します。
*
* 注:これは入れただけで動くプラグインではありません。
*
* 発射物は、カスタムスクリプトを使用してゲーム内で手動で作成できます。
* または、発射物のカスタマイズをプラグインパラメーター「既製の発射体」で
* 設定し、短いスクリプトを使用して簡単に呼び出すことができます。
* 発射物の設定の詳細は、下記に記載されています。
* 事前に作成された発射体の設定について不明な点がある場合、
* それらをお読みください。
*
* ---------------------------------------------------------------------------
* 既製の発射体(イベントスクリプトまたは移動ルートスクリプト)
* ---------------------------------------------------------------------------
* 同じ設定で複数の場所に発射物を作成するには、
* プラグイン設定で設定した「既製の発射体」を使用する下記の
* スクリプトを使用できます。
* 以下を使用してそれらを呼び出します。
*
* Galv.PROJ.quickTar(id);
* 選択したIDの既製の発射体を使用して発射物を作成します。
* idは、プラグイン設定の「既製の発射体」リストにある番号です。
*
* 注:下記、事前に作成された発射体のsid / tidのオーバーライドを追加できます。
*
* Galv.PROJ.quickTar(id,sid,tid);
*
* ---------------------------------------------------------------------------
* 発射体(イベントスクリプトまたは移動ルートスクリプト)
* ---------------------------------------------------------------------------
* ゲーム中に発射物を作成するには、
* いくつかの方法があります。
* ゲームプレイ中にビルドするには、
* 次のスクリプトを使用します。
*
* Galv.PROJ.atTarget(sid,tid,s,d,'img',anim,'action',[r],[t],z,pid,size);
*
*
* 説明
* ------------
* sid = 開始イベントID/プレーヤーの場合は-1、マウスposの場合は'm'
* tid = 対象イベントID/プレーヤーの場合は-1、マウスposの場合は'm'
* 方向'dX'。X:テンキー方向の数字(前方向の場合は0)
* s = 速度 - 発射体の移動速度
* d = 距離 - 発射物が移動するタイルの最大数
* img = 使用する画像/img/pictures/
* アニメーション画像:
* 画像には、フレームと速度を含む括弧を含めることができます。
* ファイル名(フレーム数.速度)... 例: bullet(8.5)
* 発射物を1フレームのみにするための括弧はありません
* action = 発射物がプレイヤー/イベントに命中時、実行するアクション。
* これらのアクションは、
* <projEffect>注釈を持つイベントにのみ影響します
* プレイヤーとイベントのアクションは | で区切られています
* 例 playerAction | eventAction
* 以下のアクション:
* c(x) // コモンイベントxを実行
* S(x:t) // スイッチxをtに変更(on/off)
* s(L:t) // セルフスイッチLをt(on/off)イベントのみに変更
* e // イベントの消去 - イベントのみ
* r = 発射物が当たって止まるリージョンのリスト。
* 無入力 = なし
* t = 発射物が当たって止まる地形タグのリスト。
* 無入力 = なし
* z = z値。イベントのプライオリティになります。小数が使えます。
* 2以下 : '通常キャラの下'のキャラに命中します。
* 2.1-2.9 : '通常キャラと同じ'のキャラに命中します。
* キャラの下に表示されます。
* 3 : '通常キャラと同じ'のキャラに命中します。
* 3.1-3.9 : '通常キャラと同じ'のキャラに命中します。
* キャラの上に表示されます。
* 4以上 : '通常キャラの上'のキャラに命中します。
* pid = 発射物のID番号。
* 無入力にすると、デフォルトは1になります。
* 発射物が通過するか、命中するか決定するイベントに使用されます
* (以下で詳しく説明します)
* size = 衝突を引き起こす発射体の中心からの距離。
* ポイントに基づいた衝突の場合、無入力にします。
*
*
* ---------------------------------------------------------------------------
* 例1
* Galv.PROJ.dir(9,'d4',3,6,'bullet0',1,'c(7)|e',[5],[],3,1);
* イベント9から発射物を発射します。
* 方向4(左)で起動します。
* 速度は3です。
* 6タイル移動します。
* 'bullet0'画像(/img/pictures/内)を使用します。
* 命中するとアニメーション1を再生します。
* プレーヤーに命中すると、コモンイベント7が実行されます。
* イベントに命中すると、イベントが消去されます
* (イベントに<projEffect>タグがある場合)。
* リージョン5で衝突します
* 地形タグの衝突はありません
* z値は3です(プレーヤーと同じ)
* 識別子は1です
*
* 例2
* Galv.PROJ.atTarget(-1,2,5,7,'bullet1(8.5)',2,'|s(A:on)',[5,6],[6],3,2);
* プレイヤーから発射物を発射します
* イベント2で起動します
* 速度は5です
* 7タイル移動します
* 'bullet1(8.5)'画像(/img/pictures/内)を使用します。
* ??この画像は8フレームである必要があり、5の速度でアニメーション化します。
* 命中するとアニメーション2が再生されます。
* プレーヤーに命中した場合、何もしません。
* (プレーヤーからの発射の場合、それはできません)
* イベントに命中すると、セルフスイッチAがオンになります。
* (<projEffect>タグの場合)
* リージョン5と6で衝突します。
* 地形タグ6のタイルに衝突します。
* z値は3です。(プレーヤーと同じ)
* 識別子は2です。
*
* 例3
* Galv.PROJ.quickTar(1);
* プラグインパラメーター'Premade 1'(事前設定1)の設定で発射物を発射します。
*
* 例4
* Galv.PROJ.quickTar(1,8);
* プラグインパラメーター'Premade 1'(事前設定1)の設定に
* sidをイベントID8に置き換えて、発射物を発射します。
* 自律移動のルートから行う場合、8番の代わりにthis._eventIdを使用し、
* 現在のイベントのIDを取得できます。
*
* 例5
* Galv.PROJ.atTarget(-1,2,5,4,'bulletBlast',12,'|s(A:on),[9],[],3,7,60);
* プレイヤーから発射物を発射します
* イベント2で起動します
* 速度は5です
* 4タイル移動します
* 'bulletBlast'画像(/img/pictures/内)を使用します。
* 命中するとアニメーション12が再生されます。
* プレーヤーに命中した場合、何もしません
* (プレーヤーからの発射の場合、それはできません)
* イベントに命中すると、セルフスイッチAがオンになります。
* (<projEffect>タグの場合)
* リージョン9で衝突します
* 地形タイルと衝突しません
* z値は3です(プレーヤーと同じ)
* 識別子は7です
* サイズは60ピクセルで、通常より広い範囲に命中します。
*
* ---------------------------------------------------------------------------
* その他のスクリプト
*
* $gamePlayer.projDodge = true/false;
* trueの場合、発射物はプレイヤーに命中できなくなります。
*
* $gamePlayer._projEffect = true/false;
* デフォルトはtrueです。
* falseの場合、プレイヤーが命中した時、発射物の効果が有効になりません
*
* $gamePlayer._projYoffset = y;
* プレイヤーから発射物を発射する時、発射体のy位置を変更します。
*
* $gameSystem._disableMapTouch = true/false
* マウスクリックによるプレーヤーの移動を停止する。
*
* ---------------------------------------------------------------------------
* イベント注釈
* ---------------------------------------------------------------------------
* デフォルトでは、有効なイベントページに注釈タグがない場合、
* 全ての発射物がイベントと同じzレベルにある場合、
* イベントに衝突します(上記を参照)
*
* <projBlock:true>
* 全ての発射物をブロックします。
*
* <projBlock:false>
* 発射物をブロックしません。
*
* <projBlock:x,x,x>
* リストにpidが含まれる発射物をブロックしません。
*
* <projEffect>
* 命中時に発射物の効果を発生させたい場合、
* イベントページにこの注釈を含める必要があります。
* タグが存在しない場合、アクションは有効になりません。
*
* <projEffect:x,x,x>
* 上記のタグの代わりに、これを使用すると、
* 命中する発射物にこのリストにpidが含まれている場合にのみ
* 発射物アクションを有効にすることができます。
*
* <projY:x>
* 発射物の開始位置のy位置を変更します。
*
* ---------------------------------------------------------------------------
*
* スクリプトを使用して対象に命中する発射体によって呼び出される
* コモンイベント内からイベントID
* (プレーヤーの場合は-1、対象の場合は0)を取得するには下記を使用します。
*
* Galv.PROJ.ceTargetId()
*
* 例えば、変数の操作-スクリプトでこれを使用し、
* その後条件分岐で、取得した内容に応じて何かを実行できます。
* これは、同時に実行される複数のコモンイベントでは信頼できない場合があります。
*
*//*~struct~Projectiles:ja
*
* @param name
* @text 名前
* @desc 機能はありません。発射物が何かを覚えておくために使用してください
*
* @param sid
* @text 開始ID
* @desc 開始イベントID(プレーヤーの場合は-1)、マウスの位置の場合はm
*
* @param tid
* @text ターゲットID
* @desc ターゲットイベント(プレーヤーの場合は-1)、マウスの位置の場合はm、dX(Xはテンキー方向の数字、0は前方)
*
* @param speed
* @text スピード
* @desc 発射物の移動速度-フレームあたりの距離
*
* @param dist
* @text 距離
* @desc 発射物が消える前にどれだけ移動するか
*
* @param graphic
* @text 画像
* @desc 発射物の画像。 /img/pictures/ フォルダー内
* @type file
* @dir img/pictures
*
* @param anim
* @text 命中アニメーションID
* @desc 何かに当たったときに発射物で再生されるアニメーションID
*
* @param eAction
* @text イベントアクション
* @desc 発射物がイベントに命中時の実行アクション。プラグインの説明を参照してください
*
* @param pAction
* @text プレイヤーアクション
* @desc 発射物がプレイヤーに命中時の実行アクション。プラグインの説明を参照してください
*
* @param regions
* @text 命中リージョン
* @desc 発射物が命中するリージョンID。コンマで区切られます
*
* @param terrains
* @text 命中地形
* @desc 発射物が命中する地形ID。コンマで区切られます
*
* @param z
* @text Zレベル
* @desc Zレベル(3はプレイヤーと同じです)。プラグインの説明を参照してください
* @default 3
*
* @param pid
* @text 発射物ID
* @desc イベントに命中したか、イベントを通過したかを判断するために使用される発射体ID
* @default 1
*
* @param size
* @text 発射物のサイズ
* @desc 衝突する発射体の中心からの距離。ポイントは空白
*
*/