「シンボルエンカウント」で検索したら関連キーワードが「嫌い」だったので悩んでいるしんぞですこんばんわ。
なんの前触れもなく敵が襲ってくるよりは、最初から見えていた方が不自然じゃない、という素朴な考えで、シンボルエンカウントっていーなーと思っていたのですが、うざくしないためには幾つかコツがいるようですね。
- 逃げた敵にもう一度襲われないようにする
- シンボルの動きに工夫する
- 作る側がチューニングが楽なようにしておく(=ゲームバランスの調整が楽)
幸い、先達の知恵によって なかなか効率的に作ることができました。
神無月サスケさんの公式プラグインを参考に、
Yanfly先生とトリアコンタン神のプラグイン、およびコモンイベントを使います。
プラグインじゅんび
YEPのコアエンジンとバトルコアエンジンの他に、下記4つのプラグインを入れます。
http://yanfly.moe/2016/04/17/yep-93-force-advantage/
http://yanfly.moe/2016/06/03/yep-105-event-encounter-aid-rpg-maker-mv/
http://yanfly.moe/2015/10/21/yep-20-event-chase-player/
https://triacontane.blogspot.jp/2016/08/blog-post.html
コモンイベントじゅんび
下記のコモンイベントを書きます。
◆ラベル:戦いの直前 ◆条件分岐:スクリプト:this.checkPlayerFacingEventBack() ◆プラグインコマンド:ForceAdvantage Player ◆ :それ以外のとき ◆条件分岐:スクリプト:this.checkEventFacingPlayerBack() ◆プラグインコマンド:ForceAdvantage Enemy ◆ :それ以外のとき ◆プラグインコマンド:ForceAdvantage None ◆ :分岐終了 ◆ :分岐終了 ◆プラグインコマンド:TE_CALL_ORIGIN_EVENT ◆戦闘の処理:{戦うtroopのID} :勝ったとき ◆イベントの一時消去 ◆ :逃げたとき ◆移動ルートの設定:このイベント : :◇不透明度:128 : :◇すり抜けON : :◇ウェイト:240フレーム : :◇すり抜けOFF : :◇不透明度:255 ◆ :負けたとき ◆画面のフェードアウト ◆プラグインコマンド:MWP_INVALID ◆文章:なし, ウィンドウ, 下 : :お迎えが来たようですが… : :どうしますか? ◆選択肢の表示:今の戦いからやり直す, セーブしたところからやり直す, あきらめる (ウィンドウ, 中, #1, -) :今の戦いからやり直すのとき ◆画面のフェードイン ◆ラベルジャンプ:戦いの直前 ◆ :セーブしたところからやり直すのとき ◆メニュー画面を開く ◆ :あきらめるのとき ◆ゲームオーバー ◆ :分岐終了 ◆ :分岐終了
イベントじゅんび
敵を配置したいマップにイベントを置き、1ページ目に下記のイベントを書きます。
◆変数の操作:#0027 戦うtroopのID = 26 ◆コモンイベント:シンボルエンカウント
グラフィックは「敵っぽいやつ」を用意しましょう。「味方と間違えて話しかけないように、区別のつくように」工夫すると良いでしょう。おれはモノトーンに加工したキャラチップでいくつもりです。
移動ルートはカスタムで下記のようにしてみます。「動作を繰り返す」にチェック。
◆スクリプト:this._chaseRange = 5 ◆スクリプト:this._seePlayer = true ◆ランダムで移動
ここまでで、敵1匹ができました。次は、これを複製してみましょう。
イベント複製用のイベントを作成
意味わからん? うん、すまん。説明が下手なのは持病。
ここまで用意したイベントは1個だけなのだけど、トリアコンタンさんのプラグインで簡単に複製することができるので、複製を実行する専用のイベントを1モンスターあたり1こ作ります。
グラフィックなし、自動実行で下記のようにします。変数は自分の環境では28番が空いていましたが、そこはお好みでどうぞ。プログラミングでいう「for」の処理に相当することを行って、プラグインコマンドを任意の回数実行します。
◆変数の操作:#0028 temp:forで回すi = 0 ◆ループ ◆変数の操作:#0028 temp:forで回すi += 1 ◆条件分岐:temp:forで回すi ≥ 10 ◆ループの中断 ◆ :分岐終了 ◆プラグインコマンド:ERS_MAKE_RANDOM 12 passonly ◆ :以上繰り返し ◆イベントの一時消去