塾長ノート

ポケモンのダメージ計算式を数学で解説|攻撃・防御・威力・乱数の関係

ダメージはどう決まるのか

ポケモンバトルをしていると、 「この技で倒せるのか」 「相手は耐えるのか」 「確定1発なのか、乱数1発なのか」 が気になる場面があります。

対戦をしている人なら、 ダメージ計算、いわゆる ダメ計 という言葉を聞いたことがあるかもしれません。

ダメージ計算ツールを使えば、 どれくらいのダメージが入るかはすぐにわかります。

しかし、 その裏側では、 ちゃんと式によってダメージが計算されています。

そして、このダメージ計算式は、 数学の題材としてかなりおもしろいです。

なぜなら、 ダメージには、 レベル、技の威力、攻撃、防御、タイプ一致、タイプ相性、乱数など、 いろいろな要素がかけ算・割り算で関わっているからです。

この記事では、 ポケモンのダメージ計算式を、 できるだけ数学の視点からわかりやすく整理してみます。

なお、実際のゲーム内計算では、 途中で小数点以下を切り捨てたり、 補正をかける順番が決まっていたりします。

この記事では、 完全なゲーム内再現を目指すというより、 式の意味を理解すること を目的にします。

ダメージ計算式の基本形

まず、ポケモンのダメージ計算式を、 学習用に少し見やすく書くと、 次のようになります。

ダメージ
= (((2×レベル÷5+2) × 技の威力 × 攻撃 ÷ 防御 ÷ 50) + 2) × 補正

かなり長い式です。

ぱっと見ると、 少し怖く感じるかもしれません。

しかし、 中身を分けて見ると、 それほど難しいことをしているわけではありません。

大きく分けると、 次のような構造になっています。

  • レベルが高いほどダメージが大きくなる
  • 技の威力が高いほどダメージが大きくなる
  • 攻撃側の攻撃・特攻が高いほどダメージが大きくなる
  • 防御側の防御・特防が高いほどダメージが小さくなる
  • タイプ一致、タイプ相性、乱数などの補正が最後にかかる

つまり、かなりざっくり言えば、

ダメージは、
レベル × 威力 × 攻撃 ÷ 防御 × いろいろな補正

のような形になっています。

ここだけ見ると、 とても自然です。

強い技を使えばダメージは増える。

攻撃が高ければダメージは増える。

相手の防御が高ければダメージは減る。

ポケモンの感覚として当たり前に思えることが、 式の中にもそのまま入っているわけです。

ダメージ計算式は複雑に見えるが、基本は 「レベル・威力・攻撃で増え、防御で減る」 という構造になっている。

物理技なら攻撃と防御、特殊技なら特攻と特防を見る

ダメージ計算で大切なのは、 技が物理技なのか特殊技なのかです。

物理技の場合は、 攻撃側の 攻撃 と、 防御側の 防御 を使います。

一方、 特殊技の場合は、 攻撃側の 特攻 と、 防御側の 特防 を使います。

技の種類 攻撃側で使う能力 防御側で使う能力
物理技 攻撃 防御
特殊技 特攻 特防

たとえば、 じしん、インファイト、アイアンヘッドのような物理技では、 攻撃と防御が関わります。

一方、 10まんボルト、かえんほうしゃ、りゅうせいぐんのような特殊技では、 特攻と特防が関わります。

つまり、 同じポケモンでも、 物理耐久が高いのか、 特殊耐久が高いのかによって、 受けるダメージは変わります。

ダメージ計算式では、 この違いが 攻撃÷防御 の部分に表れています。

攻撃÷防御の意味

ダメージ計算式の中でも、 特に大事なのが、 攻撃÷防御 の部分です。

ここには、 攻撃側と防御側の力関係が表れています。

たとえば、 攻撃が150、防御が100なら、

150 ÷ 100 = 1.5

です。

これは、 攻撃側の能力が防御側より高いので、 ダメージが大きくなることを意味します。

逆に、 攻撃が100、防御が150なら、

100 ÷ 150 = 約0.67

です。

この場合、 防御側のほうが硬いので、 ダメージは小さくなります。

つまり、 ダメージ計算式では、 攻撃と防御を単に足したり引いたりしているのではありません。

攻撃が防御の何倍くらいあるか を見ています。

ここはかなり数学らしい部分です。

ダメージ計算では、攻撃と防御の差ではなく、 「攻撃が防御の何倍か」という比が重要になる。

技の威力はダメージにほぼ比例する

次に、 技の威力を見てみます。

ダメージ計算式には、 技の威力 がかけ算で入っています。

そのため、 他の条件が同じなら、 技の威力が大きいほどダメージも大きくなります。

たとえば、 威力50の技と威力100の技を比べると、 かなり単純には、 威力100の技は威力50の技の約2倍のダメージになります。

もちろん、 実際には小数点以下の切り捨てや補正が入るため、 完全にぴったり2倍になるとは限りません。

それでも、 基本的な見方としては、 技の威力はダメージに大きく影響します。

ここから、 ポケモンの技選びの感覚も見えてきます。

威力が高い技は強い。

しかし、 命中率が低かったり、 反動があったり、 デメリットがあったりします。

だから実戦では、 単に威力だけでなく、 命中率や追加効果、デメリットも含めて考える必要があります。

これは、 以前の記事で扱った 期待値 の話にもつながります。

レベルの影響を見る

ダメージ計算式には、 レベルも入っています。

2×レベル÷5+2

という部分です。

たとえば、 レベル50の場合は、

2×50÷5+2
= 100÷5+2
= 20+2
= 22

です。

レベル100の場合は、

2×100÷5+2
= 200÷5+2
= 40+2
= 42

です。

レベルが上がると、 この部分の値も大きくなります。

つまり、 同じ技、同じ攻撃と防御の関係でも、 レベルが高いほどダメージは大きくなります。

対戦でよく使われるレベル50では、 この部分は22になります。

そのため、 レベル50のダメージ計算では、 まず 22×威力×攻撃÷防御÷50+2 のように見ることができます。

実際に簡単な例で計算してみる

ここで、 簡単な例を使って計算してみます。

条件を次のようにします。

  • レベル:50
  • 技の威力:100
  • 攻撃:150
  • 防御:100
  • タイプ一致なし
  • タイプ相性は等倍
  • 急所なし
  • 天候などの補正なし

まず、レベルの部分を計算します。

2×50÷5+2=22

次に、 技の威力と攻撃、防御を入れます。

22×100×150÷100÷50+2

順番に計算すると、

22×100=2200
2200×150÷100=3300
3300÷50=66
66+2=68

つまり、 補正を考える前の基本ダメージは、 68 です。

ただし、 実際のダメージには乱数がかかります。

そのため、 毎回ぴったり68ダメージになるわけではありません。

乱数補正とは何か

ポケモンのダメージは、 同じ技を同じ相手に使っても、 毎回完全に同じになるとは限りません。

これは、 ダメージ計算に 乱数補正 が入っているからです。

近年のダメージ計算では、 乱数補正はおおむね 0.85倍から1.00倍 の範囲でかかります。

もう少し具体的に言うと、 85、86、87、……、100の整数から1つが選ばれ、 それを100で割った値が使われます。

つまり、 次の16通りです。

0.85, 0.86, 0.87, ……, 0.99, 1.00

さきほどの基本ダメージ68に、 この乱数補正がかかると、 最低ダメージはだいたい

68×0.85=57.8

です。

実際の計算では小数点以下の処理が入るため、 おおよそ 57〜68 の範囲になります。

これが、 同じ技でもダメージが少しブレる理由です。

ダメージには0.85〜1.00倍の乱数補正が入る。 そのため、同じ技でも毎回まったく同じダメージになるとは限らない。

「確定1発」と「乱数1発」はどう決まるか

ダメージ計算でよく出てくる言葉に、 確定1発乱数1発 があります。

これは、 相手のHPと、 ダメージ範囲を比べて判断します。

たとえば、 相手のHPが60だとします。

こちらの技のダメージが、 乱数込みで57〜68だった場合、 どうなるでしょうか。

最低ダメージは57。

最高ダメージは68。

相手のHPは60。

この場合、 ダメージが60以上なら倒せますが、 57、58、59のような低い乱数を引くと倒せません。

つまり、 倒せることもあれば、 耐えられることもあります。

これが 乱数1発 です。

一方、 相手のHPが55ならどうでしょうか。

最低ダメージが57なので、 どの乱数を引いてもHP55を上回ります。

この場合は、 必ず1回で倒せます。

これが 確定1発 です。

逆に、 相手のHPが70なら、 最高ダメージ68でも届きません。

この場合は、 1発では倒せません。

相手のHP ダメージ範囲 結果
55 57〜68 確定1発
60 57〜68 乱数1発
70 57〜68 1発では倒せない

こう見ると、 確定1発や乱数1発という言葉は、 難しい用語というより、 相手のHPがダメージ範囲のどこにあるか を表しているだけだとわかります。

タイプ一致補正とは何か

次に、 タイプ一致補正を見てみます。

ポケモンでは、 自分のタイプと同じタイプの技を使うと、 ダメージが上がります。

これが タイプ一致 です。

一般的には、 タイプ一致の技は 1.5倍 の補正を受けます。

たとえば、 ほのおタイプのポケモンが、 ほのおタイプの技を使うと、 タイプ一致になります。

さきほどの基本ダメージ68に、 タイプ一致1.5倍がかかると、

68×1.5=102

です。

乱数なしで単純化すれば、 ダメージは102になります。

実際にはここに乱数などが絡みますが、 タイプ一致がダメージを大きく押し上げることはわかります。

ポケモンで 「タイプ一致技は強い」 と言われるのは、 この1.5倍補正があるからです。

タイプ相性はさらに大きい

タイプ相性も、 ダメージに大きく関わります。

効果抜群なら、 ダメージは2倍になります。

4倍弱点なら、 ダメージは4倍になります。

逆に、 いまひとつなら0.5倍。

4分の1なら0.25倍です。

たとえば、 基本ダメージ68の技が、 効果抜群で2倍になると、

68×2=136

になります。

さらにタイプ一致もあるなら、

68×1.5×2=204

です。

このように、 タイプ一致と効果抜群が重なると、 ダメージは一気に大きくなります。

逆に、 タイプ一致でも相手に半減されると、

68×1.5×0.5=51

になります。

つまり、 タイプ相性は、 攻撃や防御の能力値と同じくらい、 あるいはそれ以上に大きな影響を持つことがあります。

タイプ一致は基本的に1.5倍。 効果抜群は2倍、4倍弱点なら4倍。 タイプ相性はダメージを大きく変える。

なぜ攻撃を2倍にするとダメージもだいたい2倍になるのか

ダメージ計算式を見ると、 攻撃の値はかけ算で入っています。

そのため、 他の条件が同じなら、 攻撃が2倍になると、 ダメージもだいたい2倍になります。

たとえば、 攻撃150、防御100のとき、

攻撃÷防御=150÷100=1.5

でした。

攻撃が300になれば、

攻撃÷防御=300÷100=3

になります。

1.5から3になっているので、 ちょうど2倍です。

もちろん、 実際のダメージでは小数点以下の切り捨てや補正が入るため、 完全にぴったり2倍にならないこともあります。

それでも、 基本的には、 攻撃を上げるとダメージは大きくなります。

だから、 つるぎのまいやわるだくみのような能力上昇技は強力なのです。

防御を2倍にするとダメージはどうなるか

では、 防御が2倍になるとどうなるでしょうか。

ダメージ計算式では、 防御は割り算の下にあります。

つまり、 防御が大きいほど、 ダメージは小さくなります。

攻撃150、防御100なら、

150÷100=1.5

です。

防御が200になると、

150÷200=0.75

になります。

1.5から0.75なので、 半分になっています。

つまり、 防御が2倍になると、 ダメージはだいたい半分になります。

ここでも大切なのは、 ではなく です。

攻撃と防御の比率によって、 ダメージの大きさが決まっていきます。

ダメージ計算式は「比例」と「反比例」が混ざっている

数学的に見ると、 ポケモンのダメージ計算式には、 比例と反比例の考え方が入っています。

技の威力が大きくなると、 ダメージも大きくなります。

攻撃が大きくなると、 ダメージも大きくなります。

これは、 比例に近い関係です。

一方、 防御が大きくなると、 ダメージは小さくなります。

これは、 反比例に近い関係です。

かなり単純化して書けば、

ダメージ ∝ 威力 × 攻撃 ÷ 防御

のように見ることができます。

ここで使った 「∝」 は、 「比例する」 という意味です。

つまり、 ポケモンのダメージ計算は、 単なるゲームの裏側の話ではなく、 数学の比例・反比例の感覚ともつながっています。

なぜダメージ計算ツールでは幅が出るのか

ダメージ計算ツールを使うと、 結果が 「102〜120」 のように幅を持って表示されることがあります。

これは、 乱数補正によってダメージがブレるからです。

つまり、 ダメージ計算ツールが適当に幅を出しているわけではありません。

同じ条件でも、 乱数の値によって、 最低ダメージと最高ダメージが変わります。

その結果として、 ダメージに幅が出ます。

そして、 その幅と相手のHPを比べることで、 確定1発なのか、 乱数1発なのか、 確定2発なのかを判断します。

ここでも、 単に1つの数字を見るのではなく、 範囲 で考えることが大切です。

確定2発とは何か

確定1発と同じように、 確定2発 という考え方もあります。

これは、 2回攻撃すれば必ず倒せる、 という意味です。

たとえば、 相手のHPが100で、 こちらの技のダメージ範囲が57〜68だとします。

1発では倒せません。

しかし、 最低ダメージ57が2回入ると、

57+57=114

です。

相手のHP100を超えるので、 2回当てれば必ず倒せます。

これが確定2発です。

一方、 ダメージ範囲が45〜60で、 相手のHPが100ならどうでしょうか。

最高ダメージ60が2回なら120で倒せます。

しかし、 最低ダメージ45が2回だと90で足りません。

この場合は、 2回で倒せることもあれば、 倒せないこともあります。

つまり、 乱数2発になります。

ダメージ計算では、 こうした考え方を使って、 技の安定性を見ていきます。

式の中の「+2」は何をしているのか

ダメージ計算式には、 最後のほうに +2 が入っています。

(((2×レベル÷5+2) × 技の威力 × 攻撃 ÷ 防御 ÷ 50) + 2)

この+2は、 ダメージが極端に小さくなりすぎないようにするための基礎部分のように見ることができます。

もしこの+2がなければ、 低い威力の技や、 攻撃が低く防御が高い場面で、 ダメージがかなり小さくなります。

実際のゲームでは、 この+2も含めてダメージ計算式が作られています。

数学的に見ると、 これは 「完全な比例式ではない」 ことを意味します。

技の威力や攻撃にかなり比例してはいますが、 最後に+2があるため、 厳密には単純な比例だけではありません。

こういう小さな調整があるところも、 ゲームの計算式としておもしろい部分です。

実際の計算では切り捨てが入る

ここまで、 式の意味をわかりやすく見るために、 かなり単純化して説明してきました。

ただし、 実際のゲーム内計算では、 途中で小数点以下の切り捨てが入ります。

たとえば、 攻撃÷防御の結果が割り切れない場合、 そのまま小数を最後まで持ち越すわけではありません。

計算の途中で整数に直される場面があります。

また、 タイプ一致、タイプ相性、急所、天候、持ち物、特性など、 いろいろな補正がどの順番でかかるかも決まっています。

そのため、 完全に正確なダメージを出したい場合は、 専用のダメージ計算ツールを使うのが確実です。

この記事の目的は、 完全なダメージ計算ツールを手作業で再現することではありません。

むしろ、 ダメージ計算式の中で、 それぞれの要素がどのように働いているかを理解することです。

実際のゲーム内計算では、途中で切り捨てや補正順が入る。 ただし、式の大きな構造は「威力・攻撃・防御・補正」の関係として理解できる。

ダメージ計算式から見えるポケモンの戦略

ダメージ計算式がわかると、 ポケモンの戦略も少し見えやすくなります。

たとえば、 攻撃を上げる技は、 ダメージを大きくするために有効です。

防御を上げる技は、 受けるダメージを小さくするために有効です。

タイプ一致の技は、 1.5倍補正があるので強力です。

効果抜群を取れば、 ダメージが2倍、場合によっては4倍になります。

逆に、 相手に半減される技を打つと、 ダメージは大きく下がります。

こう考えると、 ポケモンバトルは単なる勘だけでなく、 かなり数学的なゲームでもあります。

もちろん、 実戦では読み合いや交代、持ち物、特性、状態異常など、 もっと多くの要素があります。

しかし、 ダメージ計算式を知っていると、 その土台にある数字の感覚が見えやすくなります。

数学として見ると何を学べるか

ポケモンのダメージ計算式からは、 数学のいろいろな考え方を学べます。

  • かけ算と割り算
  • 比例と反比例
  • 比の考え方
  • 小数やパーセント
  • 乱数による範囲
  • 最大値・最小値
  • 場合によって結果が変わること

特に大事なのは、 式を意味で読む ことです。

ダメージ計算式をただ暗記する必要はありません。

むしろ、 「この部分は何を表しているのか」 「この数が大きくなると結果はどう変わるのか」 と考えることが大切です。

これは、 学校の数学でも同じです。

公式は、 ただ覚えるだけではなく、 何を表しているのかを考えると理解しやすくなります。

ポケモンのダメージ計算式は、 その練習にかなりよい題材だと思います。

今回のまとめ

今回は、 ポケモンのダメージ計算式を、 数学の視点から見てみました。

ダメージ計算式は、 一見するとかなり複雑です。

しかし、 大きく見ると、 次のような構造になっています。

  • レベルが高いほどダメージは大きくなる
  • 技の威力が高いほどダメージは大きくなる
  • 攻撃・特攻が高いほどダメージは大きくなる
  • 防御・特防が高いほどダメージは小さくなる
  • タイプ一致やタイプ相性によってダメージは大きく変わる
  • 乱数補正によって、同じ技でもダメージには幅が出る

特に、 攻撃と防御の関係は、 差ではなく比で考えることが大切です。

攻撃が防御の何倍あるのか。

防御がどれくらい高いのか。

その比率が、 ダメージの大きさに大きく関わります。

また、 乱数補正があるため、 ダメージは1つの値ではなく、 ある範囲でブレます。

その範囲と相手のHPを比べることで、 確定1発、乱数1発、確定2発といった考え方が出てきます。

ポケモンのダメージ計算は、 ゲームの裏側にある計算式です。

しかし、 そこには比例、反比例、比、確率、範囲といった数学の考え方がたくさん入っています。

ただ技を使うだけでなく、 「なぜこのダメージになるのか」 と考えてみる。

そうすると、 ポケモンも数学も、 少し違って見えてくるかもしれません。

Feedback

この記事は参考になりましたか?

よろしければ「参考になった」を押してください。今後の記事づくりの参考になります。

0件のリアクション