アットウィキロゴ

ベルウィックサーガ 命中判定について


概要

このゲームの命中判定時の命中率は「表記命中率+補正」である
「弓回避」「加護」などの再判定時もこの命中判定が使われる
その他の確率系すべて(盾、致命、スキル発動など)は通常の乱数判定である

弓回避などのスキルは「命中判定」→当たったときに上限33%にして再度「命中判定」する
(元の命中率が33%未満のときはそのままその命中率を再度使う)
加護は「命中判定」→当たって死ぬ場合に元の命中率を-10%して再度「命中判定」する
どちらも補正があるため上限33±a%だったり元の命中率-10±a%だったりするが、
加護については元の命中率-10が0%以下のときは確実に外す

具体的な補正のかかりかた例を提示する
命中30%の敵が3体いて、続けてこちらに攻撃するとする(間に別の軍の行動が挟まっても影響しない)
命中30%が当たったか外れたかによって次の敵の実命中が変動する
30%(ミス) → 33%(ミス) → 36%
30%(ミス) → 33%(命中) → 26%
30%(命中) → 23%(ミス) → 26%
30%(命中) → 23%(命中) → 16%


経緯

このゲームは乱数を下限0で固定した状態でも攻撃を外すことがある
どうやら命中判定ルーチンに命中率期待値に近づける補正が組み込まれているみたいで
攻撃を外すと補正値がプラスに蓄積され
攻撃を当てると補正値がマイナスに蓄積され
本来の命中+補正値が0以下になると乱数0下限でも外れるという仕組み
蓄積量は命中値依存
たとえば命中33%の弓敵がいたとして、乱数0下限状態では1回確実に当たって2回確実に外れるみたいなイメージ
弓回避持ちが受けると、1回確実に弓回避して1回確実に素避けするみたいなイメージもある(回避系は命中時に上限33%で再判定するため)
ほんまかいな

内部的には次のような優先順でいくつかに分岐する
命中100% → 必ず当たる
謎のフラグが立っている → 必ず外れる(しかし事前処理を見ると命中0%以外のときに確実に当てる処理になってるような…)
命中0% → 必ず外れる
分岐α:期待値補正付き命中の確率判定を行う
分岐β:通常命中の確率判定を行う

補正付き命中判定の部分を必中にして(2022B8B4 28440064)乱数下限固定と併用したところ外すことはなかったので
補正値の蓄積によって確定外しの分岐に移行することはないっぽくて
命中+補正値が0以下だと外すという部分はあってるみたい

分岐α部分では以下のような処理をしている(はず)
補正付き命中 = 命中 + (補正値/10)

補正つき命中判定で命中した:
 補正値 -= 100 - 命中
 通常命中判定では外している:
  補正で当たったカウンタ++

補正つき命中判定で外した:
 補正値 += 命中
 通常命中判定では命中している:
  補正で外したカウンタ++
これはサブルーチン内での処理なので
補正値が前後でどのように追加処理されてるのかまだ不明
カウンタの働きもわからんし
補正値がキャラ固有か全体かもはっきりしていない

※(2026/05/17)
ちょっと調べてみたところ
恐ろしいことに命中100%以外すべて分岐αの処理に飛んでいる
補正の蓄積値は軍別で共有
なので、敵が攻撃を外したからといって味方側の命中補正が高くなることはないが
味方が100%以外の攻撃を命中させると次の味方の命中が内部で減る(命中率が低いほど減る)
減るといってもただちに10%級の大きさで増減するわけではないが
攻撃を連続で当て続けていると蓄積が重なってそんくらい減っていることはあり得る

ルーチン外で補正値が増減している様子はまだ見あたらない
カウンタが使用されている形跡がまだ見あたらない
ロードすると補正の蓄積値は0に戻る(?)

ロード直後から乱数下限固定で命中33%で攻撃しつづけたとき、内部の蓄積値と実際の命中率は次のような推移になる
(実際は途中で技能値が上がって命中が上がると思うけど)

蓄積値 実命中 成否
0 33%
-67 27%
-134 20%
-201 13%
-268 7%
-335 0% ミス
-302 3%
-369 0% ミス
-336 0% ミス
-303 3%
-370 0% ミス
-337 0% ミス
-304 3%
-371 0% ミス
-338 0% ミス
-305 3%
-372 0% ミス
-339 0% ミス
-306 3%
最初は当たるけどそのうち命中率に収束する
乱数上限固定でも命中率に収束する
ようするに乱数のデキにかかわらず命中率期待値に近づける仕組みってことかな?

例えば・・・
50%の命中率を普通の乱数で続けてみると、
実命中は50%,45%,50%,55%,50%,55%,60%,55%,50%,45%,40%,45%みたいな感じで揺らぐ(一例)

90%の命中率を運良く当て続けていると、
実命中は90%,89%,88%,87%,86%...と減り続けていき、仮に80%のところでミスすると次は89%になる

10%の命中率を当然のように外し続けていると
実命中は10%,11%,12%,13%,14%...と増え続けていき、仮に20%のところで当てると次は11%になる

ロード直後、10%の命中を当てたとき、次のユニットの実命中は9%減る

★弓回避・加護などの判定はその性質上、再判定前は「命中している」状態のため
再判定前の表記命中が100%未満ならば、再判定時の補正付き命中は再判定前より下がっていると考えられる
例:弓回避持ち
敵軍側の蓄積値が0のとき、敵の表記命中率「50%」の弓攻撃の命中判定が成立した場合、敵側の蓄積値-50
弓回避の再判定時の命中率は上限の33%になるが、補正付き命中率は33-5%=28%になっている
この28%で命中した場合は「被弾」し、敵の次の補正値は -50 + -67 = -117、敵命中にして-11%
回避した場合は「弓回避」が発動し、敵の次の補正値は -50 + 33 = -17、敵命中にして-1%

ちゃんとした乱数でシミュレーションしてみるとちゃんと命中率に収束していた
100万×α回ぶん回してる間に出現した補正付き命中の下限上限のだいたいの値をまとめてみる
100%超えてるときは必中
0%以下のときは確定外し
命中率 下限付近 上限付近
99% 85% 109%
90% 50% 108%
80% 32% 106%
70% 16% 106%
60% 6% 104%
50% 0% 100%
40% -4% 92%
30% -6% 84%
20% -6% 70%
10% -8% 50%
まあ同じ命中率のユニットが何100万回も連続攻撃するわけはないのでなんだって話だけど
最終更新:2026年06月06日 17:32