移行ガイド
ARDK 2.Xプロジェクトの3.0への移行
既存のプロジェクトをアップグレードする:
- ARDK 3.0 のインストールの手順に従って、ステップ 3 の後で停止します。
- ARDK 2.Xでprotobufやtelemetryプラグインを削除するなど、コードの冗長性を整理します。
- APIキーの追加から始め、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) | 
| ARDepth補間アダプタ | LightshipOcclusionExtension | 
| ARMeshManager | ARMeshManager(+LightshipMeshingExtension) | 
| ARPlaneManager(ARDK 2.x以降) | ARPlaneManager(AR Foundation以降) | 
| 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では、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 | プレハブ素材で直接設定 | 
5. 平面
ARDK 3.xでは、平面の検出と可視化は、ARKitとARCoreの上にラッパーとして構築されている、AR Foundationの ARPlaneManager を使用して行われます。 これはARDK 2.xで提供されていた機能の動作と似ていますが、ランタイム時の動作にいくつかの違いがあります。 アプリケーションで、AR Foundationの ARPlaneManager を使用する方法については、AR Foundationのサンプルをご覧ください。
| ARDK 2.X | ARDK 3.0 | 
|---|---|
| IARPlaneAnchor | ARPlane | 
| ARSession.AnchorsAdded | ArPlaneManager.planesChanged | 
| ARSession.AnchorsUpdated | ArPlaneManager.planesChanged | 
| ARSession.AnchorsMerged | ArPlaneManager.planesChanged | 
| ARSession.AnchorsRemoved | ArPlaneManager.planesChanged | 
6. セマンティック
セマンティックの処理は、ARDK 3.0でも引き続き ARSemanticSegmentationManager によって行われます。 新しいマネージャーでは、チャンネルごとに圧縮されたセマンティックと信頼度値を取得する機能が提供されており、信頼度チャンネルを準備する必要はありません。 補間は、セマンティックフレームごとに返る SamplerMatrix を使用して行うことができます。 セマンティック深度抑制の設定は、 LightshipOcclusionExtension に移動しました。
| ARDK 2.X | ARDK 3.0 | 
|---|---|
| KeyFrameFrequency | TargetFrameRate | 
| DepthSuppressionChannels | [LightshipOcclusionExtension]SuppressionChannels | 
| PersistentConfidences | マネージャーから直接アクセス可能 | 
| Interpolation | SamplerMatrixで実行(サンプルを参照)。 | 
7. Gameboard / LightshipNavMesh
ARDK 2.XのGameboard機能は、ARDK 3.0でLightshipNavMeshに名称変更されました。
実装は同じですが、ビジュアライゼーションは LightshipNavMeshRendererという追加コンポーネントによって処理されるようになりました。
8. 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]はサンプルに紐づいていません |