注目記事
【ポケモン剣盾】努力値調整を考えるために絶対に覚えておくべき基礎知識①

こんにちは、ポケモンソルジャーのakiba(@akibamonsterr)です。

ポケモン対戦とは互いにダメージを与え合うゲームなので当然その値を決定する「ダメージ計算式」は基礎情報であるはずなのですが、意外にもこの式について紹介しているサイトは少ないです。
そこで今回は、技のダメージがどうやって決まっているのかなど新作からポケモンを始めた人には是非知ってほしい知識から、ダメージ計算式から見えてくる豆知識など中級者以上の方に向けたものまで、ダメージ計算式に関する情報を紹介していこうと思います。

解説など細かい部分に興味がなく結論だけ見たい方は、最後の「まとめ」だけ見てください。

ダメージ計算式

これがダメージ計算式です。「各種補正」は道具や天候などの威力補正や、タイプ一致ボーナスや弱点補正などを表します。「0.85~1.00」の部分は"乱数幅"と呼びます。詳しくは後で説明します。

対戦では基本的にお互いのポケモンのレベルは50なので、この式の「攻撃側のレベル」に50を代入して「乱数幅」と「各種補正部分」を取り除き簡易化すると、

こういった式になります。さらに、「11/25」および「2」が定数であり、「基本ダメージ」に対して「2」が十分小さいとするならば、

上のように表すことができます。(∝:比例を表す)
これを見れば分かる通り、技の威力が高いほど、また相手の防御よりこちらの攻撃が高いほど与えるダメージは高くなります

ダメージ計算式はほとんど掛け算

始めの画像を見てもらえば分かる通り、ダメージ計算式はほとんど掛け算で構成されています。威力60の「がんせきふうじ」と75の「いわなだれ」の威力は15しか違わないため、一見大した差が無いように思えます。しかし、実際に計算してみると1.25倍、つまり「かえんほうしゃ」と「だいもんじ」の差と同じ程度のダメージ差が出てしまいます。

乱数

対戦をこなしていくと、同じ技を同じポケモンで同じ相手に撃っているのにも関わらず、微妙に異なるダメージが入ったという経験をすると思います。これはダメージ計算式にある「乱数」、画像の「0.85~1.00」の部分によって発生する現象です。

この乱数とは具体的に、
{0.85, 0.86, 0.87, 0.88, 0.89, 0.90, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1.00}
の16通りの数字の中からランダムに選ばれた値になります。この16通りの数字のいずれかがダメージの最後に掛け算され、最大値は基本ダメージのまま、最低値は基本ダメージの0.85になります。

つまり、技によって与えるダメージは常に一定ではなくそれぞれ16通り存在し(同じダメージ量になることもあるため正確には16通り以下)、期待できる最大のダメージは最小のダメージのおよそ1.2倍にもなります。

上の画像は142(252)ミミッキュが163-95(0-0)ドラパルトに対して「いのちのたま」持ち「シャドークロー」を撃った場合のダメージ計算です。そして、画像の赤枠で囲まれた部分が与ダメージ量の16パターン、乱数幅です。

この時、ドラパルトのHPは163なので(164,164,166,166,172,172,174,174,179,182,182,187)のいずれかのダメージ乱数が選ばれた場合倒せるということになります。
これは合計12通りで、全乱数は16通りなので、珠ミミッキュの「シャドークロー」はドラパルトを12/16で倒せる、つまり75.0%の乱数1発であるとわかります。

最低乱数以外1発

この表現は乱数幅の最低値、上のダメ計で言うと156を引かなければ相手を倒せるという意味です(=93.7%の乱数1発)。また、「最高乱数以外耐え」という一番上のダメージを引かなければ耐えるという表現もよく使われます(=6.3%の乱数1発)。

火力・耐久指数

ここまではただダメージ計算式について説明してきました。次は上で紹介したLv.50時のダメージ計算式を使ってポケモンの攻撃、耐久を評価する値を作ろうと思います。

ポケモンが技を受けて瀕死になるかならないかどうかは技のダメージが受けるポケモンのHPより大きいか小さいかで判定しているので、これを式で表すと、

上のようになります。

この式を攻撃に関する値は左辺に、防御に関する値は右辺に来るよう変形すると、

このようになります。(見やすさのために乱数幅の部分を「乱数」と表記してあります)

さらに、今回は簡易的な指標を得ることが目的なので、「HP/(補正×乱数)」が「2」より十分大きいとみなし、

上の式を得ます。

11/25は定数で、「各種補正×乱数」部分は同一のポケモンであってもその時々で変動する値であり事前の議論が難しいため、「威力×攻撃」「HP×防御」をそれぞれ、あるポケモンが任意の技を撃った場合の火力の高さと、あるポケモンの耐久力の高さを表す指標とし、それぞれ

「威力×攻撃」を火力指数、「HP×防御」を耐久指数

と呼びます。
つまり、火力指数「威力×攻撃」が高いほどその攻撃の火力は高く、耐久指数「HP×防御」が高いほどそのポケモンの耐久は高いので、これらはそれぞれ火力・耐久の比較に使用できます。

耐久指数の最大化

あるポケモンを最大限堅くしたい場合、努力値を一切振っていないならばHPと防御どちらにも252ずつ振れば最も堅くなるのは誰にでもわかることですが、すでに他の箇所に努力値を振っていて、そうするわけにもいかない場合はどうすれば最も堅くなるでしょうか?こういう場合に「耐久指数」が活躍します。

努力値をどこに振っても最初は4、それ以上は8ずつ振ると実数値が1上がるという法則は不変なので、任意の努力値を振り分けた際のHPと防御の値の和は常に一定でこれをZとします。

下の式を変形して、

これを上の式に代入し変形すれば、後は通常の2次関数の最大値を求めるのと同じなので、

より、HPがZ/2の時に耐久指数は最大となります。(ここが分からない人は「平方完成」で検索してください)
ここで、    HP+防御=Z
より      防御=Z/2
となり、つまり HP=防御
となります。

以上のことから、HPと防御の値が等しくなる時、最も耐久指数が高くなるということがわかりました。
HPと防御の低い方に努力値を振ることで2つの数値が近付き、ポケモンがより堅くなるということですね。

ここに、素早さに性格補正をかけ努力値を252振ったジュラルドンがいます。このジュラルドンの物理防御を最大にするにはどうすれば良いでしょうか。
努力値256を2つのステータスに振り分けた場合上昇するステータスの合計は33なので、HPの努力値による上昇幅をh、防御の上昇幅をbとすると、

上のように表せます。下3つの式を変形し上の式に代入すると、

となるため、h=23/2のとき耐久指数は最大となります。
つまり、HP=156.5, 防御=156.5のようにHPと防御の値が等しいとき最も物理防御が堅くなるわけですが、ポケモンの実数値に小数点以下は存在しないため、

HP=157, 防御=156 または HP=156, 防御=157
となるようにこのジュラルドンを育てれば良いというわけです。

ではこの耐久指数の法則に従った場合とそうでない場合でどれくらいの差が生まれるのでしょうか
分かりやすくHPが極端に高いカビゴンで計算してみます。

HP実数値防御実数値
4振り23686
252振り267117

上の表より、HPに252振りをした場合のカビゴンの物理耐久指数は267×86=22,962になるのに対し、防御に252振りした場合は236×117=27,612にもなります。
「27,612÷22,963≒1.2」より、防御252振りするとHPに252振りするよりもおよそ1.2倍堅くなることが分かります。

HP=防御+特防

ここまで防御、あるいは特防どちらか1つの耐久指数について話してきましたが、このどちらも最大とするにはどうすれば良いのでしょうか。

耐久指数の最大化の時と同様に、努力値をどこに振っても最初は4、それ以上は8ずつ振ると実数値が1上がるという法則は不変なので、任意の努力値を振り分けた際のHPと防御と特防の値の和は常に一定でこれをSとします。

下3つ上の式に代入して変形すると、

といった式が得られ、物理耐久指数は

の時に最大となります。
また、特殊耐久指数=HP×特防、特防=k防御なので
特殊耐久も「防御=S/2(1+k)」のとき、つまり「特防=Sk/2(1+k)」で最大となります。

物理耐久指数、特殊耐久指数のどちらも最大となるとき、S=HP+防御+特防より、

となるため、

が得られます。

つまり、HP=防御+特防となっているとき総合的な耐久が最も高くなります

以前投稿したこのドリュウズの調整も実はHP=防御+特防となるよう調整されています。

まとめ

今回の内容を要約すると

・ダメージ計算には「乱数」という部分があって、毎回与えるダメージがランダムに決定される(16パターン)。
・攻撃×技の威力を「火力指数」、HP×防御(or特防)を「耐久指数」と呼び、それぞれ高いほど与えるダメージが大きく、受けるダメージが小さくなる。
・耐久指数を最大化するにはHPと防御(or特防)の低い方に努力値を振って、なるべく2つを近付けると良い。
・防御、特防の両方面を最大にしたい場合はHP=防御+特防になるように努力値を振ると良い。

となります。
ポケモンの配分や育成論を考えるときに役立つ知識ばかりなので、ぜひ覚えてほしいです。

part2は総合耐久指数やHPを奇数にする理由などを話せればと思っています。最新の投稿を見逃さないためにも、公式アカウント(@Pokeso_info)のフォローをお願いします。

Twitterでフォローしよう