Netcodeを使って画像追跡コロカライゼーションを使用する

コロカライゼーションとは、複数のプレイヤーが共有ARセッションで同じ仮想オブジェクトを見ることができるプロセスです。 画像追跡コロカライゼーションを使えば、VPSが有効なロケーションがなくても、画像を体験の起点として、共有AR体験をトリガーすることができます。 画像追跡を利用することで、印刷した画像を持ち歩き、アプリケーションをテストする場所で展開することができます。
画像追跡コロカライゼーションでは、画面上の画像を使用したローカライズはサポートされていません。 画像を印刷するか、現実世界で見つける必要があります。
前提条件
- ARDKがインストールされたUnityプロジェクトと、基本的なARシーンが必要です。 詳しくは、「ライトシップARDKのセットアップ」と「基本的なARシーンのセットアップ」を参照してください。
- この入門ガイドでは、 Netcodeを使用して共有ARシーンをセットアップする のプロジェクトをベースとして使用しています。 完了していない場合は、まずこのページの手順を実施してください。
- 画像追跡コロカライゼーションを使用するには、 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ルームで複数の体験を同時に実行できるようになります。 このため、 共有ARの画像追跡 サンプルではPINが使用されています。
次のステップ
マルチプレイ体験に共有された仮想オブジェクトを追加する方法については、 Netcodeを使って共有オブジェクトを表示する をご覧ください。
共有ARの一般的な問題やデバッグの提案については、 共有ARのデバッグ方法 をご覧ください。