返回作品
07

AR Pet

AR 虚拟宠物

// Year

2025.09 – 2025.12

// Role

Lead Developer

// Duration

3 months

AR Pet 应用界面

AR 虚拟宠物 — 真实平面上的 3D 狐狸

// Overview

把一只 3D 狐狸放进你的客厅。通过手机摄像头检测地面,将虚拟宠物放置在真实平面上。它能识别你的手势——比个枪它就装死,伸手摸它就站起来。还能听懂语音指令:说"坐下"它就坐,说"跳"它就跳。不是预录动画的简单播放,而是基于状态机的实时响应。

// Challenge

挑战

手势识别的精度和延迟是核心难题。HandTracker 返回的手部关键点在不同光照和距离下抖动严重,如何从噪声数据中稳定识别出"枪"和"触摸"两种手势?语音识别在 AR 场景下的误触发也是问题——环境噪音会被错误识别为命令。

// Approach

方案

Auki HandTracker SDK 提供手部 21 个关键点坐标,在此基础上实现手势判定逻辑:枪手势通过食指伸直 + 拇指竖起 + 其余手指弯曲的组合判定,触摸通过指尖与宠物碰撞体的距离阈值(0.15m)判定。语音侧集成 iOS 原生语音识别,实现模糊匹配(阈值 0.6)+ 防抖(1s 冷却),支持中英文多种说法触发同一命令。宠物始终面向摄像头,Y 轴位置通过 AR 平面射线检测实时修正,避免"悬浮"。

// Tech Stack

技术栈

UnityARFoundationARKitAuki HandTrackeriOS Speech RecognitionC#XR Interaction ToolkitURP
// Highlights

亮点

  • 01

    手势交互:21 关键点手势判定,枪手势 → 装死,触摸 → 起身,实时碰撞检测

  • 02

    语音控制:iOS 原生 ASR + 模糊匹配 + 防抖机制,8 种语音命令中英文支持

  • 03

    AR 空间感知:平面检测放置 + Y 轴实时修正 + 面向摄像头平滑旋转

  • 04

    状态机动画:多 Idle 随机切换、手势/语音双通道触发、动画状态互斥管理

// Result

成果

完整的 AR 宠物交互体验:平面检测放置、手势识别(枪 → 装死、触摸 → 起身)、语音命令(坐下/跳/转圈/打招呼等 8 种指令)、多种 Idle 动画随机切换。宠物始终面向用户,位置跟随真实平面高度修正。

// Reflection

反思与收获

AR 开发最大的认知转变是"真实世界是不可控的"。在编辑器里完美运行的手势识别,到了真实环境里会被光照、距离、手的角度各种因素干扰。最终学会的是:不要追求 100% 准确率,而是设计容错机制让误识别不会破坏体验。语音命令的模糊匹配 + 防抖就是这个思路的产物。

// Gallery
手势识别

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

语音命令

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