本文へスキップ
バージョン: 3.4

画像追跡コロカライゼーション(Image Tracking Colocalization)の使い方

イメージトラッキングのコロカライゼーションを使えば、VPSが有効なロケーションがなくても、イメージターゲットを使って共有AR体験をトリガーすることができます。 イメージがAR経験の起点になります。 つまり、テストやデモ用に印刷した画像を持ち運ぶことができます。

前提条件

  1. 共有AR(Shared AR) Unity プロジェクトが必要です。
  2. このコードはUnityの Netcode for Game Objectsを使用しています。 ルームをセットアップしたら、そのAPIをネットワークに使うことになる。

手順

共有ARプロジェクトで画像のコロカライゼーションを設定する:

  1. HierarchyXR Origin を選択します。 Inspector ウィンドウで、 Add Componentをクリックし、 Shared Space Managerを追加します。
  2. Shared Space ManagerInspectorのオプション:
    1. ColocalizationTypeImageTrackingColocalizationに設定する。
    2. SharedSpaceManager スクリプトで、イメージトラッキングとルームオプションを追加し、 SharedSpaceManager.StartSharedSpace()に渡します。
  3. StartHost() または StartClient() を通常どおり呼び出す。
ヒント

プロジェクトのためにユニークなルーム名を選びたいでしょう。また、全員が同じルームに入らずに複数の同時体験をしたい場合は、セッションごとに異なるルーム名が必要です。 Shared AR Image Tracking サンプルでは、このような理由からPINコードを使用している。

画像を使ってコロカライズする:

  1. 共有ルームを特定する画像を選んでください。 サンプル画像は Assets/Samples/SharedAR/IMG-2689.pngにあります。 これは、Shared Space Manager の Target Image プロパティで設定されたイメージと同じである必要があります。
  2. 画像をプリントアウトして表面に置く。 画像のサイズは、Shared Space Managerが期待する Target Image Size に合わせる必要があります(このサンプルでは幅9cm)。
  3. デバイスのカメラを画像に向ける。 新しい部屋の作成を選択する。
注意

Unityエディターでは、再生時でもイメージトラッキングはサポートされていません。 デバイス上でしか実行できない。

備考

画像を常に画面に表示しておく必要はありません。 体験中にオブジェクトのドリフトに気づいたら、カメラを画像に向けて原点をリセットしてください。

コロカライゼーション・スクリプトの例

public SharedSpaceManager _sharedSpaceManager;

[SerializeField]
private Texture2D _targetImage;

[SerializeField]
private float _targetImageSize;

public void StartSharedSpace(string roomName)
{
var imageTrackingOptions = ISharedSpaceTrackingOptions.CreateImageTrackingOptions(
_targetImage, _targetImageSize);
var roomOptions = ISharedSpaceRoomOptions.CreateLightshipRoomOptions(
roomName,
10,
"image tracking colocalization demo"
);

_sharedSpaceManager.StartSharedSpace(imageTrackingOptions, roomOptions);

// ホストとして開始
NetworkManager.Singleton.StartHost();
// またはクライアントとして開始
// NetworkManager.Singleton.StartClient();
}.