Snapdragon Spaces 開発ガイド (10)

Snapdragon Spaces 開発ガイド (10)


5.6.7 空間メッシュの例

警告
現在、パッケージと Snapdragon Spaces のサーバー側の最適化により、バージョン間での下位互換性が失われているため、スペース グリッド機能は実験的としてマークされています。

この例では、現実世界の環境に近似した空間メッシュを生成および視覚化する方法を示します。AR Mesh Manager空間メッシュとAR Foundation のコンポーネントの機能に関する基本情報については、 Unity のドキュメント(新しいウィンドウが開きます) を参照してください。この機能を使用するには、 の OpenXR プラグイン設定项目设置 > XR 插件管理 > OpenXR(> Android 选项卡)で。

5.6.7.1 例の仕組み

5.6.7.1.1 ARM グリッドマネージャー

ARMeshManagerコンポーネントはARSessionOriginゲームオブジェクトの子としてアタッチされる必要があります。このコンポーネントは、利用可能な場合に生成されるグリッドを参照しますMeshFilter
ここに画像の説明を挿入

警告
コンポーネントをカメラ オブジェクトにアタッチすると、ARMeshManagerオブジェクトのスケールが(1, 1, 1) から (10, 10, 10) に変更されます。これにより、元のカメラ スケールが復元されるまで、アプリでヘッドセット上でレンダリングの問題が発生します。

次のプロパティはサポートされていません。

  • 生成されたメッシュの変更は現在サポートされていません密度
  • 切线現在メッシュの一部として生成されていません纹理坐标コンポーネント颜色からこれらのプロパティのバッファーにアクセスすると、空の結果が生成される場合があります。ARMeshManager
  • 変更は現在サポートされていません并发队列大小

通常属性はデフォルトで有効になっています。

ヒント
アプリケーションを構築するときに、サポートされていないARMeshManagerコンポーネントのプロパティを変更すると、コンソールに警告が表示されます。

ARMeshManagerコンポーネントのコールバックをサブスクライブすることによりmeshesChanged、グリッドがいつ追加、更新、または削除されたかに関するデータを取得できます。

5.6.7.1.2 サンプルコード
    private ARMeshManager _meshManager;

        public void Awake() {
    
    
            _meshManager = FindObjectOfType<ARMeshManager>();
        }

        public override void OnEnable() {
    
    
            ...
            _meshManager.meshesChanged += OnMeshesChanged;
        }

        public override void OnDisable() {
    
    
            ...
            _meshManager.meshesChanged -= OnMeshesChanged;
        }

        void OnMeshesChanged(ARMeshesChangedEventArgs args) {
    
    
            foreach (MeshFilter meshFilter in args.added) {
    
    
                ...
            }

            foreach (MeshFilter meshFilter in args.updated) {
    
    
                ...
            }

            foreach (MeshFilter meshFilter in args.removed) {
    
    
                ...
            }
        }
5.6.7.1.3 スペース AR メッシュ マネージャーの構成

AR Mesh Managerコンポーネントには、Snapdragon Spaces Unity パッケージのサブシステム実装でサポートされていないプロパティがあります。機能を有効にしてビルドを実行するときに空间网格(实验)、サポートされていないプロパティを使用しようとすると、警告が表示されます。Spaces AR Mesh Manager 配置生成されたメッシュを構成するための追加オプションがある(オプションの) コンポーネントを使用することをお勧めします。このコンポーネントを通じて、空間メッシュ プロバイダーは、TrackingOriginMode.Floorを基準としたランタイム側からのカメラの高さのオフセットも処理できます。この場合にこのコンポーネントを使用しないと、グリッドが間違った位置に表示される可能性があります。

ARMeshManagerこのコンポーネントは、コンポーネントと同じゲームオブジェクトにアタッチする必要があります。

ここに画像の説明を挿入

  • CPU 法線を計算します。
    • 有効にすると、メッシュ内の各頂点に対して CPU 法線が計算されます。
    • 一部の頂点はメッシュ内で (異なるインデックスで) 繰り返される場合があります。
    • これにより、生成されたメッシュに継ぎ目が見える可能性があります。
    • メッシュ内のインデックスごとに、そのインデックスを参照する各三角形が法線生成に寄与しますが、異なるインデックス (重複頂点) は異なる法線を持つことができます。
    • 属性とARMeshManagerコンポーネントの属性の両方が有効または無効になっていない場合、アプリケーションのビルド時にコンソールに説明的な警告が出力されます。计算 CPU 法线法线
  • 滑らかな法線を使用します。
    • 有効にすると、CPU 法線が頂点ごとにスムージングされます。
    • 同じスペースで異なるインデックスを持つ頂点を参照するすべての三角形は、これらの重複した頂点を同じ頂点として扱います。
    • これにより、検出されたジオメトリのハード エッジがあまり鋭くなりませんが、継ぎ目の外観は軽減されます。
    • スムーズな法線を計算すると、強化された処理能力が使用され、パフォーマンスに影響します。

デフォルトでは、サンプルを開くと、検出された環境に適したポリゴンを含むメッシュが生成されます。

  • この属性が有効な場合计算 CPU 法线具有 Cpu 法线材质的网格メッシュは使用される標準シェーダを通じて視覚化されます。
  • アトリビュートが無効の場合、メッシュを視覚化するために计算 CPU 法线カスタムが使用され、このシェーダによって生成された法線は視覚化の目的でのみ使用されます。MeshVisualization.shader

5.7 デュアル レンダリング フュージョン (実験的)

Dual Render Fusion は拡張現実 (AR) の新しいコア機能で、Snapdragon Spaces for Unity SDK と連携して、進行中の同じ Android アクティビティ内でモバイル画面と接続された AR デバイスにレンダリングを同時に出力できます。これにより、モバイル タッチスクリーン入力の全機能と、Snapdragon Spaces が提供する完全なセンシング機能を使用することもできます。

警告Dual Render Fusion は現在、 Snapdragon Spaces SDK for Unity (新しいウィンドウが開きます) バージョン 0.13.0 以降のオプションのアドオン パッケージ
としてベータ版 (実験的としてマークされています) です。

アーキテクチャ情報とサポートされているプラ​​ットフォームを表示するには、「Dual Render Fusion Architectures」ページを参照してください。

5.7.1 はじめに

5.7.1.1 デュアルレンダリング機能

Dual Render Fusion はスマートフォンをプライマリ ディスプレイとして設定し、テザー AR ヘッドセットを接続されたセカンダリ ディスプレイとして扱います。

ここに画像の説明を挿入
このスクリーンショットでは、AR ディスプレイはエディタ内でディスプレイ 2 に対してテストしていますが、デバイス上では AR ディスプレイはディスプレイ 1 をターゲットにしている必要があります。

このデュアル レンダリング機能は、拡張 AR ディスプレイとして機能する 2 番目のゲーム内カメラを 2D アプリケーションに追加することが中心的なコンセプトであるため、新規または既存の 2D モバイル アプリケーションをコードなしで 3D 拡張現実エクスペリエンスに拡張できます。

5.7.1.2 完全なマルチモーダル入力

また、Dual Render Fusion は、Snapdragon Spaces SDK によって有効になる XR 入力 (ハンド トラッキング、レイキャスティング、視線ポインタなど) を利用できるオプションを開発者に提供しながら、ユーザーに完全なモバイル タッチスクリーンの利便性と使いやすさを提供するという利点もあります。マルチタッチ機能を使用すると、ユーザー インターフェイスは電話機上の既存のアプリケーションと同様に動的になります。

ここに画像の説明を挿入

5.7.1.3 モバイルアプリケーション拡張機能

フル機能の入力とレンダリングが可能な携帯電話により、AR の追加は、AR グラスのポーズと出力を処理する 2 番目のゲーム内カメラを追加するのと同じくらい簡単になりました。この組み合わせにより、使い慣れた制御メカニズムを維持しながら、既存のモバイル アプリケーションを新しい没入型の方法で表示できるようになります。これにより、既存のアプリケーションやデモを Snapdragon Spaces に迅速に移植できます。

ここに画像の説明を挿入

5.7.1.4 使用例の例

携帯電話と同様に、このタイプの機能を使用して現在存在するあらゆる種類のモバイル アプリケーションを強化できるため、デュアル レンダリング フュージョンの使用例は無限です。ここでは、デュアル レンダリング フュージョンが提供する自然な入力を活用した、日常的な拡張現実の例をいくつか紹介します。

5.7.1.4.1 オンラインショッピング

タッチスクリーン入力により、ユーザー インターフェイスをスマートフォン用に最適化できるようになり、世界クラスの家具や衣類などの重要な要素をカスタマイズして、接続された拡張現実ヘッドセットから直接表示できるようになりました。

ここに画像の説明を挿入

5.7.1.4.2 メディアの表示

開発者は自然なタッチスクリーン入力を組み合わせて、スマートフォン上のお気に入りの写真をスワイプしながら、拡張現実でハンドトラッキングを使用して個々の写真を移動および拡大できます。

ここに画像の説明を挿入

5.7.1.4.3 ゲーム

また、Dual Render Fusion を使用すると、開発者はスマートフォンをモバイル ゲームのフル タッチスクリーン コントローラとして使用できると同時に、拡張現実でゲームのアクションのさらなる没入型ビューを表示することもできます。

ここに画像の説明を挿入

5.7.2 Unity デュアル レンダー フュージョン設定ガイド

このガイドでは、Unity で Snapdragon Spaces SDK を使用してデュアル レンダー フュージョンを有効にする方法を詳しく説明します。

5.7.2.1 前提条件

バージョン
Snapdragon Spaces で使用するために推奨される Unity Editor のバージョンは2021.3.16f1であることに注意してください。Unity エディターの新しいバージョンは動作が保証されておらず、正式にサポートされていません。

.apk ファイルをエクスポートするには、Unity エディターをインストールするときに Android ビルド サポート モジュールを追加する必要があります。モジュールは、Unity Hub を介して後で追加することもできます。

5.7.2.2 3D Unity プロジェクトの開始

新しい 3D (または 3D URP) Unity プロジェクトを作成するか、既存の Unity プロジェクトを使用します。

注意
Snapdragon Spaces で構築されたプロジェクトを変換する場合は、プロジェクトをバックアップし、Dual Render Fusion Pack を直接インポートしてください。

5.7.2.3 Snapdragon Spaces パッケージのインポート

Snapdragon Spaces for Unity SDK (新しいウィンドウが開きます) は、tarball ファイルとして提供されます。

Unity の手順(新しいウィンドウが開きます)に従い、Unity パッケージ マネージャーを使用して Unity パッケージ フォルダーにある tarball (.tgz) ファイルを追加して、パッケージをプロジェクトにインポートします。

ヒント
絶対パスではなく相対パス (バージョン管理に適しています) を使用してパッケージを一覧表示するには、.tgz ファイルをプロジェクトの Packages ディレクトリにコピーし、そこから追加します。


パッケージをインポートした後、Unity は新しい入力システムを有効にするように求めるプロンプトを表示する場合があります。[はい]をクリックして、OpenXRと XR Interaction Toolkit パッケージのすべての機能を確認します。古い入力システムも必要な場合は、 [プレーヤー] > [その他の設定] > [構成] で[アクティブ入力処理] の値を [両方]に設定できます

ここに画像の説明を挿入

5.7.2.4 デュアル レンダリング フュージョン パッケージのインポート

実験パッケージとしてパブリック ベータ版の Dual Render Fusion では、この機能を有効にするファイルが別個の Unity パッケージ tarball として提供され、Snapdragon Spaces for Unity SDK ダウンロード ページ(新しいウィンドウが開きます) で入手できます。

再度Unity の指示に従い(新しいウィンドウが開きます)、Unity パッケージ マネージャーを使用してパッケージをプロジェクトにインポートし、Dual Render Fusion パッケージのダウンロードにある tarball (.tgz) ファイルを追加します。

現時点では、パッケージ マネージャーを介して Fusion サンプルをインポートすることもお勧めします。

5.7.2.5 プロジェクト設定の変更

Snapdragon Spaces OpenXR プラグインを有効にするには、[編集] > [プロジェクト設定] > [XR プラグイン管理] で [プロジェクト設定] に移動し、[Android] タブを開きます。OpenXR
プラグインをチェックしてください。ただし、 Snapdragon Spaces 機能セットはまだチェックしないでください

ここに画像の説明を挿入
代わりに、OpenXR メニュー項目をクリックすると、さまざまな OpenXR 機能オプションが表示されます。新しいデュアル レンダー フュージョン機能に注目し、次に示すように、基本的なランタイム機能とデュアル レンダー フュージョン機能を確認してください。Dual Render Fusion の横にある赤い感嘆符をクリックして、プロジェクト バリデータを開きます。

ここに画像の説明を挿入
プロジェクト バリデーターには、Unity プロジェクトと現在開いているシーンを更新するためのいくつかの修復オプションが表示されるため、プロジェクトで正しいシーンが開いていることを確認してください。

ここに画像の説明を挿入
[Dual Render Fusion (Experimental)]という接頭辞が付いているバリデーター オプションに注意してください。これらの問題は、プロジェクトの残りの部分に対して [すべて修正] を選択する前に、まずプロジェクトを更新してシーンを開くために解決する必要があります。(これは、デュアル レンダー フュージョンのバリデーター オプションにより、他のデフォルトの空間バリデーターの問題が解決されるためです)

注意
Dual Render Fusion に感嘆符が表示されるが、関連する Project Validator オプションが表示されない場合は、[Packages] > [Snapdragon Spaces Dual Render Fusion (Experimental)] > [Runtime] > [FusionFeature.FeatureValidation] で Fusion Feature Validator スクリプトを再インポートして、プロジェクトを完全に再処理します。検証ファイル。
ここに画像の説明を挿入

Dual Render Fusion の検証が完了したら、残りのエントリの横にある [修正] ボタンをクリックして、必要なプロジェクト設定を適用します。一部の修正ではエディターの再起動が必要になる場合がありますが、これは正常です。

ここに画像の説明を挿入
この時点で、デュアル レンダリング ブレンディングが起動時に適切に有効になっているはずです。詳細と高度な構成機能については、以下を参照してください。

5.7.2.6 デュアル レンダリング フュージョン設定の構成

デュアル レンダー フュージョン機能で利用可能な設定は次のとおりです。
ここに画像の説明を挿入

  1. スペース サービスが必要- この設定を有効にすると、基本ランタイム機能の **インストールされたランタイムを確認する 設定もオンになります。「インストールされたランタイムを確認する」を選択すると、Snapdragon Spaces サービスがインストールされていない場合にアプリが起動できなくなります。この設定を無効にすると、アプリがモバイル専用モードで実行できるようになり、互換性のあるモバイル デバイス上でアプリをスタンドアロン エクスペリエンスとして実行できるようになります。メガネは必要ありません。
  2. 開いているシーンを検証する- この設定を有効にすると、Unity Scene Validator は開いているシーンで適切に設定された XR カメラとモバイル カメラをチェックします。プロジェクトのビルド システムに完全に機能するシーン (アドオン シーンなど) がない場合は、ビルドの障害を避けるためにこの設定を無効にします。

5.7.2.7 デュアルレンダリング融合の例

パッケージ マネージャーは、サンプル シナリオとサンプル コード スクリプトのコレクションを提供します。

ここに画像の説明を挿入

  1. コントローラー プレハブのサンプル シーン- Snapdragon Spaces の Android コンパニオン コントローラーを、設定と終了ボタンを完全に制御できる Unity プレハブに適応させるサンプル シーン。詳細については、以下の「コンパニオン コントローラ」を参照してください
  2. CubeManipulation - 応答性の高いマルチタッチ インターフェイスの作成を支援するために、タッチパッド上で 1 本、2 本、または 3 本の指を使用して移動できる立方体を含むシンプルなシーン。
  3. LandscapeUISampleScene - 立方体を操作するためのインタラクティブな Canvas UI 要素を含む Landscape Canvas を含む単純なシーン。
  4. OpenXRLoadingTest - このシナリオでは、スマートフォン上でアプリをすぐに起動し、メガネへの接続が確立された後に OpenXR を有効にすることを示します。詳細については、以下の「動的 OpenXR ローダー」を参照してください。
  5. PortraitUISampleScene - インタラクティブな Canvas UI 要素を含む Portrait Canvas を含むシンプルなシーン。
5.7.2.7.1 サポートコントローラー

一部の開発者は、既存の Snapdragon Spaces プロジェクトを移行してデュアル レンダリング フュージョンを使用し、ジャイロスコープ 3DOF ポインティング用のコンパニオン コントローラー機能を利用したいと考えています。以下の手順に従ってプロジェクトに追加してください。

Unity でコンパニオン コントローラーを複製するには、いくつかのアセットといくつかのスクリプトが必要です。

  1. 必要に応じて、プロンプトが表示されたら TextMeshPro にインポートします。

  2. CanvasControllerCompanion プレハブをサンプルから階層にドラッグします。

  3. XR カメラはプレハブの一部ではないため、2 つのゲームオブジェクトを XR カメラに接続する必要があります。これらが設定されていない場合、XR Origin または AR Session Origin が自動的に検出され、接続されたカメラが使用されます。あるいは、ここで手動で設定することもできます。

    ControllerPositionHeadMirror のAr Cameraフィールドの下。

    ここに画像の説明を挿入
    GyroRotationReceiver のAr Cameraフィールドの下。

    ここに画像の説明を挿入

  4. ジャイロ制御を有効にするために、入力システムが両方に設定されていることを確認してください。

    ここに画像の説明を挿入

  5. ControllerPrefabInputActions を追加のアクション リソースとして入力アクション マネージャーに追加します。階層内に入力アクション マネージャーがない場合は、ゲーム オブジェクトを作成し、コンポーネントを追加します。

    ここに画像の説明を挿入

  6. メニュー ボタンの機能を利用するには、標準の Unity 入力システムを使用し、メニュー ボタンを表す階層内のボタン オブジェクトに On Click() イベントを追加するだけです。

    ここに画像の説明を挿入

  7. [設定] メニューにさらにオプションを追加するには、[設定オーバーライド ゲームオブジェクト] を一時的にオンにして、メニュー項目をスクロール ボックス リストに追加します。(現在、「About」ボタンには機能がありません。単なる例です。)

    ここに画像の説明を挿入

5.7.2.7.2 動的OpenXRローダー

Dynamic OpenXR Loader は、ヘッドフォンの動作の概念と同様に、メガネが接続されているときにアプリケーションが OpenXR をロードできるようにする実験的なサンプル スクリプトです。スクリプトは単にセカンダリ ディスプレイの存在を検出し、OpenXR (構成されている場合) を起動します。OpenXR が接続を開始するときのユーザー インターフェイスの動作を制御するために、いくつかのコールバックを使用できます。このスクリプトの使用方法の例については、OpenXRLoadingTest サンプルを参照してください。

知らせ

  1. この機能は現在、ジェスチャ追跡が有効になっているアプリには推奨されていません。現在、動的 OpenXR ローダーの同時実行性はハンド トラッキング機能と互換性がなく、アプリケーションの初期化プロセス以外でこの機能を使用して OpenXR を起動すると、アプリケーションがロードしようとしたときに突然終了する可能性があります。これは将来のリリースで修正される予定です。
  2. OpenXR が接続を開始すると、メインスレッドは短期間ブロックされます。OpenXR が接続中であることを示す何らかの UI 要素を表示し、ロードが完了したときに要素に確認ステータスを表示させることをお勧めします。

5.7.2.8 機能検証構成

Dual Render Fusion Functional Validator は、Unity プロジェクトと選択したシーンを簡単に構成してデュアル レンダー フュージョンを有効にするように設定されています。こちらが検証リストです。

範囲 確認する 説明する 理由
プロジェクト カスタムランチャーを無効にする 基本ランタイム機能ビューアーで起動」および「ホストでコントローラーを起動」のチェックボックスを無効にします。 デュアル レンダー フュージョンでは、カスタム ランチャーの動作を無効にする必要があります ( 「ヘッドセット アーキテクチャ」を参照)
シーン ARセッションソースが必要です AR セッションのオリジン (または XR オリジン) と関連する XR カメラがシーン内にあることを確認します。 AR Foundation には XR カメラが必要です
シーン ARセッションが必要です AR セッションと AR 入力マネージャーがシーン内にあることを確認してください AR Foundation には AR セッションが必要です
シーン カメラを動かす必要がある モバイル デバイスの画面を表す Unity カメラがシーン内にあることを確認してください Dual Render Fusion のレンダリングにはモバイル モニターが必要です
シーン メインカメラタブ 両方ではなく、XR カメラまたはその他の非テクスチャ レンダリング カメラのみがメイン カメラとしてマークされていることを確認してください。 両方のカメラを MainCamera としてマークすると、レンダリング エラーが発生したり、他の依存関係が壊れたりする可能性があります
シーン カメラレンダリングの優先順位 モバイル カメラが XR カメラの後にレンダリングされることを確認してください カメラを移動した後に XR カメラがレンダリングされる場合、移動中の表示は XR カメラのコピーに置き換えられます。
シーン カメラアイターゲット XR カメラのアイ ターゲットが両方に設定され、他のすべてのカメラがなしに設定されていることを確認します。 カメラの目のターゲットによって、各カメラがどのディスプレイにレンダリングするかが決まります。
シーン モバイル カメラ アイ ターゲット (URP) モバイル カメラのアイ ターゲットが [なし] に設定されているかどうかを確認する警告を表示します。 URP は、組み込みのレンダリング パイプラインと同じ方法で目のターゲットをプログラムで設定できないため、手動で確認するように警告が表示されます。
シーン ターゲットを示すカメラ XR カメラのターゲット ディスプレイがディスプレイ 1 に設定されていない場合は、 Fusion Logicゲーム オブジェクトとコンポーネントを追加することをお勧めします。 Dual Render Fusion が両方のデバイスに正しくレンダリングされるようにするには、両方のディスプレイ ターゲットをディスプレイ 1 に設定する必要があります。XR カメラはデフォルトでターゲット ディスプレイ 2 に設定されます。「Fusion Logic」は実行時にターゲットを正しいディスプレイに設定します。
シーン オーディオモニター シーン内で複数のオーディオ リスナーがアクティブな場合は、オーディオ リスナーの 1 つを閉じることをお勧めします。 複数のオーディオ リスナーが存在する場合、Unity は満足しません。
シーン イベントシステムが必要 イベント システムとデフォルトの入力モジュールが存在しない場合は追加します。 これは、タッチ UI を処理するためのヘルパー チェックです。

5.7.2.9 アプリケーションの背景

デュアル レンダリング フュージョン アーキテクチャの欠点の 1 つは、ヘッドマウント アーキテクチャとは異なり、アプリを純粋にバックグラウンドで実行しながら、別のアプリをフォアグラウンドで実行できないことですこの制限は、 Android のピクチャ イン ピクチャ(新しいウィンドウが開きます) モードを使用することにより、標準の Android アーキテクチャ オプションを使用するさまざまな方法で克服できます。

5.7.3 デュアル レンダリング フュージョンの既知の問題

5.7.3.1 アプリケーションのバックグラウンドの問題

Dual Render Fusion で構築されたアプリケーションは、デフォルトではバックグラウンドで実行されません。Dual Render Fusion アプリケーションはモバイル デバイスのフォアグラウンドで実行され、別のアプリケーションの実行中はバックグラウンドに配置されるため、これは既知の動作です。この問題は Android のピクチャ イン ピクチャ(新しいウィンドウを開く) モードで解決できますが、洗練された解決策はまだ研究開発中です。

5.7.3.2 携帯電話の画面が黒い

Fusion アプリを実行しようとすると携帯電話の画面が真っ暗になる場合は、OpenXR 設定でデュアル レンダー Fusion 機能がオンになっていること、およびモバイル デバイスが Snapdragon Spaces Services 0.13.0 以降を実行していることを確認してください。また、プロジェクトが OpenXR 1.6.0 以降でビルドされたことを確認してください。

5.7.3.3 Dual Render Fusion が有効でもコンパニオン コントローラが起動する

コンパニオン コントローラーがまだ自動的に起動する場合は、OpenXR 設定でデュアル レンダー フュージョン機能がオンになっていること、および基本ランタイム機能設定がオフになっている状態であることを確認してください。ビューアーでアプリケーションを起動し、ホストでコントローラーを起動ます

5.7.3.4 Snapdragon Spaces サービスがインストールされていない電話機ではアプリケーションを実行できません

Snapdragon Spaces Services がインストールされていない携帯電話でアプリを実行すると起動エラーが表示される場合は、 Unity プロジェクトでRequire Spaces Servicesがチェックされていることを意味します。Snapdragon Spaces サービスがインストールされていないデバイス上でアプリケーションを実行できるようにするには、このボックスのチェックを外します。

5.7.3.5 メガネでのレンダリングが分割画面モードで表示される

これは、Snapdragon Spaces サービスで Android 権限が有効になっていないことが原因である可能性があります。残念ながら、アプリケーションがこの状態で実行される場合は、Snapdragon Spaces Services をアンインストールして再インストールする必要があります。これを行ってから、Snapdragon Spaces Services アプリを開き、「他のアプリの上に表示」権限が有効になっていることを確認し、携帯電話を再起動して、アプリを再度実行してみてください。

5.7.3.6 メガネでレンダリングすると水平視野が制限されて表示される

これは、Dual Render Fusion を使用してアプリケーションを実行するときに、Snapdragon Spaces サービスで Android 権限が有効になっていないことが原因である可能性があります。残念ながら、アプリケーションがこの状態で実行される場合は、Snapdragon Spaces Services をアンインストールして再インストールする必要があります。これを行ってから、Snapdragon Spaces Services アプリを開き、「他のアプリの上に表示」権限が有効になっていることを確認し、携帯電話を再起動して、アプリを再度実行してみてください。

5.7.3.7 動的ライティングを使用してアプリケーションを実行するとクラッシュが発生する

場合によっては、動的ライティングを使用するアプリケーションを実行すると、アプリケーションがクラッシュする可能性があります。このような場合、ダイナミック ライティングを省略すると良い結果が得られると考える人もいます。また、一部の後処理エフェクトは、携帯電話の画面には対応してもメガネには対応しない場合があります。

5.7.3.8 メガネでのレンダリングは異なるパフォーマンスを示す

デフォルトでは、Unity のゲーム内レンダリング カメラは、ゲーム内カメラのポーズの視点からすべてをレンダリングします。デュアル レンダー フュージョンは複数のカメラにレンダリングするため、シーンが複雑すぎる場合は、携帯電話の画面が 2D キャンバスで覆われている場合でも、パフォーマンスに大きなコストがかかる可能性があります。キャンバスにレンダリングのみを行う場合、 Render to Phone のCameraコンポーネントでCulling Mask値をNothingに設定することでパフォーマンスを最適化できます。ワールド空間オブジェクトをレンダリングするときに、オブジェクト レイヤを除くカリングマスク フィールド内のすべてのレイヤを削除します。

5.8 Unity 移行ガイド

5.8.1 0.15.0 の重大な変更点

  • QCHT3 と互換性のある QCHT ヘルパーが削除されていることを確認してください。QCHT4+にアップデートしてください。

5.8.2 0.14.0 の重大な変更点

  • 以前に公開されていたこれらのクラスは、内部クラスとしてマークされています。
    • SpatialMeshingFeature
    • PlaneDetectionFeature
    • ImageTrackingFeature
  • 検出された平面の凸包の計算を切り替えるオプションは、機能の OpenXR 設定ページから、 の隣にSpacesARPlaneManagerConfig追加できる と呼ばれるコンポーネントに移動されました。ARPlaneManager

5.9 Unity の既知の問題

現在、開発ワークフローに影響を与える可能性のある既知の問題がいくつかあります。これらは既知の問題であり、Snapdragon Spaces ServicesUnity パッケージまたはランタイムの将来のバージョンで解決される予定です。
問題がない場合は、SDK 全体の既知の問題を確認してください

5.9.1 Gradle ビルドの問題

場合によっては、カスタム コントローラー アーカイブを追加すると、Gradle キャッシュ エラーが発生する可能性があります。この場合、プロジェクトフォルダーTemp > gradleOut配下問題が解決する場合があります。

5.9.2 ハンドトラッキングの問題

5.9.2.1 一般

  • 頭の動きにより手が動く可能性があります。

5.9.2.2 UXの制限

  • オブジェクトの解放は、ピンチ ジェスチャでのみ実行できます。
  • 場合によっては、両手の間の噛み合わせにより、左右の手が反転することがあります。
  • 手のアバターが表示されている場合、指先に若干の震えを感じる場合があります。一般に、AR 環境でアバターを表示することは推奨されません。

5.9.3 AR Foundationに関する問題

5.9.3.1 AR レイキャスト ヒットが成功すると間違った追跡可能な ID を報告する

シーン理解を使用した平面検出が平面検出機能設定で有効になっている場合ARRaycastHit.trackableIdフィールドは常に、0-0ヒットした追跡可能なセッションの一意の識別子として trackableId を返します。[シーンを理解する平面検出を使用] が無効になっている場合ARRaycastHit.trackableIdレイキャストがヒットした平面の trackableId が返されます。

5.9.3.2 AR グリッド マネージャーのプロパティ

AR Mesh Managerコンポーネントには、Snapdragon Spaces Unity パッケージのサブシステム実装ではサポートされていないプロパティがあります。**空間グリッド (実験的)** 機能を有効にしてビルドを実行する場合、サポートされていないプロパティを使用しようとすると、警告が表示されます。認識例の説明で説明されているSpaces AR Mesh Manager 構成を使用することをお勧めします

5.9.3.3 AR カメラマネージャーと AR カメラの背景の問題

シーンでAR カメラ マネージャーAR カメラ バックグラウンドを有効にすると、物理カメラへの接続が作成され、その可用性に関する情報が取得されます。これらのコンポーネントを有効にした状態でシーン間を行き来すると、接続に悪影響が生じ、アプリケーションのフリーズなどの予期しない結果が発生する可能性があります。

おすすめ

転載: blog.csdn.net/weixin_38498942/article/details/132565522