Table of Contents

Unity 中的 easyar ヘッドセットサポート

このドキュメントでは、unity における easyar ヘッドセットサポートの全体的なアーキテクチャと注意点について説明します。

開始する前に

ヘッドセットサポートの概要

easyar は unity におけるヘッドセットサポートを柔軟に行い、主に2つの方法があります:

  • 組み込みサポート:通常 easyar sense ライブラリ内で直接デバイス sdk と連携し、unity に対応するインターフェースを提供します(例:apple vision pro)
  • 拡張サポート:unity ヘッドセット拡張パッケージを通じてデバイス sdk と連携します(例:pico)
block
  columns 4
  block:groupApp:4
    block:groupAppWrapper
      space
      App1["EasyAR + Device A<br>アプリ"]
      space
      App2["EasyAR<br>アプリ"]
      space
      App3["EasyAR + Device B<br>アプリ"]
    end
  end
  
  block:groupSensePluginExtension
    columns 1
    SensePluginExtension["EasyAR Sense Unity Plugin<br>Device A用拡張機能"]
    space
  end
  block:groupSensePlugin
    columns 1
    SensePlugin["EasyAR Sense Unityプラグイン"]
    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>カメラデバイス"]
      Others["..."]
    end
  end
  block:groupXRSubsystem:2
    columns 1
    XRSubsystem["XRサブシステム"]
    XRSDK["Unity XR SDK"]
  end

  block:groupSystem:4
    columns 1
    System["ネイティブライブラリ"]
    block:groupSystemWrapper
      space
      DeviceA["Device A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ライブラリ&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;ライブラリ&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

図中:

  • デバイス a は拡張サポートに該当

    実際には、デバイス a には通常 unity xr sdk または独立したヘッドセットレンダリング機能を統合するための対応 unity sdk が存在します。

    デバイス a のヘッドセット拡張パッケージは、easyar sense unity plugin とデバイス a の unity sdk を連携させる役割を担い、easyar をデバイス a 上で動作可能にします。このサポートパッケージは easyar またはデバイスメーカーが提供する場合があります。

  • デバイス b は組み込みサポートに該当

    実際には、デバイス b には対応 unity sdk が存在する場合としない場合があり、デバイスメーカーの実装に依存します。例:apple vision pro には対応 unity sdk がありませんが、xreal には対応 unity sdk が存在します。

組み込みサポートと拡張サポートの両方のヘッドセットは、カスタムカメラ を使用した機能をサポートします。

重要

カスタムカメラやヘッドマウントディスプレイ上で試供品(個人版ライセンス、試供版XRライセンス、試供版Megaサービスなど)を使用する場合、EasyAR Senseは起動毎に100秒後(MegaユーザーはEasyARビジネスを通じて承認後、時間長を調整可能)に応答を停止します。有償版のEasyAR Senseおよび有償のEasyAR Megaサービスを使用する場合、この制限はありません。

unity では、仮想カメラのレンダリング、投影行列、transform などは easyar の制御下にありません。これらは通常、デバイス sdk または unity xr sdk によって制御されます。ジェスチャー認識、眼球追跡などのデバイス自体の機能は、引き続きデバイスおよびデバイス sdk によって提供されます。使用時には、通常 easyar とデバイス sdk を同時に使用する必要があります。

次のステップ