快速入門:在 Unity 中使用 MRTK 使用 Azure 物件錨點建立 HoloLens 應用程式

在本快速入門中,您將建立使用 Azure Object Anchors 的 Unity HoloLens 應用程式。 Azure Object Anchors 是受控雲端服務,可將 3D 資產轉換成 AI 模型,以啟用 HoloLens 的物件感知混合實境體驗。 當您完成時,將會有一個以 Unity 建置的 HoloLens 應用程式,可偵測實體世界中的物件。

您將了解如何:

  • 準備 Unity 組建設定。
  • 導出 HoloLens Visual Studio 專案。
  • 部署應用程式並在 HoloLens 2 裝置上執行。

必要條件

若要完成本快速入門,請確定您有:

  • 環境中的實體物件及其 3D 模型 (CAD 或掃描的)。
  • 已安裝下列專案的 Windows 電腦:
    • Git (適用於 Windows)
    • Visual Studio 2019 搭配 通用 Windows 平台 開發工作負載和 Windows 10 SDK (10.0.18362.0 或更新版本) 元件
    • Unity 2019.4
  • 最新且 已啟用開發人員模式 的 HoloLens 2 裝置。
    • 若要更新至 HoloLens 上的最新版本,請開啟 設定 應用程式,移至 [更新與安全性],然後選取 [檢查更新]。

建立物件錨點帳戶

首先,您必須使用 Object Anchors 服務建立帳戶。

  1. 移至 Azure 入口網站,並選取 [建立資源]

    Create a new resource

  2. 搜尋 物件錨點 資源。

    搜尋 「Object Anchors」。

    Select the Object Anchors Resource

    在搜尋結果中的 [物件錨點] 資源上,選取 [建立 -> 物件錨點]。

    Create an Object Anchors Resource

  3. [Object Anchors 帳戶] 對話方塊中:

    • 輸入唯一資源名稱。
    • 選取資源要連結的訂用帳戶。
    • 建立或選取現有的資源群組。
    • 選取希望資源所在的區域。

    Enter Object Anchors resource account details

    選取 [建立] 以開始建立資源。

  4. 建立資源之後,選取 [前往資源]

    Go to resource

  5. 在概觀頁面上:

    記下 帳戶網域。 稍後您將需要此資訊。

    Copy the account domain for your Object Anchors resource

    記下 帳戶標識碼。 稍後您將需要此資訊。

    Copy the account ID for your Object Anchors resource

    移至 [ 存取金鑰 ] 頁面並記下 [主要金鑰]。 稍後您將需要此資訊。

    Copy the account key for your Object Anchors resource

設定您的裝置

若要將應用程式部署至 HoloLens,您必須將 HoloLens 與電腦配對。

  1. 在您的 HoloLens 中,流覽至 [設定 -> 更新與安全性 -> 適用於開發人員
  2. 按兩下 [配對],讓畫面保持開啟狀態,直到您在第一次部署期間將 PIN 輸入 Visual Studio 為止。

上傳模型

執行應用程式之前,您必須讓模型可供應用程式使用。 如果您還沒有物件錨點模型,請遵循建立模型以建立模型中的 指示來建立一個模型 。 然後,返回這裡。

當您的 HoloLens 開啟電源並連線到開發裝置 (PC),請遵循下列步驟,將模型上傳至 HoloLens 上的 3D Objects 資料夾:

  1. 選取並複製您想要使用的模型,方法是一起按 Ctrl 鍵和 C(Ctrl + C)。

  2. 將 Windows 標誌鍵和 E 一起按下 [Win + E] 以啟動 檔案總管。 您應該會看到 HoloLens 列於左窗格中的其他磁碟驅動器和資料夾。

    file explorer

  3. 點選 HoloLens 連結,即可在右窗格的 HoloLens 裝置上顯示記憶體。

    open HoloLens internal storage

  4. 在 檔案總管 中,移至 [內部 儲存體 > 3D 物件]。 現在,您可以按下 Ctrl 鍵和 V,將模型貼到 [3D 物件 ] 資料夾中(Ctrl + V)。

    paste models in 3D Objects folder

開啟範例專案

執行下列命令來複製範例存放

git clone https://github.com/Azure/azure-object-anchors.git

cd ./azure-object-anchors

下一個步驟是下載適用於 Unity 的 Azure Object Anchors 套件。

這裡尋找適用於 Unity 的 Azure Object Anchors 套件 (com.microsoft.azure.object-anchors.runtime)。 選取您想要的版本,然後使用 [下載] 按鈕下載套件。

在 Unity 中 quickstarts/apps/unity/mrtk ,開啟專案。

請遵循這裡的指示,使用 Unity 封裝管理員 將您下載的 Azure Object Anchors 套件匯入 Unity 專案中。

設定帳戶資訊

下一個步驟是將應用程式設定為使用您的帳戶資訊。 您已記下 [建立物件錨點帳戶] 區段中的 [帳戶密鑰]、[帳戶標識符] 和 [帳戶網域] 值

在 [ 專案 ] 窗格中,移至 Assets\AzureObjectAnchors.SDK\Resources

選取 [ObjectAnchorsConfig]。 在 [偵測器] 窗格中,輸入 Account Key 作為 [物件錨點帳戶索引鍵] 的值Account ID作為 [物件錨點帳戶標識符] 的值,以及 Account Domain 作為 [物件錨點帳戶網域] 的值

建置並執行應用程式

建置範例場景

在 Unity 編輯器中,流覽至 Assets/MixedReality.AzureObjectAnchors/Scenes,然後開啟 AOASampleScene,並將它新增至場景組建清單。

當 [TMP 匯入工具] 對話框提示您匯入 TextMesh Pro 資源時,請選取 [匯入 TMP Essentials] 來執行此動作。 Import TextMesh Pro resources

選取 [檔案 -> 建置 設定]。 選取 [通用 Windows 平台],然後選取 [切換平臺]。 如果 Unity 編輯器指出您需要先下載某些元件,請下載並安裝它們。 請遵循下列螢幕快照來設定組建設定。 請確定 只有AOASampleScene 旁邊有複選標記:不應該包含所有其他場景。

build settings

選取 [建置 ],然後選取輸出資料夾。 您現在可以在輸出資料夾中產生 VS 專案。

建置和部署應用程式

.sln開啟 Unity 所產生的檔案。 將組建組態變更為下列專案。

build configuration

接下來,您必須設定 遠端電腦IP位址 ,以部署和偵錯應用程式。

以滑鼠右鍵按兩下 [應用程式] 項目,然後選取 [ 屬性]。 在 [屬性] 頁面中,選取 [ 組態屬性 -> 偵錯]。 將 [ 機器名稱] 值變更為 HoloLens 裝置的 IP 位址,然後按兩下 [ 套用]。

remote debug

關閉屬性頁。 按兩下 [ 遠端電腦]。 應用程式應該會開始建置並部署至您的遠端裝置。 請確定您的裝置為作用中。

在 Unity 啟動顯示畫面之後,您應該會看到白色周框方塊。 您可以使用手移動、縮放或旋轉周框方塊。 放置方塊以涵蓋您想要偵測的物件。

開啟手部功能表,然後選取 [鎖定搜尋][區域],以防止周框方塊進一步移動。 選取 [ 開始搜尋 ] 以啟動物件偵測。 偵測到物件時,會在對象上呈現網格。 偵測到實例的詳細數據會顯示在畫面上,例如更新的時間戳和表面涵蓋範圍比例。 選取 [停止搜尋 ] 以停止追蹤,並移除所有偵測到的實例。

應用程式功能表

您也可以使用 手部功能表執行其他動作。

主要功能表
  • 啟動搜尋/停止搜尋 – 啟動或停止物件偵測程式。

  • 切換空間對應 – 顯示/隱藏空間對應轉譯。 如果掃描完成或未完成,可以使用此選項進行偵錯。

  • 追蹤器 設定 – 切換追蹤器設定功能表的啟用。

  • 搜尋區域 設定 – 切換搜尋區域設定功能表的啟用。

  • 啟動追蹤 – 擷取診斷數據,並將其儲存至裝置。 如需詳細資訊,請參閱偵錯偵測問題和擷取診斷一

  • 上傳追蹤 – 將診斷數據上傳至物件錨點服務。

    Unity primary hand menu

追蹤器設定功能表
  • 高精確度 – 實驗性功能,用來取得更精確的姿勢。 啟用此選項會在物件偵測期間需要更多系統資源。 在此模式中,物件網格會以粉紅色呈現。 再次選取此按鈕以切換回一般追蹤模式。

  • 寬鬆的垂直對齊 – 啟用時,允許以非垂直角度偵測物件。 適用於偵測坡道上的物件。

  • 允許調整變更 – 允許追蹤器根據環境資訊變更偵測到的物件大小。

  • 涵蓋範圍比例滑桿 – 調整必須符合追蹤器才能偵測物件的表面點比例。 較低的值可讓追蹤器更清楚地偵測 HoloLens 感測器難以偵測的物件,例如深色物件或高反射物件。 較高的值會降低誤偵測的頻率。

    Unity tracker hand menu

搜尋區域設定功能表
  • 鎖定搜尋區域 – 鎖定區域周框方塊,以防止手部意外移動。

  • 自動調整搜尋區域 – 允許搜尋區域在物件偵測期間自行重新定位。

  • 迴圈網格 – 迴圈查看搜尋區域內已載入的網格。 此選項可協助使用者對齊搜尋方塊,以便難以偵測物件。

    Unity search area hand menu

疑難排解

提示

如果未偵測到您的物件,您可以嘗試下列步驟:

  1. 請仔細檢查您使用的是對象的正確模型。
  2. 將搜尋區域可視化,並確保它涵蓋目標物件。
  3. 請嘗試減少 MinSurfaceCoverage
  4. 在 Windows 裝置入口網站中,單擊 [ 檢視 -> 3D 檢視],並確認掃描是否已完成。

下一步