これまでのARはデバイス間でAR上のオブジェクトを共有することができませんでしたが、Cloud AnchorはそれをCloudにAnchor情報を保持しデバイス間で共有することが目的の機能となります。

APIキーの準備

Cloud Anchorを使用する場合、クラウドを通したデータ共有が行われるので、Google Cloud Platformへのアクセスが発生します。そのため、APIキーを取得する必要があります。
APIキーの取得方法は以下のようになります(Googleアカウントを保持していることが前提となります)。
  1. Google Cloud PlatformのConsoleにログインし、使用する任意のプロジェクトのダッシュボードを開く(または作成)
  2. ダッシュボードの左側あたりに「APIを有効化し、鍵などの認証情報を取得」を選択

  3. 「APIとサービス」の「APIとサービスの有効化」を選択

  4. 検索ボックスが表示されるので、「ARCore」と入力。入力すると「ARCore Cloud Anchor API」が絞り込まれるので、それを選択

  5. 「有効にする」を選択(既に有効になっている場合、「管理」が表示されます)

  6. 有効にすると「APIとサービス」画面のダッシュボードに遷移するので、画面左側の「認証情報」を選択

  7. 「認証情報を作成」を選択して、ドロップダウンメニューの「APIキー」を選択

  8. これでAPIキーの作成は完了しますが、他のアプリでも使用できる状態なので、パッケージ名と SHA-1 署名証明書フィンガープリントを設定したり、使用できるAPIを設定したりして、使用制限を行うのがよいでしょう

    • 使用できるアプリを制限

    • 使用できるAPIを制限

UnityプロジェクトへAPIキーの設定

UnityプロジェクトへAPIキーを設定する方法ですが、ARCoreのDeveloperサイトには以下のように記載されています。
「https://developers.google.com/ar/develop/unity/cloud-anchors/cloud-anchors-quickstart-unity-android?hl=ja#add_an_api_key」より抜粋

ということで「Unity 2017.4.5f1(64bit)」+「ARCore SDK for Unity Version 1.2.1」で上記の「Edit」-「Project Settings」-「ARCore」を選択してみると、以下のようなメニューになりました。


どうも正しい場合は以下のように表示されるようです。
「http://jyuko49.hatenablog.com/entry/2018/06/06/092513#Unityのセットアップを行う」より抜粋


このような場合は、ちょっと面倒ですが、AndroidManifestをPlugins/Android配下にアップして、それに直接APIキーを記載しましょう。
詳細はこちらを参照してください。

実装

Cloud Anchorを有効にする

  1. Session Configを作成して、"Cloud Anchor"を有効にする


  2. 作成・設定したSession Configを使用するARCore Deviceに設定

Cloud Anchorを有効にする実装は以上となります。
ただし、Cloud Anchorの機能としては、CloudからCloud Anchorの一覧を取得する方法は提供されていません。
なので、Cloud Anchor IDをやり取りする機構を追加しないとCloud Anchorを共有することは出来ません。また、Cloud AnchorのTransformを変更しても、それを参照している別のデバイス上のCloud Anchorには影響を与えることはできません。
そのため、マルチデバイスで同じものを共有するには不十分な機能(※)に見えます。
※ 別途Cloud Anchort IDを共有するためのサーバやAnchorに紐づくGameObjectの情報を共有するためのサーバを追加する必要がありそうです。

サンプルアプリ

お試しで作成したアプリを以下の場所にアップしておきました。
https://github.com/eq-inc/eq-unity-google-arcore/tree/v0.4.1
クローンした上で、以下のことを実行してください。
  1. 「git submodule update -i」でサブモジュールを取得
  2. ここで「ARCore SDK for Unity」(実装時はv1.2.1)をダウンロード
  3. クローンした環境をUnityで開き、上記の「ARCore SDK for Unity」をインポート
  4. 上記のようにCloud Anchor用のAPIキーをGoogle Cloud Consoleにて生成し、「Assets/Plugins/Android/AndroidManifest.xml」内の「YOUR_API_KEY」を取得したAPIキーで置き換える
  5. ビルドして、起動した後、ボタン「Cloud Anchor」を押下
  6. 任意の箇所をタッチして、Android Robotを表示させる
  7. 暫くしてから、「List Cloud Anchor」を選択して、表示されるCloud Anchor IDを取得
  8. 別の端末で同アプリを起動し、ボタン「Cloud Anchor」を押下
  9. 「Add Cloud Anchor」を選択し、テキスト入力欄に先のCloud Anchor IDを入力

コメントの投稿