画像追跡コロカライゼーション(Image Tracking Colocalization)の使い方
イメージトラッキングのコロカライゼーションを使えば、VPSが有効なロケーションがなくても、イメージターゲットを使って共有AR体験をトリガーすることができます。 イメージがAR経験の起点になります。 つまり、テストやデモ用に印刷した画像を持ち運ぶことができます。
前提条件
- 共有AR(Shared AR) Unity プロジェクトが必要です。
- このコードはUnityの Netcode for Game Objectsを使用しています。 ルームをセットアップしたら、そのAPIをネットワークに使うことになる。
手順
共有ARプロジェクトで画像のコロカライゼーションを設定する:
- Hierarchyで XR Origin を選択します。 Inspector ウィンドウで、 Add Componentをクリックし、 Shared Space Managerを追加します。
- Shared Space Manager の Inspectorのオプション:
- ColocalizationType を ImageTrackingColocalizationに設定する。
- SharedSpaceManager スクリプトで、イメージトラッキングとルームオプションを追加し、
SharedSpaceManager.StartSharedSpace()
に渡します。
StartHost()
またはStartClient()
を通常どおり呼び出す。
ヒント
プロジェクトのためにユニークなルーム名を選びたいでしょう。また、全員が同じルームに入らずに複数の同時体験をしたい場合は、セッションごとに異なるルーム名が必要です。 Shared AR Image Tracking サンプルでは、このような理由からPINコードを使用している。
画像を使ってコロカライズする:
- 共有ルームを特定する画像を選んでください。 サンプル画像は
Assets/Samples/SharedAR/IMG-2689.png
にあります。 これは、Shared Space Manager の Target Image プロパティで設定されたイメージと同じである必要があります。 - 画像をプリントアウトして表面に置く。 画像のサイズは、Shared Space Managerが期待する Target Image Size に合わせる必要があります(このサンプルでは幅9cm)。
- デバイスのカメラを画像に向ける。 新しい部屋の作成を選択する。
注意
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();
}.