自作プラグイン「プレイヤー探索プラグイン」の使い方を紹介します。
以下の記事からプラグインをダウンロードすることができます。
[説明]
プラグインを導入し、イベント(以下、探索者)のメモ欄を設定することで、ゲーム画面上に探索者を起点に1マス単位でプレイヤーの侵入を検知する範囲(以下、視界範囲)を描画できます。
(デフォルトの設定では探索者正面に描画されている、白く半透明な部分が視界範囲を表します)
プラグインパラメーター:
探索者に探索を行わせるための共通設定を行います。基本的にはデフォルトの状態で利用可能です。
パラメーター説明文に書かれている以下の文字について
初期値 | 同様の設定をイベントやアクター毎にメモ欄で個別に行うことができ、個別に設定した場合はその値が優先されます。 |
変数可 | 本来設定する値とは別に、変数を示す制御文字の \V[n] が使用可能です。 nは数値で、例えばn=7のとき7番の変数に格納されている値を使用します。 |
スイッチ可 | 本来設定する値とは別に、セルフスイッチ/スイッチを示す制御文字の \S[n] が使用可能です。 nは数値またはA~Dのアルファベット1文字で、例えばn=7のとき、7番のスイッチの状態(ON=1, OFF=0)を使用します。例えばn=Cのとき、イベント毎に持つセルフスイッチCの状態(ON=1, OFF=0)を使用します。 |
[Default_Sensor_Switch]
(初期値) プレイヤーが視界範囲に侵入した場合にONにするセルフスイッチ/スイッチです。セルフスイッチ(A~Dのアルファベット1文字)またはスイッチ(1~の数字)を設定することができます。
スイッチがOFFになる | スイッチがONになる |
| |
[Default_Both_Sensor]
(初期値:スイッチ可) 探索者の左右1マスを視界範囲に含める場合はON、含めない場合はOFFを指定してください。 ONの場合、プレイヤーが探索者の左右のマスに侵入することでも設定されたスイッチがONになります。
パラメーターがOFFのとき | パラメーターがONのとき |
| |
[Default_Range_Visible]
(初期値:スイッチ可) 視界範囲を表示する場合はON、非表示にする場合はOFFを指定してください。非表示にした場合でも探索は実行していますので、非表示状態の視界範囲内にプレイヤーが侵入すると指定されたスイッチがONになります。
パラメーターがOFFのとき | パラメーターがONのとき |
| |
[Default_Terrain_Decision]
(初期値:スイッチ可) 視界範囲が地形の通行可能状態の影響を受けるようにする場合はONを、影響を受けないようにする場合はOFFを指定してください。 OFFを指定すると、視界範囲は通行不可能な障害物を超えて描画されます。もちろん、その状態でも視界範囲内に侵入した場合は指定されたスイッチがONになります。
パラメーターがOFFのとき | パラメーターがONのとき |
| |
[Default_Range_Color]
視界範囲の描画色を英語で指定します。色の例を挙げると、white(白)、red(赤)、black(黒)、green(緑)、yellow(黄)、gray(灰)などがあります。
パラメーターが"white"のとき | パラメーターが"red"のとき |
| |
[Default_Range_Opacity]
視界範囲の描画するときの不透明度を指定します。 0~255の間で、数字が大きくなるほど不透明になります。
値が80のとき | 値が160のとき |
| |
[Default_Auto_Sensor]
マップ描画時、自動的に探索処理を開始する場合はON、開始タイミングを自分で制御する場合はOFFを指定します。ONにした場合、プラグインコマンド[PSS start]
が自動的に実行されます。
[Default_Event_Decision]
視界範囲がマップイベントの通行可能状態の影響を受けるようにする場合はONを、影響を受けないようにする場合はOFFを指定してください。 ONを指定すると、視界範囲は通行不可能なイベントによって制限されるようになります。
[Default_Region_Decision]
リージョンタイルを視界範囲外とする場合は1以上のリージョン番号を指定します。(0でリージョンタイルによる影響無効)
メモ欄の設定:
探索者に視界範囲を設定するには、メモ欄に設定を記述します。
基本的な設定は以下のとおりです。
メモ欄の設定 | 動作 |
<PsensorL:X> | 探索者の前方Xマスの範囲を視覚範囲とします。 |
<PsensorF:X> | 探索者の前方、斜めにXマスの地点を結んでできる三角形の範囲を視覚範囲とします。 |
<PsensorD:X> | 探索者を中心に前後左右Xマスの地点を結んでできるひし形の範囲を視覚範囲とします。(この視覚範囲は地形通行可能状態を考慮しません) |
<PsensorS:X> | 探索者を中心に半径Xマスの四角形を視覚範囲とします。(この視覚範囲は地形通行可能状態を考慮しません) |
<!PsensorL:X> | Psensorの前に !(エクスクラメーション) を設定された探索者は探索無効状態となり、探索を開始するプラグインコマンド[PSS start](後述します)実行時に探索を開始せず、個別に探索を開始させるプラグインコマンド[PSS t_start]を実行すると探索を開始します。探索開始タイミングを他の探索者とずらしたい場合などに設定します。 |
メモ欄に設定した時の動作イメージはこんな感じになります。
<PsensorL:3> | <PsensorF:3> |
| |
<PsensorD:3> | <PsensorS:3> |
| |
また、上記設定で視界範囲のマス数を表すXの部分には変数を使うことができます。
Xの部分を\v[100]
という制御文字と置き換えました。変数100番に格納されている数値を使い視界範囲が描画されます。
変数の値は3 | 視界範囲も3マス |
| |
変数に格納されている数値が変更されると、視界範囲も変更されます。
変数の値を6に変更 | 視界範囲も6マスになる |
| |
続いて、メモ欄のオプション設定について解説します。オプションは<PsensorS:X~
に続けて記述するもので、探索者毎にプラグインパラメーターでの設定を変える場合などに使用します。プラグインパラメーターよりオプション設定が優先されますので注意してください。
メモ欄のオプション設定 | 動作 |
Sw[数字] | プラグインパラメーター[Default_Sensor_Switch]の設定を上書きします。探索者毎にONにするセルフスイッチ/スイッチを変更する場合に設定します。 |
Sw[A~Dの1文字] |
Bo[0~1] | プラグインパラメーター[Default_Both_Sensor]の設定を上書きします。探索者毎に両隣を視覚範囲に含めるか指定する場合に設定します。1=ONの状態です。スイッチを指定することもでき、スイッチ番号n番のON/OFFによって状態が切り替わります。 |
Bo\S[n] |
Rv[0~1] | プラグインパラメーター[Default_Range_Visible]の設定を上書きします。探索者毎に視界範囲の表示を行うか指定する場合に設定します。1=ONの状態です。スイッチを指定することもでき、スイッチ番号n番のON/OFFによって状態が切り替わります。 |
Rv\S[n] |
Td[0~1] | プラグインパラメーター[Default_Terrain_Decision]の設定を上書きします。探索者毎に視界範囲の地形通行状態を考慮させるか指定する場合に設定します。1=ONの状態です。スイッチを指定することもでき、スイッチ番号n番のON/OFFによって状態が切り替わります。 |
Td\S[n] |
Di[U,R,L,Dどれか1文字] | 通常、探索者の正面に対してプレイヤー探索を行い視界範囲を描画しますが、探索者毎に探索方向を指定する場合に設定します。Uが上方向、Rが右方向、Lが左方向、Dが下方向に対してプレイヤー探索、視界範囲の描画を行います。 |
Ev[0~1] | プラグインパラメーター[Default_Event_Decision]の設定を上書きします。探索者毎に視界範囲内にいるイベントの通行可能状態を考慮させるか指定する場合に設定します。1=ONの状態です。スイッチを指定することもでき、スイッチ番号n番のON/OFFによって状態が切り替わります。 |
Ev\S[n] |
Rg[1~] | プラグインパラメーター[Default_Region_Decision]の設定に追加して設定します。パラメーターの設定では足りない場合や、探索者毎に視界範囲内のリージョンタイル設置状態を考慮させる場合に設定します。1=リージョン番号1番です。変数を指定することもでき、変数番号n番の値によって視界範囲外となるリージョンタイルが変化します。 |
Rg\V[n] |
プラグインコマンド:
探索者の設定を行っただけでは探索が開始されません。探索の開始/停止などをプラグインコマンドで制御します。
PSS start
全探索者に対し探索を開始させます。探索無効状態(<!Psensor~>)の探索者はこのコマンドによって探索が開始されません。
PSS stop
全探索者に対し探索を停止させます。
PSS reset [X Y …]
全探索者に対して、プレイヤー発見時にONになるセルフスイッチ/スイッチと、コマンドの後に指定したセルフスイッチ/スイッチ(スペースで区切って指定)をOFFにします。例えば、PSS reset A 12
というプラグインコマンドを実行した場合、プレイヤー発見時にONになるセルフスイッチ/スイッチ(デフォルトではセルフスイッチD)と、同じくセルフスイッチのAとスイッチ1番がOFFになります。
PSS t_start
このプラグインコマンドを実行した探索者に対し探索を開始させます。探索無効状態(<!Psensor~>)の探索者はこのコマンドによって探索を開始させます。
PSS t_stop
このプラグインコマンドを実行した探索者に対し探索を停止させます。セルフスイッチなどの状態は変わりませんので、必要に応じてPSS t_reset
などのプラグインコマンドを実行してください。
PSS t_reset [X Y …]
このプラグインコマンドを実行した探索者に対しプレイヤー発見時にONになるセルフスイッチ/スイッチと、コマンドの後に指定したセルフスイッチ/スイッチ(スペースで区切って指定)をOFFにします。例えば、PSS reset A B C 10
というプラグインコマンドを実行した場合、プレイヤー発見時にONになるセルフスイッチ/スイッチ(デフォルトではセルフスイッチD)と、同じくセルフスイッチのA~C、スイッチ10番がOFFになります。
PSS t_move
このプラグインコマンドを実行した探索者をプレイヤーに隣接するマップ位置まで徒歩で移動させます。Xにはイベントが移動する速度を指定してください。(指定しない場合はイベントに設定されている速度で移動) このプラグインコマンドは探索者がプレイヤーを発見時、プレイヤーに近づくための手段として想定しています。そのため、あまりにも遠い距離だったり、間に障害物などがある場合、探索者がうまく移動できない場合があります。
スクリプトコマンド:
プラグインコマンドでは実行できない処理(イベントIDを指定して探索状態を変更する等)を実行する場合にスクリプトコマンドを実行します。
$gameSystem.getEventSensorStatus(eventId)
指定したイベントIDを持つ探索者の探索状態を数値で取得します。取得できる数値と意味は次のとおりです。
数値 | 意味 |
-1 | 探索無効(<!Psensor~>) |
0 | 探索停止 |
1 | 探索中 |
$gameSystem.onSensor(eventId)
指定したイベントIDを持つ探索者に探索を開始させます。このスクリプトコマンドを使用するためには、事前にプラグインコマンド[PSS start
]の実行が必要なため、探索を停止している/探索無効状態の探索者に対し探索を再開させる場合に使用します。
$gameSystem.offSensor(eventId)
指定したイベントIDを持つ探索者の探索を停止させます。
$gameSystem.neutralSensor(eventId, ["X","Y",...])
コマンドを実行したマップに存在する、指定したイベントIDを持つ探索者がプレイヤー発見時にONになるセルフスイッチ/スイッチと、コマンドの後に指定したセルフスイッチ/スイッチ(カンマで区切って指定)をOFFにします。例えば、$gameSystem.neutralSensor(3, "A","10")
というスクリプトコマンドを実行した場合、コマンドを実行したマップに存在するイベント番号3番のプレイヤー発見時にONになるセルフスイッチ/スイッチ(デフォルトではセルフスイッチD)と、同じくセルフスイッチのA、スイッチ10番がOFFになります。
メモ欄の設定例:
例えば、探索者のメモ欄に以下のように設定した場合、ゲーム上ではどう表示されるのか? いくつか画像付きで紹介します。なお、プラグインパラメーターはデフォルトの状態とします。
<PsensorF:3 DiR> | <PsensorL:7 Bo1 Td0> |
| |
[ダウンロード]
以下の記事からプラグインをダウンロードすることができます。