Unity 中的 easyar ヘッドセットサポート
このドキュメントでは、unity における easyar ヘッドセットサポートの全体的なアーキテクチャと注意点について説明します。
開始する前に
- easyar のヘッドセットサポート を読み、easyar がサポートするヘッドセットの種類とヘッドセット上で実行可能な 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> ライブラリ "]
space
space
DeviceB["Device B<br> ライブラリ "]
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 を同時に使用する必要があります。