cloud_anchor_java
と persistent_cloud_anchor_java
のサンプルアプリで Cloud Anchors のホスティングと解決をお試しください。
どのサンプルアプリを使用すればよいですか。
Cloud Anchor は、ARCore API クラウド エンドポイントでホストされるアンカーです。この API を使用すると、複数のユーザーが同じアプリ内でエクスペリエンスを共有できます。Persistent Cloud Anchors は、24 時間を超えてホストできる Cloud Anchors です。
persistent_cloud_anchor_java
は、共同プロジェクトのユースケースの実装です。キーレス認証を使用して、ARCore API 呼び出しを承認します。Firebase バックエンドを使用してデバイス間で Cloud Anchor ID を共有しないため、起動と実行がはるかに簡単です。cloud_anchor_java
は、マルチプレーヤー型ゲームのユースケースの実装です。API キーを使用して ARCore API 呼び出しを承認します。
前提条件
- アンカーと Cloud Anchors の仕組みを理解する。
- ARCore SDK for Android をインストールして設定します。
要件
ハードウェア
- 最新バージョンの Google Play 開発者サービス(AR)がインストールされている ARCore 対応デバイス
- デバイスを開発マシンに接続するための USB ケーブル
ソフトウェア
- Android Studio バージョン 3.0 以降と、Android SDK Platform バージョン 7.0(API レベル 24)以降
- ARCore SDK for Android。次の 2 つの方法のいずれかで入手できます。
- GitHub からダウンロードしてマシンに抽出します
- 次のコマンドでリポジトリのクローンを作成します。
git clone https://github.com/google-ar/arcore-android-sdk.git
Android Studio でサンプルアプリを開く
ARCore SDK には、Cloud Anchors の機能を示す cloud_anchor_java
および persistent_cloud_anchor_java
サンプルアプリが用意されています。Android Studio でアプリを開く手順は次のとおりです。
永続的な Cloud Anchors
Android Studio で [Open] をクリックします。
arcore-android-sdk ディレクトリが保存されているマシン上の場所に移動します。SDK フォルダ全体は開かないでください。代わりに、[samples] > [persistent_cloud_anchor_java] に移動して [Open] をクリックします。
Cloud アンカー
Android Studio で [Open] をクリックします。
arcore-android-sdk ディレクトリが保存されているマシン上の場所に移動します。SDK フォルダ全体は開かないでください。代わりに、[samples] > [cloud_anchor_java] に移動し、[Open] をクリックします。
Cloud Anchor ID の共有を設定する
Cloud Anchor ID は、ホストされている Cloud Anchors を識別する文字列です。アンカーは、ホストされるアンカーにアタッチされている 3D オブジェクトを解決(レンダリング)するために使用されます。
永続的な Cloud Anchors
Cloud Anchor ID の共有は、アプリ内でローカルに維持されるため、ここでは何もする必要はありません。
Cloud アンカー
cloud_anchor_java
サンプルアプリは、Firebase の Realtime Database を使用してデバイス間で Cloud Anchor ID を共有します。実際のアプリでは別の方法を使用できます。
- アプリに手動で Firebase を追加します。
cloud_anchor_java
のパッケージ名はcom.google.ar.core.examples.java.cloudanchor
です。main/AndroidManifest.xml
で確認できます。 - Firebase をアプリに追加したときに生成した
google-services.json
ファイルをダウンロードします。 - Firebase で Realtime Database を作成します。
- Android Studio で、
google-services.json
ファイルをプロジェクトのapp
ディレクトリに追加します。
ARCore API 呼び出しを承認する
ARCore API の呼び出しを承認して、アプリの Cloud Anchors をホストおよび解決します。Google Cloud で ARCore API を使用するの手順に沿って、Persistent Cloud Anchors の場合は キーなし認証、Cloud Anchors の場合は API キー認証を使用します。
サンプルアプリをビルドして実行する
永続的な Cloud Anchors
アプリを実行する
- デバイスで開発者向けオプションと USB デバッグが有効になっていることを確認します。
- デバイスを USB 経由で開発マシンに接続します。
- Android Studio で、デプロイ ターゲットとしてデバイスを選択し、[Run] をクリックします。
デバイスで persistent_cloud_anchor_java
が起動し、ARCore でデバイスのカメラの前方にある飛行機が検出されます。
Google Cloud の承認が失敗した場合は、トラブルシューティングの手順をご覧ください。
アンカーを配置する
- アプリが飛行機の検出を開始したら、画面をタップして、検出された飛行機のいずれかにアンカーを置きます。
- [ホスト] ボタンをタップして、配置したアンカーをホストします。これにより、ARCore API にホスト リクエストが送信されます。このリクエストには、付近の視覚的特徴に対するアンカーの位置を表すデータが含まれます。
ホスト リクエストが成功すると、配置された場所にアンカーが確立され、Cloud Anchor ID が割り当てられます。ホスト リクエストが成功すると、アプリに客室コードが表示されます。このコードを使用すると、この部屋に対して以前にホストされていたアンカーに、どのデバイスからでもアクセスできます。
アンカーを解決する
- この部屋でホストされているアンカーにアクセスするには、[解決] をタップして以前に返された会議室コードを入力します。これにより、ARCore API に解決リクエストが送信され、部屋に現在ホストされているすべてのアンカーの ID が返されます。
persistent_cloud_anchor_java
はこれらの ID を使用して、ホストされているアンカーにアタッチされた 3D オブジェクトをレンダリングします。
Cloud アンカー
アプリを実行する
- デバイスで開発者向けオプションと USB デバッグが有効になっていることを確認します。
- デバイスを USB 経由で開発マシンに接続します。
- Android Studio で、デプロイ ターゲットとしてデバイスを選択し、[Run] をクリックします。
デバイスで cloud_anchor_java
が起動し、ARCore でデバイスのカメラの前方にある飛行機が検出されます。
エラー: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: Specify DatabaseURL within FirebaseApp or from your getInstance
このエラーが発生した場合は、google-services.json
に firebase_url
プロパティが存在することを確認してください。このプロパティの正しい値を取得するには、Realtime Database が作成されて google-services.json
をダウンロードする必要があります。
アンカーを配置する
- アプリが飛行機の検出を開始したら、画面をタップして、検出された飛行機のいずれかにアンカーを置きます。
- [ホスト] ボタンをタップして、配置したアンカーをホストします。これにより、ARCore API にホスト リクエストが送信されます。このリクエストには、付近の視覚的特徴に対するアンカーの位置を表すデータが含まれます。
ホスト リクエストが成功すると、配置された場所にアンカーが確立され、Cloud Anchors ID が割り当てられます。ホスト リクエストが成功すると、アプリに客室コードが表示されます。このコードを使用すると、この部屋に対して以前にホストされていたアンカーに、どのデバイスからでもアクセスできます。
アンカーを解決する
- この部屋でホストされているアンカーにアクセスするには、[解決] をタップして以前に返された会議室コードを入力します。これにより、ARCore API に解決リクエストが送信され、部屋に現在ホストされているすべてのアンカーの ID が返されます。
cloud_anchor_java
はこれらの ID を使用して、ホストされているアンカーにアタッチされた 3D オブジェクトをレンダリングします。
次のステップ
- ARCore Cloud Anchors と永続 Cloud Anchors の Codelab を使用して Cloud Anchors アプリを作成します。
- アプリに Cloud Anchors を組み込む方法については、Cloud Anchors デベロッパー ガイドをご覧ください。
- Cloud Anchors Management API を使用して ARCore アプリの外部で Cloud Anchors を管理します。