建立您的第一個 HoloLens Unreal 應用程式
本指南將逐步引導您取得在 Unreal Engine 中 HoloLens 上執行的第一個Mixed Reality應用程式。 在「Hello World」的傳統中,您將建立簡單的應用程式,在畫面上顯示 Cube。 為了讓它更實用,您也會建立第一個手勢來旋轉 Cube 並結束應用程式。
目標
- 啟動 HoloLens 專案
- 啟用正確的外掛程式
- 建立 ARSessionConfig 資料資產
- 設定手勢輸入
- 建置基本層級
- 實作捏合手勢
建立新的專案
您需要的第一個項目是供您使用的專案。 如果您是首次接觸的 Unreal 開發人員,則需要從 Epic Launcher 下載支援檔案。
- 啟動 Unreal Engine
- 在 [ 新增專案類別] 中,選取 [ 遊戲 ],然後按 [ 下一步]:
- 選取 [空白 ] 範本,然後按 [ 下一步]:
- 在 [專案設定] 中,設定 C++、可調整的 3D 或 2D、行動/平板電腦,以及 [沒有入門內容],然後選擇儲存位置,然後按一下 [ 建立專案]
注意
您使用的是 C++ 而非藍圖專案,以便稍後使用 OpenXR 外掛程式。 本快速入門會使用 Unreal Engine 隨附的預設 OpenXR 外掛程式。 不過,建議下載並使用官方 Microsoft OpenXR 外掛程式。 這需要專案為 C++ 專案。
您的新專案應該會在 Unreal 編輯器中自動開啟,這表示您已準備好下一節。
啟用必要的外掛程式
在您開始將物件新增至場景之前,必須啟用兩個外掛程式。
- 開啟 [編輯 > 外掛程式] ,然後從內建選項清單中選取 [擴增實境 ]。
- 向下捲動至 HoloLens 並核 取 [已啟用]
- 在右上方的搜尋方塊中輸入 OpenXR ,並啟用 OpenXR 和OpenXRMsftHandInteraction 外掛程式:
- 重新開機編輯器
注意
本教學課程使用 OpenXR,但您先前安裝的兩個外掛程式目前不提供 HoloLens 開發的完整功能集。 HandInteraction 外掛程式將足以滿足您稍後將使用的「捏合」手勢,但如果您想要超越基本概念,您必須 下載 Microsoft OpenXR 外掛程式。
啟用外掛程式後,您可以專注于填入內容。
建立層級
您的下一個工作是建立玩家設定,其中包含一個起點和一個用於參考和調整的立方體。
- 選取 [檔案 > 新層級 ],然後選擇 [空白層級]。 檢視區中的預設場景現在應該是空的
- 從 [ 模式] 索引標籤中,選取 [ 基本 ] 並將 PlayerStart 拖曳至場景
- 在 [ 詳細資料] 索引 標籤中,將 [位置 ] 設定為 X = 0、Y = 0, 而 Z = 0 會在應用程式啟動時將使用者放在場景中央
- 從 [基本] 索引標籤,將 Cube 拖曳至場景
- 將 Cube 的位置 設定為 X = 50、Y = 0,而 Z = 0 將立方體放在玩家開始距離 50 公分的位置
- 將 Cube 的 縮放 比例變更為 X = 0.2、Y = 0.2和 Z = 0.2
您將無法看到立方體,除非您將光線新增至場景,這是測試場景前的最後一項工作。
- 在 [模式] 面板中,切換至 [光線 ] 索引標籤,並將 方向光線 拖曳至場景
- 將光線放在 PlayerStart 上方,讓您可以看到它
- 移至 [檔案 > 儲存目前],將層級命名為 Main,然後選取 [ 儲存]
設定場景後,請按下工具列中的 [播放],以查看行動中的立方體! 當您完成工作的管理時,請按 Esc 以停止應用程式。
現在已設定場景,讓我們準備好進行 AR 中的一些基本互動。 首先,您需要建立 AR 會話,並可新增藍圖來啟用手部互動。
新增會話資產
Unreal 中的 AR 工作階段本身不會發生。 若要使用工作階段,您需要借助於 ARSessionConfig 資料資產,這就是您接下來的工作:
- 在 內容瀏覽器中,選取 [ 新增其他 >> 資料資產 ],並確定您位於根 Content 資料夾層級
- 選取 [ARSessionConfig],按一下 [ 選取],並將資產命名為 ARSessionConfig:
- 按兩下 ARSessionConfig 以開啟 它、以 所有預設設定儲存,然後返回 [主視窗]:
完成後,您的下一個步驟是確保 AR 工作階段會在層級載入時啟動,並在層級結束時停止。 值得慶幸的是,Unreal 具有名為層級藍圖的特殊藍圖,可作為整個層級的全域事件圖形。 在層級藍圖中連線 ARSessionConfig 資產,保證 AR 工作階段會在遊戲開始玩時立即啟動。
- 從編輯器工具列中,選取 [藍圖 > 開啟層級藍圖]:
- 將執行節點拖曳 (向左箭號圖示,) 事件 BeginPlay 並放開
- 搜尋 [ 啟動 AR 會話] 節點 ,然後按 Enter 鍵
- 按一下 [會話設定] 底下的 [選取資產] 下拉式清單,然後選擇[ARSessionConfig 資產]
- 以滑鼠右鍵按一下 EventGraph 中的任一處,並建立新的 [事件 EndPlay] 節點。
- 拖曳執行釘選並放開,然後搜尋 [停止 AR 會話] 節點並按 Enter 鍵
- 按 [編譯],然後 儲存 並返回 [主] 視窗
重要
如果 AR 工作階段在層級結束時仍在執行,若您在串流至頭戴式裝置時重新啟動應用程式,某些功能可能會停止運作。
設定輸入
- 選取 [編輯 > 專案設定 ],然後移至 [引擎 > 輸入]
- 選取[動作對應] 旁的 + 圖示,然後建立RightPinch和LeftPinch動作:
- 將 RightPinch 和 LeftPinch 動作對應至個別 的 OpenXR Msft Hand 互動 動作:
設定手勢
既然我們已經設定輸入,就可以進入令人興奮的部分:新增手勢! 讓我們在右捏合上旋轉立方體,並在左側捏合上結束應用程式。
- 開啟 層級藍圖 ,然後新增 InputAction RightPinch 和 InputAction LeftPinch
- 將右捏合事件連接到 AddActorLocalRotation ,並將 Cube 作為目標,並將 Delta Rotation 設定為 X = 0、Y = 0,而 Z = 20。 每次捏合時,Cube 現在會旋轉 20 度
- 將左側捏合事件連線到 Quit Game
- 在 Cube 的 [轉換 ] 設定中,將 [行動性 ] 設定為 [可移動 ],以便動態移動:
此時,您已準備好部署及測試應用程式!