ポケモンGOなどで使われているAR技術について学んでみよう!(第1回導入編)

VR/AR

ポケモンGOなどで使われているAR技術について学んでみよう!(第1回導入編)

みなさんこんにちは。
中村忍です。

突然ですが、みなさんは「ポケモンGO」というスマートフォンゲームをご存知でしょうか?
ポケモン自体は世界的人気なので、みなさん知っているかと思います。
ポケモンGOは2016年の夏にリリースされた「位置情報アプリ」であり、世界中で話題になりました。
街を歩けば、老若男女問わずポケモン探しに夢中になっていた光景を見たことがある方も多いかと思います。

ポケモンGOは、位置情報アプリ開発を売りにしているアメリカのナイアンティック社と、日本の株式会社ポケモンと共同で開発されました。
ポケモンGOを起動したスマートフォンのカメラを通してかざして、街中に隠れているモンスター(キャラクター)を捕獲するというのがゲームの主な遊び方です。
モンスターは人が描いたものですが、街中の映像の中に突然現れてくる仕組みにふと疑問に思うかもしれません。
これは、「AR」、すなわち「拡張現実(Augumented Reality)」という技術が使われることで実現されています。

ARは、最近流行の「VR」と共に認知されてきていますが、筆者のまわりでは、2007年に放映された「電脳コイル」というアニメに登場する「電脳メガネ」を思い浮かべる人が多いようです。
電脳メガネは眼鏡型のウェアラブルコンピュータで、今でいう「Google Glass」が相当しますが、アニメ「電脳コイル」が放映された当時はARはまだ実用化されていなかったので、電脳コイルが世の中に与えた影響はとても大きいと思います。

他にも、「ドラゴンボールのスカウター」のように、「装着した眼鏡に、相手の強さを数値で表現する」仕組みも、ARとしてイメージできるでしょう。
スカウターといえば、パイオニア株式会社からは「ARスカウター」という「カーナビ」が登場しました。これは、運転に必要な情報を現実の風景に重ね合わせ、わかりやすく誘導するというもので、従来のカーナビの情報と現実の世界の情報を頭の中で合致させる手間が省けます。
将来的には、フロントガラスに表示可能なARナビゲーションシステムも登場することでしょう。

それでは、ARについて、どのような技術が使われているかを紹介し、実際にポケモンGOのようなARアプリケーションを作成する方法を紹介していきます。


カメラの中にキャラクターを出現させる2つの手法

スマートフォンをはじめとするカメラに突如として出現するキャラクター達。
これを実現させる手法がAR技術の特徴であり、「ロケーションベースAR」と「ビジョンベースAR」という2つの方法があります。

1つ目のロケーションベースARは、GPSなどから位置情報を利用して対象物の情報を提示する方法です。
スマートフォンでは、適当な間隔で自分自身の位置情報を取得します。そして、カメラ内にビルなどの対象物が映ったら対象物の位置情報を取得し、CGなどの画像処理を使って装飾したり文字情報を表示したりします。
位置の他にも、「磁気センサー」で情報を見ようとしている人が向いている「向き」を、加速度センサーで仰角・方位角といった傾きを利用し、情報表示に役立てているデバイスもあります。
このように、ロケーションベース型ARは、スマートフォンを中心とした周囲の環境や状況を認識してARが体験できます。

ポケモンGOで使われているAR技術の記事の第一回導入編にて使用01
出展:ValuePress記事: 株式会社アクシス様事例

筆者自身は、ARがまだ今ほど有名でない10年ほど前にゲーム会社でゲーム開発に携わっていましたが、その時にARに触れたことがありました。
これは、Playstation3でARができるというもので、「Playstation Eye」という奥行き検出機能を持ったカメラと、「Playstation Move(Moveと略)」という加速度センサー搭載のマイク型モーションコントローラーが連携していて、Moveが指す位置に絵を表示したりできるものでした。
当時はMoveもまだ発売前であったこともあり、ソニー側もどのようなゲームを作るかはクリエーター次第だというスタンスであった記憶があります。

ポケモンGOで使われているAR技術の記事の第一回導入編にて使用02
出展:For Sale FS: 2 X Playstation Move

2つ目のビジョンベースARは、画像認識・空間認識などの技術を使って、カメラに写っている物体を認識・解析し、情報を提示する方法です。
ビジョンベースARにはさらに2種類のタイプがあり、「マーカー型」と「マーカーレス型」と呼ばれる方式があります。

マーカー型とは、マーカーと呼ばれるQRコードに似た特殊な情報が埋め込まれている紙を空間上に置き、マーカーをカメラで写すとそこにキャラクターが表示されるというものです。
すなわち、位置情報を補完するための仕組みでありますが、実際にマーカーを置くことでARを実現するため、見栄えがよいとはあまりいえないでしょう。
一方で、「遊戯王」のようなカードゲームでは、絵柄にマーカーとしての要素を組み込むことで、見栄えを損なわずにARを実現する例もあります。

ポケモンGOで使われているAR技術の記事の第一回導入編にて使用03
出展:遊戯王をARで完全再現!?海外で話題沸騰中のリアル遊戯王のつくりかた

マーカーレス型は、カメラに写っている空間情報をリアルタイムに解析し、人、地形、物体などを抽出し、情報を提示します。
空間認識、特徴点抽出といった、3次元CGや高度な画像処理の知識が必要となり、紹介した3つの方法の中では一番難易度が高いと思われます。

以上、手法について紹介しましたが、ちなみにポケモンGOはどの手法を使っているのでしょうか?
答えは、1つ目のロケーションARと2つ目のビジョンベースARのマーカーレスタイプを組み合わせたものと思われます。
まず、ポケモンは世界中の特定の位置に存在しており、スマートフォンを持って近づくとモンスターが出現することから、GPSで認識しており、ロケーションARを使っています。
また、モンスターはスマホのカメラに映した現実の背景の上に、まるで本当にその場に居るかのように表示されます。GPSだけではそこまでの精度は出せないのと、街中にはマーカーは置かれていないので、マーカーレス型を使っています。
両方の特徴を生かして実現しているため、非常に精度がよいARの例だと思われます。

いかがでしたでしょうか?
次回は、今回紹介したARの特性を元に、世の中に存在しているARの開発環境を紹介しながら実際にARアプリケーションを作成する方法について紹介したいと思います。

参考