Netcodeを使って画像追跡コロカライゼーションを使用する
コロカライゼーションとは、複数のプレイヤーが共有ARセッションで同じ仮想オブジェクトを見ることができるプロセスです。 画像追跡コロカライゼーションを使えば、VPSが有効なロケーションがなくても、画像を体験の起点として、共有AR体験をトリガーすることができます。 画像追跡を利用することで、印刷した画像を持ち歩き、アプリケーションをテストする場所で展開することができます。
画像追跡コ ロカライゼーションでは、画面上の画像を使用したローカライズはサポートされていません。 画像を印刷するか、現実世界で見つける必要があります。
前提条件
- ARDKがインストールされたUnityプロジェクトと、基本的なARシーンが必要です。 詳しくは、「ライトシップARDKのセットアップ」と「基本的なARシーンのセットアップ」を参照してください。
- このHow-Toでは、Shared ARとNetcodeのプロジェクトをベースとしています。 まだ完了していない場合は、そこから始めてください。
- 画像追跡コロカライゼーションを使用するには、
SharedSpaceManager
の Colocalization Type が Image Colocalization に設定されていることを確認してください。
画像追跡を設定する
共有ARプロジェクトに参照画像を追加することで、スクリプトで画像追跡コロカライゼーションをターゲットにすることができます。
プロジェクトに画像追跡を追加するには、次の手順を行います。
-
Hierarchy で、
NetworkDemoManager
の名前をImageColocalizationDemoManager
に変更します。 -
共有ARルームに関連付ける画像を選択します。
-
Hierarchy で
ImageColocalizationDemoManager
を選択し、 Inspector で Target Image と Target Image Size プロパティを、選択した画像に合わせて設定します。 -
ImageColocalizationDemoManager
のスクリプトファイルを開き、以下のコードスニペットを追加してローカライズ画像の参照を作成します。[SerializeField]
private Texture2D _targetImage;
[SerializeField]
private float _targetImageSize; -
ローカライズに使用する画像をプリントアウトします。 画像のサイズが、
ImageColocalizationDemoManager
で設定した Target Image Size と一致している必要があります。 -
ImageColocalizationDemoManager
スクリプト内のStart()
関数の内容を以下のコードスニペットに置き換えます。var imageTrackingOptions = ISharedSpaceTrackingOptions.CreateImageTrackingOptions(
_targetImage, _targetImageSize);
var roomOptions = ISharedSpaceRoomOptions.CreateLightshipRoomOptions(
"ImageTrackingDemoRoom",
32, // 最大収容人数
"image tracking colocalization demo"
);
_sharedSpaceManager.StartSharedSpace(imageTrackingOptions, roomOptions);
これで、画像追跡を使用してコロカライゼーションできるようになりました。 デバイスにビルドしてアプリケーションを実行し、テストしてください。
画像追跡のテストを行うためのヒント
- 画像追跡をテストするには、ローカライズ用画像を印刷したものが必要です。 印刷したターゲット画像を平らな面に置き、デバイスのカメラを画像に向けてコロカライゼーションを行います。 画像追跡が完了すると、「Join As Host」ボタンと「Join As Client」ボタンが表示されます。
- 一度ローカライズが完了したら、画像を画面に表示しておく必要はありません。 体験中にオブジェクトのドリフトが発生した場合は、再度画像にカメラを向けることで、起点をリセットできます。
- プロジェクト用のルームを作成する際は、必ずセッションごとにルームに一意の名前を付けてください。 これにより、プレイヤーは別々の共有ARルームで複数の体験を同時に実行できるようになります。 このため、Shared AR Image TrackingのサンプルではPINを使用している。
次のステップ
マルチプレイヤーエクスペリエンスに共有バーチャルオブジェクトを追加する方法については、共有オブジェクトを表示する方法を参照してください。
共有ARの一般的な問題とデバッグの提案については、共有ARのデバッグとトラブルシューティングの方法を参照してください。