【ステータス評価値②】CPとSCPの詳細

2019/08/11 12:55  tivoli
ステータス評価値解説の第2回です。この回では、計算式を使ってCPとSCP、及びその基礎となっているステータスやダメージ計算式について詳細に解説します。
【ステータス評価値の解説】
第1回CPとSCPの基本
第2回CPとSCPの詳細
第3回防御的戦闘力DCP
第4回CP・SCP・DCPランキング

この回について

前回に引き続きCPとSCPについてです。

この回では計算式を用いてCPとSCPの式がどのように成り立っているかを解説します。
"CPなどが何を言っているか"をより深く理解する目的です。

はじめにCPなどの根拠となっているステータスダメージの計算式を示し、それをもとにCPなどの構造やどのように捉えるべき数値かを説明していきます。

かみ砕いた重要なことは第1回で述べているので、数式などが苦手な方は読み飛ばしても大丈夫です。

ステータス

ステータスの計算式

【攻撃力】
\[(攻撃種族値+攻撃個体値)\times CPM\]
【防御力】
\[(防御種族値+防御個体値)\times CPM\]
【HP】
\[(HP種族値+HP個体値)\times CPM\]

※HPのみ小数点以下切捨。

用語の説明など

3つのステータス

ポケモンGOには、攻撃力・防御力・HPの3つのステータスが存在します(※)。

しかしそのうちゲーム内で確認できるのはHPだけで、攻撃力と防御力は隠しステータスとなっており、その代わりに3ステータスを総合評価した値であるCPが「強さ」として表示されています。

※表示の必要がないので、攻撃力と防御力はステータス(原作でいう実数値)の形でデータがもたれているわけではありませんが、ダメージ計算上、実質それらにあたる数値が存在します。

種族値

種族値はポケモンの種族ごとに決まった値です。
例えばカイリューの攻撃種族値は263、防御種族値は198などと決まっています。

個体値

個体値はその個体ごとに決まっている値です。
0~15の16通りあります。

CPM

CPMはレベルごとに決まっているゲーム内で共通の係数です。
レベルが上がるほど大きくなります。
レベル1のとき0.094で、レベル40のとき0.79030001です。

ポイント

種族値に個体値を加算したものにレベルに応じた係数を乗じた数値がステータスとなります。

HPは小数点以下切捨されて整数となりますが、攻撃力と防御力は端数処理されずそのままダメージ計算に用いられます

ダメージ

ダメージの計算式

\[\frac{攻撃力}{防御力}\times技の威力\times各種倍率\times0.5+1\]

※小数点以下切捨

各種倍率の内容
共通
タイプ一致倍率×1.2
タイプ相性倍率①相手のタイプ1に対し
効果はばつぐん:×1.6
効果はいまひとつ:×0.625
効果はない:×0.390625
タイプ相性倍率②相手のタイプ2に対し
効果はばつぐん:×1.6
効果はいまひとつ:×0.625
効果はない:×0.390625
ジム・レイド
天候ブースト倍率×1.2
フレンドブースト倍率友達:×1.03
仲良し:×1.05
親友:×1.07
大親友:×1.1
トレーナーバトル(PvP)
PvP倍率×1.3(※PvPで一律にかかります)
連打倍率×0~1
シールド倍率×0

端数処理について

ダメージの計算では上記のとおり、「1をプラスして小数点以下切捨」されます。
これは、技の威力や倍率が0という特殊な場合を除いては、「少数点以下切上」とほぼ同じ意味で、端数処理の範疇と考えることができます。
変わるのはダメージの計算結果がぴったり整数となるケースですが、実戦においては極めて稀です。
実用的には

  • 技の威力や倍率が0→1
  • それ以外→少数点以下切上

と考えることができます。

ポイント

ダメージ計算式のポイントは、攻撃力と防御力の価値が等しいことです。

価値が等しいとは、攻撃力がn倍になればダメージがn倍になり、防御力がn倍になればダメージは1/nになるということを指します。

このことがポケモンGOの世界の基礎となっています。

コラム:分子か分母に係数がつくと?

等価性は崩れない

たまにダメージ計算式中の「×0.5」を分母にもってきて、「防御力×2」という表記をした式を見かけます。
もちろん同じ式です。

そのように攻撃力と防御力のどちらか一方に係数がかかっているような表記にすると攻撃力と防御力の価値が等しくないように誤解しやすいですが、それは式全体の倍率が変わったことと同じことであり、攻撃力と防御力の等価性に影響はありません。

攻撃力と防御力の関係性が、どちらか一方の指数が変わったり(2乗になったりルートがつくなど)、除算でなくなったりしないかぎりは等価性は崩れません。

勝敗への影響

考え方

ポケモンAとポケモンBがちょうど相打ちとなる強さだったとします。

Aの攻撃力が2倍になると、与えるダメージが2倍になり、AはBを2体倒すことができます。

Aの防御力が2倍になると、受けるダメージが1/2倍になり、AはBを2体倒すことができます。

AのHPが2倍になると、2倍の回数攻撃を受けられるようになり、AはBを2体倒すことができます。

Aの攻撃力・防御力・HPが全て2倍になると、上記全ての乗算となり、AはBを2×2×2=8体倒すことができます。

3ステータスの乗算

上記より、ステータスの相手に勝つ力は3ステータスの積で表すことができます。

\[攻撃力\times防御力\times HP\]

コラム:個体値の価値は種族値が低いものほど高い

個体値の価値

勝敗に対する個体値の価値は、上記の3ステータスの積をどれだけ大きくするかとなります。

種族値が100のものが個体値0から個体値15となると積が1.15倍となりますが、種族値が50のものが個体値0から個体値15となると積が1.3倍となります。

個体値が同じだけ増えるならば、種族値が低いものの個体値が増えた方が勝敗への影響が大きく、価値が高いことがわかります。

実例としてハピナスの場合、種族値496のHPが個体値0から15になっても約3%しか相手に勝つ力は上がりませんが、種族値129の攻撃力が個体値0から15となると約12%も相手に勝つ力が上がります。

CPの成り立ち

CPの計算式

CPは次の計算式で求められます。

\[\frac{(攻撃力^2\times防御力\times HP)^\frac{1}{2}}{10}\]
\[\to\frac{攻撃力\times\sqrt{防御力}\times\sqrt{HP}}{10}\]

※このときのHPは攻撃力・防御力と同様に端数処理しない値で計算されます。
※全体の計算結果は小数点以下切捨

上記計算式は、次のように書き換えて使われることもあります。

\[\frac{(攻種+攻個)\times\sqrt{(防種+防個)}\times\sqrt{(HP種+HP個)}\times CPM^2}{10}\]

※小数点以下切捨

CPの基本式

\[(攻撃力\times防御力\times HP)\times攻撃力\]

前半のカッコ部分は「相手に勝つ力」を表します。

後半の単体の攻撃力は「ダメージを与えるスピード」に比例します。

「相手に勝つ力」と「ダメージを与えるスピード」を掛け合わせた評価値であると解釈することができます。

スケーリング

基本式を1/2乗して10で割るスケーリング(規模調整)がされています。

スケーリングは、基本式のままでは数字が大きくなりすぎ、また強いポケモンと弱いポケモンの数字の差が大きくなりすぎてゲームになじまないために行われます。

スケーリングをすることでCPは2~4桁にまとまり、ゲームになじむ数値となっています。

スケーリングによって評価値の本質は崩れません。

HPの扱い

CPの計算では、攻撃力・防御力と同様に、HPも端数処理をしない値で計算されます

実際のステータスのHPは小数点以下が切捨てられた整数なので、CPはある時点での強さを評価する値としてはHP未切捨の分だけ不正確です。

そのため、攻撃力と防御力が同じでHPの個体値が1だけ違うというケースでは、CPが違うのに実際の強さは全く同じということがあります。

一方で、端数処理前のHPで計算することには将来の伸びしろを正確に表すというメリットがあります

ある時点での強さが全く同じでも、個体値が1でも違えばレベルが変わったときに違いが生まれることがあります。

CPはある時点での強さの正確さを少しだけ犠牲にする代わりに将来の伸びしろを正確に表した、いわば"ポテンシャル値"と言うことができます。

SCPの成り立ち

SCPの計算式

SCPは次の計算式で求められます。

\[\frac{(攻撃力\times防御力\times HP)^\frac{2}{3}}{10}\]

※計算結果は小数点以下切捨。CPに合わせています。

SCPの基本式

\[攻撃力\times防御力\times HP\]

基本式は「相手に勝つ力」そのものです。

スケーリング

基本式を2/3乗して10で割るスケーリングをしています。

CPと同規模になるスケーリングで、これによりCPとの比較が可能になっています。

HPの扱い

CPと同様にHPを端数処理前で計算したポテンシャル値にすると、CPと完全に対比可能な値となります。

しかし、SCPが有効となるシーンではほとんど特定のレベルにおける強さのみが重要となるため、端数切捨後のHPで計算したSCPを用いています。

これを区別するために「SCP'」と呼ぶことがありますが、特段のことわりがないかぎり当サイトで用いているSCPは全て端数切捨て後のHPで計算しています

CPは"正確な値"ではない

SCPの基本式は"一般的"なもの

SCPの基本式、つまりステータスの相手に勝つ力は3ステータスの積であるということは、理論的に導かれる一般的な事実です。

CPの基本式は"一般的"ではない

一方、CPの基本式では「相手に勝つ力」と「ダメージを与えるスピード」を1対1の割合で掛け合わせていますが、この割合は一般的なことではありません

ジムやレイドの攻撃側では、攻撃力が最重要となることが確かでも、「攻撃力を重視する度合い」がどの程度が適切かは場面によって異なり、また個人によって感じ方も異なるため、理論的に正解を決めることができません

CPはそれについて「相手に勝つ力」と「ダメージを与えるスピード」の価値が等しいとした場合の数値と言えるので、ジムやレイドの攻撃側のときにおおよその参考となる値ではあっても、ジムやレイドの攻撃側の強さを正確に表した値というわけではありません

攻撃力の強調度合いを変えれば計算結果も違ってきます。

そのためステータスバランスの異なるポケモンをCPで比較した場合にわずかな違いでどちらの方がいいと言い切ることはナンセンスであると言えます。

ダメージの端数処理の影響について

ポケモンGOは端数処理の影響が大きい

ポケモンGOは扱う数字の規模が小さく、とくに沢山繰り返す通常技のダメージは1桁のことが多いのに整数に丸められることから、端数処理の影響が大きく、ステータス変化の影響は段差の大きな階段状となって現れます。

そのため各種評価値と戦闘結果はなめらかには一致しません。

与えるダメージが変わらない範囲では攻撃力の増減はないのと同じですし、受けるダメージが変わらない範囲では防御力の増減はないのと同じですし、耐えられる攻撃回数が変わらない範囲ではHPの増減はないのと同じです。

端数処理の影響は一律に組み込めない

しかしこれらは具体的な条件を定めないかぎり、どのステータスの影響が大きいかは決まりません

あらゆる条件を平均すればどのステータスも価値は同じとなるため、端数処理の影響を一般化して含めようとしても結局同じになります。

CPをはじめステータス評価値が端数処理等の影響を含んでいないのは妥当であり、端数処理等の影響は個別の条件ごとに議論する必要があります


【ステータス評価値の解説】
第1回CPとSCPの基本
第2回CPとSCPの詳細
第3回防御的戦闘力DCP
第4回CP・SCP・DCPランキング

CPのタグ

「CP」の記事一覧

ページトップへ