ダメージ計算式の3タイプと選び方:単純減算・割合軽減・除算型

ゲームのダメージ計算式を単純減算・割合軽減・除算型で比較し、防御がダメージ0になる問題、数値のインフレへの強さ、乱数幅と丸めの落とし穴を数値例で解説します。

防御力を上げたのに敵が硬くならない、が起きる理由

ゲームを作っていて、攻撃力と防御力の数値を決めたところまでは順調だったのに、レベルが上がるにつれて「防御が高すぎてダメージが通らない」「逆に防御がほとんど意味を持たない」といった問題にぶつかることがあります。原因の多くは、数値そのものではなくダメージ計算式の形にあります。

この記事では、よく使われる3つの式(単純減算・割合軽減・除算型)を同じ数値で比べ、それぞれの性質と選び方を整理します。特定の作品の仕様を再現する話ではなく、自作ゲームの式を自分で決めるための判断材料です。

3つの式の基本

攻撃力をA、防御力をDとします。「ダメージ計算機」で選べる3種類は次のとおりです。

どれも、技の威力(%)を掛けて最終的な基本ダメージにするのが一般的です。計算機では「上の式 × 技の威力 ÷ 100」としています。

性質の違いを一言でいうと次のようになります。

数値例で比べる

攻撃力120・技の威力100%で、防御力だけを変えた結果を、Pythonで計算して検算しました(小数第2位を四捨五入)。

防御力   単純減算  割合軽減  除算型
  0       120     120.00   120.00
 30        90      92.31    96.00
 60        60      75.00    80.00
120         0      54.55    60.00
240      -120      35.29    40.00

単純減算は防御力120でちょうど0、240ではマイナスになります。実装では0や1で下限を切るのが普通ですが、下限に張り付いた状態では、防御をどれだけ上げても、攻撃を少し強化しても結果が変わらず、数値を調整する意味がなくなります。これが「防御力がダメージ0になる問題」です。割合軽減と除算型は、防御がどれだけ高くても0にはなりません。

次に、攻撃力と防御力を同じ比率で2倍にしてみます。攻撃力120・防御力60から、攻撃力240・防御力120にした場合です。

除算型は比だけで決まるので、数値のインフレに強く、単純減算も比例して増えます。割合軽減は「100」という定数が入っているため、数値が大きくなるほど防御の効きが強くなり、同じ比率で成長させるとダメージの伸びが鈍ります。数値が膨らむゲームでは、割合軽減の定数(上の式の100)も一緒に見直す必要があります。

乱数幅も確認します。初期値(攻撃力120、防御力60、威力100%、割合軽減、乱数幅±10%)では、基本ダメージ75に対し、理論上の範囲は67.5〜82.5です。ツールでは整数にした最小67、最大82が表示されます。威力を150%にすれば、基本ダメージは112.5になります。

どの式を選ぶか、判断の基準

どの式でも、下限値(最低1ダメージなど)を入れるかどうかは別に決めます。0を許すと「完全に無効」という演出が作れますが、戦闘が終わらなくなる危険もあります。

よくある落とし穴

防御を「実質的な体力」に置き換えて考える

割合軽減の式は、防御力を実質的な体力の倍率として読み替えると設計しやすくなります。受けるダメージが 100 ÷ (100 + D) 倍になるので、実質的な体力は (100 + D) ÷ 100 倍です。検算すると、防御力60で1.6倍、防御力100で2倍、防御力300で4倍になります。軽減率にすると、それぞれ37.5%、50%、75%です。

この見方をすると、「防御を100上げたときの価値」が一定ではないことが分かります。防御0から100にする価値(実質体力が1倍から2倍)と、防御200から300にする価値(3倍から4倍)は、実質体力の増え方は足し算では同じ+1ですが、倍率で見ると前者は2倍、後者は約1.33倍です。装備やレベルアップで防御が積み上がるほど、1ポイントの価値が薄くなる設計になっています。成長曲線を決めるときは、防御の最終値で軽減率が何%になるかを先に決め、そこから逆算すると失敗しにくくなります。

関連ツールの使い方

ダメージ計算機では、初期値が割合軽減になっています。式を切り替えながら、同じ入力での軽減率の違いを見比べてください。吹き飛ばしの距離はノックバック計算機、スキルの連発頻度との兼ね合いはクールダウン計算機で確認できます。1回のダメージだけでなく、一定時間に出せるダメージ(1回のダメージ ÷ クールダウン)で見ると、バランスの偏りに気づきやすくなります。

まとめ

ダメージ式は、数値の見た目より「防御が上がったときにどう変化するか」で選びます。単純減算は分かりやすいが0になる、割合軽減は逓減して0にならないが数値の規模に左右される、除算型は比で決まり安定する、というのが大まかな性質です。選んだ式で端と中央の数値を表にしてみる習慣をつければ、後から大きなバランス崩れを避けられます。最終的な丸め方や上限値は、実際に遊んで確かめてください。

この記事に関連するツール