Vision Pro 手势追踪 - ARKit 教程
00 分钟
2024-3-20
2024-3-20
category
AI summary
tags
password
summary
date
icon
status
字数统计
type
slug
orgsrc
URL
📌
Video Here
本文是关于 Vision Pro 手势追踪技术 —— ARKit 的开发笔记。

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

参考

notion image
  1. Sample Code: Happy Beam
  1. Apple's WWDC 2023 - Meet ARKit for spatial computing.