RPGツクールMV用プラグイン投稿・告知サイト

#ツクプラ

Symbol Encount Lib - SymbolEncountLib.js

シェア用テキスト:
▼Symbol Encount Lib(神無月サスケ様作) - SymbolEncountLib.js
https://plugin.fungamemake.com/archives/2653
シンボルエンカウントを実装するためのライブラリ

ふりがな:しんぼるえんかうんとらいぶらり

機能概要: シンボルエンカウントを実装するためのライブラリ

利用規約(ライセンス):準公式プラグイン

作者:神無月サスケ

作者サイト:https://x.com/ktakaki00

ダウンロードページ:http://store.tkool.jp/a/rpgmaker/mv

ファイル名:SymbolEncountLib.js

備考:準公式プラグイン/サンプルゲーム:Emil

プラグインのヘルプ:

/*:ja
 * @plugindesc シンボルエンカウントを実装するためのライブラリです。
 * @author 神無月サスケ
 *
 * @help イベントのエンカウントシンボルは、自動索敵、自動追跡、
 * 自動逃避のアルゴリズムを実装しています。
 * 
 * ◆メモ
 * <sym:41> シンボル用の変数ID
 * このタグがメモに書かれている時、そのイベントは
 * エンカウントシンボルとみなされます。
 * そしてこの変数の値が、シンボルのステート(後述)を表します。
 * <troop:15> 敵キャラID
 *   戦闘の際、イベントコマンドの指定にかかわりなく、
 *   このIDの敵グループとの戦闘になります。
 * <limit:12> 探索の深さです。
 * この値が大きいほど、遠くから追いかけてきて、遠くまで追いかけていきます。
 *  省略可能(デフォルト: 8)
 * <symFlag:3> 様々なフラグです。以下にビット列を示します。(デフォルト値:3)
 * 0x01 : 所定位置に戻るか
 * 0x02 : 自分が弱いと逃げ出すか
 * 0x04 : 追跡、逃亡を行わない(常に一定ルートを動く敵など)
 * 0x08 : ページごとに画像(歩行グラフィック)を設定
 * デフォルトではページ1で指定した画像を全てのページで使います。
 * <cType:2> シンボルの特徴を示すフラグです。(デフォルト値:2)
 * 0x07 : 視野の広さ(0=目の前だけ, 1=22.5度, 2=45度, 3=67.5度, 4=90度)
 * 0x08 : 近く(limitの半分)に来たら視界になくても音でプレイヤーに気づくか
 *
 * ◆基本原理
 * エンカウントシンボルを有限状態機械(FSM)に見立て、
 * 一つのイベントページを一つの状態とみなします。
 * 指定された変数の値が、現在のステートになります。
 *
 * ◆FSMのステート
 * 0 : ノーマル:索敵(NORMAL: Search player)
 *  - ★自動で索敵を行います。プレイヤーを発見したら状態1に遷移します。
 *  - 上記の例外:「追跡、逃亡を行わない」フラグがONの時は、
 *   自動では状態1に遷移しません。
 *  - トリガーは「イベントから接触」、
 *   実行内容は「すぐに状態3(戦闘)に遷移」です。
 * 1 : 発見 (FIND)
 *  - トリガーは「自動実行」または「並列実行」で、実行内容は、
 *   「逃げるか判定し、すぐに状態2(追跡)か7(逃げる)に遷移」です。
 *   ※吹き出しアイコン「!」の表示を想定しています。
 * 2 : 追跡(CHASE)
 *  - ★自動で追跡を行います。プレイヤーに接触したら状態3(戦闘)、
 *   見失ったら状態5に遷移します。
 *  - トリガーは「イベントから接触」、
 *   実行内容は「すぐに状態3(戦闘)に遷移」です。
 * 3 : 戦闘(BATTLE)
 *  - トリガーは「自動実行」で、バトルの処理を行います。
 *  - プレイヤーが勝てば状態8に、逃げれば状態4に遷移します。
 *  - プレイヤーが全滅した場合、特定のコモンイベントに飛ぶか、
 *   さもなくばゲームオーバーです。
 * 4 : 逃げられた(ESCAPED_BY_PLYR)
 *  -トリガーは「並列実行」で、一時的に停止状態:半透明:すり抜け:
 *   2秒間ほど動かない状態にします。
 *  -その後「所定位置に戻るか」フラグに応じて状態6(戻る)か状態0(戻らない)に遷移
 * 5 : 見失う(MISS)
 *  - トリガーは「自動実行」または「並列実行」で、
 *   即座に「所定位置に戻るか」フラグに応じて
 *   状態6(戻る)か状態0(戻らない)に遷移。
 *   ※吹き出しアイコン「くしゃくしゃ」の表示を想定しています(お好みで)
 * 6 : 所定位置に戻る(GO_HOME)
 *  - ★自動的に元の場所に戻り始めます。プレイヤーが近づいたら状態1(発見)に、
 *   接触したら状態3(戦闘)に遷移、
 *   元の場所にたどり着いたら状態0(戻らない)に遷移。
 *  - トリガーは「イベントから接触」、
 *   実行内容は「すぐに状態3(戦闘)に遷移」です。
 * 7 : 逃避(ESCAPE)
 *  - ★自動的にプレイヤーから遠ざかります。プレイヤーの方が接触してきた場合、
 *   状態3(戦闘)に遷移します。プレイヤーから十分遠ざかった場合、
 *   フラグに応じて状態6(戻る)か状態0(ノーマル)に遷移します。
 *  - トリガーは「プレイヤーから接触」、
 *   実行内容は「すぐに状態3(戦闘)に遷移」です。
 * 8 : 退治された(DEFEATED)
 *  - トリガーは「並列処理」で、敵が消えるアニメーション
 *  (すり抜けで数秒点滅するなど)を入れます。
 *   アニメーションが終わったら、状態99(消滅)へ遷移します。
 * 99 : 消滅(ERASED)
 *  - トリガーは「並列処理」で、「イベントの一時消去」を行います。
 *
 * ◆状態に関する注意
 * - 状態0, 2, 6, 7では、「自律移動」の「タイプ」を「固定(=0)」にした場合に
 *  デフォルトの動作をします。
 *  これを別の状態に設定すると、その動きに切り替わります。
 *  動作を自分でカスタムしたい時は利用してください。
 * (例:追跡時を「プレイヤーに近づく」に変更するなど)
 * - 「追跡、逃亡を行わない」フラグの立ったイベントでは、
 *  使用する状態は0, 3, 4, 6, 8, 99だけです。
 *  このようなイベントでは、これ以外の状態は作る必要はありません。
 * 
 * ◆プラグインコマンド
 * SymbolEncountLib transit arg1
 *   arg1は数字です。この場合、arg1で指定された状態に遷移します。
 * SymbolEncountLib transit chaseOrEscape arg2
 *   状態1で呼び出します。「逃げるか判定し、すぐに状態2(追跡)か7(逃げる)に
 *   遷移する」処理を行います。
 *   arg2 は敵グループのIDにしてください。省略した場合メモの値が使われます。
 *   例:SymbolEncountLib transit chaseOrEscape 10
 *   10番の敵グループがプレイヤーと強さを比較して追跡するか逃げるか決める
 * SymbolEncountLib transit goHomeOrChase
 *   状態4,5で呼び出します。「『所定位置に戻るか』フラグに応じて
 *   状態6(戻る)か状態0(戻らない)に遷移する」処理を行います。
 */

スポンサードリンク

スポンサードリンク

Copyright© #ツクプラ , 2024 All Rights Reserved.