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) {
...
}
}