動作控制器是硬體 配件 ,讓使用者能在混合實境中執行行動。 動作控制器相較於 手勢 的優點是它們在空間中擁有精確的位置,允許與數位物件進行細緻且細緻的互動。 對於 Windows Mixed Reality 沉浸式頭戴裝置來說,動作控制器是使用者在世界中執行行動的主要方式。
圖片來源:一個 Windows Mixed Reality 動作控制器
裝置支援
| 功能 | (/前版本/混合現實/hololens-1/hololens1-hardware) HoloLens (第一代) | HoloLens 2 | 沉浸式頭戴裝置 |
| 動態控制器 | ❌ | ❌ | ✔️ |
硬體細節
Windows Mixed Reality 動作控制器透過沉浸式頭戴裝置的感測器,在視野中提供精準且靈敏的動作追蹤。 你不需要在空間的牆上安裝五金配件。 這些動作控制器提供與 Windows Mixed Reality 沉浸式頭戴裝置相同的簡便與攜帶性。 我們的裝置合作夥伴計劃在這個假期中行銷並販售這些控制器。
認識你的控制器
功能:
- 光學追蹤
- 觸發程序
- 抓取按鈕
- 搖桿
- 觸控板
安裝程式
開始之前
您必須︰
- 一組兩個動作控制器。
- 四顆AA電池。
- 一台支援藍牙 4.0 的電腦。
檢查 Windows、Unity 和驅動程式的更新
- 請造訪 安裝 Windows 、Unity 等首選版本的工具,以進行混合實境開發。
- 確保你擁有最新的 耳機和動作控制器驅動程式。
配對控制器
動作控制器可以用 Windows 設定與其他藍牙裝置綁定主機電腦。
- 在控制器背面插入兩顆 AA 電池。 暫時把電池蓋打開。
- 如果你使用的是外接 USB 藍牙轉接器而非內建藍牙無線電,請先檢視 藍牙的最佳實務 再進行。 若桌面配置內建無線電,請確保天線已連接。
- 開啟 Windows 設定 ->裝置 ->新增藍牙或其他裝置 ->藍牙 ,並移除之前出現的「動作控制器 – 右側」和「動態控制器 – 左側」。 也請檢查清單底部的其他裝置類別。
- 選擇 「新增藍牙或其他裝置 」,就會看到它開始偵測藍牙裝置。
- 要開啟控制器,按住控制器的 Windows 按鈕,當它震動時放開。
- 按住電池倉) (分頁的配對按鈕,直到 LED 開始閃爍。
- 等待「動作控制器 - 左側」或「動作控制器 - 右側」出現在列表底部。 選擇配對。 連接時手把會震動一次。
圖片:選擇「動態控制器」進行配對;如果有多個實例,請從清單底部選擇一個
- 你可以在藍牙設定的 「滑鼠、鍵盤、& 筆」類別 中看到控制器顯示 為已連接。 此時,你可能會獲得韌體更新——詳見 下一節。
- 重新裝上電池蓋。
- 第二個控制器重複步驟 1-9。
成功配對兩個控制器後,你的設定應該會是「滑鼠、鍵盤、& 筆」類別下的樣子
圖片:已連接動作控制器
如果配對後控制器關閉,狀態會顯示為配對中。 對於永久屬於「其他裝置」類別的控制器,配對可能僅部分完成。 在這種情況下,請再執行配對步驟,讓控制器正常運作。
更新控制器韌體
- 如果你的電腦連接著有新控制器韌體的沉浸式耳機,下次開機時韌體會自動推送到你的動作控制器。 LED象限以圓周運動的模式表示控制器韌體更新,需時1至2分鐘。
- 韌體更新完成後,控制器會重新啟動並重新連線。 兩個控制器現在應該都連接起來了。
圖片:控制器連接在藍牙設定中
- 確認你的控制器運作正常:
凝視與指點
Windows Mixed Reality 支援兩種主要的互動模型;凝視並承諾,指向並承諾:
- 透過 凝視與承諾,使用者用 目光鎖定物件,然後用手部空中點擊、手把、點擊器或語音選擇物件。
- 透過 指向與提交,使用者可以將具指向功能的動作控制器瞄準目標物件,然後用控制器的觸發器選取物件。
支援動作控制器指向的應用程式,也應盡可能啟用凝視驅動互動,讓使用者能選擇使用哪些輸入裝置。
指向時的後座力管理
使用動作控制器指向並提交時,使用者會用控制器來鎖定並透過扣動扳機來互動。 用力扣板機的使用者,可能會在扣機結束時將控制器指向比預期更高的位置。
為了控制使用者扣動扳機時可能產生的後座力,當扳機類比軸值升高於0.0時,應用程式可以觸發鎖定射線。 當觸發值達到 1.0 時,你可以在幾幀後使用該目標射線執行動作,只要最後按下發生在短時間內。 使用較高層級 的複合 Tap 手勢時,Windows 會自動管理這個目標射線捕捉與逾時。
握法姿勢與指向式
Windows Mixed Reality 支援不同形態的動作控制器。 每個控制器的設計在使用者手部位置與應用程式在渲染控制器時應使用的「前方」指向之間的關係上有所不同。
為了更好地呈現這些控制器,你可以針對每個互動源研究兩種姿勢;握 法 和 指示器式。
握法姿勢
握把姿勢代表被全息鏡頭偵測到的手掌位置,或是握著動作控制器的手掌位置。
在沉浸式頭戴裝置上,握握姿勢最適合用來呈現 使用者的手 或手 中持有的物品,如劍或槍。 握法姿勢也用於視覺化動作控制器,因為 Windows 提供的 可渲染模型 以握法姿勢作為其旋轉起點與中心。
握法的定義具體如下:
- 握法位置:自然握持控制器時,掌心會向左或向右調整,使握把位置居中。 在 Windows Mixed Reality 的動作控制器中,這個位置通常對齊於抓握按鈕。
- 握法方向的右軸:當你完全打開手掌,形成平坦的五指姿勢時,左手掌向前的光線從左手掌向前 (,從右手掌向後)
- 握把方向的前軸:當你握手部分 (,像是握住控制器) 時,指向「前方」的光線會穿過你非拇指手指形成的管子。
- 握把方向的上軸:右軸與前軸定義所暗示的上軸。
指標姿勢
指標姿勢代表控制器尖端朝前。
系統提供的指標姿勢最適合用來渲染 控制器模型本身時進行射線投射。 如果你用其他虛擬物件來取代控制器,例如虛擬槍械,你應該用最自然的光線指向該虛擬物件,例如沿著應用程式定義槍械模型槍管移動的光線。 因為使用者可以看到虛擬物件而非實體控制器,使用虛擬物件的使用者會更自然地指向虛擬物件。
控制器追蹤狀態
和頭戴裝置一樣,Windows Mixed Reality 動作控制器不需要設置外部追蹤感應器。 感測器則是追蹤頭戴裝置內的控制器。
如果使用者將控制器移出頭戴裝置的視野範圍,大多數情況下 Windows 仍會推斷控制器位置並提供給應用程式。 當控制器長時間失去視覺追蹤時,控制器的位置會降至近似準確度。
此時,系統會將控制器鎖定在使用者身上,追蹤使用者移動時的位置,同時透過內部方向感測器顯示控制器的真實方向。 許多使用控制器指向並啟動 UI 元素的應用程式,能正常運作,且準確度接近使用者察覺。
關於明確追蹤狀態的推理
希望根據追蹤狀態不同處理位置的應用程式,可能會進一步檢查控制器狀態上的屬性,例如 SourceLossRisk 和 PositionAccuracy:
| 追蹤狀態 | 來源LossRisk | 位置精度 | 嘗試獲取位置 |
|---|---|---|---|
| 高精度 | < 1.0 | 高 | 沒錯 |
| 高精度 (有失去) 的風險 | == 1.0 | 高 | 沒錯 |
| 近似準確度 | == 1.0 | 近似 | 沒錯 |
| 沒有立場 | == 1.0 | 近似 | 錯誤 |
這些動作控制器追蹤狀態定義如下:
- 高精度: 雖然動作控制器位於頭戴裝置的視野範圍內,但通常會根據視覺追蹤提供高精度位置。 例如,一個移動的控制器暫時離開視野,或被使用者另一隻手暫時遮蔽於頭戴裝置感應器 () 會根據控制器本身的慣性追蹤,短暫地返回高精度姿勢。
- 高精度 (有失去) 的風險: 當使用者將動作控制器移過頭戴裝置視野邊緣時,頭戴裝置無法視覺追蹤控制器的位置。 應用程式會透過看到 SourceLossRisk 達到 1.0 來判斷控制器何時達到這個視野範圍。 此時,應用程式可能會選擇暫停需要持續高品質姿勢的手把手勢。
- 近似準確度: 當控制器長時間失去視覺追蹤時,控制器的位置會降至近似準確度。 此時,系統會將控制器鎖定在使用者身上,追蹤使用者移動時的位置,同時透過內部方向感測器顯示控制器的真實方向。 許多使用控制器指向並啟動 UI 元素的應用程式,可以正常運作,且準確度大致相當,使用者不會察覺。 輸入需求較高的應用程式可透過檢查 PositionAccuracy 屬性來感知從高準確率降至近似準確度,例如在此期間給予使用者更寬鬆的螢幕外目標碰撞箱。
- 無立場: 雖然控制器可以長時間以大致準確度運作,但有時系統會知道即使是身體鎖定的位置,當下也沒有意義。 例如,一個已開啟的控制器可能無法被視覺觀察,或使用者放下控制器後被他人撿起。 在這些時候,系統不會向應用程式提供任何位置, TryGetPosition 也不會回傳 false。
互動:低階空間輸入
手部與動作控制器的核心互動包括 選擇、 選單、 握持、 觸控板、搖 桿和 主頁。
- 選擇 是啟動全息影像的主要操作方式,包含按下後放開。 動作控制器是用控制器的扳機按下 Select 鍵。 其他執行 Select 的方法包括說出 語音指令 「Select」。 相同的選擇互動可以在任何應用程式中使用。 把 Select 想像成滑鼠點擊;這是一個通用的動作,你學會一次,然後應用到所有應用程式中。
- 選單 是次要的互動,用於對物件進行操作,用來調出右鍵選單或執行其他次要操作。 使用動態控制器時,你可以用控制器的 選單 按鈕來執行選單操作。 (,就是那個帶有漢堡「選單」圖示的按鈕)
- 抓握 是指使用者能直接對手中的物體採取行動並加以操控。 使用動作控制器時,你可以用力握拳來做抓握動作。 動作控制器可能透過抓取按鈕、掌心扳機或其他感應器偵測 Grasp。
- 觸控板 允許使用者在動作控制器觸控板表面的二維動作中調整,並透過點擊觸控板向下執行動作。 觸控板提供按下狀態、觸控狀態,以及正規化的 XY 座標。 X 和 Y 在圓形觸控板的範圍內範圍從 -1 到 1,中心在 (0、0) 。 對於 X,左邊是 -1,右邊是 1。 對於 Y,-1 在底部,1 在頂部。
- 拇指搖桿允許使用者透過在動作控制器的圓形範圍內移動搖桿,並點擊搖桿下鍵來執行動作,從而在二維空間中調整動作。 搖桿也提供按壓狀態及正規化的 XY 座標。 X 和 Y 在圓形觸控板的範圍內範圍從 -1 到 1,中心在 (0、0) 。 對於 X,左邊是 -1,右邊是 1。 對於 Y,-1 在底部,1 在頂部。
- Home 是一個特殊的系統動作,用來回到 開始 選單。 這有點像按下鍵盤上的 Windows 鍵或 Xbox 手把上的 Xbox 按鈕。 你可以按下動作控制器上的 Windows 按鈕回到家。 注意,你隨時可以回去開始,說「嘿,Cortana,回家吧」。 應用程式無法針對 Home 動作做出特定反應,因為這些都是系統處理的。
複合手勢:高階空間輸入
手 勢 與動作控制器都能隨時間追蹤,以偵測一組共同的高階 複合手勢。 這讓你的應用程式能偵測高階 的點擊、 長按、 操作和 導航 手勢,無論使用者是使用手還是控制器。
渲染動作控制器模型
3D 控制器模型 Windows 會讓應用程式能呈現系統中目前運作中的每個動作控制器的可渲染模型。 透過讓應用程式在執行時動態載入並表達這些系統提供的控制器模型,你可以確保應用程式能向前相容於未來任何控制器設計。
我們建議將所有可渲染模型渲染為控制器的 握把姿勢 ,因為模型的原點與物理世界中的這個點對齊。 如果你在渲染控制器模型,你可能會想從 指標姿勢(指點姿態)射線投射到場景中,該姿勢代表使用者根據控制器物理設計自然預期指向的光線。
想了解更多如何在 Unity 中動態載入控制器模型的資訊,請參考 「在 Unity 中渲染動作控制器模型 」章節。
2D 控制器線條藝術 雖然我們建議將應用程式內控制器的技巧和指令附加到控制器模型上,但有些開發者可能會想在平面的「教學」或「操作」介面中使用動態控制器的 2D 線條藝術呈現。 對於這些開發者,我們提供了 .png 動態控制器線條藝術檔案,分別以黑白版本提供, (右鍵點擊儲存) 。
常見問題集
我可以將動作控制器配對到多台電腦嗎?
動態控制器支援與單一電腦配對。 按照 動作控制器設定 說明來配對控制器。
如何?更新動作控制器韌體?
動作控制器韌體是頭戴裝置驅動程式的一部分,必要時會自動更新。 韌體更新通常需要 1-2 分鐘,視藍牙無線電和連線品質而定。 在少數情況下,控制器韌體更新可能需要長達 10 分鐘,這可能表示藍牙連線不良或無線電干擾。 要排查連線問題,請參閱 發燒友指南中的藍牙最佳實務。 韌體更新後,控制器會重新啟動並重新連接到主機電腦, (你可能會注意到 LED 燈會變亮以追蹤) 。 如果韌體更新中斷 (例如控制器斷電) ,下次開機時會再嘗試。
我該怎麼檢查電池電量?
在 Windows Mixed Reality 家庭中,你可以翻轉控制器,查看虛擬模型背面的電池電量。 沒有實體電池電量指示器。
這些控制器可以在沒有耳機的情況下使用嗎? 只是為了搖桿/扳機等輸入嗎?
但通用 Windows 應用程式則不然。
疑難排解
請參考《Enthusiast Guide》中的 動作控制器故障排除 。
提交動作控制器的回饋/錯誤
請在 Feedback Hub 使用「Mixed Reality -> Input」類別給我們回饋。