MRTK 教學

Author: Kelvin Huang

MRTK 是由 Microsoft 推出的的 Mixed Reality Toolkit 混合實境開發工具組,搭配 Unity 遊戲引擎製作 Hololens 1 / Hololens 2 混合實境裝置、 WMR 頭戴式顯示器與 OpenVR 平台的應用程式,此外也支援 Android 與 iOS (AR Foundation) 應用程式開發。而在從 MRTK 2.5 版本開始支援開發 Oculus Quest 虛擬實境遊戲。

Mixed Reality 混合實境中文網頁 [ 微軟官網 ]

Interactable object 可互動的物件 [ 微軟官網 ]

發佈到 Oculus Quest 頭戴式顯示器 [ SideQuest 教學 ]

開箱文 [ Microsoft Hololens | Oculus Quest 2 | Acer MR ]

 

首先前往 MRTK 開發者網站 下載相關資源:

Microsoft.MixedRealityToolkit.Unity.Foundation ( 必要安裝 )

Microsoft.MixedRealityToolkit.Unity.Extensions ( 建議安裝 )

Microsoft.MixedRealityToolkit.Unity.Examples ( 建議安裝 )

Microsoft.MixedRealityToolkit.Unity.TestUtilities ( 選擇安裝 )

Microsoft.MixedRealityToolkit.Unity.Tools ( 建議安裝 )

MRTK 的模組化設計可以將需要的工具匯入專案,可節省硬碟空間且易於管理專案。

本教學使用 Unity 2019.4 搭配 MRTK 2.5.3 版本,請參考本站的 [ MRTK 相容性測試 ] 。

 

建立混合實境遊戲專案

建立新的 3D 專案,將 Microsoft.MixedReality.Toolkit.Unity.Foundation 資源包匯入專案。

匯入後將出現 MRTK Project Configurator 視窗,按下 Apply 套用 MRTK 建議的設定。

 

除了必要安裝的 Microsoft.MixedRealityToolkit.Unity.Foundation 本教學將使用 MRTK 範例,請匯入以下的資源包:

Microsoft.MixedReality.Toolkit.Unity.Extensions / Microsoft.MixedReality.Toolkit.Unity.Examples

Microsoft.MixedRealityToolkit.Unity.Tools 提供可立即使用的 UI 元件,建議可匯入專案。

 

建立新場景,執行 [ Mixed Reality Toolkit > Add to Secne and Configure ] 加入需要的物件。

此時,場景上原本的 Main Camera 攝影機將成為 MixedRealityPlayspace 物件下的子物件。

注意!使用部份資源提供的場景時,有時會找不到攝影機而出現錯誤訊息,可能是攝影機沒有 Main Camera 標籤的關係,先刪除場景原本的攝影機後,再次執行 Add to Secne and Configure 解決問題。

完成以上操作後,按下 Play 測試 MRTK 是否正確執行。

遊戲畫面下方將會出現 Diagnostics 系統資訊,若不需顯示請選取場景中的 MixedRealityToolkit 物件,透過屬性編輯器可看到使用 DefaultMixedRealityToolkitConfigurationProfile 設定檔。選擇左側 Diagnostics 後將顯示 Enable Diagnostics System 是啟用的狀態,此設定檔是唯讀的無法將 Diagnostics 關閉,但可建立自訂的設定檔,自行設定開啟或關閉 Diagnostics 功能。

按下 Copy & Customize 按鈕開啟 Clone Profile 對話框,維待 Cloning profile 複製的原始檔

自訂的設定檔會放在 CustomProfiles 資料夾,修改可在 Target Folder 目標資料夾設定。

接著在 Profile Name 修改為容易辨視的設定檔名稱,然後按下 Clone 按鈕。

再次選擇左側 Diagnostics 後取消 Enable Diagnostics System 即可將它關閉。

稍後安裝 MRTK-Quest 資源包後,可選取適用於 Oculus Quest 的設定檔。

 

安裝 MRTK-Quest 資源

為了讓 MRTK 快速開發 Oculus Quest 遊戲,可從 GitHub 下載 MRTK-Quest 資源包。

只需要下載 MRTK-Quest_v120_Core 與 MRTK-Quest_v120_Examples 資源包。

匯入下載的 MRTK-Quest 資源包。

匯入後出現的對話框按下 Yes 按鈕來更新 OVRPlugin 插件,此時會出現重新啟動 Unity 提示,先按下 Restart 按鈕。

按下 Yes 按鈕來更新 Spatializer Plugins 插件,再次出現重新啟動提示,按下 Restart 按鈕將會重新啟動 Unity 編輯器。

 

MRTK 範例場景

開啟 [ MRTK > Examples > Demos > HandTracking > Scenes ] 資料夾 HandInteractionExamples 範例場景。

若出現提示匯入 TMP Essentials 資源,按下 Import TMP essentials 匯入,而 TMP Examples & Extras 可選擇性匯入。

TMP Essentials 是指 Text Mesh Pro 插件,特定的 MRTK 範例使用此元件呈現文字外觀。

重新開啟 HandInteractionExamples 場景,按下 Play 即可開始模擬操作。

 

MRTK 範例場景

MRTK 提供大量範例場景,本教學主要使用 MRTK 製作 Oculus Quest 遊戲,暫不討論 Hololens 相關功能。

開啟 [ MRTK > Examples > Demos > HandTracking > Scenes ] 資料夾的 HandInteractionExamples 範例場景。

 

遊戲發佈到 Hololens 或 Oculus Quest 進行實機測試,需要比 PC 遊戲更多時間,建議使用 MRTK 模擬操作避免浪費時間。

模擬空間移動

按住滑鼠右鍵旋轉相機。模擬頭部轉動。

使用鍵盤 WASD 鍵控制前後左右移動。

使用鍵盤 Q / E 上下移動相機。

 

模擬手輸入

按住空白鍵不放可開啟右手模擬。

按住空格鍵時移動滑鼠模擬手的移動。

使用滑鼠中鍵滾輪模擬手的前後移動。

點選滑鼠左鍵模擬手捏取與移動物件。

使用鍵盤 T/Y 鍵可將手保持在畫面中。

按住 CTRL 鍵移動滑鼠可以旋轉手部。

 

認識 MRTK 視覺提示

視覺提示 ( Visual cues ) 可以透過光的形式提供視覺處理的提示,由於全息影像 ( Holographic ) 是在混合實境與真實環境融合,玩家或許對於可互動的物件較難理解,因此對於輸入狀態提供對應的視覺提示非常重要,可幫助玩家瞭解那些部分是可互動的。

 

近距互動 ( Ner interactions / Direct )

目前 HoloLens 與 Oculus Quest 皆可支援手部追蹤的功能,讓玩家與物件進行互動,但缺少觸覺反饋與深度感知的話,玩家可能難以判斷手與物體的距離,MRTK 可提供視覺提示來傳達手與物件的狀態:

. Default: 預設的物件閒置狀態。

. Hover: 當手接近物件時以視覺效果來傳達已瞄準該物件。

. Distance and point of interaction: 傳達手指與物件的距離。

. Contact begins: (light, color) 當手碰觸物件改變視覺效果。

. Grasped: (light, color) 當握住物件時改變視覺效果。

. Contact ends: (light, color) 碰觸結束改變視覺效果。

 

碰觸物件的互動

物件被碰觸時可以發出聲音或改變顏色。製作可參考範例場景的 Platonic 物件。

建立一個物件(例如球體),套用 Audio Source 元件。

套用 HandInteractionTouch 元件,然後在 On Touch Started 按 + 按鈕新增事件。

現在此物件的物件欄位應該是顯示 None (Object) ,將物件拖曳到此欄位。

右側的下拉式選單選擇 AudioSource > PlayOneShot (Audioclip) 再選擇 MRTK_Gem 音效。

套用 NearInteractionTouchable 元件,修改設定值 Bounds = 1, 1 其餘維持預設值。

按下 Play 測試遊戲,測試碰觸物件時發出聲音的功能。

 

製作碰觸物件時改變顏色,開啟 [ MRTK > StandardAssets > Materials ] 資料夾檢視 MRTK 內附的材質。

為物件套用 MRTK_Standard_GlowingCyan 材質

設定 Main Maps > Albedo 顏色

設定 Fluent Options > Color 顏色

按下 Play 測試遊戲,碰觸物件時將會改變顏色。

 

 

MRTK 互動功能製作

Grid Object Collection - 使用腳本控制物件集合

BoundsControl - 使用腳本製作基本的互動物件

ObjectManipulator - 製作物件的進階互動功能

Pressable Button - 使用預製物件快速製作按鈕

MRTK Toolbox - 使用 Toolbox 的 UI 互動工具

Oculus Quest Controller - 控制器輸入震動設定

DockPosition - 控制移動物件吸附到特定位置

Standard Materials / Material Gallery - 內附材質

System Keyboard - MRTK 虛擬鍵盤(官網連結)

 

Clipping Examples

Hover Light Examples

相關連結 MRTK + TriLib2 相容性測試

Copyright © 2024 CG Digital Corp. All rights reserved.