マップの無いRPGでのエンカウントの悩み

永久力吹雪

ユーザー
目的の歩数まで歩くとボス戦になるような
マップの無いRPGを作っているのですが、
選択肢の「移動する」を選んで乱数を使った
エンカウントを作ろうとすると、どうしても
一度エンカウントした後に連続で
エンカウントしてしまうのに悩んでいます。
エンカウント率もエンカウントの数の1.5倍か2倍くらいに
何もエンカウントしない状態にしているのですが、
それでも一度エンカウントすると、その後はずっと
連続でエンカウントしてしまいます。
どなたかオリジナルエンカウントの作り方の
アドバイスをしていただけるとありがたいです。
 
自分はこんな感じで作りました。

・探索する
 ダンジョン探索度が上昇し、特定の値になると探索が完了する。
 以下のような、3つのイベントが発生する。
 ・戦闘
  バトルシーンに移行。発動するかはランダムで決まる。
  さらに、以下のイベントが追加で発生する。
 ・トラップ発動
  ダンジョンに仕掛けられたトラップが発動し、ダメージを受けることがある。
  何らかのアイテムで解除できることがあり、さらに探索度が上昇する。
 ・アイテム発見
  ランダムでアイテムを見つける。
 ・行き止まり
  「何もなし」に相当する。
・町に戻る
 探索画面を終了して街に戻るが、ランダムで敵が出現する。

要するに歩数ごとではなく、探索をするたびに敵の出現判定を行います。
 
下記の方法なら連続エンカウントを避けられると思います。
仕組みは少し異なりますが、古くはSFC時代のドラクエのエンカウント処理にも使われている
由緒正しい?ものだったりします。

① エンカウント用の変数を1個作る
② ①の変数でエンカウントが発生する数字をあらかじめ決めておく(例:100)
③ 「移動する」などのコマンドを選択する度に、①に適当な数字が加算されるようにする
  (振れ幅を付けるなら乱数による加算を使う。例:10~30)
④ ①に累積した数が、②で設定した数字に達した場合にエンカウントを発生させる
⑤ エンカウントしたら、①の数字を0にリセットする
 
マップが無いというのが、多少どんなものか引っ掛かりますが、
これの対策は「正規分布を使うこと」じゃないでしょうか。
つまり、特定の歩数(例:30)で敵が出てきてほしいと思ったら、
0~29までのランダム値を4回作って足した後、4で割ると、
ほぼ正規分布に近いものが作れます。

それとも、マップがないというのは、ゲームボーイのSELECTIONや
ネコジャラ物語のように、移動可能な方向が示されており、
敵と遭遇する方向には特別なマークがついている……という方式なのでしょうか。
だとしたら、エンカウント直後は次にエンカウントする率を大幅に下げるとか、
そういった形の調整が一番いいと思います。

「マップがない」というのが分からなかったので
若干的外れかもしれませんが、その場合、詳しく仕様を教えていただけると
手助けできるかもしれません。
 

sally_elly

ユーザー
連続でエンカウントしたくないだけであれば、敵出現強制排除の変数をひとつつくり、
戦闘開始か終了時に1~5など適当な乱数を代入。
移動時にこの変数を必ずマイナス1し、0以上なら敵の出現をさせないとする手もあります。
 

永久力吹雪

ユーザー
>シトラスさん
>アルツールさん
>神無月サスケさん
>sally_ellyさん
皆様アドバイスをしていただきどうもありがとうございます!
アドバイスのうち、sally_ellyさんの案を
試したら一度エンカウントした後に連続で
エンカウントをしなくなりました。
シトラスさんの案のランダムで発生する宝箱発見の
システムなども今後実装を予定しております。
どんなシステムのゲームなのかはアツマールにて
体験版をアップしましたので、よろしくお願いします。
 
トップ