玩家站在客厅里,眼睛盯着沙发上的虚拟宝箱,右手却下意识指向桌面上的另一个道具,嘴里说“打开这个”。三个输入指向两个不同的对象,一句话里还有一个悬空的“这个”。传统游戏里,手柄按键和屏幕点击是唯一的输入通道,不存在这种冲突;空间计算把眼睛、手和声音都变成了输入,冲突就成了日常。系统该听哪一个,取决于对每种输入脾气的了解。
“这个”指的是什么:从指代消解说起
语言学里有一个专门的问题叫指代消解:当句子里出现“这个”“那边”“它”时,系统要找到它们指向的实体。在文字对话里,答案通常来自前文;在空间交互里,答案要从多个通道里拼出来:视线在看哪里,手指向哪里,前一句话提到了什么,场景里哪些对象是可以被“打开”的。
一句“打开这个”,如果场景里只有一个可以被打开的对象,问题就消失了;如果有两个,就需要用其他信号判断;如果有三个而信号又互相矛盾,最诚实的做法是承认不确定。多模态交互的核心,从来不是同时使用尽可能多的输入,而是如何在输入互相不一致时依然做出可接受的决定。
三类输入各有各的脾气
先看每一种输入擅长什么、不擅长什么。
| 输入 | 优点 | 常见问题 | 适合的用途 |
|---|---|---|---|
| 眼动 | 速度快,几乎不费力,能提前表达意图 | 看不等于选,视线会无意识游走;校准不良时偏差明显 | 预选、高亮、确定注意力落点 |
| 手势 | 直观,与空间位置天然绑定,可表达抓取、拖动 | 手部被遮挡、双手拿东西时不可用;相似手势易混淆;长时间举手疲劳 | 确认动作、抓取与放置 |
| 语音 | 表达能力最强,可以说出抽象命令 | 环境噪声、口音、他人说话;社交场合不便开口;有识别延迟 | 命令、切换模式、需要命名的操作 |
从这张表可以看出一个基本规律:眼动最适合表达“我在关注什么”,手势最适合表达“我要对它做什么”,语音最适合表达“我要做哪一类事”。三者天然可以分工,而不是互相竞争。冲突之所以出现,通常是因为系统让每一种输入都直接触发动作,而没有区分“关注”“选择”和“确认”这三个不同层次。
“看到即选中”的陷阱
眼动输入里有一个著名的问题,叫米达斯触碰(Midas Touch):所有被看到的东西都被点成了金子。如果系统把“视线停留”直接等同于“选中并触发”,玩家一低头看看手机、一走神看向某个按钮,游戏就开始执行不想要的操作。
人眼的运动本来就不是为“操作”设计的,它在环境里不停扫视,还会因为好奇、走神、眼睛疲劳而漂移。因此比较稳妥的做法是:视线只用于高亮和预选,任何具有后果的动作都需要另一个通道的确认,比如一次手势捏合、一句明确的口令,或者视线停留加一个短暂的可见倒计时。
另一个常见问题是校准漂移。眼镜佩戴位置轻微变化、玩家换了个姿势,眼动的落点就可能偏移一些。此时系统应利用场景对象的大小和间距来估计“视线落在哪一个目标上”的置信度,而不是把视线坐标当成像素级的真值。相邻两个小目标之间,视线信号并不可靠。
融合策略:时间窗、置信度与上下文
把三种输入放到一起处理,一般需要三个要素。
- 时间窗:语音从说出口到识别完成,手势从起手到完成,眼动落点的停留,它们的时间跨度并不一致。系统需要在一个滑动的时间窗口里对齐三者,而不是只看“最后到达的那条消息”。例如“打开这个”说出的那一刻,之前一小段时间里的视线与手势,才是“这个”最可能的指向。
- 置信度:每个通道都应给出自己的可信程度。视线在两个目标间来回,置信度就低;手部被遮挡时,手势置信度就低;环境嘈杂时,语音置信度也低。融合时不是简单的多数投票,而是按当下的可信程度加权。
- 上下文约束:命令“打开”只对能打开的对象有意义。在候选集合里先筛掉不可被打开的对象,问题往往就大幅缩小。这也是空间语义理解在交互层面的价值:系统知道对象“能做什么”,才能过滤掉不合理的指向。
需要注意,融合不等于每次都做出决定。当候选对象的得分接近、没有一个明显胜出,系统就应当进入“需要澄清”的状态,而不是用一个小小的优势装作确定。
一个模拟场景:客厅里的两个宝箱
下面是模拟场景,场景与参数均为示例。玩家在客厅里玩一个寻宝任务,沙发上有一个虚拟宝箱A,茶几上有一个虚拟宝箱B,两者相距大约一臂多远。玩家坐在沙发上,电视里正在播放节目,声音不小。
玩家目光先扫过A,随后落在B上停留;右手抬起,手指指向A的方向,同时说了一句“打开这个”。系统在时间窗内收到的信号是:
| 信号 | 指向 | 置信度(示例) | 备注 |
|---|---|---|---|
| 视线 | B(停留较久) | 中 | 此前扫过A,但停留短 |
| 手势 | A | 中偏高 | 手臂延长线与A较为一致 |
| 语音 | “打开这个” | 中偏低 | 背景电视声干扰,仅识别出“打开”较稳 |
| 上下文 | A、B都可打开 | — | 无法用类别排除 |
如果系统采取“最后到达优先”,语音识别完成的时刻视线在B,结果会打开B,与手势矛盾;如果采取“手势永远优先”,结果打开A,也许对,但没有依据。更合理的做法是:手势的指向较为明确、视线的停留只是预选,因此候选偏向A;但两者的置信度差距不大,且“打开”是低风险操作,可以先执行A,并在A上给出一个轻量的反馈,同时让B保持高亮。玩家若不认可,一个简短的手势或“不是这个”就能撤回。
如果这个操作换成“把宝箱里的道具全部兑换”,或者“退出当前任务”,那么同样的信号就不足以直接执行,需要玩家明确确认。
高风险操作要确认,低风险操作可以猜
一个简单的原则可以减少大量争议:操作的代价越高,所需的确定性越高。
- 低风险、可撤销:高亮、预览、打开一个可以再关上的箱子,可以基于较低置信度先执行,并允许玩家轻易撤销。
- 中风险:会消耗资源或改变任务状态的操作,需要两个通道相互印证,或者需要一次明确的确认动作。
- 高风险、不可撤销:购买、删除、发送邀请、结束任务,必须有明确的确认,且确认方式与触发方式不同,避免连锁误触。
失败时的回退也应当预先设计。语音不可用时,可以退回“视线加手势”;手部被占用时,可以退回“视线停留加语音”;三个通道都不可靠时,界面应提供最简单的替代方案,比如一个大尺寸的可点选菜单。这也与界面层的设计紧密相关,界面何时出现、以怎样的形态出现,可参见空间界面为什么要研究“什么时候出现”。
眼动数据很敏感:处理方式本身就是设计
眼动、手势和语音里,眼动尤其特殊。视线落点能透露玩家注意力、兴趣,甚至一部分潜意识里的偏好;语音则可能录入周围其他人的声音。这些数据如果被随意上传或用于画像,风险远大于一次误触。
爱游戏在这方面的设计思路是:输入融合所需的信号优先在设备本地完成处理,仅保留当下决策需要的最少信息,不长期保存原始的视线轨迹与音频;任何需要上传的处理,应当有明确提示并允许玩家关闭;玩家也可以选择关闭某一种输入,游戏仍要能完整进行。具体设置项以正式版界面为准。
好的输入融合,敢于在不确定时问一句
让系统同时听所有输入,很容易做成“谁声音大听谁”。真正好用的多模态交互,恰恰体现在它承认不确定:候选接近时给出轻量的澄清,高风险时要求确认,出错后能迅速撤回。玩家不需要知道背后有多少信号被融合,只需要感到“它大多数时候猜对了,猜不准时会问我”。
三种输入并不是三个开关,而是三种不同的表达:眼睛说“我在看”,手说“我要动”,嘴说“我想做什么”。把它们放在各自合适的位置,再把界面上的信息量控制在合理范围,可以参考空间娱乐如何动态减少界面,冲突才会变成协作。