Twitterでも動画で載せたんですが、ここでも言わせてもらいます…メチャクチャ頑張って作ったEvです。初心者にしては中々頑張っているのでは?と自画自賛してます。
今回はこのEvをどう作ってみたのかを、自分の備忘録のためにも残したいと思います。
敵キャラをマップイベントで作成
主人公を足止めする敵キャラをマップイベントで作成します。マップイベントのページは全部で4p使いました。
自分はこのEvを作っていて初めて知ったのですが、マップイベントのページは大きい数字のページが優先的に処理されるみたいです。
なので、「主人公を発見していない状態」の処理を4p目にして3p目で「発見」、2p目で「足止め状態」、1p目で「主人公を離した状態」で処理を作成します。
常に処理を実行していたいので並列実行で全てのページを作っています。しかし、並列実行のEvが多いと重たくなるので、どうにか改良できれば…と思います。
実際の処理内容
4p「主人公を発見していない状態」
起動条件:並列実行 self0:セルフ変数0が0と同じとき
おりガミ様の作成された直線状視界コモンをお借りしています。このコモンイベントで主人公を索敵しています。
3p「発見」
起動条件:並列実行 self0:セルフ変数0が1と同じとき
このページで主人公の位置と自分(このマップイベント)の位置を調べて、絶対値を出して座標Xと座標Yが±2以下のとき主人公を捕まえた判定。「足止め状態」に移動します。回数付きループは何でそうしているのか作った本人にも分からないです…上手くいったのでそのままにしているといった具合です。
2p目へ移動する前にエフェクトを入れているのは、2p目にエフェクトを入れると起動条件が並列実行にしているのでずっとエフェクトが起き続けてしまうからです。今回は一回だけSEが鳴って、エフェクトも一回だけ実行して欲しかったのでココに挟んでいます。
セルフ変数1は「近づくと起動するコモンイベント」を設定しています。=0のとき停止、=1のとき起動するように分岐して停止しているときはセルフ変数0を=0にして4p目に戻して索敵させます。
近づくと起動するコモンは、なにものにもとらわれないブログ様の記事を参考にさせていただいています。こちらの記事のリンクも上の記事の最後の方に載せさせていただいています。
2p「足止め状態」
起動条件:並列実行 self0:セルフ変数0が2と同じとき
オプション設定の移動時アニメと待機時アニメのチェックを外し、方向固定にチェックをつける。
セルフ変数9で何回連打したのかをカウントしていきます。この際に、キー入力処理を普通に行うと、キーを押しっぱなしにしてもカウントしてしまい、連打しなくてもよくなってしまいます…。そこでキーの連続入力を阻止する処理を入れます。
本当に有難すぎる。
動作指定で主人公をグラフィック0で消しているのは、このページのグラフィックを主人公を捕まえているような画像に切り替えて主人公を捕まえたように見せるためです。また、主人公をキー入力禁止のコマンドで動けなくしておきます。
キー入力禁止をしても決定キーを連打している最中に、移動キーが押されていると主人公が移動してしまいました。なので、【主人公移動制御】というコモンを新しく用意しそこで「アローキーとテンキーの入力を禁止」と「アローキーとテンキーの入力を許可」を制御しています。
【主人公移動制御】はコモンの入力設定でON/OFFが切り替えられるようにして、コモン挿入のコマンドから操作できるようにしてます。
自分の場合はGAMEOVERになるとタイトルに戻るかそのままロードするかを選ぶ選択肢を用意しているのですが、その選択肢でキー操作ができなくなることを阻止するためにGAMEOVERの時に条件分岐を行い「GAMEOVERの時イベント処理中断」を行っています。
また、マップEvが並列実行なため【主人公移動制御】がずっと作動し続けます。これによりキー操作ができなくなってしまうので、ページを新しく作り…V2-1[GAMEOVER]=1のとき(GAMEOVERになった時)起動条件が決定キーで実行の空のページに飛ぶようにしました。
この作業はロードなどを挟むと操作可になるのでGAMEOVERになってすぐタイトルに戻るのであれば必要ないです。
今回主人公を捕まえたように見せるのに使ったのは下の画像のキャラチップになります。四方向・アニメ数全部に絵を入れているのは、主人公が接触した角度でキャラチップが点滅することがあったので、点滅防止で全て埋めています。
主人公を捕縛したように見せるのに使用したキャラチップ |
キーを15回押すとページを移動し、敵キャラが主人公を離すようにします。この時、連打カウンターのセルフ変数9を=0に戻しておきます。
1p「主人公を離した状態」
起動条件:並列実行 self0:セルフ変数0が3と同じとき
オプション設定の移動時アニメと待機時アニメのチェックを外し、方向固定にチェックをつける。
このページも、2p目と同じように専用に仰け反ったようなキャラチップを作って、マップイベントのグラフィックをその専用キャラチップに設定しています。
また、このページはマップイベントの敵キャラが主人公を離したので、主人公のグラフィックを戻して動けるようにします。
自分はこのページの処理を作るときに詰まったところがあり…それが動作指定です。
最初にこのEvを作った時、コマンド入力するイベント制御画面の動作指定ボタンの隣にある「完了までウェイト」を使っていました。ウェイト処理が3カ所(動作指定の中のチェックボックス・動作指定隣の完了までウェイト・イベント制御画面のウェイト)あるけれど、どれを使っても同じだろうと思っていたからです…。
しかし、どうにも上手くいかず動作指定の処理だけで2日使ってしましました。
最終的に行き着いた先が、動作指定の中のウェイトを使う。これだけで上手くいきました。(最初に作った時は、動作指定の中のウェイトで上手く動かなかったのに…急に何故か思ったように動作して謎)
話は処理内容に戻しまして、動作指定の中で主人公から離れさせてからウェイトを50挟んでいます。このウェイトは無敵時間のような感じで、連続して主人公を捕まえないようにするための時間です。無限に捕まり続けてはストレスしか溜まらんので大事なウェイトです。
最後にセルフ変数0を=0にして4p目に戻して主人公を発見していない状態にします。
…これで、主人公を足止めする敵キャラの完成です。
最後に
主人公を足止めする…という敵は、いろんな場面に使えて、それでいてゲームに程よく難易度を加えられる敵キャラなのでは?と個人的に思います。このイベントが誰かの参考になれば嬉しいです。
最後まで読んでいただき、ありがとうございます