category
AI summary
tags
password
summary
date
icon
status
字数统计
type
slug
orgsrc
URL
Video Here
本文是关于 Vision Pro 手势追踪技术 —— ARKit 的开发笔记。
在 visionOS 中,ARKit 可以实现手部追踪和世界感应等增强现实功能,在 ARKit 中调用手部追踪的流程如下:

首先,需要向用户描述手势追踪数据的用途并取得用户授权。

为了确保用户隐私,要调用 ARKit 数据,必须进入 Full Space 模式,visionOS 不会向共享空间的 App 发送数据。这一安全策略导致所有自定义的手势交互方式,只能在当前应用中生效,而无法在系统层生效。


应用进入 ImmersiveSpace 状态(即 Full Space),可以选择不同的 immersionStyle(.mixed / .progressive / .full):

通过轮询 HandTrackingProvider.anchorUpdates 可以获得手部各关节点的追踪数据:

HandSkeleton 中保存了所有手部关节的名称和对应坐标,通过计算这些关节点的坐标和相对关系,即可自定义手势事件:

目前 Vision Pro 手部追踪的采样率只有 30FPS(网友提供,未验证),从测试效果上来看,虽然每个关节点的定位都比较准确,但是当手部移动速度较快时,就会出现比较明显的延迟、卡顿,这也是很多裸手交互游戏(比如水果忍者)效果较差的原因。此外只有进入 Full Space 才能获取手部追踪数据,这也极大限制了应用的适用范围。
Video Here
参考

- Sample Code: Happy Beam
- Apple's WWDC 2023 - Meet ARKit for spatial computing.
- 作者:V2XR
- 链接:https://hackvision.pro/post/ARKit-HandTracking-in-visionOS
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。