移行ガイド
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] はサンプルに紐づいていません |