手勢指導

Example: Hand coach

當系統未偵測到使用者的手部時,手部指導會觸發 3D 模型化手部。 這項功能是「教學」元件,可協助在未教導手勢時引導使用者。 如果使用者尚未在一段時間內完成指定的手勢,則手部會以延遲迴圈。 手部指導可用來代表按下按鈕或挑選全像投影。

提供的手部指導

目前的互動模型代表各種不同的手勢控制項,例如捲動、遠距選取,以及接近點選。 以下是 MRTK中提供之現有手勢的完整清單:

Example of Near Select
接近選取的範例 - 用來示範如何選取按鈕或關閉可互動的物件

Example of Air Tap
Air Tap 的範例 - 用來示範如何選取離遠的物件

Example of Move
在空間中移動物件的範例-用來示範如何在空間中移動全像投影

Example of Rotate
示範如何旋轉全像投影或物件的範例Rotate-Used

Example of Scale
縮放範例 - 用來示範如何操作全像投影以放大或縮小

Example of Palm Up
手部向上的範例 – 建議的使用,以啟動手部功能表

Example of HandFlip
手部翻轉範例 – 另一種顯示手部功能表的方式

Example of Scroll
捲動範例 – 用於捲動清單或長檔

設計概念

針對 Hololens2,我們根據直覺和自然手勢設計出手部互動。 我們相信這些對大部分使用者都是直覺的,因此我們並未建立專用的手勢學習時間。 相反地,我們建立了手部指導,以協助使用者瞭解這些手勢,如果他們卡住或不熟悉全像投影互動。 在沒有學習時間的情況下,我們覺得示範使用者如何藉由示範動作是最佳選項。 我們發現使用者能夠找出手勢,但需要一些指引。 如果我們偵測到使用者未在一段時間內與物件互動,則會觸發手部指導來示範正確的手部和手指位置。

直觀

以動畫顯示手部時,應該很明顯且不應該造成任何混淆。 手部動畫是您嘗試提示使用者瞭解的手勢標記法。

例如,如果您希望使用者按下按鈕,則會觸發按下按鈕的手。

Example: Hand coach Near Tap
手部指導示範接近點選 Gem

手部縮放比例

我們已使用 UI 功能表測試各種手部大小,並覺得如果手部為真,則它給予了一個讓人感到不滿意的感受。 如果它們太小,很難看到並瞭解手勢。

音調和手部

請勿預期使用者可以透過語音接聽一組指示,並透過手部指導觀看不同的指示。 排序您的指示,以協助使用者專注于與競爭其注意力,以減少感應器多載。

我可以建立自己的嗎?

可以! 我們鼓勵您為遊戲建立自己的獨特手勢,並貢獻給社群! 我們已提供可用於您應用程式的 Maya 檔案,可以在這裡下載: 下載HandCoach_MRTK.zip

Example of Animated Hands in Maya
在 Maya 中繪製手部動畫的範例

建議的撰寫工具

在 3D 藝術師中,許多都選擇使用Autodesk 的 Maya,這可以使用HoloLens來轉換資產的建立方式。 提供的手部檔案是 Maya 二進位檔案,因此建議使用 Maya 來建立動畫效果並匯出手部。 如果您想要使用另一個 3D 程式,以下是 。FBX 下載HandCoachMRTK_FBX.zip 以建立您自己的控制器設定。

如果使用提供的可下載 maya Hand File,建議將 unity 中的手部相應減少為 0.6。

Example: Hand coach rig in Maya
硬式手部

技術規格

  • Maya Ascii 格式提供兩個手邊的檔案
  • 向右和左手提供 Maya 二進位格式
  • 將您的 Maya 檔案設定為 24 FPS
  • 在檔案中,有一個左右手,可用於兩個手部或單手手勢。 右側預設只會顯示。
  • 建議在開頭和結尾保留大約 10 個畫面格的緩衝區以淡出
  • 如果以指定的目標建立物件動畫,則最佳做法是將動畫顯示至預設方塊或 Null。
  • 如果手部以動畫顯示方塊之類的實體物件,最佳做法是不要在 Maya 中建立翻譯動畫,但等候在 Unity 或程式碼中製作動畫。
  • 可見動畫應該是 1.5 秒,才能傳達任何有意義的資訊
  • 當您對動畫感到滿意時:

從 Maya 匯出

滿意動畫之後

  • 選取所有聯合:選取 > 階層

    Example: Hierarchy in Menu

  • 製作動畫:切換至動畫 > 按鍵 > 製作動畫

    Example: Bake Animation Menu Location

  • 刪除控制器鑽研:大綱MainR_Grp > 或MainL_Grp

    Example: Controller Rig Menu Location

  • 匯出為 FBX:選取 JNT + Mesh:[檔案 > 匯出選取範圍 (] 選項方塊) > [匯出選取範圍]

    Example: Export selection Menu Location

    Example: Menu Location

    Example: Export Options Menu Location

匯出為 FBX 並帶入 Unity 時,請將手部向下調整為 0.6。 我們發現這很適合用來顯示手部。

Example: Unity Settings
在 MRTK 中找到HandCoach_R預製專案的 Unity 設定

在 Unity 專案中實作手部

最佳作法

  • 建議將 unity 中的手部相應減少為 0.6

  • 手部應該播放兩次,如果未完成,則會持續迴圈直到手勢完成為止。 雙手應該迴圈兩次,以確保使用者有時間註冊並查看手勢。 手部應該會在迴圈之間淡入和淡出。

  • 如果 HL2 相機可以看到使用者的手部,但使用者未執行所需的互動,則手部會在 10 秒後出現。

  • 如果 HL2 相機看不到使用者的手部,則手部會在 5 秒後出現。

  • 如果使用者的手部在動畫中間由 HL2 相機可見地追蹤,動畫將會完成並淡出。

  • 如果您包括語音,建議您將其對應到手部的手勢。

  • 如果您至少已教導手部一次,則只會在偵測到使用者停滯時重複手勢。

  • 如果特定手指/手部位置很重要,請確定使用者可以清楚地在動畫中看到這些細微差異。 請嘗試將手擷取,讓最重要的部分清楚可見。

  • 如果您注意到手部扭曲,您必須移至 Unity 的品質設定,以增加骨氣數目。 移至 Unity 的 [編輯 > ] Project 設定 > 品質 > 其他 > 混合權數。 請確定已選取 [4 個骨頭] 以查看 Smooth Joints。

    Example: Project Settings Window

避免事項

另請參閱