本文へスキップ

移行ガイド

ARDK 2.Xプロジェクトの3.0への移行

既存のプロジェクトをアップグレードする:

  1. ARDK 3.0 のインストールの手順に従って、ステップ 3 の後で停止します。
  2. ARDK 2.Xでprotobufやtelemetryプラグインを削除するなど、コードの冗長性を整理します。
  3. ステップ 4から、ARDK 3.0 のインストール手順を完了します。
  4. 2.Xマネージャ(ARSessionなど)を3.0マネージャに置き換えます。 2.xマネージャと3.0対応マネージャのリストについては、 Manager Conversionガイド を参照してください。
  5. スクリプト内の Niantic.ARDK の参照を、関連する Niantic.Lightship の参照に置き換えます。
  6. すべての変換が完了し、プロジェクトがコンパイルされたら、古いARDKフォルダを削除します。

Manager Conversionガイド

ARDK 2.XコンポーネントARDK 3.0コンポーネント
ARSessionManagerARSession + ARCameraManager
ARRenderingManagerARCameraManager + ARCameraBackground
ARCameraPositionHelperTrackedPoseDriver
ARDepthManagerAROcclusionManager (+ LightshipOcclusionExtension)
ARDepthInteroplationAdapterLightshipOcclusionExtension
ARMeshManagerARMeshManager (+ LighsthipMeshingExtension)
ARSemanticSegmentationManagerARSemanticSegmentationManager (+ LightshipOcclusionExtension)
GameboardManagerLightshipNavMeshManager

機能変換ガイド

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.XARDK 3.0
[ARSessionManager] IsLightEstimationEnabled[ARCameraManager] LightEstimation
[ARSessionManager] IsAutoFocusEnabled[ARCameraManager] AutoFocus
[ARRenderingManager] RenderTarget常にカメラに設定
[ARRenderingManager] CameraARCameraManagerで常にカメラ

3. 深度/オクルージョン

ARでは、深度テクスチャを使用してデジタルコンテンツを動的にオクルードします。

ARDK 2.X では、深度テクスチャは ARDepthManagerを通して公開されました。 深度補間は ARDepthInterpolationAdapter で行われ、深度に基づくオクルージョンの意味的抑制は ARSemanticSegmentationManagerで設定された。

ARDK 3.0では、AR Foundationが提供する AROcclusionManager によって、深度ベースのオクルージョンが処理されます。 補間モード、オクルージョンサプレッション、オクルージョン安定化など、ARDKの追加オクルージョン設定が、 LightshipOcclusionExtensionを通してすべて有効になりました。

ARDK 2.XARDK 3.0
[ARDepthManager] KeyFrameFrequency[LightshipOcclusionExtension] TargetFrameRate
[ARDepthManager] OcclusionModeARCameraBackgroundの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.XARDK 3.0
KeyFrameFrequencyTargetFrameRate
DepthSuppressionChannels[LightshipOcclusionExtension] SuppressionChannels
PersistentConfidencesマネージャーを介した直接アクセスが可能
InterpolationSamplerMatrix で実行(サンプルを参照)。

5. メッシュ生成

ARDK 3.0では、MeshingはMonoBehaviourコンポーネント ARMeshManagerを通して公開されます。 また、ARDK固有の設定は、 LightshipMeshingExtension コンポーネントで変更できます。 ARDK 2.xの設定はまだ含まれていますが、一部は名前が変更されています:

ARDK 2.XARDK 3.0
[ARMeshManager] FrameRate[LightshipMeshingExtension] TargetFrameRate
[ARMeshManager] FrameRateTargetBlockSize[LightshipMeshingExtension] MeshBlockSize
[ARMeshManager] MeshingRangeMax[LightshipMeshingExtension] MaximumIntegrationDistance
[ARMeshManager] VoxelSize[ARMeshManager] VoxelSize
[ARMeshManager] MeshPrefab[ARMeshManager] MeshPrefab
[ARMeshManager] MeshRootXROrigin に修正 -> CameraOffset -> Trackables
[ARMeshManager] FrameRateColliderUpdateThrottle[ARMeshManager] ConcurrentQueueSize によって処理される。
[ARMeshManager] MeshVisibilitySettingsプレハブ素材で直接設定

6. Gameboard / LightshipNavMesh

ARDK 2.XのGameboard機能は、ARDK 3.0でLightshipNavMeshに名称変更されました。

実装は同じですが、ビジュアライゼーションは LightshipNavMeshRendererという追加コンポーネントによって処理されるようになりました。

7. VPS Coverage

VpsCoverageExampleManagerCoverageClientManager コンポーネントに作り直されました。 プライベートARロケーションは、 VpsCoverageResponse オブジェクトの代わりに、ARLocationManifest を使用して追加できるようになりました。

ARDK 2.XARDK 3.0
[VpsCoverageExampleManager] CoverageClientRuntime常にライブサービスを呼び出す
[VpsCoverageExampleManager]
MockResponses (ScriptableObject)
[CoverageClientManager]
PrivateARLocations (ARLocationManifest)
[VpsCoverageExampleManager] SpoofLocation
- Lat_degrees
- Lon_degrees
[CoverageClientManager] SpoofLocationUseCurrentLocation
- QueryLatitude
- QueryLongitude
[CoverageClientManager] VoxelSizeTargetImage[CoverageClientManager] はサンプルに紐づいていません