LoginSignup
13
5
お題は不問!Qiita Engineer Festa 2023で記事投稿!

【徹底解説】ARCore Geospatial Creatorについて

Last updated at Posted at 2023-06-22

環境

MacOS13.0
Unity 2021.3.16f
ARCoreExtentions 1.37.0
ARFoundantion 4.2.8
Cesium 1.3.1

はじめに

5月のGoogleIOでGeospatialAPIのアップデートが発表されました。
そのうちの一つのARCore Geospatial Creatorについて解説します。

Geospatial Creatorとは?

EditorでGoogle Earthのようなものを表示してそれを参考にGeospatialAPIのAnchorを置ける機能です。

(画像は原宿付近)
image.png

導入方法

以下公式ドキュメントを参考に導入していきます。

必要なもの

  • GeospatialAPIのAPIキー、もしくは認証情報

    • GeospatialAPIを使うために必要
  • Google Maps Tiles APIのAPIキー

    • Google Earth的な表示の元データ(3DTile)を取得するためのAPIキー
  • Cesium

    • Google Maps Tiles APIから取得した3DTileを表示するためのツール
    • PlateauViewのモデル表示に使われている

GeospatialAPIのAPIキーの取得について

OSによって手順が異なります。

  • Androidの場合

  • iOSの場合

セキュリティの関係でAndroidの場合キーレス認証、iOSの場合トークン認証を推奨されますが、今回はサンプルを試したいだけなのでAPIKeyを使うことにします。
サンプルを試し終わったらAPIKeyを無効にすることをおすすめします。

APIKeyの取得は以下の記事が参考になります。

取得を終えたらどこかにメモっておきましょう。

Google Maps Tiles APIのAPIキーの取得について

  1. GCPのプロジェクトを作ってある状態で以下のページにアクセスします
    https://console.cloud.google.com/apis/library/tile.googleapis.com?hl=ja
  2. 有効にするをクリックし、MapTilesAPIを有効にします
    image.png
  3. しばらくまっているとAPIキーが表示されるのでこちらもメモっておきましょう
    貼り付けた画像_2023_06_15_13_27.png

GeospatialAPI導入手順

  1. Unityのプロジェクトを作り、ARFoundationとARCoreExtensionsをパッケージマネージャーからインストールする

  2. GeospatialのSampleをインポートしておく
    貼り付けた画像_2023_06_15_15_12.png

  3. Cesiumをインストールする

    1. リリースページからtgzをダウンロードし、パッケージマネージャーからインストールする
    2. 横着してgiturlからインストールをするとエラーが起きるので大人しくtgzからインストールすること
  4. AR Plugin ManagementでARCore/ARKitを有効にする
    image.png

  5. AR Core Extensionsの設定画面で先程取得したAPIキーを入力する
    貼り付けた画像_2023_06_15_15_25.png

  6. GeospatialとGeospatial Creatorにチェックを入れる
    image.png

  7. Sampleシーンを開いておく
    image.png

以上でGeospatialAPIの導入ができました。

Geospatial Creatorの導入

先程のGeospatialというシーンの中で作業をしていきます。

  1. ヒエラルキーで右クリックメニューを出してから XR/ARGeospatialCreatorOriginを選択します
    image.png
  2. するとARGeospatialCreatorOriginコンポーネントが生成されるのでAddCesiumGeoreferenceConponentを選択します
    image.png
  3. その後APIキーを入力する場所が現れるのでメモをしておいたGoogleMapTilesAPIKeyを入力します
    貼り付けた画像_2023_06_15_15_43.png
  4. 入力が終わるとどこかの山が表示されます
    (緯度39.736401、経度-105.25737、高さ2250の地点らしいです。おおよそアメリカ大陸の真ん中辺り)
    image.png

Geospatial Creatorの使い方

表示される場所の変え方

ARGeospatialCreatorOriginオブジェクトのCesiumGeoreferenceのOriginに緯度と経度と高さ(ここでの高さは楕円体高)を入力することによってARGeospatialCreatorOriginの原点がその地点に移動します。

例えば以下のように設定すると渋谷駅前が表示されます。
貼り付けた画像_2023_06_15_15_56.png

基本的に、Geospatialでオブジェクトを生成したい位置の近くにOriginを持ってくることを推奨します。
あまりに離れすぎると(20kmあたり)誤差が大きくなるそうです。

楕円体高とは?

ジオイド高に標高を加えた高さです。その地点の標高とジオイド高は緯度と経度を入力すると計算できるサイトが存在するのでそちらを参考にすると良いと思います。
image.png
※出典 国土地理院

※参考
ジオイド高計算サイト
標高計算サイト

アンカーの置き方

  1. 右クリックメニューからXR/ARGeospatialCreatorAnchorを選択
    image.png
  2. アンカーのプレハブが生成される
    image.png
  3. このアンカーを動かすことによって配置される場所を変えられる
    • 例えばスクランブル交差点にCubeを置きたい場合このようにアンカーの子にCubeを配置すると良いです
      image.png

アンカーについて

AltitudeTypeを変えることによって配置する方法を変えられます。
image.png

詳しくは公式ドキュメントにかかれていますが、基本的にはTerrainもしくはRooftopを使うのが良いと思います。

AltitudeTypeについて

  • Manual Altitude
    WGS84座標系に基づいてアンカー特定の高さに配置します。
    先程でてきた楕円体高の座標系であるため0mが標高0mとは限らないため試行錯誤が必要になります。

  • Terrain
    指定した緯度経度に対して、地面にアンカーを配置します。
    地面の高さはGeospatialAPIのTerrainAnchorを使用します。
    例えば、スクランブル交差点の地面に張り付くように設置したい場合以下のようにAltitude Offsetを0にします。
    image.png
    この際、Editor上で地面よりも上に配置していても、AR実行時に先程設定した地面からの高さのOffsetの値が優先されます。

  • Rooftop
    Terrainと同じように、指定した緯度経度で建造物の上部に対するアンカーを配置します。

まとめ

ARCore Geospatial CreatorとはGoogleEarthのような空間をUnityEditorで表示し、アンカーを置くことができる機能です。
これを使うことによって今まで3Dスキャンやグーグルマップと重ね合わせながら試行錯誤をしていたオブジェクトの配置がかなり楽になります。

13
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
5