Table of Contents

Unity における EasyAR headset サポート

このドキュメントでは、Unity における EasyAR headset サポートの全体アーキテクチャと注意事項を紹介します。

始める前に

  • EasyAR headset support を読み、EasyAR がすでにサポートしている headset タイプと、headsets 上で実行できる EasyAR 機能を確認してください。

Headset サポート概要

EasyAR は Unity で柔軟に headsets をサポートします。一般的には次の 2 つの方法があります。

  • Built-in support: 通常、EasyAR Sense library 内で device SDK と直接接続し、Unity で対応する interfaces を提供します。例: Apple Vision Pro
  • Extension support: Unity headset extension package を通じて device SDK と接続します。例: Pico
block
  columns 4
  block:groupApp:4
    block:groupAppWrapper
      space
      App1["EasyAR + Device A<br>App"]
      space
      App2["EasyAR<br>App"]
      space
      App3["EasyAR + Device B<br>App"]
    end
  end
  
  block:groupSensePluginExtension
    columns 1
    SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension for Device A"]
    space
  end
  block:groupSensePlugin
    columns 1
    SensePlugin["EasyAR Sense Unity Plugin"]
    space
  end
  block:groupXRI
    columns 1
    XRI["XR Interaction Toolkit"]
    space
  end
  block:groupARF
    columns 1
    ARF["AR Foundation"]
    space
  end
  
  block:groupDeviceAUnity
    columns 1
    DeviceAUnity["Device A<br>Unity SDK"]
    space
  end
  block:groupSense
    columns 1
    Sense["EasyAR Sense"]
    block:groupSenseWrapper
      MDeviceB["Device B<br>CameraDevice"]
      Others["..."]
    end
  end
  block:groupXRSubsystem:2
    columns 1
    XRSubsystem["XR Subsystems"]
    XRSDK["Unity XR SDK"]
  end

  block:groupSystem:4
    columns 1
    System["Native Library"]
    block:groupSystemWrapper
      space
      DeviceA["Device A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      space
      DeviceB["Device B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
    end
  end
  
  SensePluginExtension --> App1
  SensePlugin --> App1
  SensePlugin --> App2
  SensePlugin --> App3
  ARF --> App3
  XRI --> App1
  XRI --> App3
  groupSense --> SensePlugin
  groupDeviceAUnity --> SensePluginExtension
  SensePlugin --> SensePluginExtension
  DeviceA --> groupDeviceAUnity
  DeviceA --> XRSDK
  XRSubsystem --> ARF
  XRSubsystem --> XRI
  DeviceB --> MDeviceB
  DeviceB --> XRSDK
  
  style groupApp fill:none,stroke:none,stroke-width:0px
  style groupAppWrapper fill:none,stroke:none,stroke-width:0px
  style groupSensePlugin fill:none,stroke:none,stroke-width:0px
  style groupARF fill:none,stroke:none,stroke-width:0px
  style groupXRI fill:none,stroke:none,stroke-width:0px
  style DeviceAUnity fill:none,stroke:none,stroke-width:0px,color:#fff
  style Sense fill:none,stroke:none,stroke-width:0px,color:#fff
  style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
  style XRSubsystem fill:none,stroke:none,stroke-width:0px,color
  style System fill:none,stroke:none,stroke-width:0px
  style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
  style groupSensePluginExtension fill:none,stroke:none,stroke-width:0px  

  classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
  class groupSense EasyAR
  class SensePlugin EasyAR
  class SensePluginExtension EasyAR

  classDef Device fill:#636,stroke:#333,color:#fff
  class groupDeviceAUnity Device
  class DeviceB Device
  class DeviceA Device

図中:

  • Device A は extension support に属します

    実際には、device A には通常、Unity XR SDK と接続する、または headset rendering capabilities を独立して実装するための対応する Unity SDK があります。

    Device A の headset extension package は、EasyAR Sense Unity Plugin と device A の Unity SDK を接続し、EasyAR を device A 上で実行できるようにします。この support package は EasyAR から提供される場合も、device vendor から提供される場合もあります。

  • Device B は built-in support に属します

    実際には、device B に対応する Unity SDK がある場合もない場合もあり、device vendor の実装に依存します。たとえば Apple Vision Pro には対応する Unity SDK がなく、XREAL には対応する Unity SDK があります。

Built-in support と extension support の headsets は、どちらも custom camera の使用をサポートします。

重要

カスタムカメラまたはヘッドセットで試用製品(Personal Edition license、試用版 XR license、試用版 Mega サービスなど)を使用する場合、EasyAR Sense は起動するたびに 100 秒後に応答を停止します(Mega ユーザーは承認後に EasyAR Business 経由で時間の長さを調整できます)。有料版の EasyAR Sense および有料の EasyAR Mega サービスにはこの制限はありません。

Unity では、virtual camera の rendering、projection matrix、transform などは EasyAR によって制御されません。通常は device SDK または Unity XR SDK によって制御されます。gesture recognition、eye tracking など device 自身の機能は、引き続き device と device SDK によって提供されます。使用時には通常、EasyAR と device SDK を同時に使用する必要があります。

次の手順