Unity 中的世界鎖定和空間錨點

世界鎖定工具主圖影像

讓您的全像投影保持原狀、與您移動,或在某些情況下,相對於其他全像投影,是建立Mixed Reality應用程式的一大部分。 本文將使用世界鎖定工具引導您完成建議的解決方案,但我們也會討論在 Unity 專案中手動設定空間錨點。 在跳到任何程式碼之前,請務必瞭解 Unity 如何處理自己的引擎中的座標空間和錨點。

世界規模座標系統

現今,撰寫遊戲、資料視覺效果應用程式或虛擬實境應用程式時,典型的方法是建立一個絕對 全局座標系統 ,讓所有其他座標都能可靠地對應回。 在該環境中,您一律可以找到穩定轉換,以定義該世界中任何兩個物件之間的關聯性。 如果您未移動這些物件,其相對轉換一律會維持不變。 轉譯純虛擬世界時,這種全域座標系統很容易就能正確,您事先知道所有幾何。 現今的會議室規模 VR 應用程式通常會建立這種絕對房間縮放座標系統,其原點位於樓層。

相反地,HoloLens 之類的未系結混合實境裝置具有動態感應器驅動的世界理解能力,隨著使用者周遭環境一段時間持續調整其知識,因為他們在建築物的整個樓層上逐步執行許多公尺。 在世界規模體驗中,如果您將所有全像投影放在單純的固定座標系統中,這些全像投影最終會根據世界或彼此相對地漂移。

例如,頭戴式裝置目前可能認為世界有兩個位置相隔 4 公尺,之後再精簡該瞭解,瞭解位置實際上相隔 3.9 公尺。 如果這些全像投影一開始在單一固定座標系統中放置 4 公尺,其中一個全像投影一律會從真實世界顯示 0.1 公尺。

您可以在 Unity 中手動放置 空間錨點 ,以在使用者行動裝置時維護全像投影在實體世界中的位置。 不過,這會犧牲虛擬世界中的自我一致性。 不同的錨點會持續彼此相對地移動,也會移動全域座標空間。 在此案例中,配置等簡單工作變得困難。 物理模擬也可能有問題。

世界鎖定工具 (WLT) 讓您能充分利用這兩個世界,使用使用者四處移動時散佈的空間錨點內部供應來穩定單一固定座標系統。 WLT 會分析相機的座標,以及每個畫面的空間錨點。 WLT 不會變更世界中所有專案的座標,以補償使用者頭部座標中的更正,WLT 只會改為修正頭部的座標。

選擇您的世界鎖定方法

可能的話,請使用 世界鎖定工具 進行全像投影定位。

世界鎖定工具 提供穩定的座標系統,可將虛擬和真實世界標記之間的可見不一致降到最低。 世界鎖定工具會使用共用錨點集區鎖定整個場景,而不是使用群組自己的個別錨點鎖定每個物件群組。

世界鎖定工具會自動處理空間錨點的內部建立和管理。 您不需要與 ARAnchorManager 或 WorldAnchor 互動,才能讓全像投影世界鎖定。

  • 針對使用 OpenXR 或 Windows XR 外掛程式的 Unity 2019/2020,請使用 ARAnchorManager
  • 針對較舊的 Unity 版本或 WSA 專案,請使用 WorldAnchor

設定世界鎖定

若要開始使用世界鎖定工具,請下載Mixed Reality功能工具。 若要深入瞭解基本概念,請參閱主要世界鎖定工具檔頁面,以取得概觀、快速入門和其他實用主題的連結。

自動化設定

當您的專案準備就緒時,請從Mixed Reality > 世界鎖定工具執行設定場景公用程式:

已選取 [工具組] 功能表Mixed Reality Unity 編輯器

重要

設定場景公用程式可以隨時重新執行。 例如,如果 AR 目標已從舊版變更為 XR SDK,則應該重新執行。 如果場景已正確設定,則執行公用程式沒有任何作用。

視覺化工具

在早期開發期間,新增視覺化檢視有助於確保 WLT 已設定並正常運作。 您可以使用移除視覺化檢視公用程式,移除生產效能,或基於任何原因而不再需要它們。 如需視覺化檢視的詳細資訊,請參閱 工具檔

永續性世界鎖定

空間錨點會將全像投影儲存在應用程式會話之間的真實世界空間中。 儲存在 HoloLens 錨點存放區後,空間錨點可以在不同的會話中找到並載入,而且在沒有網際網路連線時是理想的後援。

重要

本機錨點會儲存在裝置上,而 Azure Spatial Anchors 會儲存在雲端。 您可以在相同的專案中擁有本機和 Azure 錨點,而不會發生衝突。 如需整合 Azure 雲端服務來儲存錨點的詳細資訊,請參閱 Azure Spatial Anchors

根據預設,世界鎖定工具會在支援本機空間錨點持續性的裝置上,還原 Unity 的座標系統相對於實體世界。 若要在結束並重新執行應用程式之後,讓全像投影出現在實體世界中的相同位置,應用程式只需要將相同的姿勢還原到全像投影。

Unity Inspector 中的世界鎖定內容元件

如果應用程式需要更精細的控制,您可以在偵測器中停用 自動儲存自動載入 ,以及管理腳本的持續性。 如需詳細資訊,請參閱 保存空間座標系統

世界鎖定工具僅支援 HoloLens 裝置上的本機錨點持續性。 針對 Android、iOS 和 HoloLens 裝置,與 Azure Spatial Anchors 整合,以支援跨會話和裝置之間協調空間的持續性和共用。 如需搭配 Azure Spatial Anchors 使用世界鎖定工具的詳細資訊和範例,請參閱 WLT (WLT) 與 Azure Spatial Anchors (ASA) 結合

下一步

共用世界鎖定座標空間:

瞭解空間對應:

返回至 Unity 開發檢查點:

另請參閱