ネットコードで画像追跡コロカライゼーションを使用する方法
コロカライゼーションとは、共有ARセッションで複数のプレイヤーが同じ仮想オブジェクトを見ることを可能にするプロセスである。 画像トラッキング・コローカライゼーションを使えば、VPS-Activated Locationを使わなくても、画像を起点として共有AR体験をトリガーすることができます。 イメージトラッキングを使えば、印刷したイメージを持ち運び、アプリケーションをテストしたい場所に配置することができます。
Image Tracking Colocalizationは、スクリーン上の画像を使ったローカライズはサポートしていません。 プリントアウトするか、そうでなければ現実の世界で見つける必要がある。
前提条件
- ARDKをインストールしたUnityプロジェクトと、基本的なARシーンが必要です。 詳しくは、「ライトシップARDKのセットアップ」と「基本的なARシーンのセットアップ」を参照してください。
- このHow-Toでは、Shared ARとNetcodeのプロジェクトをベースとしています。 まだ完了していない場合は、そこから始めてください。
- Image Tracking Colocalizationを使用するには、
SharedSpaceManagerの
Colocalization Typeが Image Colocalizationに設定されていることを確認してください。
画像トラッキングの設定
共有ARプロジェクトに参照画 像を追加することで、画像追跡コロカライゼーションのためのスクリプトでその画像をターゲットにすることができます。
プロジェクトにイメージトラッキングを追加するには
-
階層で、
NetworkDemoManager の
名前をImageColocalizationDemoManager
に変更する。 -
共有ARルームに関連付ける画像を選択します。
-
階層で、
ImageColocalizationDemoManager
を選択し、インスペクタで、Target ImageとTarget Image Sizeプロパティを、選択した画像に合わせて設定します。 -
ImageColocalizationDemoManagerの
スクリプトファイルを開き、次のコード・スニペットを追加して、ローカライズ画像への参照を作成します:[SerializeField]
private Texture2D _targetImage;
[SerializeField]
private float _targetImageSize; -
ローカライズに使用したい画像をプリントアウトする。 画像のサイズは、
ImageColocalizationDemoManagerで
設定したターゲット画像サイズと一致させる必要があります。 -
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を使用している。