在 VR 中或通过 MR 呈现的真实环境中,与三维场景交互时,手用于提供手势,以及通过呈现更自然的感觉来提供更逼真的体验。
仅 Varjo XR-3 支持。
此部分提供在与数字设计交互时支持使用的 VRED 手势。当您使用食指指尖点击模型的某些部分以启动触摸事件、从 xR 主页菜单选择工具或与 HTML 5 HMI 屏幕交互时,系统会跟踪您的手部移动。使用这些手势可以浏览场景,而无需使用控制器。
食指与菜单中的工具之间必须成一个小的角度才能触发它。
如果食指垂直,VRED 的传感器在检测动作时可能会出现问题。在 2022.3 版中,针对食指 VR 交互实现了新的碰撞模型,该模型使用改进的传感器角度和位置。
虚拟手将自动调整以匹配您的真手。
要触发工具,请在食指与菜单中的工具之间仅成较小角度的情况下,点击该工具。
要打开菜单,请将食指移动到另一只手的手掌。重复此手势可关闭 xR 主页菜单。
要触发工具,请在食指与菜单中的工具之间仅成较小角度的情况下,点击该工具。
要查看真手,如果手位于虚拟对象的前面,但被虚拟对象遮挡,请启用深度估算。
有关 xR 主页菜单及其工具的信息,请参见 xR 主页菜单。
要进行传送,您需要启动传送器,确定弧和箭头方向,然后跳转到新位置。完成后,终止传送器。
要启动和终止传送,请使用相同手势。
使用一只手,点击另一只手的手背。这将从被点击的手启动传送。现在确定弧方向并传送。重复此手势可终止传送器。
在手部当前未显示传送弧时,将食指与拇指捏在一起。这将接受传送弧位置和方向,并执行传送。完成后,终止传送以退出该工具。
有关传送的信息,请参见传送。
要使用激光指针,您需要启动、执行然后终止它。
要启动和终止激光指针,请使用相同手势。
使拇指、食指和中指指向外,并使手掌朝向摄影机。现在,使用激光指针指向对象或触发与场景内容的交互。重复此手势可终止激光指针。
使用食指指向场景内容。
将食指与拇指捏在一起以触发与场景内容的交互,例如从 xR 主页菜单中选择工具、激活点击传感器或与 HTML 5 HMI 屏幕交互。完成后,终止激光指针以退出该工具。
VRED 随附了一组标准手,通过它们可以使用具有预蒙皮顶点的关节/骨骼来表示手。这样,两个手势之间的过渡就会更加平滑。手势由特定于 HMD 的控制器设置驱动。
手使用 X 射线材质来改善体验。
要进入 VR,请在 xR 主页菜单中选择 (VR 功能)。
激活 Oculus Rift 或 OpenVR 模式时,每个受跟踪的控制器都会显示一只手。
VRED 使用 OpenVR 1.12.5 SDK。
您可以使用它与场景中的 Web 引擎和点击传感器交互。交互时只能使用食指。当手指接触可交互的几何体时,该几何体上的 Web 引擎和点击传感器即会模拟按下/移动/释放鼠标左键的操作。
结合使用脚本和 vrOpenVRController
时,手将自动消失。您可以通过 controller.setVisualizationMode(Visualization_Hand)
再次启用它们。
例如,与场景中的点击传感器和 Web 引擎进行交互:
使用 OpenVR 和 Oculus Rift 模式时:
VR-hands-touchsensor.vpb
- 用食指触摸汽车形状以切换材质(汽车形状的点击传感器)。VR-hands-touchsensor-2.vpb
- 用食指触摸汽车形状以显示 3 个球体,触摸这些球体可以更改材质(汽车形状和球体的点击传感器)。VR-hands-webengine.vpb
- 用食指触摸计算器按钮。计算器材质连接到 Web 引擎。用食指触摸 Web 引擎几何体会在网站上触发鼠标事件。使用 OpenVR 时:
VR-hands-webengine-buttonVibration-openvr.vpb
- 它与 VR-hands-webengine.vpb
相同,但网站会触发控制器振动。计算器 Web 引擎具有 JavaScript 代码,当点击网站上的按钮时,该代码会向 VRED Web 界面发送一个 requestVibration()
python 命令。此命令会在连接的控制器设备上触发触摸反馈(振动)。默认情况下,场景中的节点是不可交互的。您需要使用 Python 命令 setNodeInteractableInVR(node, True)
将要与之交互的所有节点设置为“可交互”。有关详细信息,请查看 Python 文档(“帮助”>“Python 文档”)。在“脚本编辑器”中输入命令,然后按“运行”。 setNodeInteractableInVR
命令并非永久性的,每次加载场景时都需要执行该命令。建议您使用脚本保存场景,以便在下次打开场景时节点处于可交互状态。
除了使用手指和手来按下和触摸 HTC VIVE 或 Oculus Touch 控制器上的按钮之外,还可以使用它们与其他人进行通信。
可使用以下手势:
如果您有 Varjo XR-3,则可以使用手势与您的数字设计进行交互。请参见手势。
使用 Python 脚本和 HTML5 创建自定义设置。您可以在 VRED 示例文件夹 (C:\\ProgramData\\Autodesk\\VREDPro-11.0\\Examples)
中找到脚本文件。
下面是一些已添加的脚本:
在手触摸可交互节点时启用触摸反馈(控制器振动)。
VR-hands-vibrate-openvr.py
- 用于 OpenVR 模式VR-hands-vibrate-oculus.py
- 用于 Oculus Rift 模式更改手颜色/命中点颜色
VR-hands-color-openvr.py
VR-hands-color-oculus.py
通过用食指指向场景中的节点来实现远距离交互(而不是直接触摸某对象)。命中点处会出现一个球体。当激活“指向”姿势(即按下夹点按钮,未按下索引触发按钮)时,可以执行点击传感器和 Web 引擎。
VR-hands-pointing-openvr.vpb
- 用于 OpenVR 模式当前,MR 仅支持 Varjo XR HMD。
在 MR(混合现实)中,VRED 将 VR X 射线材质的手替换为您自己的手。
要进入 MR,请在 xR 主页菜单中选择 (MR 功能)。
请注意,MR 中 XR-1 和 XR-3 支持的功能存在差异。
XR-3 支持手部深度估算、标记跟踪和手部跟踪(手势)。这意味着手势可以代替控制器用于场景交互。由于 VRED 会将支持关节/骨骼的标准手替换为您的真手,因此您可以使用 Python 连接手部跟踪器以进行场景交互。
使用“虚拟现实”首选项设置手部跟踪、传送、标记跟踪和 HMD 的默认行为。
仅适用于 Varjo XR-3 和 Varjo VR-3 用户。
要查看如何使用 Python 连接手部跟踪,请选择“文件”>“打开示例”,然后导航到 vr
文件夹,您可以在其中找到 externalHandTracking.py
。这提供了如何设置手部跟踪的示例。
vrDeviceService.getLeftTrackedHand()
vrDeviceService.getRightTrackedHand()
返回的对象类型为 vrdTrackedHand
。
仅适用于 Varjo XR-3 和 Varjo VR-3 用户。
使用“虚拟现实”首选项可以设置 VR 中手部跟踪的默认行为。选择 Varjo 集成 Ultraleap 以在 VR 和 MR 中进行手部跟踪,或选择自定义以使用其他手部跟踪设备。要调整跟踪的手和 VR 中渲染的手之间的任何偏移,请使用平移偏移和旋转偏移。
对于“自定义跟踪器”选项,必须向 VRED 的 Python 界面提供所有跟踪数据。如何执行此操作可能因设备而异;但是,如果您可以通过 Python 脚本访问跟踪数据,则需将数据设置为所用方法返回的 vrdTrackedHand
对象。这需要跟踪的手和/或不同手指关节的变换数据(有关该操作的工作方式,请参见 externalHandTracking.py
示例文件)。
要进行测试,请设置相应的首选项,加载脚本,然后进入 VR。您可能必须通过更改手和/或关节变换的值来修改脚本,以了解所有内容的工作方式。
当前,MR 仅支持 Varjo XR HMD。
在混合现实视频中检测您的真手,并在虚拟对象前面显示它们(如果它们比该对象更近)。禁用后,从 VRED 进行的渲染将始终遮挡真手,即使手比渲染的对象更近也是如此。
此选项位于 xR 主页菜单中。要设置此选项的默认行为,请访问“虚拟现实”首选项 >“HMD”选项卡 >“Varjo”部分。
“手部深度估算”已禁用 | “手部深度估算”已启用 |
---|---|
当前,MR 仅支持 Varjo XR HMD。
在混合现实中,使用“手部深度估算”工具显示手。
佩戴支持 MR 的已连接 Varjo HMD 后,在 VRED 中选择“视图”>“显示”>“Varjo HMD”。
按控制器上的“菜单”按钮以访问 xR 主页菜单。
按 以在 MR 中查看真手。