AR Pet
AR 虚拟宠物
2025.09 – 2025.12
Lead Developer
3 months

AR 虚拟宠物 — 真实平面上的 3D 狐狸
把一只 3D 狐狸放进你的客厅。通过手机摄像头检测地面,将虚拟宠物放置在真实平面上。它能识别你的手势——比个枪它就装死,伸手摸它就站起来。还能听懂语音指令:说"坐下"它就坐,说"跳"它就跳。不是预录动画的简单播放,而是基于状态机的实时响应。
挑战
手势识别的精度和延迟是核心难题。HandTracker 返回的手部关键点在不同光照和距离下抖动严重,如何从噪声数据中稳定识别出"枪"和"触摸"两种手势?语音识别在 AR 场景下的误触发也是问题——环境噪音会被错误识别为命令。
方案
Auki HandTracker SDK 提供手部 21 个关键点坐标,在此基础上实现手势判定逻辑:枪手势通过食指伸直 + 拇指竖起 + 其余手指弯曲的组合判定,触摸通过指尖与宠物碰撞体的距离阈值(0.15m)判定。语音侧集成 iOS 原生语音识别,实现模糊匹配(阈值 0.6)+ 防抖(1s 冷却),支持中英文多种说法触发同一命令。宠物始终面向摄像头,Y 轴位置通过 AR 平面射线检测实时修正,避免"悬浮"。
技术栈
亮点
- 01
手势交互:21 关键点手势判定,枪手势 → 装死,触摸 → 起身,实时碰撞检测
- 02
语音控制:iOS 原生 ASR + 模糊匹配 + 防抖机制,8 种语音命令中英文支持
- 03
AR 空间感知:平面检测放置 + Y 轴实时修正 + 面向摄像头平滑旋转
- 04
状态机动画:多 Idle 随机切换、手势/语音双通道触发、动画状态互斥管理
成果
完整的 AR 宠物交互体验:平面检测放置、手势识别(枪 → 装死、触摸 → 起身)、语音命令(坐下/跳/转圈/打招呼等 8 种指令)、多种 Idle 动画随机切换。宠物始终面向用户,位置跟随真实平面高度修正。
反思与收获
AR 开发最大的认知转变是"真实世界是不可控的"。在编辑器里完美运行的手势识别,到了真实环境里会被光照、距离、手的角度各种因素干扰。最终学会的是:不要追求 100% 准确率,而是设计容错机制让误识别不会破坏体验。语音命令的模糊匹配 + 防抖就是这个思路的产物。

手势交互 — 枪手势触发装死动画

语音控制 — 中英文模糊匹配 + 防抖