ランダムエンカウントについて考える
RPGのエンカウント方式に大きく分けて敵の姿のないフィールドを歩いていたら戦闘発生するランダムエンカウントと敵の姿を視認出来、接触すると戦闘発生するシンボルエンカウントがあります。
シンボルエンカウントにおいては当たり判定を用いて、更にはキャラクター操作によって特定のモーション(剣を振るとか)をさせ、そちらの当たり判定を用いて戦闘を有利不利に始めるものがあると思いますが、それについては敵の配置やフィールドの地形である程度、戦闘の頻度を操作出来るので本記事では触れません。
初代ドラクエやFFではランダムエンカウントが採用されており、いかにストレスのないランダムエンカウントが可能か考えたいと思います。最近の主流はシンボルエンカウントですが、ストレスのないゲーム設計は他にも転用出来ると思うので。
まずは2D基準で考えてみる
格子状にマス目があり、平地のエンカウント率が10%、森なら20%のように設定可能とする。
1歩目でエンカウントする確率は当然10%、逆にエンカウントしない確率は90%である。2歩目も続けてエンカウントしない確率は81%、3歩目は72%…となり、20歩目までエンカウントしない確率は12%となる。
数字だけで見れば順当なのかもしれないが、問題は1歩目からエンカウントする確率が10%あるというところ。
1歩目でエンカウントして、戦闘後に次の1歩目でもエンカウント(発狂ゲージ溜まるやつ…!)する確率は1%だが存在する。
一昔前の初代ポケットモンスターが流行りだした頃の乱発された雑なRPGではよくこういった設定がされていたように思う。
神の手処理
ここで単純な確率だけでなく、システムで制御してプレイしやすい環境を作る。
街の近くであればモンスターは少ないはずだから同じ平地でも確率を下げる(それでも0%ではない!)、状態異常の仲間がいれば設定されてる確率に1.5倍の補正をかける等方法はいくらでもあるが、街やダンジョンを出た直後や戦闘直後からある歩数まではエンカウントなしを保証する、逆にある歩数からはエンカウントする(ここは固定すると不自然になりそうなので確率に補正をかける)ようにする。
5歩まではエンカウントなし、6歩目から設定された確率でエンカウント判定、20歩目からは設定された確率に2倍などの補正をかけ、エンカウント率を上げる。
これである程度プレイ感は損なわずに調整出来ると思う。ただし、難易度調整でここをいじるのは良くない。難易度を調整するならモンスターやボスであるべき。
3Dではどうするのさ
2Dにおける1歩を3D空間上の距離に置き換えれば良い。
例えば2Dの1マスを10mだとして、先のようなエンカウント判定を行う。移動開始からの総移動距離を保持して2Dのように単純な判定を行える。
以下に実装したGitHubを載せる。
ただし、入力処理が2Dと3Dを共存させるために無理やり感…通常のゲームではこんな変な入力処理にならないし、今回重要なのはエンカウント判定の方ということで…ここは一つ…
EncountSceneブランチにて作成