ホラーゲームだ「追跡者」を作ろうへぷたなすくろーるRPGツクールのブログです。s/ash]プロフィールHN:奈々(なな)RPGツクールVXAceを中心に製作を行っています。できる範囲で他のツクーラーさんのお手伝いができたらなと思っています。ホラーゲームだ「追跡者」を作ろうこのコーナーでは、主に初心者さんに向けたイベントのテクニックを紹介していきます。RPGツクールVXAceで説明していきますが、多くはVXや他のツクールでも可能です。第十三回はツクール製ホラーゲームなどでお馴染みのマップを超えてプレイヤーを追跡してくるイベントの紹介です。これまでに紹介したテクニックを総動員して、私なりの方法でまとめてみました。1つ1つの仕組みは簡単になるように整理していますのでお気軽にどうぞ。これはマップイベントで各マップに1体ずつ配置します。マップ中央に置いて下さい。出現条件、スイッチ「追跡者出現」。トリガー、イベントから接触。自律移動タイプ、近づく。イベント内容はとりあえずゲームオーバーだけにしておきましょうか。このイベントの解説おそらくこの手のホラーゲームを作ろうとした人は、まずこれを思いつくかと。シンプルなイベントなので特に気をつけることはありませんがポイントとしてはこのイベント自体に大した機能がないことです。初心者さんはついつい出現や消失の処理もこれ1つでやろうと考えがちですが「捕まったときの処理」だけ組み、「スイッチで出現状態を制御できる」のみにします。手動出現/手動消去ではどうやって出現させるかというと条件分岐:スイッチ「追跡者出現」がoffイベントの位置設定:追跡者を出現させたい位置を設定スイッチの操作:スイッチ「追跡者出現」をonにするという処理を出現させたいイベントに追加します。追跡者を消去したい場合は単にスイッチ「追跡者出現」をoffにします。このイベントの解説これも仕組みは単純ですね。スイッチで条件分岐が入っているのは、既に追跡者が出現している場合を考えてです。コモンイベントで作ったほうが楽そうに思えますが、もしそうやって汎用処理を作るとなると追跡者の出てくる位置や追跡者のイベントIDなども細かく決めていく必要があるので逆に不便です。(これが例えば大量に出現処理を作るシンボルエンカウントとかだとコモンで組むメリットがありますが)また、「演出」を担当するのはこの手動出現や消去の処理を加えたイベントで行うのがベストです。選択肢を間違えると追跡者が出現する、模様のある床を踏むと一定確率で出現する背後からゆっくりと追跡者が近付いてきて・・・さあ逃げろ!等々、ツクラーの腕の見せ所ですね。マップ移動(追跡判定)お次はマップ移動をさせるイベントに、移動前に追跡判定を加えます。ルールを決めておきます。・1つのマップの移動イベントは全て違う番号これはツクール本来のルールではなく、自分でイベントが組みやすいように決めるルールです。この変数の目的はどこの移動イベントから移動してきたかを把握することです。このイベントの解説さてさて、本題のマップを移動して追跡してくるための処理。その片方がこのマップ移動イベントに仕込む処理です。いやはや変数操作と条件分岐の洪水ですね、しかし繰り返しますがいたって単純な内容です。一段落目はもう説明は不要でしょうね、出現してるか分岐して変数に情報を入れてます。二段落目は、マップX同士を引き算することでその差を求めています。実際にやってみると分かりますが、5マス離れていれば計算結果は5か-5になるはずです。0未満(つまりマイナス)の場合には-1を掛けてマイナスを消してしまいます。絶対値を求めるとも言います。これをマップYに関しても行っています。整理するとこの時点で変数Aには「X方向に何マス離れているか」変数Bには「Y方向に何マス離れているか」の数が入ります。三段落目ですが、まず2つを足して、合計が10未満なら追跡を続行します。(余談ですが斜め移動がありの場合は2つのうち大きいほうを比べると自然になります)具体的な処理は次のイベントが行うので、ここではフラグとなるスイッチと変数を設定するだけです。10以上ならフラグが設定されないので追跡はここで終了するというわけです。どちらの場合でもスイッチ「追跡者出現」はoffにしたいので、分岐の終わりに追加します。四段落目は追跡者が出現していない場合の条件分岐です。出現はしていないが追跡は続いている場合で、元のマップに戻る場合はいきなり出現状態になります。それ以外のマップに移動した場合は追跡フラグが解除されるので逃げ切ったということになります。マップ間追跡イベントトリガーはお馴染みの並列処理、条件はスイッチ「追跡者準備」マップイベントで各マップに1つ置きます。基本的な動作は並列処理で30フレーム毎に、変数「出現カウント」をチェックしながら減らしていきます。変数「出現カウント」が0以下になったら追跡者を出現させます。利用して移動前のマップから追跡者が出現するように位置を調節します。変数「出現カウント」はマップ移動のイベントで追跡者との距離を代入しました。これが1マス30F、つまり半秒の猶予となるわけですね。それから、最初に入っている条件分岐はカウントしている途中で(他のイベントによって)追跡者が出現する可能性を考えていれてあります。まとめここまでお疲れ様でした~。・マップを越えて追いかけてくるの実行それぞれのイベントがスイッチと変数によって連携しているというものです。ツクールのマップイベントはあくまでマップ内だけしか動けないわけですが全てのマップに用意したマップイベントを出入口の位置から出現させることであたかもマップ移動してきたように見せるというのが今回のテクニックの原点となっています。/編集Re:参考にしていただいております>ユゥさんこんにちは。文章を読む限り入力ミスよりも、もっと根本的な間違いな気がします。追跡者が2体出てきたりする、ということですが記事の中にあるように追跡者本体は「各マップに1つ」としていますので普通は入力ミスでも2体出てくることはありえません。そのマップに追跡者本体が複数置かれていないかを確認して下さい。́;ω;`)マップ移動したら、追跡者のイベント自体(追跡者本体)が置かれているところに出現してしまうんです。Titleそれは仕様です。この作例では、追跡者が出現するパターンは3つです。・イベントで出現(「手動出現」が担当)・違うマップから追ってきた(「マップ間追跡イベント」が担当)・追跡者がいるマップに戻った(「マップ移動(追跡判定)」が担当)上2つは担当イベントが出現判定の際に同時にイベントの位置指定で出現地点を設定しています。3つ目は「それ以外の場合~」以降が処理していますが移動先のマップのイベントは動かせないため、イベントの位置指定が入ってません。それをしたいなら次のような処理を加えます。「マップ移動(追跡判定)」でスイッチ「追跡者出現」をonにするときにスイッチ「出戻り」をonにして、変数「出戻り方角」に適当な数値を入れる。場所移動のイベントでは、フェードインはしない(真っ暗にする)3、マップに「出戻りがonが条件で、自動実行のイベント」を作る。条件分岐:変数「出戻り方角」が2の場合イベントの位置設定:「追跡者本体」の位置を調節......スイッチ「出戻り」をoffフェードイン変数に入れる数値は単なる識別用で追跡者をどの位置にするかを決めるためのものです。(2013/09/18)返信>うにさんはじめまして。初心者の方に見て頂けるのは嬉しいです。細かくないですよ(笑)ある意味、このイベントの肝です。この記事における○○というのは変数「出現方向」の中身のことです。解説は変数「出現方向」の項目に書いています。実際にイベントを組めば○○は、ある数字になっています。マップ移動(追跡判定)はイベント毎に数字が違います。マップ間追跡イベントはそのマップにある追跡判定の数字で条件分岐します。具体的に1とか2という数字で表記せず○○の部分は変わるんだよ、という書き方をしています。