QRコードトラッキング
機能の有効化
この機能を使用するには、以下のOpenXRのプロジェクト設定でQR Code Trackingにチェックする必要があります。
Project Settings > XR Plug-in Management > OpenXR (Androidタブ) > OpenXR Feature Groups > Snapdragon Spaces > QR Code Tracking

Spaces QR Code Manager

SpacesQrCodeManagerコンポーネントをXR Originゲームオブジェクトに追加すると、Snapdragon Spacesパッケージに含まれるQRコードトラッキングのサブシステムが有効になります。このコンポーネントには6つのフィールドがあります。
- Markerのプレハブオブジェクトは、QRコードが検出されるたびにインスタンス化されます。トラッキングは、Marker Trackingが有効な場合にのみ機能します。
Marker Tracking Modeは、トラッキングされるすべてのマーカーに対して設定されます。各Tracking Modeの詳細については、画像トラッキングのトラッキングモードをご覧ください。
| トラッキングモード | 開始タイミング | マーカー位置の更新間隔 | 終了タイミング |
|---|---|---|---|
| Dynamic (default) | マーカーが検出された時 | 全てのフレーム | マーカーの検出がロストした時 |
| Static | マーカーが検出された時 | 更新無し | 新しいマーカーがトラッキングされた時 |
| Adaptive | マーカーが検出された時 | ARグラスが動いたら即座に、マーカーが動いたら定期的に行う | マーカーの検出がロストした時 |
Marker Tracking:この機能のトラッキング機能を有効または無効にします。QRコード検出は継続的に実行されますが、必要ない場合はトラッキングを無効にすることができます。Marker Size:検出される物理マーカーの幅と高さをメートル単位で指定します。正確な測定は、正確なポーズ推定とその後のARオブジェクトの配置に不可欠です。Minimum QR VersionとMaximum QR Version:検出されるQRコードのバージョンです。この範囲外のQRコードは検出も追跡もされません。
SpacesQrCodeManager::OnMarkersChangedメソッドにサブスクライブすることで、開発者は使い慣れたARFoundationパターンを使用して、トラッキングされたマーカーの位置、向き、文字列データを取得できます。
private override void Start() {
FindObjectOfType<SpacesQrCodeManager>().markersChanged += OnMarkersChanged;
}
private void OnMarkersChanged(SpacesMarkersChangedEventArgs args) {
foreach (var marker in args.added) {
...
}
foreach (var marker in args.updated) {
...
}
foreach (var marker in args.removed) {
...
}
}