ポケモンGOの出現判定方法の予想(1)集計
ポケモンGO、大人気ですね。日本でのリリースからしばらくしてアメリカのほうで、リアルタイムでポケモンの出現場所が分かるサイト、PokeVisionが公開されました。このサイトを使ってどこにどういうポケモンが出るのか探そうと、地図をグリグリ動かしながら考えたことをまとめておきます(例によって続きものです)。攻略にはあまり役立ちません。なお、私自身はポケモンGO未プレイでネット上で収集した情報だけで予測しているので明らかな間違いがあるかもしれません。考え方のひとつとして気楽に見てくださいね。
1.なぜ場所によってポケモンの出現数が違うのか
(2016/08/17追記)
コメントにて
PokeVision等はPTCサーバーの情報を抜いてるだけなので誰かがポケモンを捕獲しないと表示されません。
よって人口密度の高い場所ではポケモンが多く表示される。
との情報を頂きました。PokeVisionは出現データそのものを表しているわけではないようです*1。とはいえ、田舎ではポケモンが出ないという話はよく聞いていたため、「都会ではなぜポケモンが多く、田舎では少ないのか」といったポケモンの出現頻度の決定方法(の処理方法)について思案しています。
(追記ここまで)
PokeVisionで任意の点をクリックすると、その周囲で現在出現するポケモンが表示されます。何ヶ所かクリックしてみると分かるかと思いますが、やはり噂通り、都会はポケモンが多く出現し、田舎は少ないようです。なぜそうなるのでしょうか。
これは多くの人が予想できるかと思いますが、おそらく人が多いところに比例するのだと思います。今回はこの仮定を大前提として、この上にいくつかの仮定を重ねた上で予想できることを書き綴っていきます。
「人が多いところはポケモンが多い」ことを仮定した場合、この「人が多い」状態はどのように判定されるのかが疑問に残ります。まず考えられるのは既存の調査結果を使う場合です。日本では既に「◯◯市◯◯町◯丁目」レベルまでの人口あるいは人口密度のデータは公開されています。このデータとポケモンの出現密度をリンクさせれば、どのくらいの密度でポケモンを出現させれば良いか決定できるわけです。
ところがこの方法には問題があります。日本のように精度の高い統計情報が整備されている国は限られています。このため全世界で展開する位置情報ゲームにおいて、この仮説には無理が生じてきます。加えて、深夜にPokeVisionを見てみると、昼間よりポケモンの出現密度が低くなっている(ようにみえた)ことからも、スマホの位置情報を集計していると考えるのが自然でしょう。
(2016/08/05追記)
こちらのページに電波強度で判定しているとの記述がありました。ソースは確認できませんが……。
『Pokémon GO』は、Nianticが開発した前作『Ingress』のデータを流用しており、そのデータは携帯電話用電波の強度をベースにしているので、都市部の方がポケモンの出現率が高くなってしまっている。
(追記ここまで)
(2016/08/17さらに追記)
コメントを受けて調べたところ、以下のような記述を見つけました。
ポケソースは
・決まった時間にポケモンが出現するポイント。「近くにいるポケモン」に表示されるポケモンが出現
・周期は1時間ごとで、0時10分に出現するポイントは一時間後の1時10分にポケモンが出現する
・「近くにいるポケモン」は30秒ごとに更新されるので、0時10分にポッポの影が出たら200m以内の10分に湧くポケソースに向かえば必ずポッポが出現
・ポケソースはingressのXMが発生するポイントと同じ仕組みで、Googleロケーション履歴から「一定時間人が留まった場所」がポケソースになる
・なので人が多く集まる場所ほどポケソースの数が多い
・出現ポケモンはランダム
Googleが収集している情報を利用している点で、電波強度説より信用できそうです。
(あれこれ考えていたのに、答えは探せばあるものですね……。)
いずれにせよスマホから取得できる何らかの情報から、ポケモンの多寡を決定できそうですね。
ところが上記条件だけだと、以下のように話に齟齬が生じます。上記引用元からさらに引用。
170: ポケモンGo完全攻略まとめ 2016/08/02(火) 01:43:54.77
>>111
自宅でポケモン起動するとよく湧くのはこれのせい?
>「一定時間人が留まった場所」がポケソースになる
178: ポケモンGo完全攻略まとめ 2016/08/02(火) 01:45:11.64
>>170
お前ん家タコ部屋なの?
187: ポケモンGo完全攻略まとめ 2016/08/02(火) 01:46:50.90
>>178
いや違うが
一人じゃダメなのか?
199: ポケモンGo完全攻略まとめ 2016/08/02(火) 01:48:23.45
>>187
一人で良いなら田舎民苦しんで死んでないよ
個人住宅でもポケモンが出現する例です。この問題点の解消には以下の話が関係していると考えられます。
(追記ここまで)
2.どのように人の数をポケモンの数に変換しているのか
スマホの位置情報を利用するとして、ポケモンの出現密度≒スマホユーザーの人口密度を求めるには、位置情報そのものの他に、人数を数える際の1集計ごとの範囲を決めなければなりません。前述したように、「◯◯町◯丁目」といったような範囲の決め方は全世界共通として使うことはできず、この場合は世界をメッシュ(格子状)に区切ったエリアごとにデータ(この場合はユーザー数)を集計することが多いようです。docomoのサイトにある説明が分かりやすいので下に引用します。どのエリアに何人いるか分かれば、そのエリアに配置するポケモンの数が決められそうですね。
モバイル空間統計とは
携帯電話ネットワークは電話やメールなどをいつでもどこでもご利用いただけるように、各基地局のエリア毎に所在する携帯電話を周期的に把握しています。この仕組みを利用して携帯電話の台数を集計し、ドコモの普及率を加味することで人口を推計することができます。これがモバイル空間統計です。
モバイル空間統計の安全性について
モバイル空間統計は、集団の人数のみをあらわす人口統計情報であるため、お客様個人を特定することはできません。
モバイル空間統計は、以下の手順により作成されています。
ちなみに位置情報ゲームで有名なコロプラは培ったノウハウを活かし、KDDIと連携してエリアマーケティング支援業務を行っているようです。
でもこの集計処理ってどのくらいの負荷なんでしょうか。リアルタイム(少しのタイムラグ)で集計&ポケモン密度に反映、なんて難しいような気もします……。どのように全世界で共通のユーザー人口密度データを作っているのか気になります。時間帯によって出現密度は変わらないと述べているブログもあります。
[定義] 周期的ポケモンが出現する地点をポケソースと呼ぶ。
[事実 2] 各ポケソースでは毎時x分に、まだ可視化していないポケモンが出現する。ここで、xはポケソースごとに定まる定数である。
この言及からポケモンは時間帯によらず出現密度は一定とも言えます。私が深夜に密度が下がっていることを確認したのは単なる見間違いだった、という線も出てきました*2。また、ユーザー人口密度データはGoogleから作成済みのデータを取得している、あるいはアプリの位置情報からリアルタイムではなく一定期間ごとにデータを作成している、ということも考えられます。いずれにせよ、集計する範囲の設定が必要*3です。この必要性からポケモン出現判定に関してある仮説が立てられます。続きはまた近いうちに。
続き