ARCore Cloud Anchor API(または ARCore Cloud Anchor サービス)は、iOS アプリに Cloud Anchor 機能を提供します。これにより、iOS デバイスと Android デバイスの両方のユーザーが AR エクスペリエンスを共有できます。
このガイドでは、次の方法について説明します。
- Cloud Anchor と連携するように開発環境を設定する
- サンプルアプリでアンカーのホストと解決を試す
前提条件
- Xcode バージョン 13.0 以降
- Cocoapods を使用している場合: Cocoapods 1.4.0 以降
- iOS 12.0 以降を搭載した ARKit 対応の Apple デバイス(デプロイ ターゲットが iOS 12.0 以降である必要があります)
Cloud Anchor の使用
次の手順では、Cloud Anchors サンプルアプリを使用して、ARCore Cloud Anchors をサポートするアプリの構成とビルドに必要な重要なタスクについて説明します。
Cloud Anchors サンプルアプリを入手する
GitHub から ARCore SDK for iOS のクローンを作成するかダウンロードして、サンプルアプリコードを取得します。
ターミナル ウィンドウまたは Finder ウィンドウを開き、SDK をクローン化またはダウンロードしたフォルダに移動します。
サンプルアプリのコードは
/arcore-ios-sdk-master/Examples/CloudAnchorExample
にあります。永続的な Cloud Anchors サンプルアプリのコードは
/arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
にあります。
セッションの設定
サンプルアプリは、セッションの設定の一環として、次の重要なタスクを実行します。
GARSession
の作成ARSession
の作成と実行ARSessionDelegate
の設定。session:didUpdateFrame:
メソッドでGARSession
にARFrame
を渡す。
Cloud Anchor ID の共有を設定する
Cloud Anchors サンプルアプリは、Firebase を使用してデバイス間で Cloud Anchor ID を共有します。独自のアプリでは別のソリューションを使用できます。
サンプルアプリに Firebase データベースを設定するには:
- Firebase をアプリに追加する手順に沿って Firebase を追加します。
- アプリに Firebase を追加する際に生成された
GoogleService-Info.plist
ファイルをダウンロードします。 - サンプルで Firebase Storage を有効にします。
- Firebase コンソールに移動し、サンプルアプリ用に設定したプロジェクトを選択します。
- Database パネルを選択します。
- [Realtime Database] オプションで [Get Started] をクリックします。
- Security rules for Realtime Database メニューが開きます。
- サンプルを実行するため、[Start in test mode] を選択します。
- 公開を予定しているアプリで Firebase を使用している場合は、より制限の厳しいセキュリティ ルールを使用する必要があります。
- Xcode で、
GoogleService-Info.plist
ファイルをアプリのInfo.plist
の横に追加します。
ARCore API を設定する
Cloud Anchors を使用するには、まずアプリケーションの ARCore API を設定する必要があります。
Pod の更新を実行する
CloudAnchorExample アプリには、必要な ARCore SDK と iOS バージョンが事前構成された Podfile
が付属しています。これらの依存関係をインストールするには:
- ターミナル ウィンドウを開き、Xcode プロジェクトが存在するフォルダから
pod update
を実行します。
これにより、後でアプリのビルドと実行に使用する.xcworkspace
ファイルが生成されます。
独自のアプリで Podfile
を構成する方法については、アプリに ARCore SDK を追加するをご覧ください。
Xcode でプロジェクトの
.xcworkspace
ファイルを開きます。ビルドエラーを回避するには、
.xcodeproj
ファイルではなく.xcworkspace
ファイルからビルドしていることを確認してください。
アプリのバンドル ID を変更する
Xcode でアプリのバンドル ID を変更して、チームでアプリに署名できるようにします。
アプリをビルドして実行する
デバイスを接続し、Xcode でアプリを起動します。
(省略可)サンプルアプリをビルドして実行する場合は、アプリを使用して Cloud Anchor をホストして解決する方法について、次のセクションをご覧ください。
サンプルアプリを試す
.xcworkspace
ファイルからサンプルアプリをビルドして実行し、デバイスで起動します。メッセージが表示されたら、アプリにカメラの権限を付与します。ARKit は、カメラの前面にある平面の検出を開始します。
HOST をタップしてホスティング モードに入ります。ホストされたアンカーを共有するための部屋コードが生成され、画面に表示されます。
平面をタップして、その場所でクラウド アンカーのホストを開始します。
- アプリは、平面上に Andy Android オブジェクトを配置し、アンカーを接続します。
- ホスト リクエストが ARCore API クラウド エンドポイントに送信されます。ホスト リクエストには、近くの視覚的特徴に対するアンカーの位置を表すデータが含まれます。
- アンカーがホストされると、この空間内の Cloud Anchor の解決に使用される ID が取得されます。
RESOLVE をタップして部屋コードを入力し、同じデバイスまたは別のデバイスを使用して、この部屋で以前にホストされた Cloud Anchor にアクセスします。
- 解決リクエストが ARCore API クラウド エンドポイントに送信されます。
- 解決リクエストにはクラウド アンカー ID が含まれます。ID がホストされたアンカーと一致し、ローカライズが成功すると、サーバーはローカル座標でアンカーの変換を返します。
- サンプルアプリでは、変換を使用してアンカーをシーンに追加し、アンカーに接続された仮想オブジェクトをレンダリングします。
アプリに ARCore SDK を追加する
独自のアプリでは、ARCore SDK とサポートされている iOS バージョンを追加するように Podfile
を更新する必要があります。手順は次のとおりです。
プロジェクトの
Podfile
に次のplatform
とpod
を追加します。platform :ios, '11.0' pod 'ARCore/CloudAnchors', '~> 1.48.0'
- ターミナル ウィンドウを開き、Xcode プロジェクトがあるフォルダから
pod update
を実行します。
これにより、アプリのビルドと実行に使用する.xcworkspace
ファイルが生成されます。
永続的な Cloud Anchors
永続性のある Cloud Anchor をホストするで説明されているように、クラウド アンカーに最大 365 日の有効期間を設定できます。永続的なクラウド アンカーを使用するサンプルコードは、GitHub の ARCore SDK for iOS の /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
ディレクトリにあります。
次のステップ
サンプルアプリコードを確認して、独自のアプリで Cloud Anchors を使用する方法について詳しくは、iOS 用 Cloud Anchors デベロッパー ガイドをご覧ください。
詳しくは、ARCore iOS API リファレンスをご覧ください。