今回から努力値合計の上限が設定されたため、努力値配分で個性が出せるようになりました。
こうなると防御系に努力値を入れるときは特定の攻撃を何回耐えられるかが重要になってきます。
HPに振ったほうがいい?それとも防御に振るべき?
このシリーズでは耐久力を効率よく上げるにはどうすればいいかを考えていこうと思います。
ダメージ計算式
耐久力を考えるには、まずダメージはどのような計算で求められているかを知っておく必要があります。
ルビー・サファイアでは以下のような計算式が使われています。
D=((攻撃側のレベル×0.4+2)×技の威力×攻撃(特攻)÷防御(特防)÷50+2)×タイプ修正×(217〜255)÷255
計算途中で小数点以下が出てきたらその時点で切り捨てになります。
タイプ修正は技とポケモンのタイプが同じなら×1.5、弱点をついたときは×2などです。
他にも技によっては天気や特性で補正がかかったりするのですがここでは省略しておきます。
さて耐久力を考えるにはこの式はちょっと複雑なので簡単にしてみます。
まずは最後の「×(217〜255)÷255」の部分。これは単なるダメージの目減りなので省略して考えます。
乱数の部分を除けば計算式中には5つの変数が使われています。
「攻撃側のレベル」、「技の威力」、「攻撃(特攻)」、「防御(特防)」、「タイプ修正」
この中で耐久力に関ってくるのは「防御(特防)」だけです。
残りは相手のポケモンによって変わってくるので「耐久力を高める」のにはあまり関係ない部分です。
簡単のために計算式前半の「(攻撃側のレベル×0.4+2)×技の威力×攻撃(特攻)」は1つの変数Aで置き換えて、
タイプ修正は、タイプ不一致、相性補正×1の場合の1を用いると計算式は以下のようになります。
D=A÷防御(特防)÷50+2
「÷50」も変数の中に入れてしまいましょうか。
D=A÷防御(特防)+2
「+2」はダメージが大きいときはほとんど関係ない値(ダメージが2多くなるだけ)なので省略、
D=A÷防御(特防) ‥ 式(A)
ずいぶん簡単な式にまとめることができましたね。
「防御(特防)」以外はすべて1つの変数にまとめることができました。
「防御(特防)」を高めればダメージが少なくなって耐久力も上がります(当たり前だけど‥
ダメージ率
「防御(特防)」を高めれば耐久力は上がるのですがもう1つ耐久力に関係する能力値があります。「HP」ですね。
ここでは「ダメージ÷最大HP」をダメージ率として考える事にします。
ダメージ率が低くなればそれだけ耐久力が高いと言うことですね。
式(A)を用いて考えるとダメージ率は以下のようになります。
ダメージ率=A÷防御(特防)÷HP
ダメージ率=A÷{防御(特防)×HP} ‥ 式(B)
物理ダメージ率=A÷(防御×HP) ‥ 式(C)
特殊ダメージ率=A÷(特防×HP) ‥ 式(D)
ダメージ率は式(B)のようになりました。
物理ダメージ率は式(C)、特殊ダメージ率は式(D)です。
式(C)、式(D)より「防御×HP」が高いほど物理ダメージ率が、
「特防×HP」が高いほど特殊ダメージが低くなり、耐久力が高くなります。
で、それってどんな時?ってことになると思うのですが、
物理耐久力を一番高くするなら HP=防御
特殊耐久力を一番高くするなら HP=特防
になるように努力値を振れば大丈夫です、要は能力値が低い方に振りましょうってこと。
証明はめんどくさいから省略、気になる人だけ下の方を見てください。
ただこれは物理耐久力のみ、特殊耐久力のみしか考えていないので、
物理、特殊攻撃両方に強くなりたい場合にはお勧めできません。
この振り方はどちらか一方の攻撃に対して強くなりたい場合に限られます。
物理、特殊攻撃両方に強くなりたい場合は、
HP:防御:特防=2:1:1
に近付くように振ればどちらの攻撃に対しても同じぐらいの耐久力にする場合の中では、
一番耐久力を高くすることができます。(注:HP=防御+特防 ではない)
証明は下の方に書いておきます。
まとめ
物理耐久力を高めたいなら HP=防御(HP:防御=1:1)
特殊耐久力を高めたいなら HP=特防(HP:防御=1:1)
合計耐久力を高めたいなら HP:防御:特防=2:1:1
に近付くように努力値を振りましょう。
あくまでこれは振り方の例なので参考までに。
実際にはダメージ計算式中の「+2」の影響で少しHPを高くしたほうが耐久力は高くなります。
また特定のポケモンの特殊攻撃を2発耐えられるように振って残りは防御に、
とか実践的な振り方を考えると必ずしもこれがいいとは言えません。
とまあこれは説明のために詳しく書いただけなのですが‥
次回は「能力値を調べる」に付いてる自動計算機能はどういう仕組みかを説明しますね。
今回説明したものより耐久力は高くなるようになっています。
つづく‥
おまけ
物理耐久力を高めたいなら HP=防御 の証明
HP=(種族値×2+個体値+努力値÷4)×レベル÷100+レベル+10
防御={(種族値×2+個体値+努力値÷4)×レベル÷100+5}×性格補正
簡単のため、努力値÷4=努力レベル、レベル=100、性格補正=1、とする。
HP=種族値×2+個体値+110+努力値レベル
防御=種族値×2+個体値+5+努力値レベル
特定のポケモンにおいて、種族値×2+個体値は一定の値、
HP=B(定数)+努力値レベル
防御=C(定数)+努力値レベル
防御系に振れる努力レベルを100(努力値400)と仮定し、
HPに振る努力レベルをxと置くと。
HP=B+x
防御=C+(100−x)
式Cより「防御×HP」が高いほど耐久力が高い。
防御×HP=y とおいて
y={C+(100−x)}×{B+x}
見て分かるように簡単な2次方程式ですね。
とりあえず適当にB=200(種族値40、個体値10)、
C=100(種族値40、個体値15)の場合を考えてみましょう
y={C+(100−x)}×{B+x}
y=(200−x)(200+x)
y=−x(2乗)+40000
∴x=0の時、yの最大値40000
この時HPと防御は、
HP=200+0=200
防御=100+(100−0)=200
∴HP=防御=200 の時物理耐久力MAX。
証明終わり。
ゑ、簡単な数字使いすぎだって、大丈夫。どんな数字使っても「HP=防御」になります。
ただし (0≦x≦振れる努力レベル) の条件があるのをお忘れなく。
合計耐久力を高めたいなら HP:防御:特防=2:1:1 の証明
物理耐久力と特殊耐久力が同じ値になるように 防御=特防 の場合を考える。
HPは物理耐久力と特殊耐久力両方に関わってくる能力、
HPに努力レベル2振る場合と、防御、特防に努力レベル1ずつ振る場合を比べて、
耐久力の合計が高くなる方に振ればいい。
防御系に振れる努力レベルを100(努力値400)と仮定し、 HPに振る努力レベルを2xと置くと。
HP=B+2x
防御=C+(100−x)
特防=C+(100−x)
(簡単のため防御と特防の種族値、個体値は同じとして考える)
式Cより「防御×HP」が高いほど耐久力が高い。
防御×HP=y とおいて
y={C+(100−x)}×{B+2x}
例として、B=200(種族値40、個体値10)、C=100(種族値40、個体値15)の場合を考える。
y={C+(100−x)}×{B+2x}
y={100+(100−x)}×{200+2x}
y={200−x}×2{100+x}
y=2(200−x)(100+x)
y=2(20000+100x−x(2乗))
y=−2x(2乗)+200x+40000
y=−2(x−50)(2乗)+45000
∴x=50の時、yの最大値45000
HP、特防の関係も同様。
この時HPと防御と特防は、
HP=200+2×50=300
防御=特防=100+(100−50)=150
∴HP:防御:特防=2:1:1 の時合計耐久力MAX。
証明終わり。
防御と特防の「種族値×2+個体値」の値が違う場合も、
低い方の能力値の方に努力レベルを加えて、
種族値(低)×2+個体値(低)+努力レベル=種族値(高)×2+個体値(高)
となるようにした後これらをCと置けば同様の計算でできます。
ただし (0≦x≦振れる努力レベル÷2) の条件があるのをお忘れなく。
防御種族値と特防種族値が大きく違う場合は 防御=特防 に出来ない場合があります。
防御=特防 以外の場合は計算が難しくなるので書けません(出来ません)