手勢指導
當系統未偵測到使用者的手部時,手部指導會觸發 3D 模型化手部。 這項功能是「教學」元件,可協助在未教導手勢時引導使用者。 如果使用者尚未在一段時間內完成指定的手勢,則手部會以延遲迴圈。 手部指導可用來代表按下按鈕或挑選全像投影。
提供的手部指導
目前的互動模型代表各種不同的手勢控制項,例如捲動、遠距選取,以及接近點選。 以下是 MRTK中提供之現有手勢的完整清單:
接近選取的範例 - 用來示範如何選取按鈕或關閉可互動的物件
Air Tap 的範例 - 用來示範如何選取離遠的物件
在空間中移動物件的範例-用來示範如何在空間中移動全像投影
示範如何旋轉全像投影或物件的範例Rotate-Used
縮放範例 - 用來示範如何操作全像投影以放大或縮小
手部向上的範例 – 建議的使用,以啟動手部功能表
手部翻轉範例 – 另一種顯示手部功能表的方式
捲動範例 – 用於捲動清單或長檔
設計概念
針對 Hololens2,我們根據直覺和自然手勢設計出手部互動。 我們相信這些對大部分使用者都是直覺的,因此我們並未建立專用的手勢學習時間。 相反地,我們建立了手部指導,以協助使用者瞭解這些手勢,如果他們卡住或不熟悉全像投影互動。 在沒有學習時間的情況下,我們覺得示範使用者如何藉由示範動作是最佳選項。 我們發現使用者能夠找出手勢,但需要一些指引。 如果我們偵測到使用者未在一段時間內與物件互動,則會觸發手部指導來示範正確的手部和手指位置。
直觀
以動畫顯示手部時,應該很明顯且不應該造成任何混淆。 手部動畫是您嘗試提示使用者瞭解的手勢標記法。
例如,如果您希望使用者按下按鈕,則會觸發按下按鈕的手。
手部指導示範接近點選 Gem
手部縮放比例
我們已使用 UI 功能表測試各種手部大小,並覺得如果手部為真,則它給予了一個讓人感到不滿意的感受。 如果它們太小,很難看到並瞭解手勢。
音調和手部
請勿預期使用者可以透過語音來聆聽一組指示,並透過手部指導watch不同的指示。 排序您的指示,以協助使用者專注于與競爭其注意力,以減少感應器多載。
我可以建立自己的嗎?
可以! 我們鼓勵您為遊戲建立自己的獨特手勢,並貢獻給社群! 我們已提供可用於您應用程式的 Maya 檔案,可以在這裡下載: 下載HandCoach_MRTK.zip
在 Maya 中繪製手部動畫的範例
建議的撰寫工具
在 3D 藝術師中,許多都選擇使用 Autodesk 的 Maya,這可以使用 HoloLens 來轉換資產的建立方式。 提供的手部檔案是 Maya 二進位檔案,因此建議使用 Maya 來建立動畫效果並匯出手部。 如果您想要使用另一個 3D 程式,以下是 。FBX: 下載HandCoachMRTK_FBX.zip 以建立您自己的控制器設定。
如果使用提供的可下載 maya Hand File,建議將 unity 中的手部相應減少為 0.6。
硬式手部
技術規格
- Maya Ascii 格式提供兩個手邊的檔案
- 向右和左手提供 Maya 二進位格式
- 將您的 Maya 檔案設定為 24 FPS
- 在檔案中,有一個左右手,可用於兩個手部或單手手勢。 右側預設只會顯示。
- 建議在開頭和結尾保留大約 10 個畫面格的緩衝區以淡出
- 如果以指定的目標建立物件動畫,則最佳做法是將動畫顯示至預設方塊或 Null。
- 如果手部以動畫顯示方塊之類的實體物件,最佳做法是不要在 Maya 中建立翻譯動畫,但等候在 Unity 或程式碼中製作動畫。
- 可見動畫應該是 1.5 秒,才能傳達任何有意義的資訊
- 當您對動畫感到滿意時:
- 選取所有聯合並製作主要畫面格
- 刪除控制器,選取接合和網格,然後匯出為 FBX
- 如果有多個動畫,您可以使用 Maya 的內建遊戲匯出工具: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/Game-Exporter-htm.html
從 Maya 匯出
滿意動畫之後
選取所有聯合:選取 > 階層
製作動畫:切換至動畫 > 按鍵 > 製作動畫
刪除控制器鑽研:大綱MainR_Grp > 或MainL_Grp
匯出為 FBX:選取 [JNT + Mesh:檔案 > 匯出選取範圍 (選項] 方塊) > [匯出選取範圍]
匯出為 FBX 並帶入 Unity 時,請將手部向下調整為 0.6。 我們發現這很適合用來顯示手部。
在 MRTK 中找到HandCoach_R預製專案的 Unity 設定
在 Unity 專案中實作手部
最佳做法
建議將 unity 中的手部相應減少為 0.6
手部應該播放兩次,如果未完成,則會持續迴圈直到手勢完成為止。 雙手應該迴圈兩次,以確保使用者有時間註冊並查看手勢。 手部應該會在迴圈之間淡入和淡出。
如果 HL2 相機可以看到使用者的手部,但使用者未執行所需的互動,則手部會在 10 秒後出現。
如果 HL2 相機看不到使用者的手部,則手部會在 5 秒後出現。
如果使用者的手部在動畫中間由 HL2 相機可見地追蹤,動畫將會完成並淡出。
如果您包括語音,建議您將其對應到手部的手勢。
如果您已至少教導手一次,則只會在偵測到使用者停滯時重複手勢。
如果特定手指/手部位置很重要,請確定使用者可以清楚地在動畫中看到這些細微差異。 請嘗試將手部擷取,讓最重要的部分清楚可見。
如果您注意到手部扭曲,您必須移至 Unity 的品質設定,以增加骨頭數目。 移至 Unity 的 [編輯 > 專案設定 > 品質 > ] [其他 > 混合權數]。 請確定已選取「4 個骨」以查看 Smooth Joints。
避免事項
- 調整手部太大
- 將手部太接近使用者
- 手部應該只教一次。 過度教學可能會導致混淆和混亂
- 將其帶入 Unity,請在這裡下載最新的 MRTK: https://github.com/microsoft/MixedRealityToolkit-Unity
- 材質:Teaching_Hand2
- 腳本:請參閱MRTK 手部指導的 MRTK指導方針
- 每個專案設定
- 場景設定為 UWP:您可以使用 MRTK 設定新的 OpenXR 專案 一文中找到指示。