KUROJIIBLOG

読者です 読者をやめる 読者になる 読者になる

遊戯道

俄か遊戯王カードコレクターです(苦笑)。遊戯王OCGとRPGツクールMVについて、勝手気ままに書き綴るブログです。新パック開封記事やレアカードの紹介、自作ゲームの進捗状況を主に書き綴っています。

第27話:イベント作成備忘録『シンボルランダムエンカウント①』

RPGツクールMV RPGツクールMV-イベント作成備忘録

随分更新が滞ってしまったが、何とか復活……。

色々イベントが続いたせいで、すっかり風邪をこじらせてしまい、鼻詰まりと喉の痛みに苛まれる日々であったが、どうにかこうにか記事を書けるまでには快復した。まだ完治に至っていないので、誤字脱字等あればご容赦頂きたい。

本日はRPGツクールMVのお話。

ポケモンにしろ、メガテンにしろ、モンスターとの遭遇はランダムエンカウントが主流なのだが、筆者はロマンシングサガに激ハマリしたロマサガスキーであり、シンボルエンカウントが堪らなく好きなので、自作している『くろじいげーむ(仮名)』にはシンボルエンカウント方式を採用している。

しかし、RPGツクールMVの基本システムはランダムエンカウントしか対応していないので、シンボルエンカウントを採用したければ、スクリプトを駆使してシステムそのものを構築するか、プラグインを導入しなければならない。

もちろん、そんなご大層なシステムを構築できるだけのスクリプト知識を筆者は持ち合わせていないので、プラグインに頼らせて頂くしか道はないわけだが……。

ネットサーフィンをしたところ、シンボルエンカウント関連のプラグインをいくつか発見できたが、個人的にYanfly氏制作の『EventChasePlayer』が一番使いやすかったので、早速導入させて頂いた(競合的な面で採用したのもある)。

シンボルエンカウントのイベントの作り方は非常に簡単。

①歩行キャラクターを作成。

②プライオリティを『キャラと同じ』、トリガーを『イベントから接触』に設定。

③自律移動の項目で、タイプを『カスタム』に設定。

④ルートボタンを押し、以下の2つのスクリプトを打ち込み、『ランダムに移動』を設定。

スクリプト1:this.chaseRange = 6 ←シンボルの視界の広さ。

スクリプト2:this.chaseSpeed = 4 ←プレイヤーに気づいた時の追跡速度。

⑤オプションの『動作を繰り返す』にチェックを入れる。

⑥『戦闘の処理』を設定。

以上でもっともシンプルなシンボルエンカウントが作れる。非常に簡単。

ただ、これだけの設定だと移動速度が速いエネミーシンボルから逃走した場合に、画面が切り替わった瞬間にダッシュしないと一瞬で追いつかれて、逃げる → 戦闘 → 逃げる → 戦闘 を延々と繰り返す羽目になるので、逃げたときにエネミーシンボルを数秒間沈黙させるようにした。

具体的に筆者が行なったのは、以下の画像の設定を、

f:id:kurojii:20161123204629p:plain

『戦闘の処理』の『逃げたとき』に盛り込むだけ。

この場合、逃走後はエネミーシンボルが半透明状態になり、3秒間接触しても戦闘にならない上にすり抜けることができるようになる。こうすれば、逃げ方を間違えて取り囲まれても容易に脱出が出来るので、プレイヤーの方々へ与えるストレスを軽減できるわけだ。

筆者がロマンシングサガをプレイしていてストレスになったのが、エネミーシンボルに囲まれまくってニッチもサッチもいかなくなった時だったので、この回避方法をとあるサイトで発見した時は思わず泣きそうになるほど感動しましたなぁ……。

余談だが、スーファミ版のロマンシングサガシリーズは、上記のような逃走時の救済措置が一切ない上に、戦闘回数が一定回数になるとザコモンスターのランクが上がるという仕様だったので、エネミーシンボルの動き方や地形をきっちり把握しないとあっという間に敵のランクが上がり、ザコシンボルが強敵でごった返すことに……。

さらに、ロマンシングサガ2に至っては逃走回数もきっちりカウントされるので、エネミーシンボルに接触するという当たり前の行動にすら計画性が求められるという鬼畜仕様に仕上がっている。事前情報を持たない初心者に対する明確な殺意を感じるのは筆者だけだろうか?(笑)

さて、余談はこのくらいにして話を先に進めよう。

上記のような設定を行なうことで、比較的プレイヤーに優しいエネミーシンボルを作り上げることが出来た。

ここから、このエネミーシンボルをベースとしてどんな追加要素を持たせてやるかを考えてみた。その結果、真っ先に思い付いたのが、

 

シンボルエンカウントランダムエンカウントの要素が盛り込めないか?

 

というもの。

イベント作成の『戦闘の処理』には『ランダムエンカウントと同じ』という項目があるので、単純にランダムエンカウントを盛り込むのは簡単だが、筆者のゲームではそうはいかない。なぜなら、筆者のゲームのシンボルエンカウントロマサガに近い仕様を求めているからだ。

RPGツクールMVで行なえるランダムエンカウントの設定はマップ単位かリージョン単位でしかできないので、様々な種族のエネミーシンボルが所狭しと動き回るマップを作るとなると、非常に使い勝手が悪い。

そんなわけで、理想のシンボルエンカウントを実現させるべく、みそ汁となった筆者の脳ミソをフル回転させた結果、

 

変数を用いたランダムエンカウントを作ってみる!

 

という結論に至る。

具体的には以下の画像をご覧頂こう。

f:id:kurojii:20161123204702p:plain

f:id:kurojii:20161123204715p:plain

簡単に説明しよう。

まず『戦闘の処理』に入る前に変数を使って遭遇する敵グループの判定を行なう。

①『変数の操作』を使い、1~100の中の数字を1つを乱数で抜き出し、指定した変数に格納。

②『条件分岐』を使い、①に格納された数字が61以上であれば、①とは別の変数に6を入れ、それと同じ番号の敵グループと戦闘(この場合、6番の敵グループと戦闘)。61未満であれば、『それ以外のとき』の処理を実行。

③『それ以外のとき』でさらに『条件分岐』を使用。①に格納された数字が31以上であれば、①とは別の変数に7を入れ、それと同じ番号の敵グループと戦闘。31未満であれば、『それ以外のとき』の処理を実行。

④これを遭遇させたい敵グループの数だけ繰り返し、最終的に『①に格納された数字が1以上であれば』という条件分岐を作って終了。

 

ちょっとわかりにくいかな。

②の61以上の場合というのは、61~100の数字の数は40なので、40%の確率で6番の敵グループと遭遇するということ。③の31以上の場合というのも同様の考え方だが、61~100の数字ではないという前提で31以上の数字を見るので、実際には31~60の数字が対象になる。31~60の数字の数は30なので、30%の確率で7番の敵グループと遭遇するということになるわけだ。あとはこの設定を接触させたいグループの数だけ設定すれば、『黒爺式シンボルランダムエンカウント』の完成である。

筆者のゲームでは、1つのエネミーシンボルで5つの遭遇パターンを持たせるようにした。スライムが1体、スライムが2体、スライムと大ガラスが1体ずつ、といった感じのパターンである。もう1パターン増やし、低確率で希少種モンスターやその時点で勝つのが難しい強敵と遭遇したりすると面白いかもしれないねぇ。

とりあえず、今日思い付いたところはここまで。シンボルエンカウントにはまだまだ筆者が想像も付かない可能性が秘められていると思うので、色んなゲームを参考にアイディアを捻出したいと思う。

当ブログの読者の方々で、何かいいアイディアがあれば筆者に授けて下さると非常に嬉しいですナ!!

それでは、今回はこれまで。

また、次の記事でお会いしよう。