ポケモンGOの出現判定方法の予想(2)判定
前回は、ポケモンGOが位置情報ゲームである点から、地図上の領域をある単位ごとに区切ってポケモンの出現密度が定められているのではないか、という仮説まで立てました。今回はGoogleマップの内部データとポケモンGOのゲーム設定から何が言えるのかを考えていきます。
3.ポケモンGOはGoogleマップのどの情報を利用しているのか
ポケモンGOはスマホのGPS機能を利用した位置情報ゲームであり、開発元であるナイアンティックのブログによると、
プレイヤーは色々な場所を歩き、探索することで、その場所にふさわしい野生のポケモンたちを捕まえることができます。例えば湖や海の近くではみずタイプのポケモンに出会うことができるかもしれません。
とあるので、GPSで分かる緯度経度データと地図データを組み合わせてポケモン出現の有無を判定していることが分かります*1。この地図データにはGoogleマップのデータを使用していることはポケモンGOユーザーであればご存知のことかと思いますが、私の探した限りでは、はっきりそうだと言及されている文言が探せませんでした。以下のようにネット上での噂レベルの話はありますが、どうやら開発のナイアンティックがGoogleのいち部署から独立したことからGoogleマップを使っているとの憶測が広がっているのでしょうか。いや、十中八九それが正解なんでしょうけども*2
xn--go-x93azb8f1byczorovb7l8092d85ub.com
Niantic, Inc.(ナイアンティック)は、アメリカ合衆国の企業である。また、社名が名称に使われているThe Niantic Projectは、拡張現実/位置情報ゲームであるIngressのストーリーの中での、架空の調査プロジェクトである。
2010年の設立当初はGoogleの社内スタートアップ「Niantic Labs」(ナイアンティック・ラボ)であったが、2015年8月にGoogleから独立し現在の社名となった。
とりあえず、Googleマップを使用していると仮定して話を進めます。Googleマップ中には、ご存知のとおり地図を構成する基本データである、道路・鉄道・川・市町村の範囲・建物の形などが入っていますが、この他にある施設をクリックすると施設名・連絡先・クチコミなどの情報までリンクされています。便利ですね。ポケモンGOはこれらのうち、どのデータを使用しているのかが問題です。これも予想の域を出ませんが、ポケモンGOアプリ内で表示されているデータだけを使用していると仮定すると、道路・川(水面)・緑地・建物あたりでしょうか。
4.Googleマップのデータをどのように活用しているのか
ナイアンティックが既に公表しているように、先ほど挙げた4要素、道路・川(水面)・緑地・建物のデータがどのようなポケモンが出現するか、その種族の決定材料にされているわけです。もっとも、これは既にポケモンGOの攻略まとめサイトでも話は上がっていて、「水ポケモンはGoogleマップの川かどうかで出現するかが決まる」ということになっているようです。
xn--f9jr9dng6hpjya18avb7l5dq393fhkxb.xyz
ここから細かい話。
2ch、まとめサイトでは川かどうかで判断している。とのことですが、水面自体に出現してしまってはポケモンが捕まえられないので、少し余裕を持って水面かどうかを判定させていることが推測できます。(ユーザーを川や海に飛び込ませるわけにはいきませんからね)
ここで次の話が出てきます。
バッファとは?
「バッファ(buffer)」という言葉をご存知でしょうか?一般にはあまり聞きなれない言葉ですよね。英語のbufferは元々「緩衝材(かんしょうざい)」という意味ですが、コンピュータの世界では「一時的なデータを記憶する領域」という意味で使われるなど、分野により異なる意味合いを持つ単語のようです。
GISでもこの「バッファ」という言葉を使いますが、やはり上記とは違った意味合いがあります。
GISでの「バッファ」= 等距離にある領域
GISでは、「ある対象物」を基準として「等距離内」にある領域をバッファと呼びます。
例)「自宅という対象物」(点)から、「100mの等距離」にあるバッファが中央の赤の円になります。さらに100m刻みの範囲が、それぞれオレンジ色、黄色の円で表現されています。
「GIS」って何ぞや? という話は今回は置いといて、「バッファ」の概念とナイアンティックがブログで述べている話を勘案すると、川への近接性を判定するために、川から何mかまでの領域を厳密に定めて「水ポケモンが出現する領域」と決めているのだろうと推測できます。そして水面自体は出現領域から除外しているのではないでしょうか*3。GPSの測位がずれることも考慮しても、なおのこと川からバッファを形成したデータを用いて、水ポケモンの出現の有無を判定したほうがよいでしょう。
それでは緑地部分はどうでしょうか。ここで定義する緑地はGoogleマップで黄緑色で塗られている部分を指します。日本でゲームがリリースされた先週は世田谷公園にミニリュウが大量に出現することが分かり、多くのプレーヤーが公園に押し寄せて話題になりましたね。
(記事内で世田谷公園についても取材されています。)
レアポケモンの発生地としてやけに公園がピックアップされるのは、緑地データが利用されているものと推測できます。一般的な街なかに設定されているポケモン出現リストとは別のリストが、Googleマップの緑地にあたる領域には設定されているのでしょう。小公園でも街なかとは異なるポケモンが出現するとは思いますが、まとまった緑地データがある場所のほうが捕獲効率が良いため、都会部の大公園が「ポケモンの巣」として多くの人が集まるのはある意味必然だったと言えるでしょう。
以上のことをポンチ絵でまとめると、
となり、水面・緑地系ポケモン出現範囲に属しない領域は、他のポケモン出現データのリストが使用されていることが予想できます。
これらの話は、各種ポケモンGO攻略サイトで現在進行形で検証が進められているかと思います。今回は水面・緑地・その他の3領域に分けましたが、以下に示す攻略サイトでは、その他の領域を内陸部・都市部に分けて出現場所リストを分類しています。
内陸部と都市部はどのように区分されているのでしょうか。攻略サイト等ではポケモンの生息域含め、様々な観点からゲームの分析が進められていますが、今回はデータ作成に利用されているGoogleマップの構成から予測してみました。そうしたのも、後から内容を更新できるスマホアプリであることから、データやシステムの構成から捉えた、汎用性のある攻略法が見つけられないかと思ったためです。実際に世田谷公園のミニリュウは1週間で居なくなりましたしね。
元データの構成を考えると、このようなデータを変更し得る要素は他にもあることが想定できます。ポケモンGOのDAU数を維持するために、今後ポケモン・ナイアンティックがどのようなカードを切っていくのか考えるととても楽しいですね。
次回は、前回の記事と今回の記事を組み合わせると分かることや、内陸部と都市部をどう区分するのか等について思案していけたら、と思います。また、これまでの記事で生じている矛盾点の洗い出しや、それを解消する代案等も今後まとめていきます(自分用メモ)。ではでは。
続き