📌 Video Here
🤖:本文是关于 Vision Pro 手势追踪技术 —— ARKit 的开发笔记。
在 visionOS 中,ARKit 可以实现手部追踪和世界感应等增强现实功能,在 ARKit 中调用手部追踪的流程如下:
ARKit 追踪数据使用流程
首先,需要向用户描述手势追踪数据的用途并取得用户授权。
Xcode Info 中填写 NSHandsTrackingUsageDescription
为了确保用户隐私,要调用 ARKit 数据,必须进入 Full Space 模式,visionOS 不会向共享空间的 App 发送数据。这一安全策略导致所有自定义的手势交互方式,只能在当前应用中生效,而无法在系统层生效。
用户授权
应用进入 ImmersiveSpace 状态(即 Full Space):
ImmersiveSpace
通过轮询 HandTrackingProvider.anchorUpdates 可以获得手部各关节点的追踪数据:
轮询 anchorUpdates
HandSkeleton 中保存了所有手部关节的名称和对应坐标,通过计算这些关节点的坐标和相对关系,即可自定义手势事件:
WWDC2023 - 正式 SDK 中已经去掉了所有 hand 字符
目前 Vision Pro 手部追踪的采样率只有 30FPS(网友提供,未验证),从测试效果上来看,虽然每个关节点的定位都比较准确,但是当手部移动速度较快时,就会出现比较明显的延迟、卡顿,这也是很多裸手交互游戏(比如水果忍者)效果较差的原因。此外只有进入 Full Space 才能获取手部追踪数据,这也极大限制了应用的适用范围。
📌 Video Here
👉 原文链接
参考
- Sample Code: Happy Beam
- Apple's WWDC 2023 - Meet ARKit for spatial computing.
本文使用 markdown.com.cn 排版