移行ガイド
ARDK 2.Xプロジェクトの3.0への移行
既存のプロジェクトをアップグレードする:
- ARDK 3.0 のインストールの手順に従って、ステップ 3 の後で停止します。
- ARDK 2.Xでprotobufやtelemetryプラグインを削除するな ど、コードの冗長性を整理します。
- ステップ 4から、ARDK 3.0 のインストール手順を完了します。
- 2.Xマネージャ(
ARSession
など)を3.0マネージャに置き換えます。 2.xマネージャと3.0対応マネージャのリストについては、 Manager Conversionガイド を参照してください。 - スクリプト内の
Niantic.ARDK
の参照を、関連するNiantic.Lightship
の参照に置き換えます。 - すべての変換が完了し、プロジェクトがコンパイルされたら、古いARDKフォルダを削除します。
Manager Conversionガイド
ARDK 2.Xコンポーネント | ARDK 3.0コンポーネント |
---|---|
ARSessionManager | ARSession + ARCameraManager |
ARRenderingManager | ARCameraManager + ARCameraBackground |
ARCameraPositionHelper | TrackedPoseDriver |
ARDepthManager | AROcclusionManager (+ LightshipOcclusionExtension ) |
ARDepthInteroplationAdapter | LightshipOcclusionExtension |
ARMeshManager | ARMeshManager (+ LighsthipMeshingExtension ) |
ARSemanticSegmentationManager | ARSemanticSegmentationManager (+ LightshipOcclusionExtension ) |
GameboardManager | LightshipNavMeshManager |
機能変換ガイド
1. セッション管理
ARDK 2.X では、AR セッション管理は ARDK MonoBehaviour コンポーネント ARSessionManager
によって処理されていました。
ARDK 3.0では、ARセッションの管理はAR Foundationによって、 ARSession
というMonoBehaviourコンポーネントで処理されます。 ARSession
コンポーネントを使った基本的なARシーンのセットアップ方法については、 ARシーンのセットアップ方法を参照。 詳しくは、 Unity のドキュメントをご覧ください。
2. レンダリング
ARDK 2.X では、レンダリングは ARRenderingManager
という ARDK MonoBehaviour コンポーネントによって処理されていました。
ARDK 3.0では、レンダリングはAR Foundationによって処理されます。 デバイスカメラは、 ARCameraManager
というMonoBehaviourコンポーネントによって処理されます。 カメラフレームとCGコンテンツの合成は、 ARCameraBackground
というMonoBehaviourコンポーネントによって処理されます。 詳細については、 Unity Camera Components (新しいウィンドウで開きます)を参照してください。
ARDK 2.X | ARDK 3.0 |
---|---|
[ARSessionManager] IsLightEstimationEnabled | [ARCameraManager] LightEstimation |
[ARSessionManager] IsAutoFocusEnabled | [ARCameraManager] AutoFocus |
[ARRenderingManager] RenderTarget | 常にカメラに設定 |
[ARRenderingManager] Camera | ARCameraManager で常にカメラ |
3. 深度/オクルージョン
ARでは、深度テクスチャを使用してデジタルコンテンツを動的にオクルードします。
ARDK 2.X では、深度テクスチャは ARDepthManager
を通して公開されました。 深度補間は ARDepthInterpolationAdapter
で行われ、深度に基づくオクルージョンの意味的抑制は ARSemanticSegmentationManager
で設定された。
ARDK 3.0では、AR Foundationが提供する AROcclusionManager
によって、深度ベースのオクルージョンが処理されます。 補間モード、オクルージョンサプレッション、オクルージョン安定化など、ARDKの追加オクルージョン設定が、 LightshipOcclusionExtension
を通してすべて有効になりました。
ARDK 2.X | ARDK 3.0 |
---|---|
[ARDepthManager] KeyFrameFrequency | [LightshipOcclusionExtension] TargetFrameRate |
[ARDepthManager] OcclusionMode | ARCameraBackground のDepthBuffer を常に使用する。 |
[ARDepthManager] StabilizeOcclusionExperimental | [LightshipOcclusionExtension] OcclusionStabilization |
[ARDepthManager] PreferSmootherEdges | 未対応 |
[ARDepthManager] Interpolation | デプスバッファは常に補間されて返される |
[ARDepthInterpolationAdapter] モード - SampleFullScreen - TrackOccludee | [LightshipOcclusionExtension] Mode - Static - SpecifiedGameObject |
[ARDepthManager] Occludee | [LightshipOcclusionExtension] PrincipalOccludee |
4. セマンティクス
ARDK 3.0でも、セマンティクスは ARSemanticSegmentationManager
によって処理されます。 新しいマネージャーは、信頼度チャンネルを準備することなく、チャンネルごとにパックされたセマンティクスと信頼度値を取得する関数を提供します。 補間は、セマンティックフレームごとに返される SamplerMatrix
。 セマンティック深度サプレッションの設定は、 LightshipOcclusionExtension
に移動しました。
ARDK 2.X | ARDK 3.0 |
---|---|
KeyFrameFrequency | TargetFrameRate |
DepthSuppressionChannels | [LightshipOcclusionExtension] SuppressionChannels |
PersistentConfidences | マネージャーを介した直接アクセスが可能 |
Interpolation | SamplerMatrix で実行(サンプルを参照)。 |
5. メッシュ生成
ARDK 3.0では、MeshingはMonoBehaviourコンポーネント ARMeshManager
を通して公開されます。 また、ARDK固有の設定は、 LightshipMeshingExtension
コンポーネントで変更できます。 ARDK 2.xの設定はまだ含まれていますが、一部は名前が変更されています:
ARDK 2.X | ARDK 3.0 |
---|---|
[ARMeshManager] FrameRate | [LightshipMeshingExtension] TargetFrameRate |
[ARMeshManager] FrameRateTargetBlockSize | [LightshipMeshingExtension] MeshBlockSize |
[ARMeshManager] MeshingRangeMax | [LightshipMeshingExtension] MaximumIntegrationDistance |
[ARMeshManager] VoxelSize | [ARMeshManager] VoxelSize |
[ARMeshManager] MeshPrefab | [ARMeshManager] MeshPrefab |
[ARMeshManager] MeshRoot | XROrigin に修正 -> CameraOffset -> Trackables |
[ARMeshManager] FrameRateColliderUpdateThrottle | [ARMeshManager] ConcurrentQueueSize によって処理される。 |
[ARMeshManager] MeshVisibilitySettings | プレハブ素材で直接設定 |
6. Gameboard / LightshipNavMesh
ARDK 2.XのGameboard機能は、ARDK 3.0でLightshipNavMeshに名称変更されました。
実装は同じですが、ビジュアライゼーションは LightshipNavMeshRenderer
という追加コンポーネントによって処理されるようになりました。
7. VPS Coverage
VpsCoverageExampleManager
は CoverageClientManager
コンポーネントに作り直されました。 プライベートARロケーションは、 VpsCoverageResponse
オブジェクトの代わりに、ARLocationManifest
を使用して追加できるようになりました。
ARDK 2.X | ARDK 3.0 |
---|---|
[VpsCoverageExampleManager] CoverageClientRuntime | 常にライブサービスを呼び出す |
[VpsCoverageExampleManager] MockResponses (ScriptableObject) | [CoverageClientManager] PrivateARLocations (ARLocationManifest) |
[VpsCoverageExampleManager] SpoofLocation - Lat_degrees - Lon_degrees | [CoverageClientManager] SpoofLocationUseCurrentLocation - QueryLatitude - QueryLongitude |
[CoverageClientManager] VoxelSizeTargetImage | [CoverageClientManager] はサンプルに紐づいていません |