コメントする最近ツール系を試したり、プラグインを遊んでみたりしていたらプロジェクトの量が大変なことになってきたので軽く整理する。用済みのテスト用の奴を消したりまとめたりしていたらかなり前に触ったっきりの追跡系プラグインをテストしたプロジェクトが出てきた。いえば最近何か追加があったのかな?などと検索してみると自分の書いた古い記事が出てくる。初期にまとめたもので画像の類は一切なし。作ったプロジェクトに関してもほとんど触れていなかった。なんだか少しもったいない気がしてきたのでそれを掘り返すついでにいろいろ追加して、追跡系イベント、プラグインのまとめとして改めて比較してみることにした。前にまとめたものに関してはこちら。今回は前に扱ったイベント追跡系プラグインであるYEP_EventChasePlayerSmartPathの二つに加えて、デフォルト機能で作れる追跡イベント二つを用意したのでこれら四つを実際に動かしてみた感じを比較していきたい。プラグインに関してはツクールMVのユーザー登録を行えば無料でダウンロードすることが出来る。規約に関してはそれぞれ細かくあるようなので要確認。RPGツクールMV公式『プラグイン無料ダウンロード』ページ追跡イベントとは?ツクール系RPGで一時期よく目にしたのが追跡系ゲーム。見るからに怪しい洋館とかで謎の生き物に追いかけられて触られたらゲームオーバーという感じのあれ。追跡イベントは、そういった主人公を追いかけてきたり、逃げ出したりするイベントをまとめたもの。難しいことを考えずとも画像の左側中段にある『自律移動』の枠からタイプ「近づく」を選択すれば一応完成する。これが今回の中で一番簡単なパターン。この設定をされたイベントは同じマップに入った瞬間からプレイヤーを追いかけてくるようになる。追いかけられる触られるゲームオーバーという逃げゲーの基本を再現している。この機能にも問題がないわけではない。詳しい内容に関しては後述するが、現状だといわゆる鬼ごっこ的なイベントに使う際にはいくつか物足りない点がある。そこで自作イベント、あるいはプラグインの力を借りて追跡イベントを作っていこうという流れ。最後にプラグインを導入することで実現できる追跡イベント二種。SmartPathYEP_EventChasePlayerの順番で実際にツクールで動かしてみたものを見ていきたい。今回テストのために用意したのはこのようなマップ。テーブルなどの小物類で通常配置される四角の物体に加えてL字、凹凸の大きいX字のポイントを作成し、どの程度引っかかるのか試していきたい。イベントごとの判別がつきやすいようにDTextPictureという文字を画像に変換して表示できるプラグインを利用して、各イベントの名前が頭上表示されるようにした。いう細かいところで使えるのが本当にありがたい。デフォルト機能で作れる追跡イベントまずはデフォルト機能で作れる追跡イベントから。内容としてはデフォルト追跡のほうが簡単なのだが、挙動自体のシンプルさはこちらのほうが上なので先に紹介する。こちらは先頭で紹介したデフォルト追跡の移動タイプを変更してカスタムにしたもの。中身としては移動速度の変更プレイヤーに近づくを何回も繰り返すという形。挙動としては移動速度を変更しながらプレイヤーに近づいていくというもの。テストだけなら『プレイヤーに近づく』を1行入れて繰り返しにしておけば完成なのだが、せっかくなので可変速機能を取り入れてみた形。テストプレイを始めて見ると速攻で溝に引っかかる。「プレイヤーに近づく」の挙動では、イベントのプレイヤー間にある障害物を一切考慮に入れないため、最短距離を進もうとする。間に障害物がある限り迂回することもないので、こちら側にいる限りはやりたい放題。見つめあうことも可能。上記のようななだらかそうに見える道も引っかかる。この辺りに関しては後述のデフォルト追跡にも当てはまる難点。この機能を使って追いかけっこイベントを作る際にはマップ作成時に引っかかるポイントをなるべく減らすなど工夫する必要がある。続いて、先ほども例に出したデフォルト追跡。イベントの中身に関しても最初に触れた通り、自律移動を設定するだけで、作れてしまう手軽さが魅力。:イベントの移動頻度の設定、移動1マス毎の間隔などがある。他にも並行処理イベントなどを利用してこれらの速度を変更したりすることもできなくはない。基本的な追跡方法としては「プレイヤーに近づく」を活用した追跡イベントと大差ないので袋小路には弱い。こちらは移動中たまにランダム方向に1マス進むといった感じの処理が付け加えられているようで、それを用いて、引っかかりから脱出する、いわゆるハマり防止の対策が行われている。これに関しては引っかかった場合、あるマスに一定以上いた場合などという条件付けが一切ないので追いかけている途中なのに、急に方向転換するなど不自然な挙動を起こすこともある。1マスのみの挙動なので、L字のようなポイントでは普通に引っかかる。上記の画像では赤で囲ったL字の部分を往復するような挙動になる。引っかかりにくさとしては最初の自作したものと比較すると意外に向上しており、本格的な追いかけっこをしないRPGのミニゲームなどに使う分には十分な機能を備えているともいえる。SmartPathここからはプラグインを用いた追跡イベント。SmartPathについて。本来の活用法としては固定された二点間を最適な経路で結んで移動するというもの。追跡イベント作成に関しては、並行処理イベントを用いてプレイヤーとイベントの座標を取得、その数値を目標点にして経路探索という流れを繰り返すことで追跡イベントっぽく作るというもの。並行処理イベントのほうに移動ルートなどは含まれているので非常にシンプル。並行処理イベントの一つ目。こちらではプレイヤーとイベントの座標を変数に格納、その後X軸の距離、y軸の距離を計算し、それを足し合わせることでマップ上で何マス離れているのかを計算している。並行処理イベントの二個目。一つ目で計算した数値を用いて、イベントとの距離が一定より近ければ移動開始、離れたら一時停止、その後特定の位置に戻る。SmartPathの適応自体は、プラグインを有効にしてコマンド入力するだけでOK。6(コマンド)(対象のイベントID)(マップ座標3,6に移動)の三種類。初期位置をデフォルトだと引っかかる隙間の位置に設定してテストスタート。距離が近いのでスタートと同時に反応し追跡開始、障害物を回りこんでくれる。この場合、プレイヤーとイベントの距離が6以上になっているので、イベントは設定どおりX座標3、Y座標6の位置にいる。設定された座標に戻る際にも回り込んだうえで規定の位置まで最短距離で戻ってくれる。元が移動のみのプラグインであるため、追跡イベントとして使用するにはそれなりの準備が必要だが、逆を言うとイベントの本体の方は自由が利くので自分なりのアレンジを入れたり、独自の理論を立ててみたりする拡張があるという見方もありかと。経路に関しては問題なし。L字のような大回りとなる道も問題なく迂回してくれる。YEP_EventChasePlayer最後はYEP_EventChasePlayer。こちらのほうはSmartPathと異なり最初から追跡イベント用に作られているプラグイン。画像のように移動ルート内にスクリプトを入れることで有効化できる。5』の一行で追跡イベントとして機能する。魅力的なのが、プラグインそのものにいくつかパラメータが設定されているため、プラグインのほうでいわゆるデフォルト設定を行うことが出来るという点。設定可能なのは以下の項目。発見された時に出る吹き出しの種類(デフォルトの番号順で数値を指定)発見された時になるSE発見された時に起動するコモンイベント(ID指定)見失った後に元の位置に戻るか見失った後にその場に待機する時間これらはパラメータの設定以外でもイベント単位で設定することもできる。発見された時のSEのより細かい設定(ピッチ、パン)などがある。これらに適当に値を入れてみるだけでも独自っぽい追跡イベントが作れてしまうというのが最大の魅力。始めるとイベントは待機状態となっている。移動ルートではプラグインの設定以外にも方向の向き変えも入れているため、普段はその場で待機して四方を回転しながら監視、プレイヤーが視覚に入った瞬間追いかけ始めるというイベント内容。プラグインによる追跡が始まった場合、移動ルート内に設定された項目を無視するようになるので、ウェイト、移動などを入れても問題なく追跡してくれるのがありがたい。見失った後の原点に戻る仕組みを合わせれば、追跡前はランダム移動したり、一定の場所を巡回する警備員的な動き、それを引き寄せて、元の位置に戻る前に抜ける、なんてイベントも作れそう。当たり判定は扇状となっており、斜めの距離でも一定まで近づくと発見される。壁、障害物などの判定はないので壁越しでも普通に発見されてしまうのはご愛嬌。デフォルトが引っかかっていたL字の地点に配置してみた。範囲に入ったので移動開始。回り込んで最短距離で接近してきます。このほか段々の部分でも引っかかることなく追尾してくれました。このあたりの点は前に比べた時も感じたのですが、どちらもかなり高度な出来になっているのでどちらが上なのかは正直見分けがつかない。比較するという名目ではあるものの当然両立してみるのもあり。