本文我們將通過Unity創建一個Hololens應用。這個項目將可以作爲一個Hololens應用的初始模板供你以後開發時使用。
目錄
Chapter0 - 預先準備
- 一個正確配置Hololens 開發環境的 Win10 PC機。
Chapter1 - 新建一個項目
爲了使用Unity開發一個應用,你首先需要創建一個新的項目(Project),項目由若干個文件夾(Folder)構成,其中最重要的是 Assets 文件夾。這個文件夾包含了所有你準備的所有資源:
- 你從數字內容創作軟件,如 Maya、C4D、Photoshop 中引入的素材
- 你使用例如 Visual Studio 等編輯器編寫的代碼
- 你使用 Unity 創建的 Unity 組件等
爲了創建一個UWP(Universal Windows Platform 即 Windows通用應用平臺),Unity 可以將項目導出爲一個 Visual Studio 的解決方案,其包含了所有必須的資源和代碼。
- 打開 Unity
- 選擇 New,新建一個項目
- 輸入項目名字(例如:MixedRealityIntroduction)
- 輸入一個位置保存項目
- 保證 3D 選項被選中
- 選擇 Create project ,創建項目。
新建項目
Chapter2 - 對Camera進行設置
Unity 中的 Main Camera 它可以處理頭部跟蹤(head tracking)和立體再現(stereoscopic rendering)。這裏需要完成下面的步驟使其符合我們開發的要求:
- 選擇 File > New Scene
首先,可以想象,如果我們把用戶的起始位置定在 (X:0, Y:0, Z:0) 將更容易部署我們的應用。由於 Main Camera 追蹤用戶的頭部運動,用戶的起始位置可以設定爲 Main Camera 的起始位置。
- 在 Hierarchy 面板中選中 Main Camera
- 在 Inspector 面板中找到 Transform 組件,修改其 Position 的數值,從 (X:0, Y:1, Z:-10) 修改爲 (X:0, Y:0, Z:0)。
其次,默認的攝像頭背景需要做一些修改。
對於 Hololens 應用來說,真實世界應該出現在攝像頭渲染呈現的影像背後,而不是一個天空盒素材(Skybox texture)背後。
- 繼續選中 Main Camera,在 Inspector 面板中找到 Camera 組件,把其 Clear Flags 屬性從 Skybox 修改爲 Solid Color。
- 接着選中其 Background 屬性,修改其 RGBA 值爲 (0, 0, 0, 0),即黑色。
再者,我們需要考慮一下 Unity 中的近裁剪面(near clip plane),避免物體被渲染的離用戶的眼睛太近。
對於 Hololens 應用來說,近裁剪面的值可以根據Hololens 推薦的值設置爲 0.85 米。
- 繼續選中 Main Camera,在 Camera 組件中找到 Clipping Planes,把其 Near 值從默認的 0.3 修改爲 0.85 。
Main Camera設置
最後,讓我們保存一下目前的進度。保存我們當前的場景(Scene),選擇 File > Save Scene As,命名爲 MainScene,然後 Save。
Chapter3 - 修改項目設置(Project Settings)
在這個章節中,我們將修改一些項目設置以幫助我們使用 Windows Holographic SDK 進行開發。我們也將修改一些質量設置。最終,我們會確保我們的項目導出爲 Windows應用商店應用。
Unity性能(Performance)和質量(quality)設置
對HoloLens應用來說,保持高的幀率是非常重要的,我們要把性能質量設置調整爲 Fastest 。想要查看更多的關於性能的信息,查詢這裏。
- 選擇 Edit > Project Settings > Quality
- 選擇 Windows Store LOGO 下的 Default 黑色箭頭,選擇 Fastest。正確選擇後,會變成綠色。
Unity質量設置 for Hololens
指定 Windows 10 SDK
我們需要讓Unity知道我們的應用是在全息視圖下的,而不是2D視圖。爲此我們要激活 Virtual Reality Support 並指定 Windows 10 SDK。
- 選擇 Edit > Project Settings > Player
- 在 Inspector 面板中選擇 Windows Store 選項卡
- 展開 Other Settings
- 在 Rendering 部分中,勾選 Virtual Reality Supported 複選框,添加一個新的 Virtual Reality SDKs,確認我們的 Windows Holographic 在其中。
指定 Windows Holographic SDK
Chapter4 - 創建一個立方體
在Unity項目中創建一個立方體跟創建其他物體沒有任何區別。在用戶面前放一個立方體非常簡單,因爲 Unity 中的座標是跟真實世界匹配的,Unity中的1米差不多也是真實世界中的1米。
- 在 Hierarchy 面板中右鍵,選擇 Create 然後接着選擇 3D Object > Cube。
- 選中剛纔新建的 Cube。
- 找到 Cube 的 Transform 組件,修改其 Position 的值爲 (X: 0, Y: 0, Z: 2)。這個位置是距用戶的開始點 2 米的位置。
- 接着修改 Rotation 值爲 (X: 45, Y: 45, Z: 45),Scale 值爲(X: 0.25, Y: 0.25, Z: 0.25)。這個立方體的長寬高都爲0.25米。
- 保存場景, File > Save Scene。
Chapter5 - 在設備上確認一下吧!
現在,我們是時候在設備上查看一下效果了。我們可以直接在 Unity Editor 中完成這個過程。
遠程模式:使用Hololens進行遠程遙控(Remote)
- 在 Hololens 上,安裝並運行 Holographic Remoting Player,可以從 Windows Store 下載。運行它,設備會進入一個等待狀態,並且顯示一個設備的 IP 地址。記錄 IP 地址。
- 回到我們的PC上,在Unity中,選擇 Window > Holographic Emulation。(譯者提示:如果你的 Holographic Emulation 打開後提示你“You must enable Virtual Reality support……”,且你前面的步驟確認已經完成,此時,打開 File > Build Setting,選擇 Windows Store ,單擊 Switch Platform 即可解決問題)
- 將 Emulation Mode 從 None 修改爲 Remote to Device。進入遠程模式。
- 在 Remote Machine 一欄中,填入一開始記錄的 IP 地址。
- 點擊 Connect
- 確保 Connection Status 變爲綠色的 Connected
- 現在可以在 Unity Editor 中單擊正上方的 Play 按鈕。
譯者注:您可以暫停、檢查對象和調試,就像在編輯中運行普通應用一樣,區別之處在於視頻、音頻和設備的輸入是通過網絡在主機和遠程設備之間進行傳輸的。遠程模式對於驗證性能來說並不奏效(因爲所有繁重工作都是由PC主機處理的),但它可用於在開發過程中進行快速迭代。
遠程模式
模擬模式:Simulate in Editor
(譯者添加)
- 將 Emulation Mode 修改爲 Simulate in Editor
- 按下 Play 按鈕即可
您的應用將由編輯器內置的模擬器開始運行,不需要頭戴設備。您可以選擇5個虛擬房間(與XDE HoloLens Emulator 提供的相同)並指定執行手勢的虛擬手掌(左或右)。
模擬模式
在模擬模式下,您將使用遊戲控制器來控制虛擬人物。
模擬模式中的控制方法
請注意,使用遊戲控制器需要將焦點放在遊戲窗口。使用UI做其它操作後只需點擊一下游戲視圖窗口就會對焦。
已知限制
- 目前遠程全息模式並不支持語音(PhraseRecognizer語音識別),而是獲取編輯器所在主機的語音。
- 在全息模擬模式下可以執行圖像捕捉,但因爲圖像捕捉會使用本地相機(例如網絡攝像頭),您將無法使用TryGetProjectionMatrix或者TryGetCameraToWorldMatrix來獲得矩陣。
- 在遠程模式下,主機PC端所有的音頻將重定向到設備上(而不僅是來自應用的)。
Chapter6 - build項目並且部署到設備
現在我們可以導出我們的項目到 Visual Studio 並部署到我們的目標設備。
導出 Visual Studio 解決方案
- 打開 File > Build Setttings 窗口。
- 單擊 Add Open Scenes ,添加場景。
- 把 運行平臺 即 Platform 修改爲 Windows Store 並且單擊 Switch Platform。
- 在 Windows Store 的設置中,確保 SDK 選擇的是 Universal 10。
- Target Device,可以是 Any Device 或選擇 Hololens。
- UWP Build Type 要選 D3D。
- UWP SDK 可以選 Latest installed。(譯者注:最好與你裝VS2015時安裝的那個版本一致,否則VS會提示項目需要更新)
- 選中 Unity C# Projects。
- 點擊 Build。
- 在打開的資源管理器中,新建一個文件夾,命名爲 APP 。
- 選中 APP 文件夾,單擊 Slect Folder 按鈕。
- 當Unity 完成 Building 的時候,會自動打開一個資源管理器。
- 打開 APP 文件夾。
- 打開生成的 Visual Studio Solution(在此例中,是 MixedRealityIntroduction.sln)
編譯 Visual Studio 解決方案
最後,我們可以編譯這個導出的VS解決方案了。
- 在VS工具欄中,把 target 從 Debug 改爲 Release,從 ARM 改爲 x86。
接下來的設置將根據你的選擇有些不同:
通過 Wi-Fi 部署到 Hololens 設備
- 單擊 本地計算機(Local Machine) 旁邊的小箭頭,將部署目標變爲 遠程計算機(Remote Machine)。
- 輸入設備的 IP 地址,將身份驗證模式(Authentication Mode) 改爲 通用(未加密協議)Universal(Unencrypted Protocol)。
- 點擊 調試(Debug) > 開始執行不調試(Debug without debugging)
通過 USB 部署到 Hololens 設備
- 單擊 本地計算機(Local Machine) 旁邊的小箭頭,將部署目標變爲 Device。
- 點擊 調試(Debug) > 開始執行不調試(Debug without debugging)
部署到模擬器
- 單擊 本地計算機(Local Machine) 旁邊的小箭頭,將部署目標變爲 Hololens Emulator。
- 點擊 調試(Debug) > 開始執行不調試(Debug without debugging)
試試你的應用程序吧!
現在你的應用程序已經部署了。試試到處走走觀察一下呈現在你眼前世界裏的這個立方體。