Google は「スペースインベーダー」45 周年を記念して、日本の初代アーケード ゲームの開発元であるタイトー、そして UNIT9 と共同で、最先端のロケーションベース AR テクノロジーを活用した没入型ゲーム「スペースインベーダー ワールドディフェンス」をリリースしました。世界中のプレーヤーは、屋外に出て自分の住んでいる地域を探索し、近くの建造物から現れる仮想スペースインベーダーから地球を守り、スペースインベーダーを倒すとポイントを獲得します。こうしたプレイ体験がすべて拡張現実によって構築されています。
このゲームには、最新の ARCore テクノロジー(Geospatial API、Streetscape Geometry API、Geospatial Creator)が採用されています。このゲームがどのように開発されたのか、そして最新の機能とツールをどのように使用して世界初のプロシージャルなグローバル AR ゲームを設計したのか、その舞台裏をお見せしたいと思います。
Geospatial API を使用すると、Google ストリートビューでマッピングされた任意のエリアにリモートでコンテンツを結び付け、現実世界とリンクするより豊かで堅牢な没入型エクスペリエンスを地球規模で作成できます。「スペースインベーダー ワールドディフェンス」は、ストリートビューで Visual Positioning Service(VPS)の網羅率が高い地域にある 100 か国以上の国で利用でき、混雑した都市環境や小さな町村でのプレイにも適応します。
VPS の対象外地域に住んでいるプレーヤーのために、最近ゲームをアップデートして「屋内モード」と呼ばれる新しいモードを追加しました。これにより、屋内でも屋外でも、あらゆる環境と場所でスペースインベーダーからの地球防衛に参戦できます。
スペースインベーダーの新しい屋内モードにより、屋内のあらゆる環境で臨場感あふれるゲームプレイが可能になった
ARCore Geospatial API は、ユーザー デバイスのカメラ画像を使用して特徴点をスキャンし、Google ストリートビューの画像と比較することで、現実空間内におけるデバイス位置を正確に特定します。
Geospatial API はストリートビューの数百億枚の画像を備えた VPS をベースにしているため、デベロッパーは 100 か国以上で、現実世界とリンクするエクスペリエンスをリモートで構築できます。
これを実行するには、ユーザーがスマートフォンをかざし、ユーザーの位置を正確に特定するのに十分なデータが収集されるよう、周辺を移動する必要があります。そのために、ユーザーがカメラの画角内で宇宙船を追跡するようにして、そのエリアをユーザーにスキャンしてもらうという巧妙な手法を採用しました。
プレーヤーはゲームを開始するにあたり、宇宙船を追跡することで周囲をスキャンする
このユーザーフローを使用して、Geospatial API が高品質のエクスペリエンスを実現するのに十分なデータを収集しているかどうかを継続的にチェックします。
if (earthManager.EarthTrackingState == TrackingState.Tracking)
{
var yawAcc = earthManager.CameraGeospatialPose.OrientationYawAccuracy;
var horiAcc = earthManager.CameraGeospatialPose.HorizontalAccuracy;
bool yawIsAccurate = yawAcc <= 5;
bool horizontalIsAccurate = horiAcc <= 10;
return yawIsAccurate && horizontalIsAccurate;
}
近辺をスキャンした後、ゲームは Streetscape Geometry API のメッシュデータを使用して、アルゴリズムによってさまざまな場所でのゲームプレイをユニークなエクスペリエンスへと変容させます。現実世界において、地形や都市レイアウトは場所によって異なり、そうした違い一つひとつがゲームプレイに影響を与えるのです。
ゲームプレイは、チェコ共和国の町(左)からニューヨークの都市(右)まで、プレーヤーがいる地域に応じて変化する
このゲームでは、スペースインベーダーが建物からスポーンすることがあるため、世界のさまざまな場所から取得した建物のジオメトリを使用してテストケースを構築しました。これにより、地方の村から賑やかな都市に至るまで、さまざまな環境で確実にゲームが最適に動作するようになりました。
アルゴリズムによって現実世界にポータルが配置される仕組みの視覚化
Google の調査研究から、拡張現実を体験するために長時間腕を上げ続けていると、ユーザーが疲れてしまう可能性があることがわかりました。このナレッジがゲームプレイ開発に影響を与え、作成されたのがインベーダーの次元です。これにより、プレーヤーがスマートフォンを持っている腕をリラックスさせ、快適さを向上させる機会が生まれます。
パワフルな Geospatial API ならではのあっと驚くギミックです。プレーヤーは、現実世界の AR の次元と、バーチャルで生成された 3D の次元を行き来します。
現実世界の AR から 3D 次元へのゲームプレイの移行
この効果は、建物や地形を独特のワイヤフレーム スタイルでレンダリングする仮想環境シェーダーとカメラフィードを統合することで実現しています。
Unity エディタでインベーダーの次元がプレーヤーの周囲に展開されていき、2 つのモード間の移行がシームレスに行われる
プレーヤーがインベーダーの次元に入った後、プレーヤーの宇宙船はアルゴリズムで生成された経路を通って周辺地域を飛行します。これは、オーバーヘッド カメラからユーザーの環境の深度画像を作成することによって行われます。この画像では、赤いチャネルが建物を表し、青いチャネルが飛行経路に使用される可能性のある空間を表しています。次に、この画像を使用して、経路がたどる点を含むグリッドを生成し、A* 検索アルゴリズムを使用してすべての点をたどる経路を解決します。
最後に、生成された A-Star の経路は、ジッター、急旋回、衝突をなくすために後処理されます。
宇宙船の飛行経路を平滑化するために、設定したノード間隔で経路をサンプリングすることでジッターを除去します。次に、経路の曲がり具合を分析することで、急旋回が含まれているかどうかを判断します。急旋回が存在する場合は 2 つの追加ポイントを導入し、旋回を緩やかにします。最後に、平滑化した経路が障害物と衝突するかどうかを確認し、障害物が検出された場合はその上を飛行するように調整します。
ゲームを構築する際の重要なポイントは、コンテキスト生成が複雑になるため、世界規模のテストが必要であるということでした。Unity で複数の環境をテストケースに取り込むことで、これらのアルゴリズムの変更を迅速に反復処理して検証できました。これにより、ゲームを世界中に展開する自信が得られました。
ARCore と Google Maps Platform の Photorealistic 3D Tiles を搭載した Geospatial Creator を使用して、スペースインベーダーのようなバーチャル コンテンツが東京都内の特定のランドマークの付近でどのように表示されるかを Unity で検証しました。
Photorealistic 3D Tiles により、日本の東京タワーなどの特定の場所にインベーダーを視覚化できた
このゲームのリリース以来、プレーヤーのフィードバックに耳を傾け、ゲームプレイ エクスペリエンスのアップデートと改良を積極的に行ってきました。
今すぐ Android または iOS でゲームをダウンロードし、エリート地球防衛軍の仲間入りをして、地元で最高スコアを競い合いましょう。ゲームの最新のアップデートについて知りたい場合は、Twitter(@GoogleARVR)をフォローしてください。ARCore と Geospatial Creator のウェブサイトでは、Google の AR テクノロジーを使用してアプリの構築を始める方法をご紹介しています。