Blog > 地球規模のリアルワールドARプラットフォームの開発
2019年2月27日
地球規模のリアルワールドARプラットフォームの開発

Niantic

Nianticは、想像の先を行くような地球規模の拡張現実(AR)プラットフォームの開発をすすめています。背景には、ARゲームの開発者の方々が技術的な問題に煩わされることなく、より短期間に、より簡単にゲームを作れるようにしたいという想いです。Nianticリアルワールドプラットフォームは、私たちの理念、すなわち「運動」「新しい発見」「現実世界でのつながり」を実現するためのテクノロジーとして開発しました。この理念はJavaサーバーライブラリやモバイルクライアント上のUnity C# APIといった形で実現され、Nianticリアルワールドプラットフォームは、『Ingress』や『Pokémon GO』、さらには近く配信予定の『ハリー・ポッター:魔法同盟』やそれに続くタイトルにおいても、その中核となるサーバーやクライアントエンジンを支える基盤として機能します。

昨年12月にご案内したNiantic開発コンテスト「Beyond Reality」では、開発者の皆さんをお招きし、Nianticリアルワールドプラットフォーム上で(それも一般公開に先駆けて)一緒にAR体験を開発していただくという試みを行っています。また、昨年6月にARマッピングとコンピュータビジョン機能のプレビューの公開以来、このプラットフォームを使うことでどういった利点があるのか、あるいは、このテクノロジーを応用することによってどのようなことが可能になるのか、その全体像が知りたいというお問い合わせも数多くいただいています。そこで今回は、Nianticの考えるAR体験の未来や、私たちがこのような軌跡を見込んだ中で培ってきた技術についてご紹介します。

まずはこのお話をする上で、ウェアラブルコンピューティングが広く行き渡った未来へとタイムリープしてみましょう。この世界では、未来のARデバイスによって、人間の五感はリアルとバーチャルの間で渾然一体となっています。プライベートでもビジネスでも、日々の体験は低遅延の5G回線でリアルタイムにつながり、どこへでも携帯できる超小型デバイスによって支えられていることでしょう。こうした未来が待っているとして、皆さんならどのような体験を作り上げたいと思われますか?

Niantic

まず、このような未来は、本質的に「共有」され、「ソーシャル」なものになるのではないかと考えています。実際に、「みんなで一緒にプレイする」という要素は、Nianticのゲームにおいても非常に重要な機能を果たしています。ゲームを単に楽しむだけでなく、それを介して友達が増えたり、新しいコミュニティを作ることができた、という声がプレイヤーの皆さんからもたくさん頂戴しています。未来では、AR体験を共有することで、こうした側面がさらに強まると考えています。そしてそれを実現するためには、ARのインタラクションを、より人間の感覚に近い自然なものにする必要があります。脳に生じる違和感を極限まで減らし、本物だと信じさせるため、現実世界と同じ物理法則をデジタル上でも再現することになると思います。このバランスが実現したとき、プレイヤーは魔法のようなリアリズムに没入でき、思う存分楽しむことができます(デモンストレーションとして作成した『Codename: Neon』をご覧ください)。このような世界では、テクノロジーはプレイヤーの意図したとおりに動き、物理法則に従って作用します。たとえば『Codename: Neon』では、プレイヤーは地面に映った白いペレットからエネルギーを得られまが、これは共有資源なので、誰かが先に回収すると他のプレイヤーは回収できなくなります。

第2に、ARの世界は、私たちが暮らすこの地球と同じく様々な要素から成り立ち、バラエティに富んだ美しさと多様性を反映したものになるでしょう。そうなれば必然的に、私たちにはリアルとバーチャルを同時に探索しようとするインセンティブが働くことになります。また、バーチャル体験を生み出すために使われたデータは、現実世界と密に連動したものとなるはずです。例として、『Pokémon GO』ではプレイヤーの現在地で雨が降ると、ゲーム内でも雨が降り始めます。こうした五感による体験をバーチャルでも再現することが重要です。そうすることで、プレイヤーは真新しいAR世界を探索しながら、そこにつながりや意義を見出していくことが可能になるのです。

第3に、このバーチャルな世界は、人々に運動や探検を働きかけるものになるのではないかと思います。人間に元来備わっている運動と休憩のリズムを活用すれば、おのずと出かけたくなるような魅力的な体験を作り出し、ARと現実世界の空間体験をリンクさせて展開することができます。たとえば、『Codename: Neon』はこの手のARゲームとしては初となるシステムを採用しており、テーブル程度の屋内空間にとどまらず、公園などの大きくて開けた空間でプレイしたくなるように設計しました。『Ingress』や『Pokémon GO』でも、実際に歩いた距離が記録されることで、近所や街中を探索するインセンティブとして機能する場合があります。

こうした未来、そして理想を実現するため、私たちがどのようなテクノロジーを生み出したのか、という本題を考えてみましょう。人々の体験を単一のバーチャル世界で実現させるには、共有された地理空間オブジェクトの生成と変異も可能な、シングルインスタンスかつリアルタイムに処理可能な地理空間とリンクした環境を、とてつもない規模で展開しなければなりません。結果として、私たちのプラットフォームの中心となるのは、リアルタイムの地理空間的ストレージであり、インデックス化され、開発者側でコントロール可能な世界中のオブジェクトを管理するサービングエンジンということになります。私たちが目指していたものは、大勢の人の現実をひとつにまとめあげ、それと同時に互いを結びつけるシングルワールドのARゲームであり、毎月の利用者数が何億人という単位にのぼる、膨大なスケールで運営される世界です。ですから、私たちがおこなった技術的な投資は、その大部分が、シングルワールドのインスタンスを保ったまま横断的なスケーラビリティを確保するためにあてられました。具体的には、シングルインスタンスのリレーショナルSQLデータベース(過去のMMOは一般的にこれをベースにしていました)に依るのではなく、横断的にスケーラブルなKubernetesコンテナテクノロジーとNoSQL非正規化データストアを組み合わせることで、サーバー権威型のゲームを運用する方法を考え出そうとしたのです。その結果、『Pokémon GO』は全面的にこのプラットフォーム上で製作され、単一のゲーム環境で、リアルタイムに何百万人ものプレイヤーが同時接続するゲームとなっています。さらに月単位では毎月数億にものぼります。

『Ingress』の開発初期段階でわかったことですが、システム的に生成・抽出されたコンテンツを用いてリアルなゲーム世界を構築しようとしても、それはあまり現実的な手法には思えませんでした。こうしたアプローチでは、どうしても認知的な不協和が生じてしまい、いくらアルゴリズム的には筋が通っていても、現実的には何の面白みもないロケーションにスポットライトをあてるゲームとなってしまうのです。その教訓から学び、現在のゲーム内では、知名度や関心がある、アクセスも容易な世界中の場所を何百万と集めた広範囲のデータセットを使用しています。おまけにこのデータは、その大部分がユーザーによって作成されたものなのです。こうした場所をメタデータの基準にもとづいて選び、ツールチェーンによってゲームタイトルに読み込み、なおかつそのデータセットは過去6年間にわたって、プレイヤーの皆さんの手で定期的に提案、整理、更新されているのです。Nianticのプラットフォーム上に構築された体験が、現実の世界を探索したり、ある場所からまた別の場所へと歩いてみようというインセンティブをプレイヤーに与えられるのは、このような背景があります。

Niantic
Niantic

これらの機能はモバイルクライアント側の一連のUnity APIによって管理されます。こうしたAPIは、現実世界のマップ情報と地理空間的なゲームオブジェクトのレンダリングおよび定型化が可能な、高性能ネイティブプラグインにマッピングします。その上で、スケーラビリティとクライアントのパフォーマンスに最も影響を及ぼす、ゲーム内でも最も非直感的なコーディングが必要とされている部分が、プレイヤーの現在地とゲーム内での状況のリアルタイムのリンクを維持しているのだということがわかりました。これを受け、プレイヤーが世界を動きまわっている最中も、マップと空間オブジェクトの両方のクエリとキャッシュ化が可能な、直感的なAPI作りに力を注ぎました。このAPIによって、開発者は地球規模で、シングルインスタンスかつリアルタイムのマルチゲームプレイをより簡単に作れるようになり、ゲームデザインとしての「おもしろさ」に集中して開発を進められるようになるのです。

最後になりますが、私たちNianticは、スマートフォンをコントロールデバイスとして、またバーチャル世界を覗くひとつの窓として、リアルタイムマルチプレイによるAR体験のための包括的なAPIを作りました。コンピュータビジョン、ネットワーキング、ゲームのプロトタイピングツールといった難題の解決に力を注ぐことで、開発者がプレイ体験の構築に専念できるような環境を作りたいという願いがあったからです。Nianticのテクノロジーは、わずか数十ミリ秒というP2Pマルチプレイヤーレイテンシーを実現する、リアルタイムARに最適化されています。つまり、60fpsのレンダリングでは1枚1枚の画像が表示されるのは16ミリ秒以下なので、プレイヤーが今いる実際の位置が正しく反映され、一緒にプレイしているフレンドでさえも、さっきまでいた場所ではなく、今この瞬間にいる場所が現在進行形で表示されるということです。また、マルチプレイARにおける同期やトラッキングを高速化し、よりよいエンドユーザー体験を実現できるよう、クライアントライブラリに高度なコンピュータビジョンアルゴリズムも組み込んでいます。これらはすべて、プロトタイピングツールによってクロスプラットフォームで動作し、開発者に分単位ではなく秒単位の反復を可能とします。

まとめとして、Nianticのテクノロジープラットフォームでは、桁外れに多様化され差別化された地球規模のAR体験を、短期間での開発可能です。私たちはこのプラットフォームを、ハッカソンや開発初期のプロトタイプ製作から、最新作となる『ハリー・ポッター:魔法同盟』にいたるまで、あらゆる社内プロジェクトで使用してきました。ですが、このテクノロジーは私たちだけでなく、世界中の開発者にとっても、たくさんのアイデアを生み出し、皆さんの力になると信じています。もし私たちのプラットフォームのフィールドテストにご協力いただけるようでしたら、ぜひこちらのウェブサイトで登録をお願いします。皆さんがすばらしい作品を生み出すお手伝いができることを、Nianticのスタッフ一同、心から楽しみにしています。


—Diana Hu(ARプラットフォーム室長)& Ed Wu(プラットフォーム担当副社長), Niantic

arrow Created with Sketch. Blogに戻る