Geospatial Creator for Untiy のサンプルを試す方法

# はじめに
Geospatial Creator が盛り上がっているようなので、まずは簡単なサンプルシーンを触って、
サービスの理解を深めていきたいと思います。

# 本記事を読んでできること
Geospatial のサンプルを拡張して、Geospatial Creator を動かすこと。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Geospatial Creator for Unity を試してみた！<br>神戸ハーバーランド付近 / 三ノ宮駅周辺<a href="https://twitter.com/hashtag/GeospatialAPI?src=hash&amp;ref_src=twsrc%5Etfw">#GeospatialAPI</a> <a href="https://twitter.com/hashtag/Unity?src=hash&amp;ref_src=twsrc%5Etfw">#Unity</a> <a href="https://twitter.com/hashtag/GoogleIO?src=hash&amp;ref_src=twsrc%5Etfw">#GoogleIO</a> <a href="https://t.co/f6kBaBCEuW">pic.twitter.com/f6kBaBCEuW</a></p>&mdash; Futo Horio (@Futo_Horio) <a href="https://twitter.com/Futo_Horio/status/1656743771122585600?ref_src=twsrc%5Etfw">May 11, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


# 検証環境
- Unity 2021.3.6f1
  - AR Foundation 4.2.7
  - ARCore XR Plugin 4.2.3
  - ARKit XR Plugin 4.2.3
  - ARCore Extensions 1.37.0
  - Cesium for Unity 1.2.0

# Geospatial Creator を試す方法
## 1. Unity プロジェクトの事前準備
以下の Getting started の手順に従い、 Unity プロジェクトの新規作成を行います。
※ Geospatial Creator は Unity 2021.3 以降でのサポートになるので注意してください。

[Getting started with ARCore Extensions for AR Foundation](https://developers.google.com/ar/develop/unity-arf/getting-started-extensions?hl=en)

1. Unity 2021.3 以降で **新規プロジェクト** を作成します
2. Build Settings から ``iOS`` もしくは ``Android`` へ Switch Platform を実行します
3. ``Window`` > ``Package Manager`` を選択します
4. **Add Package from git url ..** を選択して、``https://github.com/google-ar/arcore-unity-extensions.git`` を入力した後、Add ボタンをクリックします

※ 本記事の検証は、``Android`` プラットフォームを選択して進めています。

## 2. ARCore Extension セットアップ

※ 以降の手順でサンプルシーンが用意されていることが判明したので、
この手順は読み飛ばしていただいて問題ないです。

- Hierarchy パネルから ``Main Camera`` を削除します
- Hierarchy パネル上で右クリックして 「AR Session」「AR Session Origin」「ARCore Extensions」を追加します

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/21d6803c-cb2e-400f-00a4-44f985415658.png" width="400">

- Hierarchy パネルから ``ARCore Extensions`` を選択します
- ``AR Core Extensions (Script)`` の Inspector のフィールドに以下設定を追加します
  - Session -> AR Session
  - Session Origin -> AR Session Origin
  - Camera Manager -> AR Camera

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/80d623e9-226c-bf55-3ff7-e631047933fe.png" width="400">

## 3. ARCore Geospatial API と Google Map Tiles API を有効化する

- [Google Map Tiles API Page](https://console.cloud.google.com/apis/library/tile.googleapis.com) を開き、API を有効化する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/2d0cfa5a-915b-09ba-b499-e849480a5ce8.png" width="400">

- [ARCore API Page](https://console.cloud.google.com/apis/library/arcore?hl=ja&project=arcoregeospatialapi-362402) を開き、API を有効化する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/8f4d6de8-dd20-5359-5ef4-2d68f2e21a5f.png" width="400">

## 4. サンプルのダウンロード

- ナビゲーションから ``Window`` > ``Package Manager`` を選択します
- ``Packages: In Project`` を指定して **ARCore Extensions** を選択します
- ``Samples`` タブを展開して、**Geospatial Samples** をインポートします

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/13c095f7-f802-c6d3-1a5e-8e8f8acd1f1c.png" width="400">

サンプルデータは、以下ディレクトリ配下にダウンロードされます。
``Assets\Samples\ARCore Extensions\1.37.0\Geospatial Sample``

## 5. サンプルシーンの拡張

- サンプルデータに含まれる ``Geospatial`` シーンを開きます
- **Edit > Project Settings ... > XR Plug-in Management** を開きます
- ``Android`` タブを開き、Plug-in Providers の ``ARCore`` にチェックを入れます

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/1b16e3a0-f7de-50e0-eeee-48fda18f752f.png" width="400">

- ``XR Plug-in Manageme > ARCore Extensinos`` を開きます
- Android Authentication Strategy を **API Key** に設定します
- Android API Key に コンソール画面で取得した API Key を入力します
- Optional Features の **Geospatial** にチェックを入れます
- Player Settings で以下の変更を行います

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/dd9b5c13-ccb1-a60a-ca3b-d6e2eaa0beb5.png" width="400">

- Cesium for Unity のリリースページから **com.cesium.unity-1.2.0.tgz** をダウンロードする
- Package Manager で **Add package form tarball..** を選択してダウンロードしたファイルを指定します
- **Project Settings > XR Plug-in Management > ARCore Exteisions** を開き、
Geospatial Creator にチェックを入れます
- Geospatial Creator のウィザードが開かれるので **Finish** ボタンを押します

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/f1a6a21b-ab63-d932-83f5-418fb79bcb0d.png" width="400">

- ナビゲーションから ``GameObject > XR`` を選択して **AR Geospatial Creator Origin** を追加します
- AR Geospatial Creator Origin の Inspector から
**Add Cesium Georeference Component** ボタンを押します

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/3d774867-e4e5-3524-0059-6987babf64d0.png" width="400">

- Google Map Tiles API Key を入力します

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/fc08024f-28bb-4b81-30a8-ec59fafdc762.png" width="400">

以上で Geospatial Creator in Unity を使う準備ができたので、
Unity Editor で ゲーム再生を行います。

## 実際に試してみる

経度と緯度を指定すると、実際に神戸の街並みを読み込むことができました！！！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/2e1ebfa2-9325-d126-56d8-11c3d9217b18.png" width="400">

# Refs
- [Getting started with ARCore Extensions for AR Foundation](https://developers.google.com/ar/develop/unity-arf/getting-started-extensions?hl=en)
- [Announcing Geospatial Creator](https://www.youtube.com/watch?v=xWL-fr3fDYU)
- [Get Started with Geospatial Creator in Unity](https://www.youtube.com/watch?v=MDcyG9MAMAo)