手动菜单Hand menu

Ulnar 端位置

"手形" 菜单是 HoloLens 2 中最独特的 UX 模式之一。The hand menu is one of the most unique UX patterns in HoloLens 2. 它可让你快速打开手动连接的 UI。It allows you to quickly bring up hand-attached UI. 由于可以随时访问它,并且可以轻松地显示和隐藏,因此对于快速操作非常有用。Since it's accessible anytime and can be shown and hidden easily, it's great for quick actions.

你将在下面的列表中找到建议使用的最佳实践。You'll find our recommended best practices for working with hand menus in the list below. 你还可以在 MRTK中找到演示菜单的示例场景。You can also find an example scene demonstrating the hand menu in MRTK.



最佳做法Best practices

使按钮数保持较小Keep the number of buttons small

由于手锁定菜单和眼睛之间的距离接近,用户在任何时候都专注于相对较小的视觉区域 (attentional 的视觉效果约为10度) ,我们建议将按钮数保持为小。Because of the close distance between a hand-locked menu and the eyes, and the tendency for users to focus on a relatively small visual area at any time (the attentional cone of vision is roughly 10 degrees), we recommend keeping the number of buttons small. 基于我们的探索,一列包含三个按钮的工作非常好,因为即使在用户将其) FOV 移动到 FOV 的中心时,也可以通过将视图的所有内容保留在 " (视图" 字段中。Based on our exploration, one column with three buttons works well by keeping all the content within the field of view (FOV) even when a user moves their hands to the center of the FOV.

使用 "快速操作" 菜单Use hand menu for quick action

提起 arm 并维持位置可能很容易导致 arm 疲劳。Raising an arm and maintaining the position could easily cause arm fatigue. 对需要短交互的菜单使用手锁定的方法。Use a hand-locked method for the menu requiring a short interaction. 如果菜单非常复杂并且需要延长交互时间,请考虑改用世界锁定或正文锁定。If your menu is complex and requires extended interaction times, consider using world-locked or body-locked instead.

按钮/面板角度Button / Panel angle

菜单应以与之相对的肩和中间的方式为布告栏:这允许自然的手移动与菜单之间的交互,并在触摸按钮时避免任何难或令人不安的位置。Menus should billboard towards the opposite shoulder and middle of the head: This allows a natural hand move to interact with the menu with the opposite hand and avoids any awkward or uncomfortable hand positions when touching buttons.

考虑支持单向或无需操作Consider supporting one-handed or hands-free operation

不要假设用户的手始终可用。Don't assume both of the user's hands are always available. 如果一项或两次操作都不可用,请考虑使用各种上下文,并确保你的设计帐户适用于这种情况。Consider a wide range of contexts when one or both hands aren't available, and make sure your design accounts for those situations. 若要支持右手菜单,可以尝试将菜单位置从 "手动锁定" 切换到 "全局锁定" (当手型翻转 (向下) 。To support a one-handed hand menu, you can try transitioning the menu placement from hand-locked to world-locked when the hand flips (goes palm down). 对于无需人工使用的方案,请考虑使用语音命令调用手形菜单。For hands-free scenarios, consider using a voice command to invoke the hand menu.

避免在手腕 (系统 "主页按钮附近添加按钮)Avoid adding buttons near the wrist (system home button)

如果将 "手形" 菜单按钮置于 "主页" 按钮附近,则可能会在与 "手形" 菜单交互时意外触发。If the hand menu buttons are placed too close to the home button, it may accidentally trigger while interacting with the hand menu.


包含大型和复杂 UI 控件的菜单Hand menu with large and complex UI controls

HoloLens perspective of a menu system that always faces the user 建议限制手动附加菜单上的按钮或 UI 控件的数目。It's recommended to limit the number of buttons or UI controls on hand-attached menus. 这是因为,与大量 UI 元素的扩展交互可能会导致 arm 疲劳。This is because extended interaction with a large number of UI elements can cause arm fatigue. 如果你的体验需要大菜单,请为用户提供一种简单的方式来锁定菜单。If your experience requires a large menu, provide an easy way for the user to world lock the menu. 我们建议的一种方法是在离开或离开用户时,进行全球锁定后菜单。One technique we recommend is to world-lock then menu when the hand drops or flips away from the user. 第二种方法是允许用户直接抓住菜单。A second technique is to allow the user to directly grab the menu with the other hand. 当用户释放菜单时,菜单应为 "全局锁定"。When the user releases the menu, the menu should world lock. 这样一来,用户就可以在很长一段时间内轻松且自信地与各种 UI 元素交互。This way, a user can interact with various UI elements comfortably and confidently over an extended period of time.

当菜单处于全局锁定状态时,请确保提供移动菜单的方法,并在不再需要菜单时关闭菜单。When the menu is world-locked, make sure to provide a way to move the menu, and close the menu when it's no longer needed. 通过在菜单边或顶部提供控点,使菜单可移动。Make the menu movable by providing handles on the sides or top of menu. 添加 "关闭" 按钮以允许菜单关闭。Add a close button to allow the menu to close. 允许菜单在用户正面正面向用户重新附加。Allow for the menu to reattach to the hand when the user hand faces the user. 此外,我们还建议要求用户随时注视,以防止错误激活 (参见下面) 。We also recommend requiring that the users gaze at their hand to prevent false activations (see below).

显示可用性问题的大菜单Large menu that shows a usability issue

现有的全球锁定菜单World-locked menu on hand drop

手动抓取 & 拉取到世界上-锁定菜单Manual grab & pull to world-lock the menu

如何防止错误激活How to prevent false activation

如果使用 "上滑作为事件来触发" 手形菜单,则在不需要它时可能会意外出现 (误报) ,因为人们会有意 (进行通信和对象操作) 。If you use just palm-up as an event to trigger the hand menu, it may accidentally appear when you don't need it (false-positive), because people move their hands both intentionally (for communication and object manipulation) and unintentionally. 若要减少错误激活,请添加除手掌事件外的附加步骤,以调用 (的手形菜单,如完全打开的手指或用户有意 gazing 的) 。To reduce false activations, add an extra step besides the palm-up event to invoke the hand menu (such as fully opened fingers, or the user intentionally gazing at their hand).

需要单层掌Require Flat Palm

通过要求平整的张开手,可以防止在用户在环境中进行通信的过程中操作对象或手势时出现错误激活。By requiring a flat open hand, you can prevent false activation that might occur as the user manipulates objects or gestures while communicating within an environment.

需要注视Require Gaze

通过要求用户通过眼睛眼睛或眼睛) 来 (注视,这会阻止错误激活,因为用户必须将其注意力视为辅助激活步骤 (,并使用可用于允许用户舒适) 的可调距离阈值。By requiring the user to gaze at their hand (either with eye gaze or head gaze), it prevents false activations because of the user having to direct their attention to the hand as a secondary activation step (with a tunable distance threshold used to allow for user comfort).


手动菜单布局最佳实践Hand menu placement best practices

在人剖析中,ulnar 勇气是在 ulna 骨骼附近运行的勇气。In human anatomy, the ulnar nerve is a nerve that runs near the ulna bone. Ulna 是在 forearm 中找到的一个长骨骼,该骨骼从弯头拉伸到最小手指。The ulna is a long bone found in the forearm that stretches from the elbow to the smallest finger.

下面是基于探索的两个建议位置:Below are two recommended placements based on our explorations:

手掌内的 Ulnar 端位置Ulnar side hand location inside palm
手掌内的 UlnarA. Ulnar inside palm
此位置是可靠的,因为不会相互重叠。This position is reliable because the hands don't overlap each other. 这对于准确的手动检测和跟踪至关重要。This is critical for accurate hand detection and tracking.

Ulnar 右侧位置Ulnar side hand location above hand
B. Ulnar 以上的手势B. Ulnar above hand
此位置对用户非常熟悉,因为他们不需要将其扶手提高到与手形菜单的交互。This location is comfortable for users because they don't need to raise their arm too much to interact with the hand menu. 建议将菜单 13 厘米 置于掌上,并对齐 ulnar 掌中的按钮。We recommend placing menus 13 cm above the palm and align the buttons inside the ulnar palm. 阅读有关最佳按钮大小的详细信息Read more about the optimal button size

出于技术原因,我们建议将此位置用于一个必需实现:一旦用户与之交互,开发人员将需要冻结该菜单。For technical reasons, we recommend this location with one required implementation: the developer will need to freeze the menu once the user's opposite hand gets close to interacting with it. 这将避免 jitteriness 与指针重叠,还允许更快地定位按钮。This will avoid jitteriness from overlapping hands and also allows for a faster targeting of the buttons.

HoloLens 2 相机在彼此分开时可以精确地识别。HoloLens 2 cameras identify hands accurately when they're separate from each other. 任何重叠的手势都可以导致手形菜单远离定位点位置。Any overlapping hands can cause hand menus move away from the anchor location.



我们使用不同的菜单布局和位置完成了用户研究, 不建议 使用以下菜单位置,查找下面每个研究的缺点:We have done user research with different menus layouts and locations, the following menu locations are NOT recommended, find the cons of each study below:

上方 armAbove arm
Arm 之上Above the arm
1-难以维护良好的手写跟踪1 - Difficult to maintain good hand tracking
2-由于非自然位置导致用户疲劳2 - Causes user fatigue because of unnatural position

上手指Above fingers
上手指Above fingers
1-疲劳,因为要长时间持有1 - Hand fatigue because of holding out hand for a long time
2-手动跟踪索引和中间指的问题2 - Hand tracking issues on index and middle fingers


上方中心掌Above center palm
上方-中心掌托Above-center palm
1-由于指针重叠而发生的手动跟踪问题1 - Hand tracking issues because of overlapping hands
疲劳,因为需要长时间来与菜单交互2 - Hand fatigue because of holding hands for long time to interact with menus

Top 手指 top 手指Top Fingertip Top fingertip
1-手写跟踪问题1 - Hand tracking issues
2-疲劳在正常情况上保持手动2 - Hand fatigue from holding hand above normal posture
3-由于手指间的空间有限,出现意外的按下按钮的问题3 - Issues pressing buttons with other fingers by accident because of limited space between fingers


Arm 背面Back of the Arm
Arm 背面Back of the arm
1-可以意外触发主按钮1 - Can trigger home button by accident
2-不是自然或舒适的位置2 - Not a natural or comfortable position



MRTK 中的菜单 (混合现实工具包) 适用于 UnityHand menu in MRTK (Mixed Reality Toolkit) for Unity

MRTK 为手形菜单提供脚本和示例场景。MRTK provides scripts and example scenes for the hand menu. HandConstraintPalmUp 求解器脚本允许您将任何对象附加到各种可配置选项。The HandConstraintPalmUp solver script allows you to attach any objects to the hands with various configurable options. MRTK 的手形菜单示例包含有用的选项,例如,用于防止错误激活的平面掌和注视要求。MRTK's hand menu examples include useful options such as flat palm and gaze requirement for preventing false activation.

可以在 HoloLens 2 中试用带有 MRTK 示例中心应用的菜单示例。You can try hand menu examples in HoloLens 2 with MRTK Examples Hub app.



另请参阅See also