建立您的第一個 HoloLens Unreal 應用程式

本指南將逐步引導您取得在 Unreal Engine 中 HoloLens 上執行的第一個Mixed Reality應用程式。 在「Hello World」的傳統中,您將建立簡單的應用程式,在畫面上顯示 Cube。 為了讓它更實用,您也會建立第一個手勢來旋轉 Cube 並結束應用程式。

目標

  • 啟動 HoloLens 專案
  • 啟用正確的外掛程式
  • 建立 ARSessionConfig 資料資產
  • 設定手勢輸入
  • 建置基本層級
  • 實作捏合手勢

建立新的專案

您需要的第一個項目是供您使用的專案。 如果您是首次接觸的 Unreal 開發人員,則需要從 Epic Launcher 下載支援檔案

  1. 啟動 Unreal Engine
  2. 在 [ 新增專案類別] 中,選取 [ 遊戲 ],然後按 [ 下一步]:

[最近開啟的專案] 視窗,其中已醒目提示 [遊戲]

  1. 選取 [空白 ] 範本,然後按 [ 下一步]:

已醒目提示空白範本的 Unreal 專案瀏覽器視窗

  1. [專案設定] 中,設定 C++、可調整的 3D 或 2D、行動/平板電腦,以及 [沒有入門內容],然後選擇儲存位置,然後按一下 [ 建立專案]

注意

您使用的是 C++ 而非藍圖專案,以便稍後使用 OpenXR 外掛程式。 本快速入門會使用 Unreal Engine 隨附的預設 OpenXR 外掛程式。 不過,建議下載並使用官方 Microsoft OpenXR 外掛程式。 這需要專案為 C++ 專案。

已醒目提示專案、效能、目標平臺和入門內容選項的專案設定視窗

您的新專案應該會在 Unreal 編輯器中自動開啟,這表示您已準備好下一節。

啟用必要的外掛程式

在您開始將物件新增至場景之前,必須啟用兩個外掛程式。

  1. 開啟 [編輯 > 外掛程式] ,然後從內建選項清單中選取 [擴增實境 ]。
  • 向下捲動至 HoloLens 並核 取 [已啟用]

已開啟擴增實境區段的外掛程式視窗,並醒目提示 HoloLens

  1. 在右上方的搜尋方塊中輸入 OpenXR ,並啟用 OpenXR 和OpenXRMsftHandInteraction 外掛程式:

已啟用 OpenXR 的外掛程式視窗

已啟用 Open XR Msft Hand Interaction 的外掛程式視窗

  1. 重新開機編輯器

注意

本教學課程使用 OpenXR,但您先前安裝的兩個外掛程式目前不提供 HoloLens 開發的完整功能集。 HandInteraction 外掛程式將足以滿足您稍後將使用的「捏合」手勢,但如果您想要超越基本概念,您必須 下載 Microsoft OpenXR 外掛程式

啟用外掛程式後,您可以專注于填入內容。

建立層級

您的下一個工作是建立玩家設定,其中包含一個起點和一個用於參考和調整的立方體。

  1. 選取 [檔案 > 新層級 ],然後選擇 [空白層級]。 檢視區中的預設場景現在應該是空的
  2. 從 [ 模式] 索引標籤中,選取 [ 基本 ] 並將 PlayerStart 拖曳至場景
  • 在 [ 詳細資料] 索引 標籤中,將 [位置 ] 設定為 X = 0、Y = 0,Z = 0 會在應用程式啟動時將使用者放在場景中央

已新增位置和播放機的 Unreal 編輯器場景

  1. [基本] 索引標籤,將 Cube 拖曳至場景
  • 將 Cube 的位置 設定為 X = 50、Y = 0,而 Z = 0 將立方體放在玩家開始距離 50 公分的位置
  • 將 Cube 的 縮放 比例變更為 X = 0.2、Y = 0.2Z = 0.2

您將無法看到立方體,除非您將光線新增至場景,這是測試場景前的最後一項工作。

  1. [模式] 面板中,切換至 [光線 ] 索引標籤,並將 方向光線 拖曳至場景
  • 將光線放在 PlayerStart 上方,讓您可以看到它

已新增 Cube 和方向光線的 Unreal 編輯器場景

  1. 移至 [檔案 > 儲存目前],將層級命名為 Main,然後選取 [ 儲存]

設定場景後,請按下工具列中的 [播放],以查看行動中的立方體! 當您完成工作的管理時,請按 Esc 以停止應用程式。

螢幕中間有 Cube 的播放模式場景

現在已設定場景,讓我們準備好進行 AR 中的一些基本互動。 首先,您需要建立 AR 會話,並可新增藍圖來啟用手部互動。

新增會話資產

Unreal 中的 AR 工作階段本身不會發生。 若要使用工作階段,您需要借助於 ARSessionConfig 資料資產,這就是您接下來的工作:

  1. 內容瀏覽器中,選取 [ 新增其他 >> 資料資產 ],並確定您位於根 Content 資料夾層級
  2. 選取 [ARSessionConfig],按一下 [ 選取],並將資產命名為 ARSessionConfig

選取開啟的資料資產類別視窗,並醒目提示 AR 會話設定資產

  1. 按兩下 ARSessionConfig 以開啟 它、以 所有預設設定儲存,然後返回 [主視窗]:

AR 會話設定資產詳細資料視窗

完成後,您的下一個步驟是確保 AR 工作階段會在層級載入時啟動,並在層級結束時停止。 值得慶幸的是,Unreal 具有名為層級藍圖的特殊藍圖,可作為整個層級的全域事件圖形。 在層級藍圖中連線 ARSessionConfig 資產,保證 AR 工作階段會在遊戲開始玩時立即啟動。

  1. 從編輯器工具列中,選取 [藍圖 > 開啟層級藍圖]:

[藍圖] 功能表已開啟,並醒目提示 [開啟層級藍圖] 選項

  1. 將執行節點拖曳 (向左箭號圖示,) 事件 BeginPlay 並放開
  • 搜尋 [ 啟動 AR 會話] 節點 ,然後按 Enter 鍵
  • 按一下 [會話設定] 底下的 [選取資產] 下拉式清單,然後選擇[ARSessionConfig 資產]

已連線到 start ar 會話函式的事件開始播放藍圖圖表

  1. 以滑鼠右鍵按一下 EventGraph 中的任一處,並建立新的 [事件 EndPlay] 節點。
  • 拖曳執行釘選並放開,然後搜尋 [停止 AR 會話] 節點並按 Enter 鍵
  • [編譯],然後 儲存 並返回 [主] 視窗

重要

如果 AR 工作階段在層級結束時仍在執行,若您在串流至頭戴式裝置時重新啟動應用程式,某些功能可能會停止運作。

附加至停止 ar 會話函式的事件結束播放節點

設定輸入

  1. 選取 [編輯 > 專案設定 ],然後移至 [引擎 > 輸入]
  2. 選取[動作對應] 旁的 + 圖示,然後建立RightPinchLeftPinch動作:

已醒目提示右和左捏合動作對應的系結輸入設定

  1. RightPinchLeftPinch 動作對應至個別 的 OpenXR Msft Hand 互動 動作:

醒目提示 Open XR Msft Hand 互動選項的動作對應

設定手勢

既然我們已經設定輸入,就可以進入令人興奮的部分:新增手勢! 讓我們在右捏合上旋轉立方體,並在左側捏合上結束應用程式。

  1. 開啟 層級藍圖 ,然後新增 InputAction RightPinchInputAction LeftPinch
  • 將右捏合事件連接到 AddActorLocalRotation ,並將 Cube 作為目標,並將 Delta Rotation 設定為 X = 0、Y = 0,而 Z = 20。 每次捏合時,Cube 現在會旋轉 20 度
  • 將左側捏合事件連線到 Quit Game

使用右和左捏合事件的輸入動作開啟層級模糊

  1. 在 Cube 的 [轉換 ] 設定中,將 [行動性 ] 設定為 [可移動 ],以便動態移動:

反白顯示行動屬性的 Tranform 設定

此時,您已準備好部署及測試應用程式!