AR步法训练玩到一半,家里的猫从沙发底下窜了出来,正好停在下一个目标点旁边;或者家人端着一杯水走进客厅,而游戏还在往那个方向放目标。玩家的注意力全在虚拟光圈上,很难同时留意脚下。AR体育游戏和普通手机游戏最大的不同就在这里:它要求玩家在真实房间里真的移动,而房间并不会为游戏清场。
客厅不是一块空地:地面、墙和不同高度的家具各有风险
从运动的角度看,房间里的物体可以粗略分成三类。墙面和高柜是明确的边界,玩家通常看得见;沙发、餐椅这类中等高度的家具,挥臂和弓步时容易碰到;最危险的往往是矮小的物体,例如茶几、脚凳、地毯翘起的边、散落的玩具,它们在视线下方,移动时最容易被绊到。
因此安全区不只是“地面上有多大面积”,而是“在这块面积里做这类动作会不会碰到东西”。AR篮球框的空间判断关注的是一个虚拟物体放不放得下,而安全移动关注的是人在这片区域里整个运动过程是否安全。
空间映射怎么做:平面检测找地面,深度数据找低矮障碍
ARKit和ARCore都提供平面检测,能识别水平的地面和竖直的墙面。只靠普通摄像头时,系统依赖画面中的特征点来估计平面,对纹理单一的浅色地板、反光瓷砖,以及贴近地面的低矮物体,识别都不够稳定。带LiDAR或其他深度传感器的设备可以获得场景网格,把茶几、沙发边缘这类有高度的物体更清楚地勾勒出来。
九游体育在映射阶段把地面划成许多小格,每一格标记为可通行、有障碍或未扫描到:
平面检测 → 地面分格 → 标记家具与低矮障碍 → 外扩安全边距 → 得到安全区
未扫描到的格子一律按不可通行处理,宁可让可用区域小一点,也不假设看不到的地方是空的。安全边距也不是固定值,在示例设定里,原地抬腿类任务的边距较小,而弓步、侧滑步这类会突然扩大身体占地的动作,边距要明显加宽。
虚拟目标只放在安全区内,连同走过去的路径一起检查
有了安全区,放置虚拟目标时要检查两件事:目标本身落在安全区内,以及玩家从当前位置移动到目标的这条路径也在安全区内。一个目标点即使位于空地中央,如果玩家要绕过茶几一角才能到达,这个位置也不合格。
目标的分布还要考虑动作幅度。弓步目标需要玩家一脚向前跨出、身体下沉,因此目标前方还要预留脚掌和膝盖的空间;侧滑步目标则要保证两侧都有足够余量,玩家滑过头时不会撞到墙边。
玩家在哪里、往哪走:提示要在越界之前出现
游戏过程中,系统持续跟踪玩家的位置。手持手机或佩戴AR眼镜时,可以直接用设备自身的位置估计;手机放在支架上拍摄全身时,则用人体关键点估算玩家脚下的位置,并考虑手臂展开的范围。关键点 Confidence 下降时,比如玩家走到画面边缘,系统会先提示回到画面中央,而不是继续放目标。
提示的时机比提示本身更重要。系统根据玩家当前的移动速度和方向,预估接下来一小段时间会到达哪里,在预计越界之前分级提醒:
- 轻提示:安全区边缘出现发光线,下一个目标自动往中间移。
- 中提示:语音提醒“注意右侧”,暂停计时。
- 强提示:玩家已经越界或正快速接近障碍,任务立即暂停。
安全区的大小也会反过来决定任务内容。扫描下来如果可用区域很窄,比如只有沙发和电视柜之间的一条过道,系统不会硬塞进需要大范围移动的步法训练,而是换成原地高抬腿、小范围前后点步这类变式,目标的节奏和数量照样可以调整,训练强度不必因此打折。
宠物和家人不会等你扫描完再进来:动态障碍的处理
开局扫描得到的是静态地图,而客厅是会变化的。系统在游戏过程中会持续比对画面:如果检测到新的人体,或者在原本可通行的格子里出现移动的物体,就把那片区域临时标为不可通行,并暂停需要往那边移动的任务。家人离开画面、区域恢复空旷后,任务才继续。
这里也有明确的限制:摄像头只能看到它朝向的方向,玩家背后的情况无从得知。所以任务设计上尽量避免要求玩家大步后退,边距也按“背后可能有东西”来留。如果玩家挪动了家具,或者换了房间,系统会要求重新扫描,而不是沿用旧地图。
选设备时值得看一眼:是否支持深度感知
从上面的流程可以看出,设备能否获取深度信息,会直接影响低矮障碍的识别效果。如果在九游体育电商选购用于AR运动的手机或AR眼镜,可以留意说明中是否支持深度感知以及平面检测;不支持也能玩,只是系统会自动留出更宽的安全边距,可用区域相应变小。更多内容可以在VR体育与AR体育栏目中查看。