fc2ブログ

記事一覧

メガリザードンYの能力調整 ―― 総合能力指数と努力値振りの原則

4ヶ月間が開きました。更新前に一回レート1位を取っておきたかったんですが、シーズン12は結局2位でした。レート決定の6時間前時点では1位だったんですけどね。「当日朝に確認して1位だったらそのままスルー、2位以下に落ちていたら現1位を抜けるところまでレートを上げる」なんていうこすいことを考えず、もう1~2試合やって2位を離しといた方が良かったかな……(朝の時点で1位だったからスルーしたら、朝になってからもう1~2試合した人がいました)。といっても1位の状態で試合したら期待値的には確実にレート下がるんだよなあ……。



さて、戦略記事の更新です。
前回までで『先攻前提のポケモンの実質能力』『後攻前提のポケモンの実質能力』を求めました。今回は当然『先手を取るか後手に回るか分からないポケモンの実質能力』です。
これは要するに、火力・耐久・速度の全てをひっくるめたポケモンの総合的な力、と言い換えることができます。このブログを始めた当初には単なる能力値の合計だけでポケモンの能力を比較していたものを、より現実に近いモデルを使って総合的に判断しようというものです。
すなわち、今回の記事は、これまでの戦略記事の集大成といってもいいです。それを利用すれば効率的な努力値の振り方も調べられるため、『ポケモンバトルに通底する努力値振りの原則』を調べることもできます。ただしこの計算は物凄く複雑で、断言しますが、今回は(今回も)数学が嫌いな人にとっては地獄です。高校生の知識で理解できる内容ではありますが(偏微分くらいは、学校で習っていなかったとしてもまあ調べればすぐに分かるでしょう)、自分で書いていて混乱したくらいに計算が複雑でした。
というわけで、嫌になるくらいに長々と計算過程を書き連ねますが、おおまかな結論を知るだけならば下の方にある表を見ておけば十分です。ただし自分が計算ミスをしていない保証はありません。



では、「火力耐久速度の全てを考慮したポケモンの実質能力」――総合能力指数Zを求めに行きましょう。
ちなみに今回も特殊アタッカーを想定しています。物理アタッカーの場合はCをAに変えるだけです。二刀流は知らん。

総合能力指数Z=瀕死になるまでに相手に与えた総ダメージ量=行動回数×一撃のダメージ-オーバーキルによって無駄にしたダメージ量

とします。更に前回と同様、

オーバーキルによって無駄にしたダメージ量=倒した敵の数×一撃のダメージ×1/2

とします。
で、先手を取るか後手に回るか分からないポケモンの行動回数をどう設定するかですが、これは先手のポケモンの行動回数を参考にすれば比較的わかりやすいです。

確定先攻のポケモンの行動回数=攻撃を耐える回数+倒した敵の数+1

でした。この各項が発生したターンについてそれぞれ考えてみると、
第一項……お互いに倒されなかったターン
第二項……こちらが相手を倒したターン
第三項……こちらが倒されたターン
という風に考えることができます。後攻の場合には、第三項のターンには行動できず、第二項のターンにも攻撃は受けるから第一項しか存在しないわけですね。

という風に考えると、

ポケモンの行動回数=攻撃を耐える回数+先手で倒した敵の数+倒されたターンの行動回数

と考えることができます。第三項は、倒されたターンに先手だったら1、後手だったら0です。また、前回と同様

倒した敵の数=nZ、攻撃を耐える回数=V、

です。ここで、先攻確率をとすると、先手で倒した敵の数の期待値=nPZ、倒されたターンの行動回数の期待値=Pとなるため、

ポケモンの行動回数=V+nPZ+P

となります。
前回と同様に一撃のダメージ=mCとすると、

総合能力指数Z=(V+nPZ+P)×mC-nZ×mC×1/2

という式が立ちます。これを解いて、

Z=mC(V+P)/{1+mnC(1/2-P)}

という解が出ました。P→1でZ→Y、P→0でZ→Xです。
これが総合能力指数、すなわち『火力耐久力速度をすべてひっくるめたポケモンの総合的な強さ』です。

で、問題となるのはこのPの値です。Pは先攻確率ですから素早さの関数ということになりますが……一体どんな形の関数なんでしょうね? 基本は素早さに対して単調増加なわけですが、相手の素早さの分布が均等ではないので相当複雑な形状をしていることが予想されます。
ここら辺は統計的なデータを取ってみないと設定しづらいんですが、統計的なことを持ち出すと話が面倒くさくなるので、ここではP=a+bSという一次関数で近似することにします。少々乱暴な話ですが、まあS100~200あたりの中速ならそんなに大きく間違ってもいないでしょう。それ以下になるとトリックルームが絡む確率が跳ね上がるので話がややこしくなってきますが。

更に前回までの話と合わせると、


総合能力指数Z= mC(V+P)/{1+mnC(1/2-P)}

P : 先攻確率= a+bS(a,bは定数)
V : 攻撃を耐える回数= 2T ln(2T/k) /l - (2T-k) /2l (kは受けるダメージ×自分の防御or特防の下限値、lは上限値)
T : 総合耐久指数=HBD/(B+D)
m : 特攻と与えるダメージの比例定数(すなわち、一撃のダメージ=mC)
n : 相手のHPの逆数

となります。効率的な振り方というのはこのZを最大化するような振り方です。

さて、ここから先は努力値の振り方の話になります。
偏微分した値が等しくなれば最大になるため、

∂Z/∂H=∂Z/∂C=∂Z/∂S

です。BとDについては総合耐久指数を出した時と同様の配分をすればいいだけのため割愛します。

∂Z/∂H=∂T/∂H×∂V/∂T×∂Z/∂V
   =T/H×(2ln (2T/k)+1)/l×mC/(1+mnC(1/2-P))
∂Z/∂C=[m(V+P){1+mnC(1/2-P)}-mC(V+P)mn(1/2-P)]/{1+mnC(1/2-P)}^2
   =m(V+P)/{1+mnC(1/2-P)}^2
∂Z/∂S=∂P/∂S×∂Z/∂P
   =b×[mC{1+mnC(1/2-P)}+mC(V+P)mnC]/{1+mnC(1/2-P)}^2
   =bmC{1+mnC(1/2+V)} /{1+mnC(1/2-P)}^2

これに加えて、H+C+S=constという条件を加えれば、変数3つに式3つですから解は求まることになります。
……が、対数が混じっているので解析的には解けません。また、解析解を出せたとしても、どうせ種族値の壁に阻まれてその通りの能力配分にすることなんかできません。なのでここではざっくりした傾向だけ調べてみましょう。

その前に、少しだけ言葉の定義を見直しておきます。
まず、『火力』という単語は『一撃で与えるダメージの平均値』としてください。これは特攻だけでなく技威力やら特性やら攻撃タイプやらまで含みます。特攻はC、火力はmCで表します。
次に『耐久力』という単語はHP・防御・特防・耐性・特性の全てをひっくるめた総合的な硬さのことだと考えてください。
最後に『先攻確率』はそのまま、先手を取る確率のことです。これは素早さだけでなく特性や技も含みます。
これらの定義を先にはっきりしておかないと曖昧になることも出てくるので先に言葉の定義をしておきました。

さて、それでは本題に入ります。
とりあえず全ての能力が平均的なポケモンを想定します。一撃で与えるダメージmC100、先攻確率P=0.5程度として、耐久に関しては、防御回数期待値V=1.5とします。耐久の具体的な中身はH=200B=D=1002T/k(=最大HP/最低ダメージ=攻撃を耐えるmaxの回数)=4.52T/l(=最大HP/(最大ダメージ-最低ダメージ))=1とすると、

∂Z/∂H= T/H×(2ln (2T/k)+1)/l×mC/(1+mnC(1/2-P))
   ≅1

∂Z/∂HというのはHを1上げた場合に上昇するZの量です。つまり、上述の能力を持つポケモンのHPを1上げると、瀕死になるまでに相手に与えるダメージの期待値が1くらい増えるということです。

特攻については、mC=100なので、計算しやすいようにm=0.5C=200とすると、
∂Z/∂C=m(V+P)/{1+mnC(1/2-P)}^2
   ≅1
です。

上述の能力を持つポケモンの特攻を1上げると、瀕死になるまでに相手に与えるダメージの期待値が1くらい増えるということです。

素早さは、相手のHPの逆数であるn0.005、素早さが1上がることに上昇する先攻確率であるb0.005程度とすると、
∂Z/∂S= bmC{1+mnC(1/2+V)} /{1+mnC(1/2-P)}^2
   ≅1
となります。

すなわち、上述の能力を持つポケモンの場合、HP、特攻、素早さのどれを1上げた場合でも、瀕死になるまでに相手に与えるダメージが1くらい増えるということです。

さらに、
∂T/∂H=BD/(B+D)、∂T/∂B=HD^2/(B+D)^2で、B=D=100、H=200を代入すると、∂T/∂H=∂T/∂B=∂T/∂Dなので、このポケモンの場合はHPと防御と特防の3つの価値が等しいです。

つまり、
原則1 : 全てが平均的なポケモン(HP=200、B=D=100、C=200、m=0.5、P=0.5を想定)の場合、HP・防御・特攻・特防・素早さの全ての価値がおおむね等しい。

となります。まあ実際には、平均的なポケモンのHPや特攻はもう少し低いとか、BDやmはもう少し高いとかはあると思いますが(ちなみに、m=0.5というのは『タイプ一致威力85の技を常に等倍で通すポケモン』くらいです)、計算しやすくするためにこういう値を想定しました。
というのを前提として上で、どこの能力が上がるとどこの能力がより上がるのかを考えてみる……前に、少しだけ式をすっきりさせておきます。

∂Z/∂H : ∂Z/∂C : ∂Z/∂S
= T(2ln (2T/k)+1)mC/Hl(1+mnC(1/2-P)) : m(V+P)/{1+mnC(1/2-P)}^2 : bmC{1+mnC(1/2+V)} /{1+mnC(1/2-P)}^2
=(1+mnC(1/2-P)) T(2ln (2T/k)+1)mC/Hl : m(V+P) : bmC{1+mnC(1/2+V)}

なので、こっちの式を使います。まあ、全部の分母に{1+mnC(1/2-P)}が入ったまま計算するのは純粋に面倒くさくなるだけだからすっきりさせたというだけです。

では、まずは特攻が200よりも上がった場合から調べてみます。
∂Z/∂H×{1+mnC(1/2-P)}^2∂Z”/∂H、以下∂Z”/∂C∂Z”/∂Sとすると、

∂(∂Z”/∂H)/∂C= mT(2ln (2T/k)+1)( 1+2mnC(1/2-P))/Hl
∂(∂Z”/∂C)/∂C=0
∂(∂Z”/∂S)/∂C=bm{1+mnC(1/2+V)}


となります。2つ目だけ0で他は正の数なので、要するに、特攻が上がるほど特攻の価値は相対的に下がるということです。
1つ目と3つ目に関しては、さっきの平均的なポケモンの能力を流用して、m=0.5T/l=0.52ln (2T/k)+1=4V=1.5P=0.5とすると、

∂(∂Z”/∂H)/∂C= T(2ln (2T/k)+1)( 1+2mnC(1/2-P))/Hl=0.005
∂(∂Z”/∂S)/∂C =b{1+2mnC(1/2+V)}=0.0075

で、特攻が上昇した場合、素早さの価値の上昇幅の方が大きいです。また、火力が上がった場合、さっきの想定よりも2mnCの値が大きくなっているはずで、その量も考慮するとこの値よりも更に素早さの価値が大きく上昇するということになります。

次に特攻以外の火力に関わる係数(技威力や特性や攻撃範囲)をひっくるめた数mで微分した場合、

∂(∂Z”/∂H)/∂m= CT(2ln (2T/k)+1)( 1+2mnC(1/2-P))/Hl
∂(∂Z”/∂C)/∂m=V+P
∂(∂Z”/∂S)/∂m=bC{1+2mnC(1/2+V)}

さっきと同じm=0.5T/l=0.52ln (2T/k)+1=4、V=1.5、P=0.5、更にC=200とした概算をすると、

∂(∂Z”/∂H)/∂m=2、∂(∂Z”/∂C)/∂m=2、∂(∂Z”/∂S)/∂m=3

つまり、特攻以外の部分での火力が上昇した時、HP≅特攻<素早さの順で価値が上がるということです。また、∂(∂Z”/∂C)/∂mはPが唯一正の項にかかっているため、先攻確率が高いポケモンだと特攻の価値の上昇量がより大きくなります。Vが一番ダイレクトに効いているのも∂(∂Z”/∂C)/∂mですから、耐久力が高いポケモンの場合も特攻の価値の上昇量が大きくなります。一方、Cが唯一かかっていないため、特攻が高いポケモンだと相対的に他2つと比べて特攻の価値の上昇量は下がります


まとめると、

原則2 : 特攻が上昇した場合、特攻<<HP<素早さの順で価値が上がる
原則3 : 火力が上昇した場合、火力と先攻確率が高いポケモンだと素早さの価値、耐久力が高いポケモンだとHPの価値がより大きく上昇する
原則4 : 特攻以外の部分での火力が上昇した場合、HP≅特攻<素早さの順で価値が上がる
原則5 : 特攻以外の部分での火力が上昇した場合、特攻の価値の上昇量は、特攻が高いポケモンの場合は下がり、先攻確率・耐久力が高いポケモンの場合は上がる

が、火力に関わるパラメータが上昇した時の原則になります
ちなみにmやCが低くなった場合は真逆の変化をするだけです。

次に先攻確率が想定よりも高くなった場合です。

∂(∂Z”/∂H)/∂P=-nT(2ln (2T/k)+1)(mC)^2/Hl
∂(∂Z”/∂C)/∂P=m
∂(∂Z”/∂S)/∂P=0

これは凄く簡単ですね。一番上が負、二番目は正、3番目は0なので、∂(∂Z”/∂H)/∂P<∂(∂Z”/∂S)/∂P<∂(∂Z”/∂C)/∂Pです。
また、中身を具体的に見てみると、mが全ての項にかかっています。なので特攻以外の火力が上昇すると上の変化がより大きくなるといえます。T(2ln (2T/k)+1)/Hは耐久力とともに上昇するので、耐久力が上がれば上がるほど、先攻確率が上昇した場合のHPの価値の下降量が大きくなります

まとめると、

原則6 : 先攻確率が上昇した場合、HP<素早さ<特攻の順で価値が上がる
原則7 : 先攻確率が上昇した場合、特攻以外での火力が高いポケモンの場合は上述の傾向がより顕著になる。また、耐久力が高いポケモンの場合はHPの価値の下がり幅がより大きくなる。

が、先攻確率のパラメータの変化に伴う原則です。先攻確率が減少した場合は真逆の変化をします。

最後は耐久力が想定よりも高くなった場合です。まずはHPで偏微分すると、

∂(∂Z”/∂H)/∂H=2(1+mnC(1/2-P))mCBD /Hl(B+D)
∂(∂Z”/∂C)/∂H=m(2ln (2T/k)+1)BD/l(B+D)
∂(∂Z”/∂S)/∂H=bn(mC)^2×(2ln (2T/k)+1)BD/l(B+D)

全てにかかっている係数であるmBD/l(B+D)を取り除くと、

∂(∂Z”/∂H)/∂H : ∂(∂Z”/∂C)/∂H : ∂(∂Z”/∂S)/∂H
=2(1+mnC(1/2-P))C/H : 2ln (2T/k)+1 : bmnC^2×(2ln (2T/k)+1)

これまで通りに平均的なパラメータを当てはめて見ると、

≅2 : 4 : 2

なので、HPが上昇した場合、HP≅素早さ<特攻の順で価値が上昇するといえます。
更に具体的な中身を見てみると、火力mCは∂(∂Z”/∂H)/∂Hと∂(∂Z”/∂S)/∂Hにかかっていますが、前者は(1/2-P)をかけているので影響はほぼ0。つまり、火力が高いポケモンの場合はHPが上がったときの素早さの価値の上昇量が大きい、ということです。
次に耐久力Tは∂(∂Z”/∂H)/∂Hの場合はHPの形で分母に、他2つはTの形で正方向かかっているため、耐久力が高いポケモンの場合、HPが上がったときのHPの価値の上昇量が小さく、特攻と素早さの価値の上昇量が大きい、ということです。
最後に先攻確率Pは∂(∂Z”/∂H)/∂Hに負の形でかかっているため、先攻確率が高いポケモンの場合は、HPが上がったときのHPの価値の上昇量が小さいということです。

まとめると、

原則8 : HPが上昇した場合、HP≅素早さ<特攻の順で価値が上がる
原則9 : HPが上昇した場合の、HPの価値の上昇量は、耐久力や先攻確率が高いと小さくなる。特攻の価値の上昇量は、耐久力が高いポケモンだと大きくなる。素早さの価値の上昇量は火力や耐久力が高いポケモンだと大きくなる

最後にBとDと耐性をひっくるめた、『HP以外での耐久力』が変化したときのパラメータの価値の変動を調べます。BD/(B+D)で微分すれば話は簡単で、実際にはこれに耐性の強さも絡みますが、それは定数倍なのでBD/(B+D)に比例する量なので増減の関係を調べるだけならばBD/(B+D)で偏微分したものと同じになります。
BD/(B+D)で微分すると、

∂(∂Z”/∂H)/∂{ BD/(B+D)}=(1+mnC(1/2-P)) (2ln (2T/k)+3)mC/l
∂(∂Z”/∂C)/∂{ BD/(B+D)}=m(2ln (2T/k)+1)H/l
∂(∂Z”/∂S)/∂{ BD/(B+D)}=bn(mC)^2×(2ln (2T/k)+1)H/l

全てにlをかけた上で概算すると、

∂(∂Z”/∂H)/∂{ BD/(B+D)} : ∂(∂Z”/∂C)/∂{ BD/(B+D)} : ∂(∂Z”/∂S)/∂{ BD/(B+D)}
≅600 : 800 : 400

よって、HP以外の部分での耐久力が上がった場合、素早さ<HP<火力の順で価値が上昇する、といえます。
更に中身を見ると、耐久力に関しては、∂(∂Z”/∂H)/∂{ BD/(B+D)} は(2ln (2T/k)+3) が、(2ln (2T/k)+1)Hがかかっています。見れば分かりますが後者の方が耐久力の影響が大きいので、耐久力が高いポケモンの場合、それ以上耐久力が上がったときの特攻と素早さの価値の上昇量が大きい、ということです。他の部分はHPの場合と同じなので、

原則10 : HP以外の部分での耐久力が上昇した場合、素早さ<HP<特攻の順で価値が上がる
原則11 : HP以外の部分での耐久力が上昇した場合の、HPの価値の上昇量は、耐久力や先攻確率が高いと小さくなる。特攻の価値の上昇量は、耐久力が高いポケモンだと大きくなる。素早さの価値の上昇量は火力や耐久力が高いポケモンだと大きくなる

お疲れ様でした。これが、ポケモンに通底する努力値振りの11個の原則です。

全てまとめますと、

努力値振りの11原則

原則1 : 全てが平均的なポケモン(HP=200、B=D=100、C=200、m=0.5、P=0.5を想定)の場合、HP・防御・特攻・特防・素早さの全ての価値がおおむね等しい

原則2 : 特攻が上昇した場合、特攻<<HP<素早さの順で価値が上がる

原則3 : 火力が上昇した場合、火力と先攻確率が高いポケモンだと素早さの価値、耐久力が高いポケモンだとHPの価値がより大きく上昇する

原則4 : 特攻以外の部分での火力が上昇した場合、HP≅特攻<素早さの順で価値が上がる

原則5 : 特攻以外の部分での火力が上昇した場合、特攻の価値の上昇量は、特攻が高いポケモンの場合は下がり、先攻確率・耐久力が高いポケモンの場合は上がる

原則6 : 先攻確率が上昇した場合、HP<素早さ<特攻の順で価値が上がる

原則7 : 先攻確率が上昇した場合、特攻以外での火力が高いポケモンの場合は上述の傾向がより顕著になる。また、耐久力が高いポケモンの場合はHPの価値の下がり幅がより大きくなる

原則8 : HPが上昇した場合、HP≅素早さ<特攻の順で価値が上がる

原則9 : HPが上昇した場合の、HPの価値の上昇量は、耐久力や先攻確率が高いと小さくなる。特攻の価値の上昇量は、耐久力が高いポケモンだと大きくなる。素早さの価値の上昇量は火力や耐久力が高いポケモンだと大きくなる

原則10 : HP以外の部分での耐久力が上昇した場合、素早さ<HP<特攻の順で価値が上がる

原則11 : HP以外の部分での耐久力が上昇した場合の、HPの価値の上昇量は、耐久力や先攻確率が高いと小さくなる。特攻の価値の上昇量は、耐久力が高いポケモンだと大きくなる。素早さの価値の上昇量は火力や耐久力が高いポケモンだと大きくなる


表にしてまとめると、下のようになります。ぶっちゃけここまでの内容を理解していなくとも下の表だけ見ておけば実用は可能です。
内容を理解できなかった人のために補足しておくと、∂Z”/∂HHPの価値∂Z”/∂C特攻の価値∂Z”/∂S素早さの価値という認識でいいです。P先攻確率mは技威力や特性のような『特攻以外の火力に関するもの』をひっくるめた数字です。

総合能力指数

※大きく増加≅増加の2倍、かなり増加≅増加の1.5倍と考えてください。

さて、これで傾向は求まったので、実際にこの表をポケモンに適用してみましょう。今回は例としてメガリザードンYを見てみます。
charizard-megay.gif

とりあえずは具体的な数値ではなく定性的な傾向だけ調べると、、

メガリザードンYの特攻以外の火力……日照りに加えて、熱風というそこそこの威力の範囲攻撃持ち。メイン技のタイプも悪くない上に相性のいいサブウエポンのソーラービームも備えている。少なくとの0.5よりはずっと高い。
メガリザードンYの特攻……普通に振ったらC200前後なので影響しない。
メガリザードンYの先攻確率……S100は速いとはいえないかもしれないが遅くもない。まあ1/2よりは高いくらいか。
メガリザードンYのHP……極振りしても200には届かない。
メガリザードンYのHP以外の耐久……メガシンカなのでBDは高い。タイプに関してはダブルバトルで猫騙しの次にメジャーな技で4倍弱点を突かれるのがかなりマイナスだが、日照りで水弱点を打ち消していることを合わせれば実質弱点2つなのでそこまで悪くもないか。BDとあわせて高めとしておく。

くらいの感じですかね。最大の特徴は火力が鬼のように高いことで、素早さと耐久力はまあ中の上くらい。

mが凄く高い……Sの価値が大きく増加。P、T、Cは平均として想定したポケモン程度なので備考欄は影響なし。
Cが200前後……平均として想定したポケモン程度なので影響なし。
Pは0.5より少し高いくらい……ほんの少しだけCの価値が増加、Hの価値が減少。
Hは200には及ばない……表と真逆の変化をするので、相対的にCの価値が少しだけ減少。
HP以外の耐久力が高い……相対的にCの価値が少しだけ増加、更に少しだけHPの価値が増加

となります。

まあ見れば分かりますが、m以外のパラメータは平均を大きく逸脱はしていないのでさほどの変化はありません。mが無茶苦茶高いのがリザードンの最大の特徴なので、断言できることはただ1つ、素早さの価値が他よりも高いということです。極振りしても全然足りないくらいなので、Sに極振りすることだけは何があっても確定、となります。

残りはHPと特攻に配分するわけですが、ここのバランスについてはHPに振ったら特攻の価値が、特攻に振ったらHPの価値が上昇する関係ですから、HPと特攻の価値が等しくなる平衡点がどこかに存在するはずです。ちょっとそれを調べてみます。

HPと特攻の価値が等しい、ということはつまり、∂Z/∂H=∂Z/∂Cです。

∂Z/∂H=∂T/∂H×∂V/∂T×∂Z/∂V
   =T/H×(2ln (2T/k)+1)/l×mC/(1+mnC(1/2-P))
∂Z/∂C=[m(V+P){1+mnC(1/2-P)}-mC(V+P)mn(1/2-P)]/{1+mnC(1/2-P)}^2
   =m(V+P)/{1+mnC(1/2-P)}^2

なので、

∂Z/∂H=∂Z/∂Cの時、
C/H=l(V+P)/{1+mnC(1/2-P)}{2 ln(2T/k) +1}

先攻確率を0.5し、更に攻撃を耐える平均回数Vを1.5とすると、

C/H=2l/T{2 ln(2T/k) +1}]

2T/kはリザードンが攻撃を耐えるMAXの回数なので、まあ4~5発くらいとすると、2 ln(2T/k) +1≅4くらいです。また、l≅2Tとすると、

C/H≅1

となります。
かなり大雑把な計算なのでいくらでも上下はしますが、まあおおむねこれくらいになるということです。リザードンでなかったとしても、中の上くらいの耐久のポケモンの場合、先攻確率が1/2前後ならHP≅特攻で、そこから先攻確率の増減とともに火力の価値が上下します。

すなわち、リザードンの振り方は、

・何も考えずに素早さに極振り
・H≅Cの周辺でHPと特攻のバランスを調整

というのが、特別な事情を考慮しない限りは理想的、ということになります。(ダブルバトルのリザードンの場合、ある『特別な事情』が絡むことは結構多いんですが……)

更に性格補正についても考えてみましょう。ここまでの議論から、性格補正を抜きにした場合のリザードンの理想的な能力は、
H182(228)-B99(4)-C182(20)-D136(4)-S152(252)

です。まあ特攻とHPは大雑把にこれくらいという程度なので、適当にどっち方向に増減させてもいいです。一応は先攻確率の方が高いという想定なので、これよりは特攻寄りにした方がいいでしょうか。

で、ここに性格補正をかけるわけですが、まあHPに補正をかける方法がない以上、ほぼ特攻か素早さにかけるしかないでしょう。その2つに関しては、基本的には素早さの価値の方が高いんですが、特攻にかけた方が能力の実数値の上昇量自体は大きいんです。この大小関係を調べるには、実際の数字を入れてみるしかないです。

∂Z”/∂C= m(V+P)
∂Z”/∂S= bmC{1+mnC(1/2+V)}

特攻に性格補正をかけた場合は18、素早さに性格補正をかけた場合は15上がるので、V=1.5P=0.5b=n=0.005程度とすると、

性格を控え目にした時のZの上昇量:18×∂Z”/∂C≅36m
性格を臆病にした時のZの上昇量:15×∂Z”/∂S≅13.65m(1+1.82m)

仮に熱風を片方等倍、片方半減で与えることを想定し、相手の特防を両方100とすると、

m≅95(威力)×0.9(命中率)×1.5(タイプ一致)×1.5(晴れ)×0.75(範囲攻撃)×(1+0.5)(片方等倍、片方半減)×1/100(相手の特防)×0.4(ダメージにかかる定数)≅0.87

くらいです。
mを上に代入すると、

性格を控え目にした時のZの上昇量≅31.3
性格を臆病にした時の能力のZの上昇量≅30.1

で、ほぼ同じですが、一応少しだけ控え目の方が強いです。先攻確率が実際には1/2以上であるという想定と、特攻にもう少しだけ振れば性格補正をかけた時の実数値の上昇量が19まで上がるということを合わせると、一応は特攻に補正をかけた場合の方が得とはいえそうです。
まあこれだけ微妙な差なら計算の誤差といえるので好みの範疇ですが、一応は控え目の方が強いということにしておきます。すると11n調整はした方がいいので、その分の努力値をHPから引っ張ってくると、


charizard-megay.gif

メガリザードンYの能力調整:H174(164)-B99(4)-C209(84)-D136(4)-S152(252)

こんな感じで、おおまかな傾向だけは上の表を見て決めて、細かい調整は具体的な数値を入れて計算する、というのが能力の決め方としていいでしょう。



今回の記事はここまでになります。
これまで長かったですが、ようやく自分の努力値振りの理論の大枠を示すことができました。書き始めた当初はここまで時間がかかるとは思わなかったんですが、ざっくりした考え方は頭の中にあっても、しっかりと数学的なモデルで示そうとすると大変だったんですよね。『高校生にも分かるように』という書き始めた当初の志が守れたかどうかはかなり怪しくなってしまいましたが、まあ概念だけならそんなに難しいものを使っているわけではないのでよしということにしておきます。結論を理解するだけなら簡単ですしね。

しかし、これがそのまんま適用できることはむしろレアケースだったりもします。単純な殴り合いだけを想定する分にはほぼ正しいんですが、ポケモンは特性とかアイテムとか技とかで個性付けされているため、実際には考慮しなければならない要素がこれだけでは済まないわけです。

なので次は、この法則がそのまま適用できない諸々のケースにおいて、何が重要になる方向に振れるのか、という話をしようと思います。
スポンサーサイト



コメント

質問失礼します!s11ぐらいにジロウさんが使ってたリザードンの調整は、もっとhとbに厚くしていた気がするんですが、その調整意図を教えて欲しいです。

Re: タイトルなし

> 質問失礼します!s11ぐらいにジロウさんが使ってたリザードンの調整は、もっとhとbに厚くしていた気がするんですが、その調整意図を教えて欲しいです。

返信遅れました。
以前自分が使っていたリザードンはこのままの調整ですよ。ほぼ常に威嚇を入れていたので物理に堅く感じたんだと思います。

・面白かったです。

・相手のhpや防御が定数として入ってるので、「(特定の相手と対面した時の)総合能力指数」という印象があります。これらの定数を常識の範囲で変えても努力値振りに対して効いてこないなら、ポケモンそのものの強さを表しているんだなと思います


・広く実用化するとしたら個体値カリキュレーターようなもので、Zを最大化するような努力値振りを教えてくれるようなツールになると思います。その場合、Zが解析的に難しい関数でも、答えさえ返ってくれれば問題なく実装できるので、統計的なファクターが入って来るようなZであっても有用性があると思います。(統計取るのが難しいですね)

Re: タイトルなし

コメントありがとうございます。

> ・面白かったです。
>
> ・相手のhpや防御が定数として入ってるので、「(特定の相手と対面した時の)総合能力指数」という印象があります。これらの定数を常識の範囲で変えても努力値振りに対して効いてこないなら、ポケモンそのものの強さを表しているんだなと思います

仰る通りです。相手の火力と素早さはランダムに決まる設定なのに耐久力だけはこっちで適当に決めています。
ただ、相手の耐久力が効いてくるのは『相手を倒せる数』に影響するからです。これをモデルにおいては『相手に与える総ダメージ量』Zに『相手のHPの逆数』nをかけたもの、としています。実際には相手を倒せる数は整数のはずだからこれの床関数[nZ]になるはずですが、ある程度削れた相手と戦い始めることも考慮して連続的な値にしています。なので、そこまできっちりしたものではないですが、相手の耐久力が一定範囲で分布していると考えた時と同じような効果はあります。『一体目の耐久力はランダムで分布、二体目以降は設定したHD』というのと同じ形です。
現状のモデルで一番大きな問題は、相手の火力・耐久・速度に相関関係がないとしている所にあると思います。常識的には速い相手ほど耐久が低いから素早さで上回るメリットが大きいわけですが、そこら辺の事情は全く考慮していません。頑張ればモデルに組み込めなくもないんですが、『速くて堅くて火力も高いポケモン』というのも意外といたりするので、はっきりした相関があるとも言い切れず、わかりやすさを優先して全部ランダムに決まることにしました。

>
>
> ・広く実用化するとしたら個体値カリキュレーターようなもので、Zを最大化するような努力値振りを教えてくれるようなツールになると思います。その場合、Zが解析的に難しい関数でも、答えさえ返ってくれれば問題なく実装できるので、統計的なファクターが入って来るようなZであっても有用性があると思います。(統計取るのが難しいですね)

それができれば理想ですが、技範囲や耐性などの強弱まで入ってくるので、そこまで正確に数値化するのは少し難しいかもしれません。今回、リザードンの計算の際も、『技範囲は広め』『耐性はやや微妙』くらいのざっくりした傾向だけで見ていましたし。リザードンの場合はそれでも十分なくらい能力が分かりやすかったので(火力が化け物で他は中の上)計算できましたが、普通はもっとぼんやりした感じになりますから。

コメントの投稿

非公開コメント

プロフィール

ジロウ

Author:ジロウ
ポケモンダブル勢。好きなポケモンはヌケニンとチェリム、クチート、あとランターン。
ブログ名通りにポケモンの机上論をつらつら書き連ねる予定。