共有ARを使い始める
共有AR体験を作成するには、まず次のような基本的な手順を行う必要があります。
プロジェクトにARDKのネットワークを設定します。ネットワークは、ARDKバックエンドとの通信(ローカライゼーションデータやセッション管理)や、同一の共有ARセッション内のクライアント間のネットワークメッセージ処理に使用されます。
ARローカライゼーションを設定し、各クライアントが現実世界の同一空間にローカライズして同期できるようにします。
ゲームオブジェクトやロジックを追加します。この際、HLAPIやLLAPIを使って、ゲームオブジェクトの位置やその他のデータをクライアント間で通信するための調整を行います。
ARDKネットワークの設定
プロジェクトにネットワークを追加するには、ARDKマネージャーを使用するか、LLAPIのネットワーク設定APIを使用します。
ARDKマネージャーを使用する場合は、 `ARNetworkingSceneManager`
プレハブをシーンに追加します。このプレハブには、ネットワークとARローカライゼーションを有効にするために必要なARDKコンポーネントがすべて付属しています。 `ARNetworkingSceneManager`
を追加したら、次の操作を行います。
ARNetworkingManagerコンポーネントとCapabilityCheckerコンポーネントのみ、「Manage Using Unity(Unityを使用して管理する)」が有効になっていることを確認します。他のコンポーネントは、ARNetworkingManagerコンポーネントによって管理されます。
セッションIDを入力します(UIでは、Network Session Managerコンポーネントの「セッションID」フィールドに該当)。このフィールドは、任意の文字列が入力されていれば問題ありません。
シーン内のデフォルトカメラをすべて削除します。また、
`ARNetworkingSceneManager`
によって、シーンのカメラとして使用する子ARSceneCameraも追加されます。
ARNetworkingSceneManagerの使用例については、ARDK使用例のPongやPongHLAPIのデモシーンと、 中級チュートリアル: Pong、マルチプレイヤーARゲームの作成 をご参照ください。
ARDKマネージャーを使用できない場合は、独自のIARNetworkingインスタンスを作成し、ARSessionを設定して、ネットワークを有効にします。詳細については、 ネットワーク化されたARセッションを設定する をご参照ください。
ARローカライゼーションをセットアップする
共有環境のARローカライゼーションは、 `ARNetworkingSceneManager`
が有効に設定されていると自動的に有効になります。ARNetworkingSceneManagerを使用せずに、ネットワーク化された独自のARSessionを管理している場合は、セッションの `ARWorldTrackingConfiguration`
で `IsSharedExperienceEnabled`
を有効にする必要があります。
ローカライゼーションを行う方法を決める必要があります。ローカライズは、環境内のオブジェクトを使用する方法(共有環境のローカライゼーション)か、QRコードのようなマーカー画像を使用する方法(マーカーシンクのローカライゼーション)で行うことができます。
どちらの場合も、ARローカライゼーションのステータスを管理するためのコードを追加する必要があります。目的のローカライゼーションターゲットにデバイスのカメラを向けるようにユーザーに指示し、クライアントが正常にローカライズされたタイミングを確認するために `PeerState`
を監視します。詳細については、以下をご参照ください。
HLAPIまたはLLAPIを使ってゲームオブジェクト情報を共有する
クライアントが正常にローカライズされたら、ゲームオブジェクト情報の共有を開始できます。クライアント間でメッセージを送信するには、高レベルAPI(HLAPI)または低レベルAPI(LLAPI)を使用します。
これらのAPIの詳細や、使用するタイミングについては、 仮想オブジェクト情報を共有する をご参照ください。
ARDKによる共有AR体験の開発の詳細説明
次の動画では、Unityで共有AR体験を作成する方法を説明します。この動画では、ARNetworkingを追加して、環境をスキャンしてローカライズする方法などが紹介されています。