全息投影装置中交互设计应用研究

2021-02-27 09:17
科学与信息化 2021年1期
关键词:体感全息手势

上海工程技术大学 上海 201620

1 研究背景

对于虚拟物体的视觉信息表达,全息投影相对头戴虚拟设备,没有任何硬件穿戴负担及一些眩晕等生理问题。虚拟展示针对不同的用户和用户的数量级,市场的需求分为深度需求和轻量化需求。建立在全息投影技术能在有限维度上展示内容的特质上,赋予其更多的功能就可以让它满足一些市场上的一些轻量化需求。本文在锥形四面全息投影展示柜的基础上,研究利用unity引擎结合Leapmotion硬件驱动产品以实现用户与展品交互的功能[1]。

2 全息投影与交互设置

2.1 交互装置的选择

目前基于体感的设备以Kinect和Leap motion为主。Kinect的主要识别对象是全身动作,而Leap motion偏向于手部动作的识别。Kincet推荐的用户所站立的区域距离设备1米以上。Leap motion可以在30厘米宽的立方体的范围内准确识别手势动作,同时150°超宽幅的空间,可以像在真实的世界中移动双手。根据一般全息投影的展陈物品受到投射介质和环境光的影响一般不会有太大尺寸展示柜,所以交互测试硬件选用Leap motion。

2.2 交互行为设计

展品“八音盒”在最终的设计是交互动作与交互按钮同时进行,使用者既可以使用交互按钮,采用悬停触发的方式,也可以采用交互动作的方式来达到拆分展品和切换不同展品的功能,其余功能使用热点触发。手势的控制需要有认知成本,且交互反馈不明确,反馈仅表现在功能的运行上,通过按钮和手势的共用,一方面按钮的学习成本极低,另一方面,手势的控制也可以通过按钮做出表现,实现交互反馈。不同于实体和按钮和触摸,体感交互是一个空间交互,全息展示柜的交互又不同于虚拟现实技术,内容和体感在同一空间,交互是leap motion的体感识别区域与全息投影柜的空间相对应实现的,是两个不同的空间,极容易会出现误操作的状况,因此本次的展品“八音盒”在按钮的设计中用悬停触发解决这个问题。动作手势命令设计比较简单,如双手拉近展开对应缩放,双手移动对应旋转等,简单的大动作识别度相对高。悬停触控打破了流畅性,但是这个是成本最低的避免误操作的方法,参数设置也相对容易调整。

2.3 unity中交互的实现

在投影显示上,在Unity中同样设立前后左右四个相机。首先设置一个主要相机(第一个相机),将相机的模式调整至solid color以消除视觉干扰。然后添加第一个主视角相机(第二个相机),把相机层级调至2,将这个相机正对参照指示物的正面,将相机设置为solid color模式并将depth设置为1将其作为四个相机中的主要相机,将其余的三个相机设置为depth only,并将depth设置依次增加1,只将有用的渲染信息附加到第二个相机的渲染画面上[2]。

图1 unity中建立的trigger

在完成体感交互的实现时,使用Unity软件trigger的触碰来判断。主要的原理就是通过leap motion中指示物的刚体rigidbody的物理性来判断是否触碰到trigger,在通过改变不同的状态来发送和触发不同的指令。将触发器的状态分成了触碰、停留和离开三个状态。四个功能中有两个功能是按钮加手势,两个按钮是只能通过手势实现的。在这一功能的实现上需要两个int变量,一个int变量用于记录功能按钮的状态是激活还是收回,另一个int变量用于记录现在哪一个功能按钮正在被激活,以变化相应的两侧按钮。在按钮的悬停触发功能的实现上也运用到了两个int变量,两个变量分别用于记录停留时间和触碰之后的真实时间,并不断比对这两个int值,当两个int值不同时,就意味着不再停留在按钮上,就将两个int值清零,视此次操作无效,当int值到达指定的数值时就意味着停留时间已满,激活指令。手势的操作中,切换的功能实现是在场景中搭建了4个trigger,如图1所示,原理是只要在0.3秒内,先触碰到一个trigger,再触碰到其右侧的任意一个trigger,则切换下一个八音盒,同理,左侧则切换到上一个。具体的实现通过建立2个int值,在触碰到第一个trigger的时候,先获得该trigger自身的int值,判断这是哪一个trigger,在将第二个int值设置为1,意味着第一个trigger已激活,发送一个指令给控制器,经过0.3秒后,就将第二个int值变为0,使此次操作无效化,如果在0.3秒内触碰到了第二个trigger,做两个判断。判断第二个int值是不是1,是1就意味着第一次激活有效。判断比之前的一个trigger值大还是小,用于实现切换上一个还是下一个,再执行相应命令。同理,拆解和合并的功能实现也使用了这个方法。但是在这之中也遇到了问题。例如,在实现拆解八音盒的过程中,原先建立了两个trigger,分别用来判断左手和右手的手势是否完成,但是在实际操作中发现,不论是向外做出手势,还是向内做出手势都会触发这一功能,且与收起手势的判断重复,建立四个trigger,为中间两个trigger设定状态为0,并且计时0.3秒,在0.3秒之内没有完成手势触碰及离开这个动作,则trigger状态不变,且所有数据清零。若是在时间内完成动作则状态改为1。在状态1的情况下在继续判断外侧的trigger以同样的方式,若4个trigger的状态都改为1,则触发拆解功能。

3 全息交互设计的要点

减少用户学习时间。由于公共空间的展示,考虑人流的观展时间,在交互中需要降低学习时间成本,利用移动设备中多点触摸的操作习惯,例如图片触摸缩放功能,以对角线的两个直角来表示缩放,同时配上了文字,方便初次使用而不能理解的使用者使用该交互作品。

减轻界面信息量。对于四面全息投影展示柜而言,理想状态是站在不同的投影面都能进行交互操作,但由于是折射原理,同时投影出现多套按钮影像,还有图形重叠翻转等视觉干扰。最终选择了单面显示按钮。为了不影响展示物体的拆解过程,对界面中的按钮进行了分层设计,在不需要的时候可以收起,改变画面视觉内容的比重,不进行操作时就把按钮所需要的画面占比缩小以突出展示物主体,方便使用者能够在使用的过程中,更加清晰地去了解展品的结构[3]。

4 结束语

以全息投影为基础的交互作品,需要注意简约的版面设计,普适性较强的手臂拨动的交互动作等。需要调整大量的参数设定,例如功能切换的交互动作的不确定性,复杂的交互动作等等。界面设计部分采用按钮自动隐藏的方式,除了满足视觉设计的功能及美感,更注意用户记忆深度,减轻操作学习负担。

交互设计中需要设置合理的交互动作指令,避免与功能没有关联的动作干扰,注意使用动作行为命令的普适性。不能选择过于复杂的动作,会影像设备识别率低,导致动作行为指令识别错误影响交互效果。最后,对于功能的切换也要做到合理顺畅,不能具有功能的重叠。这样在传统全息投影展柜的基础上增加手势或者体感交互装置,有助于增强展品与观者之前的交互体验,让展品的信息承载更加丰富。

猜你喜欢
体感全息手势
全息? 全息投影? 傻傻分不清楚
体感交互技术在脑卒中康复中的应用
"全息投影"
人体体感感知机械手设计与实现
挑战!神秘手势
引入体感控制技术推动校园足球发展
非触控式的体感机械臂交互控制系统研究
胜利的手势
全息,何以为全息
全息影像造就“立体新闻”——全息影像技术在传媒领域中的应用