上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ツクールVXでのエンカウントグループの設定。

マップ設定で出現する敵グループの設定がおこなえますが、この時各グループが出現する確率が(乱数が偏っていない限り)一律 1/n(n:設定したグループ数) となっています。

出現確率を上げたい場合は同一のグループを2つ、3つ…と増やすことによって出現確率を2倍、3倍…と出来るのですが、調整が大雑把。そして何よりめんどい。

と言うわけで、ちょっとこの辺りを変えてみました。

まずは仕様定義ですが、そもそも、extrierの場合あまり広大なマップは作らないほうなので、1マップ当たり出現するグループ数は8グループ程度で十分。実際にFF5や6でも、1マップ当たり4グループまでしか設定されていませんしね。

で、この8グループをそれぞれ何%で出現させるか、というテーブルを作成し、後は乱数生成して判定するだけ。

と、ここまで作ったんですが問題点が1つ。

各マップ8グループも設定するのめんどい。

ここで、他の人は知らないですがextrierの場合、敵のグループを

a.「スライム×2」
b.「スライム×3」
c.「こうもり×1」
d.「こうもり×1+スライム×1」

と言うように設定することが多いのですが、これはそれぞれ

・bはaよりちょっと強い
・dはcよりちょっと強い

と言い換えられることに気がつきまして、a,cグループを「表パターン」、b,dグループを「裏パターン」と呼ぶことにしました。

「裏パターン」は「表パターン」よりちょっと強いから出現率を抑えよう、更に「表パターン」も強弱色々ありますので、それぞれ微調整できるようにしよう、としました。

したがって、extrierの敵グループ出現の仕様は以下の通り。

・各マップ毎に「表パターン」が4パターン設定されており、一定確率でいずれかのグループが出現する
・ただし、1/4の確率でそれぞれの「裏パターン」が出現する

この仕様の最大のメリットは、マップに設定するグループは4つでいいのに、実際に出現するグループは8種類だと言うこと。めんどくさがりなextrierにピッタリな仕様ですねw
無題


4種類のパターンの出現確率は以下の通り。
96/256, 72/256, 56/256, 32/256

さらに、上記から1/4の確率で裏パターンとなるため、表/裏全部網羅した出現確率は以下の通り。

パターン1: 28.13%/*9.38%
パターン2: 21.09%/*7.03%
パターン3: 16.41%/*5.47%
パターン4: *9.38%/*3.13%

長々と書いて何が言いたいかと言うと、「こんな自己満足な仕様もスクリプトを作って楽々作れるよ!」ということですw 実装はカンタン。

敵グループの出現処理は「Game_Player」内でやっているので、そこをちょこちょこっと手直しします。

まずは4種類のグループの出現確率のテーブルを作成します。

EncTbl =[96, 72, 56, 32]   #※分母は256



もう1箇所修正。

 #--------------------------------------------------------------------------
 # ● エンカウントする敵グループの ID を作成
 #--------------------------------------------------------------------------

 def make_encounter_troop_id
  encounter_list = $game_map.encounter_list.clone
  for area in $data_areas.values
   encounter_list += area.encounter_list if in_area?(area)
  end
  if encounter_list.empty?
   make_encounter_count
   return 0
  end
  
  id = rand(255)
  enc = 0
  sum = 0
  i = 0
  while i < 10
   sum += EncTbl[i]
   if id < sum
    enc = encounter_list[i]
    break
   else
    i += 1
   end
  end
  
  if rand(256) < 64
   enc += 1
  end
  return enc
 end


なんとも汚いソースw
上で書いた仕様を、そのままソースに落とし込んだだけです。
(1/4の箇所だけはもしかしたら乱数が偏ってるかも?と思って64/256としました。確証は一切ナシ)


こういうextrierのような計算バカが、やりたいことをそのままやれるなんてVXったらなんて素敵なの。

面白すぎます。
あとは、もちっと手軽にRGSSの修正と、確認(テストプレイ)が出来れば言うことないんですが・・・

テストプレイでも戦闘テストでも始まる前に全体のソースチェック(文法だけ?)してるよね?
あれが長いんだよな~(--;
スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

タグ : ツクールVX

コメントの投稿

URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
powered by
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。