簡體   English   中英

如何模仿Windows Mixed Reality控制器[MRTK2]的HoloLens 2手跟蹤?

[英]How to mimic HoloLens 2 hand tracking wIth Windows Mixed Reality controllers [MRTK2]?

HoloLens 2將具有手部跟蹤功能,並能夠伸出並戳出 UI元素。 使用Unity和Mixed Reality Toolkit V2,手動跟蹤的近距離交互(即戳戳)的輸入來自PokePointer類,並為具有BaseNearInteractionTouchable組件的GameObjects生成事件。

我的問題是如何從虛擬現實控制器(例如Windows Mixed Reality控制器)中獲取相同的PokePointer事件? 這樣就可以使用VR頭戴式耳機在桌面上進行原型制作,甚至可以直接在VR應用程序中使用Mixed Reality Toolkit的幾乎相同的交互方式。

可以將PokePointer組件附加到作為控制器模型的手動GameObject上嗎? 還是有更好的方法通過MRTK配置文件系統來做到這一點?

實際上,可以向VR設備添加戳指針和抓取指針。 實際上,無需編寫任何代碼就可以完成不可視化的基本功能!

獲取現有的抓取指針並與VR配合使用

  1. 通過在場景視圖中選擇MixedRealityToolkit對象,打開當前的指針配置配置文件,轉到檢查器窗口,然后導航到“輸入”->“指針”。
  2. 在指針選項下,為PokePointer和Grab Pointer設置控制器類型以包括您的VR控制器類型(在我的情況下是Windows Mixed Reality,盡管您可能希望使用OpenVR) 指針選項

  3. 戳指針被配置為遵循食指姿勢,而VR則不存在。 因此,您需要打開PokePointer.prefab文件,然后在檢查器中的“ Poke PokePointer.prefab > Pose Action”下,將值設置為“ Pointer Pose”。

在此處輸入圖片說明

  1. 打游戲。 抓取指針將稍稍位於運動控制器Gizmo的下方,並位於其右側,而戳戳指針將顯示在原點的右側。 在此處輸入圖片說明

獎勵:改進抓取,通過使用自定義指針戳指針

通過使用自定義指針而不是默認指針,可以大大改善您擁有的指針。 例如,您可以:

  • 通過將PokePointer的raycastorigin字段設置為自定義變換,使戳指針與Gizmo原點偏移
  • 添加視覺效果以實際顯示指針的位置

我創建了一個示例,演示了一個自定義抓斗和p指針,該指針可視化了抓斗和p的位置,並偏移了the的位置,以更加方便。 您可以在此處下載示例unitypackage ,或僅克隆mrtktips存儲庫並查看VRGrabPokePointers場景。

在此處輸入圖片說明

注意:要使視覺效果真正顯示出來,請使用以下腳本(指針當前在啟動時禁用所有渲染器以避免閃爍)。

using UnityEngine;

public class EnableRenderers : MonoBehaviour
{
    void Start()
    {
        foreach (var renderer in GetComponentsInChildren<Renderer>())
        {
            renderer.enabled = true;
        }
    }
}

您可以在此處的示例中以及VRGrabPokePointersUnity場景中看到自定義MRTK和指針配置文件的示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM