【ポケモンGO】種族値,実数値,CPを計算してみた話(おまけで全ポケモン種族値リスト)

スバメ・・・


ジグザグマ・・・


コダック・・・


何もひからせることのできなかったマーシーです。
このブログ,コミュニティデイ以外に更新するんだと思ったキミは正直者)

今回はポケモンGOの種族値,実数値,CPについてその計算式,計算結果をまとめてみようと思います。

きっかけは名大ポケサー らすさんの某ブログ記事:ポケモンGO未実装ポケモン種族値ランキング(エアプ)です。

ボクはポケモンGOで捕まえた高個体値や使えそうな個体などをGoogleスプレッドシートで管理しており,そのシートに追加で全ポケモンのCPとかそのランキングとかわかる機能つけたら便利だなーと思ったわけです。

Googleスプレッドシート参考例

このシートのバックグランドには自家製データベースがあり,それをうまく使えば,同じことできるやん?という非常に軽率な考えがはじまりとなります。
計算式のソースは上記のリンク+αです。

内容としてはほぼ同じことやっているので流し見でもいいです。
ただ個人的に注意したい点や,小数点切るとことか四捨五入するところとかを重点的にまとめてみました。

使用するのはGoogleスプレッドシート,その中で関数を使用して計算していきます。
ポケモン本家の種族値に関しては自家製データベースから引用しています。

禁止伝説の特殊倍率はらんのすけブログを参考にしているだけで,詳しくありませんが,ギラティナとかナーフされたのはこの倍率が関係していると思ってます。

【種族値の計算】

まず,ポケモン本家の種族値をGOの種族値に変換します。
このとき,小数点以下の切り捨て四捨五入の作業で結果が大きく変わってきます。

まずはHP種族値から,ついでにSに関する補正係数も求めていきます。


HPは小数点以下切り捨てを行っているので注意
ポケモンGOにおけるSは②式に反映されています。

次に,こうげきとぼうぎょの種族値を求めていきます。
ボクはACの0.875,0.125とBDの0.625,0.375を区別するのを忘れて多くの時間を失いました。


③〜⑥式より,②式のSに関する係数が各パラメータにかかってきてるのがわかります。
A=CやB=Dの場合,そのまま等倍変換されるので特にケアすることはないです。

【実数値の計算】

種族値をもとに実数値を算出します。

ポケモンGOの実数値ってなんぞや?となるかもしれませんが,一番わかりやすいパラメータはHPです。
画像の赤丸部分と今回の計算結果一致することが指標の一つです。
実数値以降の計算においてポケモンの個体値が関わってくるので普段の厳選作業が大切になります。(個体値は0から15の16段階の値)

CPMとは,トレーナーレベルごとに与えられる補正係数です。
この数値によりトレーナーレベルごとに差が付きます。
グーグル先生に聞けばまとめたサイトを出してくれるはずです。

⑦式より,HPは小数点以下切り捨てを行っているので注意
そのため,レベルMAXの状態でH個体値の値が14でも15でも結果が変わらなくなるみたいです。

ここで,具体的に,個体値MAX,レベルMAXの場合を想定すると,⑦〜⑨式は次式となります。


【CPの計算】

最後にCPの計算です。
これまでの過程で算出してきた種族値や実数値などを使用します。

CPの計算は最後にまとめて小数点以下切り捨てするのが特徴です。



⑩式はいろいろなサイトに載っている一般的な計算式です。
⑩式に⑦〜⑨式を適用したのが⑪式となっています。

Googleスプレッドシートで⑩式,⑪式をともに試してみましたが,計算結果があわなかったので何でかなーと思いましたが,⑪式では小数点以下処理済みの実数値を用いていたため,⑩式との計算結果が合わなかったのだと思います。
⑪式を使う場合は,小数点以下の処理を行っていない実数値を使用すればいいと思います。

さらに,⑩式を別のアプローチで変換していきます。
種族値と個体値の和を以下のように表します。
これを適用すると,⑩式は⑫式へと変換できます。
そして⑫式をさらに整理したのが⑬式です。

いろいろ試してみましたが,⑬式が一番実装しやすいかなと思っています。


【サンプル値との比較】

①〜⑬式を用いて計算した結果とポケモンGOのデータを比較していきます。
比較対象としてレベルがわかりやすいレイド産や個体値が確定しているポケモンをサンプルとして扱っていきます。
正直な話,CPとHP実数値以外に比較する要素がないのでこの2値で比較していきます。

見方 .
ポケモン(レベル,H個体値,A個体値,B個体値)
サンプル値(CP,H実数値)
計算結果(CP,H実数値)

Case.1 ヒードラン


ちょっと前に実装されたヒードランくんで計算結果を比較していきます。
まずは100%ヒードラン(Lv.20,15,15,15)サンプル値(2145,133)

でこちらが計算結果(2145,133)
PoKe'MoNiconタイプ
1
タイプ
2
CPGO
H種
GO
A種
GO
B種
GO
sum
GO
H実
GO
A実
GO
B実
ヒードラン2145209251213673133159136

CPとHP実数値が一致していることがわかります。

次に天候補正100%ヒードラン(Lv.25,15,15,15)サンプル値(2681,149)
その計算結果(2681,149)
PoKe'MoNiconタイプ
1
タイプ
2
CPGO
H種
GO
A種
GO
B種
GO
sum
GO
H実
GO
A実
GO
B実
ヒードラン2681209251213673149178152

こちらもCPとHP実数値が一致していることがわかります。
じゃあ,個体値変更したらどうなるの?
ってことで天候補正ヒードラン(Lv.25,15,14,15)サンプル値(2671,149)
とその計算結果(2671,149)

PoKe'MoNiconタイプ
1
タイプ
2
CPGO
H種
GO
A種
GO
B種
GO
sum
GO
H実
GO
A実
GO
B実
ヒードラン2671209251213673149177152

こちらもCPとHP実数値が一致しています。

Lv,と個体値を変更して計算結果が等しいのでヒードランくんに関しては正確に計算されていると思います。

Case.2 ギラティナ(アナザーフォルム)


ヒードランくんのちょっとまえに実装されたギラティナくんで比較していきます。
ギラティナくんは禁止伝説ということで補正係数があっても正確に計算できているか判別できます。

まずは100%ギラティナ(Lv.20,15,15,15)サンプル値(1931,178)

そして計算結果(1931,178)

PoKe'MoNiconタイプ
1
タイプ
2
CPGO
H種
GO
A種
GO
B種
GO
sum
GO
H実
GO
A実
GO
B実
1931284187225696178121143

こちらもCP,HP実数値が一致しています。

じゃあ若干個体値変えてみたら?ということで
ギラティナ(Lv.20,14,15,15)がこちらのサンプル値(1927,178)
そして計算結果(1927,178)

PoKe'MoNiconタイプ
1
タイプ
2
CPGO
H種
GO
A種
GO
B種
GO
sum
GO
H実
GO
A実
GO
B実
1927284187225696178121143

こちらもCP,HP実数値ともに一致しているため,禁止伝説に関しても計算結果が一致していることがわかります。

Case.3 カイオーガとグラードン


興味本位で今回のホウエンイベントで実装されたグラカイも見ていきます。
まずは,爆運でゲットできた色違いカイオーガくん
そのカイオーガ(Lv.20,15,15,14)サンプル値(2346,131)
そして,計算結果(2342,131)
PoKe'MoNiconタイプ
1
タイプ
2
CPGO
H種
GO
A種
GO
B種
GO
sum
GO
H実
GO
A実
GO
B実
カイオーガ2342205270227702131170144
あれ?
CPに誤差があります。

気になったので次に天候補正グラードン(Lv.25,13,15,14)サンプル値(2920,145)
そして,計算結果(2914,145)

PoKe'MoNiconタイプ
1
タイプ
2
CPGO
H種
GO
A種
GO
B種
GO
sum
GO
H実
GO
A実
GO
B実
グラードン2914205270227702145190161

CPに誤差がありますね
うーーーん・・・・

もひとつ天候補正グラードン(Lv.25,14,14,14)サンプル値(2916,146)

そして,計算結果(2910,146)

PoKe'MoNiconタイプ
1
タイプ
2
CPGO
H種
GO
A種
GO
B種
GO
sum
GO
H実
GO
A実
GO
B実
グラードン2910205270227702146190161

CPがやっぱり合わない・・・

何かミスしてるのかな,といろいろ確認していきます。



まずはカイオーガくん
下の図は個体値ごとにLv.20とLv.25のCPを表したものです。
赤線部分がサンプルの個体値(15,15,14)ラインであり,そのときのCPがサンプル値(2346,131)と異なります。

そもそもツイッターとかで見るカイオーガのLv.20の個体値(15,15,15)ラインMAX CPは2351と確認しているので上限値に誤差があることがわかります。

さらに,グラードンくん
カイオーガと同様に,下の図は個体値ごとにLv.20とLv.25のCPを表したものです。
赤線部分がサンプルの個体値(13,15,14)ライン個体値(14,14,14)ラインであり,そのときのCPがサンプル値(2920,145)サンプル値(2916,146)と異なることがわかります。

グラードンもLv.20の個体値(15,15,15)ラインMAX CPは2351と確認しているので誤差があることがわかります。

しかし,よーーくみてみると赤線のちょっと上の方に似たようなCPがあることがわかります。緑線で囲んだ部分がそれに該当するのですが,このときのCP,
個体値を確認すると(2920,13,15,15)(2916,14,14,15)となっています。

先程のカイオーガの表も冷静に見比べてみると,個体値(15,15,15)ラインのCPがサンプル値(2346,131)のCPと一致していることがわかります。


つまり何が言いたいかというと

サンプル値のCP計算値のCPに合わせこむとB個体値が1つ上の値になっている現象が確認できるのです(下図)。

そこで,わざとH,Aが16の場合も含め個体値を,(H,A,B)=(16,15,15),(15,16,15),(15,15,16)としたときの3パターンで検証した結果が以下となります。

まずは,カイオーガ

そして,グラードン

赤線で囲んだ部分をよくよく見てもらうと,なんと実装されているグラードン,カイオーガのLv.20の最大CPと計算結果が一致してしまうことがわかりました。

通常ならば個体値は0〜15の16段階ですが,グラカイのB個体値を1〜16の16段階に矯正することで,計算結果を合わせ込めるという結論に至りました。

【反省点】

ここまでポケモンGOの種族値,実数値,CPの計算式を求め,その算出結果を比較していきました。
その結果,サンプル値計算結果の比較は確認している限り,Lv.,個体値に合わせた理想値CPを算出できているという結果になりました。(グラードンとカイオーガは矯正含む)
もし,計算ミスがあるならばそもそもの自家製データベースの種族値が間違っているなどの要因が考えられると思います。

【まとめ】

・種族値の計算:①〜⑥式
・実数値の計算:⑦〜⑨式
・CPの計算 :⑬式

計算結果:だいたい一致理系とは思えない結論

最後までながながと読んでいただきありがとうございました。

【おまけ】


同じようなことしている人がいたら,答え合わせをしたいので,最後にLv.40(CPM=0.79030001),H個体値15,A個体値15,B個体値15の理想状態で計算した結果を載せておきます。
なにか気になる点,載せてほしいデータ,ミス,勘違いなどあったら気軽にコメントまでお願いします。

※注意
個体値矯正(⑦~⑨式の個体値加算する値)
グラードン=(0,0,1)
カイオーガ=(0,0,1)
パルキア=(1,0,0)

【小リンク】
 カントー地方
 ジョウト地方
 ホウエン地方
 シンオウ地方
 イッシュ地方
 カロス地方
 アローラ地方+α


コメント

  1. もうご存知でしたら申し訳ないのですが、グラードンとカイオーガのCPが合わないのはB種族値が228であるべき所が227になっているからだと思いますよ

    返信削除

コメントを投稿

このブログの人気の投稿

【ポケモンGO】愛知県名古屋市・鶴舞公園の歩き方

【ポケモンMATLABダメ計】ダメージ補正リスト

【ポケモン】MATLABでダメージ計算ツールを作成するお話

【ポケモンBDSP】固定シンボル色違い自動厳選プログラムのデバッグ