努力値調整対戦考察

実数値調整についてまとめ

実数値調整 努力値調整

実数値調整

今回は何となく気が乗ったので、ポケモンの色々な実数値調整についてまとめてみました。前半に簡単な解説を、後半に証明等を交えた詳細な解説を載せているので、気になる部分だけをつまみながら読んでいただければ幸いです。

 

簡単な解説

前半では、各種調整について常体で簡単にまとめます。

 

①HP kn-1調整

HPの実数値をkの倍数-1にする調整。kには様々な自然数が入り、16n-1調整や8n-1調整などがある。

特性

1/kの定数ダメージを減らすことができる。

主に調整先として意識にされる定数ダメージは以下の表の通り。この中でも、1/16の定数ダメージを最小にする16n-1調整が最も有名。

効果
すなあらし いわ・じめん・はがねタイプ以外は
毎ターン最大HPの1/16のダメージ
あられ こおりタイプ以外は
毎ターン最大HPの1/16のダメージ
やけど 毎ターン最大HPの1/16のダメージ
どく 毎ターン最大HPの1/8のダメージ
もうどく nターン目に最大HPのn/16のダメージ
宿り木のタネ 毎ターン最大HPの1/8のダメージ
ステルスロック 繰り出し時に最大HPの1/8のダメージ
岩タイプの相性に準じて倍率が変わる
さめはだ
てつのトゲ
この特性を持つポケモンに接触した時
最大HPの1/8のダメージ
ゴツゴツメット この道具を持つポケモンに接触した時
最大HPの1/6のダメージ
いのちのたま この道具を持つポケモンが攻撃した時
最大HPの1/10のダメージ

使用方法

knを下回っていることor上回らないことに意義がある。knを下回るようにHPを減らして調整するか、knを上回らないようにHPを低めに抑えて調整すると自然と最適なkn-1調整になりやすい。

特に耐えたい攻撃もなく、無闇にHPを増やしてkn-1にするのは不適切。

 

②HP kn+1調整カビゴン

HPの実数値をkの倍数+1にする調整。kには様々な自然数が入る。

特性

最大HPの1/kを回復する効果の回復量を増やすことができる。現在は、食べ残しや黒いヘドロ、グラスフィールドなどの回復量を増やす16n+1調整以外はほとんど見られない。

使用方法

kn-1調整とは逆で、knを上回っていることor下回らないことに意義がある。kn以上になるようにHPを増やして調整するか、kn未満にならないようにHPを高く保って調整すると自然と最適なkn+1調整になりやすい。

耐久を削りたい訳でもなく、無闇にHPを減らしてkn+1にするのは不適切。

 

③H=B+D調整ムゲンダイナ

HP実数値=B実数値+D実数値となるように努力値を振る調整。耐久に努力値を振る耐久調整の過程で、努力値振りの効率を考える上での指標にされる。

特性

物理方面・特殊方面の両方を硬くしたい場合に指標にする。使用する努力値を最小限に抑えることができ、数値上最も効率の良い耐久調整を作ることができる。

使用方法

H=B+Dから離れていかないことに意義がある。HP実数値とB・D実数値の和を比較し、より低い方に努力値を振ってH=B+Dに近付けるように調整することで、最適な耐久調整を行うことができる。

元々H<B+Dのポケモンに努力値を振った結果、大小関係が大きく逆転してH>B+Dになってしまうような調整は不適切。その場合、高い方に振った努力値の一部を低い方に振り分けてH=B+Dに近付けることで効率が良くなる。

 

④H=B調整 / H=D調整ギルガルド

HP実数値=B実数値、またはHP実数値=D実数値となるように努力値を振る調整。こちらも、耐久調整を行う過程で指標にされる。

特性

物理方面、または特殊方面のどちらか一方について耐久調整を行う場合に指標にする。使用する努力値を最小限に抑えることができ、数値上最も効率の良い耐久調整を作ることができる。

耐久調整を行わない方の耐久効率については考慮されず、あくまで片面について見た場合のみ効率が良い。

使用方法

H=B+D調整と同様に、H=B/H=Dから離れていかないことに意義がある。HP実数値とB/D実数値を比較し、より低い方に努力値を振ってH=B/H=Dに近付けるように調整することで、最適な耐久調整になる。

元々H>Bのポケモンに努力値を振った結果、大小関係が大きく逆転してH<Bになってしまうような調整は不適切。その場合、高い方に振った努力値の一部を低い方に振り分けてH=Bに近付けることで効率が良くなる。

 

⑤11n調整

上昇の性格補正が掛かっている能力の実数値を11の倍数に合わせる調整。

特性

1.1倍の性格補正が掛かっている能力の実数値を11nに調整することで、他の能力に努力値を振るよりも多くの実数値を得ることができる。

使用方法

11n以上であることに意義がある調整だが、特段意識されるべき重要な調整ではない。

その実は、1.1倍補正による小数点以下の切り捨てがなく、11n-2→11nに上げる過程で努力値8で実数値2を得られるためオトクだというだけの話。

高ければ高いほど望ましい能力を、特に理由もなく11nまで削るような調整はあまり望ましいとは言えない。また、断続的な値である素早さについても、11n調整は適用されない。

 

詳細な解説・理論証明

前半で簡単に紹介した調整について、詳細に解説します。

 

①HP kn-1調整

「最大HPの1/kの定数ダメージ」の計算が小数点以下切り捨てで行われていることが原因で、同じ1/kのダメージでも最大HPに対する定数ダメージの割合が変わってくる。

1/16の定数ダメージを最小にする16n-1調整を例に考えてみたい。

HP実数値192(16n)の場合の定数ダメージは192÷16=12.00なのに対し、HPが1だけ低い191(16n-1)の場合は191÷16=11.9375になり、HP実数値を16n未満にすることで定数ダメージが1減っていることがわかる。最大HPに対する定数ダメージの割合を見ても、192は6.25%、191は5.76%になっており、実質的に定数ダメージがかなり減っている。

このように、kn以上かkn未満かで定数ダメージが変わるため、定数ダメージが増えてしまわないギリギリまでHPを伸ばそうという意図で考案されたのがkn-1調整というわけだ。

しかしここで注意して欲しいのが、kn-1調整はあくまでkn未満であることが重要なのであって、kn-1であろうがkn-3であろうが大きな差があるわけではない。

もう一度16n-1調整を例に挙げて、192(16n)、191(16n-1)、190(16n-2)、189(16n-3)の場合の定数ダメージと、定数ダメージを複数ターン食らった場合の残りHPについて比較してみたい。

1/16ダメ 1T後 2T後 3T後
192(16n) 12.0000 190 178 166
191(16n-1) 11.9375 190 179 168
190(16n-2) 11.8750 189 178 167
189(16n-3) 11.8125 188 177 166

16nと16n-1を比較すると、HPを高くしたはずの16nの方が数ターン後には残りHPが低くなってしまっており、ここから16nから16n-1にHPを減らすことの有用性がわかるだろう。

しかし、16n-1と16n-2,16n-3を比較した場合はどうだろうか? これらのHPについては定数ダメージが同じで、何ターンたっても元々余分に振られていた1や2のHP分の違いしかない。つまり、ただ単に189→191とわずかに耐久が上昇したに過ぎないということになる。

このように、knを下回ってさえいればkn-1であってもkn-2であってもそれらの特性に大差はない。そのため、1/kの定数ダメージを減らしたいだけなのであれば、knギリギリのkn-1にこだわる必要はないのだ。

 

さて、ここまでは厳密なkn-1調整の話を進めてきたが、最後にもう少し実用的な問題について補足しておきたい。

kn-1調整はknを下回るどうかでHPが1変わってくるといった内容の話だが、実際問題、たかだかHP1の違いが勝敗に影響する場面というのはそう多くない。

低耐久ポケモンなんかはHP調整をしたところでそれが活きる場面はほとんどないし、何ターンも居座る高耐久ポケモンであっても、定数ダメージが入る場面を想定してHP調整をするよりも純粋な耐久値を求めて可能な限りHPを高くした方が有用な場面が数多くある。

要するに、kn-1調整をするのが必ずしも最適とは限らないのだ。

ここまで細かく解説してきたもののkn-1調整に拘り過ぎる必要は全くなく、構築の特性やそのポケモンに与えたい役割をしっかり見極めた上でHP調整をすることのほうがずっと重要だということだけはしっかり覚えておいてほしい。

 

②HP kn+1調整カビゴン

kn-1調整と同様に、最大HPの1/kの回復量の計算が小数点以下切り捨てで行われていることが原因で、同じ1/kの回復でも最大HPに対する回復量の割合が変わる。

こちらも、kn以上かkn未満かが重要なのであって、kn以上であればkn+1であろうがkn+3であろうが効果に大きな違いはない。

食べ残しや黒いヘドロの回復量が最大になる16n+1調整を例に挙げて、191(16n-1)、192(16n)、193(16n+1)、194(16n+2)について実際に回復量を比較してみたい。

1/16の回復量 回復量/最大HP
194(16n+2) 12.1250 6.19%
193(16n+1) 12.0625 6.22%
192(16n) 12.0000 6.25%
191(16n-1) 11.9375 5.76%

16n-1と16n+1を比較すると、回復量が16n+1の方が大きくなっており、16n+1調整の有用性がよくわかる。

また16n+1と16n+2について比較してみると、二者の回復量は同じく12で、その違いは単に余分に努力値を振った分16n+2の方が少しHPが高いだけという結果になった。この結果から、16n以上であれば16n+1だろうが16n+2であろうがその効果に大差はないことがよくわかるだろう。

ここで勘違いがないように一つ補足しておきたいのだが、1/kの回復量が最大になるのは、実はkn+1ではなくknだったりする。実際に192(16n)と193(16n+1)を比較してみても、その回復量12の最大HPに対する割合は192(16n)の方が大きい。

しかし、(今回は詳細な解説を省くが)HPは奇数にしておいた方が都合の良い場合が多いため、16nに次いで効率が良く、HPを奇数にできる16n+1調整が実際は多く採用されている。

 

④H=B調整 / H=D調整ギルガルド

解説手順の都合で、H=B+D調整よりもH=B調整 / H=D調整を先に取り上げる。

そのポケモンの耐久の高さを表す値として耐久指数というものがあり、物理耐久指数:H×B、特殊耐久指数:H×Dのように積の形で表されている。基本はこの値が高ければ高いほど耐久値が高いと考えて問題ない。

H+B=一定(H+D=一定)という条件の下で努力値を振るとき、この耐久指数が最も高くなるのがH=B(H=D)の場合であるため、これらの式が耐久調整の指標とされている。H=B(H=D)で最大になることの証明は省略するが、縦の辺をH、横の辺をB(D)とした長方形について考えるとき、縦と横の長さが等しい正方形が最も面積が大きくなる様子から想像してもらえれば簡単に考えられるだろう。

 

ここからは、H×B(H×D)が耐久値の高さを表す耐久指数として適切なことを、決められた物理(特殊)攻撃を受けた時のダメージ計算式から導いていく。

技の威力や諸補正などを定数に含めてダメージ計算式を変形すると、以下のような式が得られる。ただし、A:相手の攻撃(特攻)、B:自分の防御(特防)とする。

( 定数 × AB ) × 定数 = ダメージ

「決められたポケモンから決められた攻撃を受けた時のHPバーの減り具合」から耐久値の高さを定義するため、相手の攻撃(特攻)を表すAを定数に含め、さらに両辺を自分のHP実数値で割ると、式は以下の通りになる。

定数 × 1HBダメージH

この式の右辺の「ダメージ/H」は、最大HPに対するダメージの割合を示しており、即ちHPバーの減り具合と同義になる。

つまり、

右辺が小さいほどHPバーの減り具合が小さい
⇒右辺が小さいほど耐久値が高い
⇒左辺の「1/HB」が小さいほど耐久値が高い
⇒逆数の「H×B」が大きいほど耐久値が高い

ということになり、よってH×B(H×D)が耐久の高さを表す耐久指数として適切なことが示された。

 

と、こんな感じでH=B(H=D)に近い方が少ない努力値で効率的に目標の耐久を得ることができるという解説を長々としてきたが、実はこの話はそこまで重要な話でもなかったりする。

H=B(H=D)を指標にする時は基本的に物理方面か特殊方面のどちらか片方のみの耐久調整をする場合で、「最効率」というのは調整しない方の耐久を無視した上での話になっている。しかし実際の対戦では無視した方の耐久を参照する攻撃も受けるため、実戦を意識するのであれば、なんだかんだ総合耐久が高くなるようにHPに多めに振られることが多い。

また、ダメージ計算中の切り捨て処理によっては、耐久指数の高さがそっくりそのまま攻撃を耐える確率の高さに繋がらない場合がある点にも注意しなければならない。実際に耐久調整をする時は、数値や理論を過信し過ぎず、耐えたい攻撃の乱数の動きを見ながらH=B(H=D)に近い最適な調整を見つけるのが良いだろう。

 

③H=B+D調整ムゲンダイナ

先述したH=B(H=D)調整と同様に、最も効率的に耐久指数が高くなるのがH=B+Dであるため、この式が耐久調整の指標にされている。

ただ、物理/特殊の片面のみを考える場合と比較して、両面を見る場合の耐久の高さを表す総合耐久指数は「HBDB+D」という訳の分からない式で表されるので、まずは耐久指数の式の導入から始めたい。

 

総合耐久指数を「同じ火力の物理攻撃・特殊攻撃を受けた時のHPバーの減り具合の平均」から再定義し、ダメージ計算式から総合耐久指数の式を導く。

H=B(H=D)調整の導入を参考に、同じ火力物理攻撃・特殊攻撃を受けた時のダメージの平均について考えると、以下のような式を得られる。

( 定数 × 1HB + 定数 × 1HD ) × 12ダメージ平均H

同じ火力の物理攻撃・特殊攻撃について考えているので、式中の「定数」は等しい。よって、1/2も含めて定数をまとめると、式は以下のようになる。

定数 × ( 1HB1HD ) = ダメージ平均H

この式の右辺の「ダメージ平均/H」は、最大HPに対する平均ダメージの割合を示しており、即ちHPバーの減り具合の平均を表している。

つまり、

右辺が小さいほどHPバーの減り具合が小さい
⇒右辺が小さいほど耐久値が高い
⇒左辺の「1HB1HD」が小さいほど耐久値が高い
⇒逆数の「HBDB+D」が大きいほど耐久値が高い

ということが分かり、よってHBD/B+Dが耐久の高さを表す総合耐久指数として適切なことが示された。

 

ここからさらに、H+B+D=一定という条件の下で努力値調整をする場合、H=B+Dになるパターンが最も総合耐久指数が高くなることを導く。

D=kB, s=H+B+D=H+B(1+k) とすると、

HBDB+DkHB2B+kBkHB1+kkH1+ks-H1+k

右辺をHについて微分すると、

ddHHBDB+D = ( s – 2H )・k(1+k)2

ddHHBDB+D=0について解くと、HBDB+D は s=2H で極大になる

よって、総合耐久指数はH=B+Dに近付けることで最も大きくなり、少ない努力値で目標の耐久値を得やすくなることが示された。

 

と、ここまでH=B+D調整について解説してきたが、これについてもH=B(H=D)調整と同様に、H=B+Dジャストにすることを絶対に意識しなければならない訳ではない。基本的に、H=B+Dから大きく離れて行ってしまわないように気を付けてさえいれば問題なくほぼ最適な調整を作ることができる。

基本は役割対象への乱数を見ながらいつも通りの調整をして、H=B+Dから離れる方向に努力値を振ると努力値損が発生することを頭の片隅に留めておく程度で十分だろう。

 

⑤11n調整

性格補正の1.1倍計算が小数点以下切り捨てで行われていることが原因で、上昇補正が掛かっている能力の実数値を11の倍数にすると小数点以下が0になって無駄がないという話。

通常、努力値と実数値の関係は努力値8:実数値1で変わることはないが、1.1倍の性格補正がかかった能力については、以下の表のように11n-2→11nに上がるタイミングで努力値8に対して実数値が2上昇する

努力値 20 28 36 44
×1.1実数値 184.8 185.9 187.0 188.1
×1.0実数値 168 169 170 171

そのため、他の箇所に努力値を振るよりも上昇補正がかかっている箇所に11nになるまで振った方がオトクだよねーという話。

しかし簡単な解説の方でも触れたが、この11n調整は個人的にはあまり有用だと思っていない。努力値調整は基本的に役割を決めて行うもので、オトクだろうがオトクじゃなかろうが役割対象に対して遂行が可能になる所まで努力値を振れば基本的に十分だし、漠然と出来るだけ高い実数値が欲しいような場合であっても、それこそ11nで留めずに振れるだけ振り切った方が良いと思っている。

ただ、役割対象を決めた上で自然と11n調整になっている調整は無駄が少なくてキレイだし、特に役割もなく適当に実数値を上げておきたい場合の一つの指標になったりはするので、完全に要らない調整というわけではないと思う。

 

補足:耐久調整の落とし穴ラプラス

性格補正が絡むと、H=B(H=D)や、H=B+Dが最適でない場合が出てきてしまうということについて話していきたい。説明が簡単なので、H=Bを例に挙げて話を進めたいと思う。

防御が上昇する性格補正などを採用するとH+B=一定という式が成り立たなるため、前提条件が崩れてH=Bが最適な調整とは言えなくなってしまう。

実際に、性格補正が掛かる前のB実数値をB’(B’×1.1=B)として考えてみると、物理耐久指数H×Bは、H×B’×1.1のように表され、性格補正が入る前のB’についてはH+B’=一定という式が基本成り立つことから、耐久指数はH=B’の時に最大になるように思える。

この理論について検証するため、適当なサンプルについてH=Bに合わせた調整とH=B’に合わせた調整を比較して見ていきたい。

サンプル①

HP実数値 B実数値 物理耐久指数
H=B 157 157(143×1.1) 24649
H=B’ 150 165(150×1.1) 24750

サンプル②

H実数値 B実数値 物理耐久指数
H=B 176 176(160×1.1) 30976
H=B’ 168 184(168×1.1) 30912

サンプル①を見ると、先ほど説明した理論の通りH=BよりもH=B’に合わせた調整の方が耐久指数が高くなっているが、サンプル②ではH=Bの方が耐久指数が高いという結果になった。この歪な結果の原因は1.1倍補正の小数点以下切り捨て計算にあり、11nを跨がない範囲では切り捨てによってH+Bが一定に保たれてしまっていることから発生している。

このように、単純に見える努力値調整にも見えづらい落とし穴が存在しており、それらを全て考慮しつつ最効率の調整を見つけ出すのは非常に難しい。

さらに、様々な検証を経て最適な調整を見つけられたとしても、それによって得られるのは誤差程度の僅かな耐久の上昇のみだ。最適が最善なのは間違いないかもしれないが、この程度の差は乱数次第で簡単に潰れてしまう。

要するに何が言いたいのかというと、H=BだとかH=B+Dだとかいう式を突き詰めたところで勝敗に与える影響は少なく、これらの式を過剰に意識する必要はないということをこの補足で伝えたかった。

これらはあくまで目安程度に留めて、役割対象からの乱数の動きを見たり、HP実数値の調整を入れたりしつつ、柔軟に調整するのがきっと一番良い調整方法なんじゃないかと思う。

 

後語り

以下敬体。

記事中で何度も繰り返している通り、今回紹介したような厳密な調整はポケモン対戦において必須と言える程重要なわけではありません。最効率の調整をしていても負ける人は負けるし、効率の悪い振り方をしていても勝てる人は勝てる、そういう程度のものです。実際、僅かな振り方の違いで勝敗が決する試合は百戦に一戦あるかないかと言っても過言ではないでしょう。

こんな知識をインプットするくらいなら、環境や構築についてなど、もっと勝ちに繋がる他の勉強をすべきです。

特に本記事後半のようなうんちく理論は、相当物好きな人以外は知っていなくてもいい知識です。ただ、調整の基本を抑えているとほんの僅かながら勝ちに近付くのもまた事実なので、うんちく理論しか考えられない物好きなりに簡潔に概要を伝えられればと思い、前半の内容を書かせていただきました。

少しでも何かの助けになっていれば幸いです。

自分なりに正確さと読みやすさのバランスを考えてまとめたつもりですが、もし読みにくい点や間違っている点などがありましたら申し訳ありません。

ということで、今回は以上です。
最後まで読んでいただきありがとうございました。

タイトルとURLをコピーしました