空间化触觉设备力反馈的制作方法

文档序号:22626541发布日期:2020-10-23 19:34阅读:96来源:国知局
空间化触觉设备力反馈的制作方法



背景技术:

触觉设备可被用于增强与虚拟环境(诸如视频游戏或虚拟现实体验)的交互。具体而言,触觉设备可被用于提供表示虚拟环境中的虚拟力的力反馈。此类力反馈可以增强虚拟环境的有形性感知,这可使得虚拟体验更加身临其境且更加逼真。



技术实现要素:

提供本发明内容以便以简化的形式介绍以下在具体实施方式述中进一步描述的概念的选集。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,亦非旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中提及的任何或所有缺点的实现。

一种用于控制一个或多个触觉设备上的空间化力反馈的方法,包括:经由通信接口来建立与该一个或多个触觉设备的通信;实例化一个或多个虚拟触觉源,每个虚拟触觉源具有虚拟环境中的虚拟位置并且被配置成发射由触觉参数集表征的触觉信号;以及对于该一个或多个触觉设备中的每一者,实例化具有虚拟环境中的虚拟位置和转换逻辑的虚拟触觉接收机。虚拟触觉接收机可被配置成:从一个或多个虚拟触觉源中的每一者接收该虚拟触觉源的触觉信号;基于转换逻辑来将接收到的触觉信号转换成触觉设备指令;以及经由通信接口来向触觉设备发送该触觉设备指令。

附图简述

图1示出了其中用户使用被配置成提供空间化力反馈的多个触觉设备来与虚拟环境交互的示例场景。

图2示出了其中游戏引擎实例化针对虚拟环境的多个虚拟触觉源和虚拟触觉接收机的示例场景。

图3示意性地示出了示例虚拟触觉源。

图4示意性地示出了示例虚拟触觉接收机。

图5示意性地示出了其中针对多用户虚拟环境实例化多个虚拟触觉接收机的示例场景。

图6示出了用于控制一个或多个触觉设备上的空间化力反馈的示例方法。

图7示出了由虚拟触觉接收机执行以控制触觉设备的示例方法。

图8示出了示例计算系统。

具体实施方式

随着计算机软件和硬件变得越来越强大和先进,虚拟环境(诸如视频游戏环境)变得更加丰富和逼真。图形、角色和化身的移动、以及各种视觉元素的交互都变得越来越逼真。此外,触觉设备(例如,起伏、振动、震动)在与视频游戏和其他虚拟体验结合使用时变得更加复杂和普遍。尽管在虚拟环境和触觉设备的各方面都有提升,但是经由软件提供逼真的空间化触觉反馈仍然极其困难且在计算上是复杂的。用于经由触觉反馈来模拟虚拟力的常规办法通常需要开发人员对特定触觉设备的特定触觉事件进行硬编码,这非常耗费劳力,并且不允许适应虚拟环境中的变化和/或要用于与虚拟环境交互的不同类型的触觉设备。

因此,本描述涉及一种用于控制触觉设备以提供来自虚拟环境内的虚拟触觉源的空间化力反馈的办法。此类办法可以通过根据能够发射触觉信号的触觉源和能够从虚拟触觉源接收触觉信号的触觉接收机来表征虚拟环境来执行。例如,一个或多个虚拟触觉源可被实例化。每个虚拟触觉源可具有虚拟环境中的虚拟位置,并且可被配置成发射由触觉参数集表征的触觉信号。此外,对于用于增强与虚拟环境的交互的一个或多个触觉设备中的每一者,虚拟触觉接收机可被实例化。每个虚拟触觉接收机可具有虚拟环境中的虚拟位置和转换逻辑。每个触觉接收机可被配置成:从一个或多个虚拟触觉源中的每一者接收该虚拟触觉源的触觉信号;基于转换逻辑来将接收到的触觉信号转换成触觉设备指令;以及经由通信接口来向触觉设备发送该触觉设备指令。每个触觉设备指令可采用与触觉设备兼容的格式,使得触觉设备可基于接收到的触觉设备指令来提供力反馈。

根据虚拟触觉源和虚拟触觉接收机的空间化性质,不同的触觉设备可至少基于虚拟触觉源的虚拟位置、虚拟触觉接收机的虚拟位置和/或定义触觉信号的触觉参数集来提供不同的力反馈。例如,触觉信号可以针对不同的虚拟触觉接收机不同地调整,以计及触觉信号行进的距离、与中间虚拟对象的交互、和/或沿着间接路径的行进、以及其他空间上的考虑。此类调整可允许虚拟力的逼真空间化模拟。

与通过对特定触觉设备的特定触觉事件进行硬编码来模拟虚拟力的常规尝试不同,所描述的办法在空间上表征虚拟环境中的虚拟力,以便以适应于不同虚拟环境且可扩展为不同类型的触觉设备的方式来控制力反馈。具体而言,每个触觉设备由单独的虚拟触觉接收机来控制,该虚拟触觉接收机被配置成将接收到的触觉信号转换成与该特定类型的触觉设备兼容的触觉设备指令。此外,因为每个虚拟触觉接收机被编程成接收和转换通用触觉信号,而不论虚拟触觉源如何,所以虚拟触觉接收机已经被编程以用于的每个触觉设备自动地与每种可能类型的触觉源兼容。此类办法消除了针对每种特定类型的触觉设备的每种触觉效果定制脚本的需求。

图1示出了用户100佩戴头戴式显示器(hmd)类型虚拟现实计算系统102。计算系统102包括近眼显示器104。近眼显示器104被配置成向用户100可视地呈现虚拟环境108的视野(fov)106。虚拟环境108可以模拟现实世界和/或想象世界,从而允许用户100与该虚拟化世界交互。

计算系统102可被配置成基于采取视频游戏代码或另一软件应用形式的指令的执行来经由近眼显示器104呈现虚拟环境108。视频游戏代码或软件应用可以定义虚拟环境108的各参数,包括:虚拟世界和对应的虚拟坐标系、游戏规则和基础数学模式(例如,物理引擎)、虚拟对象、虚拟环境、虚拟角色、音频设计/声音效果和触觉设计/触觉效果。

在所描绘的示例中,近眼显示器104的视野106可视地呈现了虚拟环境108的第一人称视角。虚拟环境108的这一视角描绘了虚拟化身110在战斗期间持有虚拟枪支112的第一人称视角。虚拟化身110位于虚拟沙袋掩体114后面的虚拟环境108中。虚拟机库116位于虚拟沙袋掩体114之外。虚拟建筑物118位于虚拟沙袋掩体114之外的视野106的左侧。虚拟坦克120位于虚拟机库116与虚拟建筑物118之间,并且正在接近虚拟化身110。此外,虚拟飞机122已将虚拟炸弹投放在虚拟机库116和虚拟建筑物118上,这造成虚拟爆炸124和126。虚拟飞机122位于虚拟坦克120之外的天空中,并且正飞离虚拟化身110。

注意,所描绘的视角旨在是非限制性的,并且可以在近眼显示器104的视野106中可视地呈现任何合适的虚拟环境的任何合适的视角。在另一示例中,视野可以可视地呈现虚拟化身110在虚拟环境108中的第三人称视角。虽然图1描绘了其中用户100经由近眼显示器104观看虚拟世界的场景,但是本公开实际上与任何类型的显示器(包括虚拟现实显示器、增强现实显示器、混合现实显示器、电视显示器、台式机显示器、膝上型计算机显示器、平板显示器、移动电话显示器和手持游戏显示器)兼容。

在图1中,用户100经由游戏控制器128向计算系统102提供用户输入以控制虚拟化身110。例如,用户100可移动游戏控制器128上的操纵杆以改变虚拟化身110在虚拟环境中的位置。作为另一示例,用户100可以拉动游戏控制器128上的扳机以射击虚拟枪支112。用户100可以经由实际上任何类型的输入设备来提供任何合适的用户输入,以控制虚拟化身110和/或虚拟环境的其他方面。在一些实现中,用户100可以可任选地经由计算系统102来提供至少一些用户输入。例如,计算系统102可包括跟踪用户头部的位置/移动的一个或多个运动传感器,并且视野106可基于用户的头部的移动(例如,旋转、平移)来改变虚拟环境108内的位置。

用户100可以经由与计算系统102处于通信的多个触觉设备来接收模拟虚拟环境108中的虚拟力的力反馈。在所描绘的示例中,用户100正穿着触觉背心130,其包括布置在用户躯干的前、后和侧面的多个振动组件。用户100正穿着触觉鞋132和134。每个触觉鞋132/134在该鞋的鞋底中包括振动组件。游戏控制器128在该游戏控制器的每个手柄部分中包括震动电机。头戴式计算系统102包括位于用户头部每一侧上的振动组件。如以下进一步详细讨论的,这些触觉设备可以由计算系统102来控制,以基于对虚拟环境108的三维(3d)空间中的触觉信号的触觉响应的动态映射来提供空间化力反馈。此类触觉信号可以从虚拟环境108中的各种不同的触觉源发射。

任何合适类型的触觉设备可以由计算系统102来控制以提供空间化力反馈。不同类型的触觉设备的非限制性示例包括具有振动组件、力反馈电机、螺线管、电阻/制动组件、和/或空气涡流环/气压组件的设备。一些触觉设备可由用户持有。一些触觉设备可由用户佩戴。一些触觉设备可被合并到家具(例如,摇椅、混合现实弹球机)中。一些触觉设备可被合并到现实世界的空间(例如,振动地板、墙壁)中。

图2示意性地示出了其中可由图1的计算系统102执行的游戏引擎200控制图1的多个触觉设备以提供模拟虚拟环境108中的虚拟力的空间化力反馈的示例场景。图2包括在图1的视野106中可视地呈现的虚拟环境108的一部分的俯视图。注意,该俯视图仅供参考,并且未按比例绘制。

游戏引擎200可被配置成生成包括图1的视野106中所示的所有不同的虚拟对象和环境特征的虚拟环境108。游戏引擎200可被配置成实例化一个或多个虚拟触觉源202(例如,202a、202b、202c、202d)。虚拟触觉源202可以表示在虚拟环境108中发射虚拟力的虚拟环境108中的虚拟对象和/或事件。虚拟触觉源202被配置成将此类虚拟力编码为可由所有触觉接收机接收和转换的通用触觉信号。如本文所述,触觉信号的发射和传输是虚拟的,并且可以按任何合适的方式来实现。作为一个示例,触觉源可被配置成将触觉信号作为数据传递到一个或多个数据存储位置和/或下游计算过程。在一些实现中,触觉接收机可被编程为订阅满足一个或多个准则(例如,在范围中、兼容触觉)的每一个触觉源,并且虚拟触觉源可被配置成向所有订阅的触觉接收机传递触觉信号。

图3示意性地示出了可由游戏引擎200实例化的示例虚拟触觉源202的表示。虚拟触觉源202包括虚拟触觉源在虚拟环境108中的虚拟位置300。虚拟位置300可采取任何合适的形式。例如,虚拟位置300可包括3d空间中的虚拟坐标集(例如,x、y、z坐标)。在一些示例中,虚拟位置300可包括六个自由度(6dof)上的姿态。

虚拟触觉源202可被配置成虚拟地发射由触觉参数集304定义的触觉信号302。例如,触觉参数集304可包括从虚拟触觉源202发射触觉信号302的开始时间306。在虚拟触觉源是事件(例如,爆炸)的情形中,开始时间306可以是特定时刻。在虚拟触觉源连续发射触觉信号的情形中,开始时间306可被列为连续的。触觉参数集304可包括从虚拟触觉源202发射触觉信号的历时308。当该历时期满时,触觉信号可以停止。再次,在虚拟触觉源连续发射触觉信号的情形中,历时308可被列为连续的。触觉参数集304可包括信号波类型310。不同触觉信号波类型的非限制性示例包括方波、正弦波、锯齿波和恒定强度的波。触觉参数集304可包括触觉信号302的频率312和幅度314。注意,这些触觉参数以及因此触觉信号可随时间变化。触觉参数集304可包括强度随距离变化的滚降(roll-off)曲线316。例如,滚降曲线可规定触觉信号的幅度随着触觉信号302远离虚拟触觉源行进而以指定的速率衰减。滚降曲线316可规定触觉信号302随着其行进通过虚拟环境108的任何合适的行为。触觉参数集304是作为示例提供的,并且触觉信号302可由任何合适的触觉参数来表征。

虚拟触觉源可以按任何合适的方式发射触觉信号。在一些示例中,虚拟触觉源可以连续地发射触觉信号。在一些示例中,虚拟触觉源可以周期性地发射触觉信号。在一些示例中,触觉源可以响应于在虚拟环境108中发生的事件或交互而发射触觉信号。在一些情形中,触觉信号302可以是全向的。在一些情形中,触觉信号可以是单向的。在一些情形中,触觉信号302可以在特定方向或范围或多个方向上具有更高的幅度或强度。一般而言,触觉参数可被用于控制触觉信号的这些和其他特征。

在一些实现中,虚拟触觉源和/或触觉信号可以与游戏代码中的声音效果相关联。换言之,游戏引擎200可被配置成分析游戏代码中的声音效果,以标识具有对应的触觉效果的声音效果,并且实例化针对所标识的触觉效果的虚拟触觉源。

返回到图2,在所描绘的示例中,游戏引擎200实例化多个虚拟触觉源202,包括与虚拟飞机122相对应的虚拟触觉源202a、与虚拟机库116的虚拟爆炸124相对应的虚拟触觉源202b、与虚拟坦克120相对应的虚拟触觉源202c、以及与虚拟建筑物118的虚拟爆炸相对应的虚拟触觉源202d。每个虚拟触觉源202在虚拟环境108中具有不同的虚拟位置300,触觉信号302从该虚拟位置300发源并发射。虚拟触觉源202a发射模拟由虚拟飞机122产生的虚拟力(诸如从引擎和推进器发射的推力和振动)的触觉信号302a。虚拟触觉源202b发射模拟由虚拟爆炸124产生的虚拟力(诸如冲击力)的触觉信号302b。虚拟触觉源202c发射模拟由虚拟坦克120产生的虚拟力(诸如从引擎和踏板发射的振动以及在枪支发射子弹时的冲击力)的触觉信号302c。虚拟触觉源202d发射模拟由虚拟爆炸126产生的虚拟力(诸如冲击力)的触觉信号302d。

游戏引擎200可被配置成实例化针对与计算系统102处于通信并且由游戏引擎200识别的每个触觉设备的虚拟触觉接收机206(例如,206a、206b、206c、206d、202e)。每个虚拟触觉接收机206可被配置成基于从虚拟环境108中的一个或多个虚拟触觉源202接收到的触觉信号302来控制在相关联的触觉设备上的空间力反馈。在一个示例中,游戏引擎200可被编程以使得可以通过接口或使用json或xml中的基本数据结构来添加可提供触觉反馈的每种不同类型的触觉设备。以此方式,游戏引擎可以是可扩展的,并且当新类型的触觉设备被创建并且用于增强与虚拟环境的交互时,新类型的虚拟触觉接收机可被添加。在一些实现中,可用触觉设备可被配置成向游戏引擎注册,并且游戏引擎可被配置成实例化针对每个经注册的触觉设备的虚拟触觉接收机。

图4示意性地示出了可由游戏引擎200针对触觉设备408实例化的示例虚拟触觉接收机206的表示。虚拟触觉接收机206可具有虚拟环境108中的虚拟位置400。在一些示例中,虚拟触觉接收机206的虚拟位置400可以相对于表示用户100的虚拟化身110的虚拟位置(例如,中心点(0,0,0))来布置。此外,在一些示例中,虚拟触觉接收机206的虚拟位置400可被布置成使得虚拟位置在空间上被注册到用户100所佩戴的触觉设备的现实世界位置。在一些此类示例中,触觉设备的现实世界位置可被跟踪,并且对应的虚拟触觉接收机可随着触觉设备在现实世界中移动而在虚拟环境108中移动。例如,当用户用右手握住游戏控制器时,虚拟触觉接收机可位于虚拟化身的右侧,而当用户用左手握住游戏控制器时,虚拟触觉接收机可位于虚拟化身的左侧。在一些实现中,虚拟位置可以基于触觉设备的类型来推断。例如,与一双虚拟鞋相对应的虚拟触觉接收机的虚拟位置可被推断为处于化身的虚拟脚处。

虚拟触觉接收机206可包括转换逻辑402,该转换逻辑402被配置成将接收到的触觉信号302转换成可用于控制触觉设备408上的力反馈的触觉设备指令406。在一些示例中,转换逻辑402可被配置成识别该类型的触觉设备408的能力,并且将接收到的触觉信号302转换成采用可由触觉设备408识别的格式的因设备而异的指令406。

在一些示例中,触觉设备408可包括基于触觉设备指令406来控制的单个触觉元件410(例如,振动器、力反馈电机、螺线管)。在一些示例中,触觉设备408可包括多个触觉元件410,并且触觉设备指令406可基于接收到的触觉信号来针对多个不同的触觉元件410中的每一者指定特定和/或不同的操作。例如,游戏控制器128可包括左侧的力反馈电机和右侧的力反馈电机,并且针对游戏控制器128的触觉设备指令406可基于触觉信号302源自虚拟化身110的左侧来指定操作左侧电机而不操作右侧电机。在另一示例中,触觉设备指令406可基于触觉信号302源自虚拟化身110的左侧来指定以比右侧电机更大的强度来操作左侧电机。在另一示例中,触觉设备指令406可指定以相同方式来操作两个电机。在其他实现中,每个单独的电机可具有不同的实例化触觉接收机。一般而言,转换逻辑402被编程以为特定类型的触觉设备408的力反馈能力定制触觉设备指令406。如此,虚拟触觉接收机用作针对一般编码为兼容的触觉信号的各种各样的不同触觉体验的通用转换器。如此,通过对被配置成将通用触觉信号转换成因设备而异的指令的触觉接收机进行编程,可以使任何触觉设备与所有触觉信号完全兼容。

在一些实现中,转换逻辑402可被配置成忽略与触觉设备408不兼容的触觉信号302。例如,包括仅能够采取伸展姿势或缩回姿势(例如,以模拟枪支的后坐力)的螺线管的触觉设备可能无法模拟某些类型的触觉波(诸如锯齿波或正弦波)。如此,针对包括螺线管的触觉设备实例化的虚拟触觉接收机可以忽略此类触觉信号。

每个实例化虚拟触觉接收机206可被配置成从虚拟环境108中的每个虚拟触觉源202接收虚拟触觉源202的触觉信号302。虚拟触觉接收机206可被配置成基于转换逻辑402来将与触觉设备408兼容的每个接收到的触觉信号302转换成触觉设备指令406。

在一些示例中,虚拟触觉接收机206可以同时从两个或更多个不同的虚拟触觉源202接收两个或更多个触觉信号302。虚拟触觉接收机206可被配置成将来自两个或更多个不同触觉源的两个或更多个同时接收到的触觉信号转换成一个或多个触觉设备指令406。在一些示例中,转换逻辑402可以将两个或更多个同时接收到的触觉信号302混合成触觉设备指令406。例如,该指令可以编码具有为同时接收到的触觉信号的幅度之和的幅度的触觉响应。例如,该场景可以是作为同时发生两个虚拟爆炸的结果而发生的。在另一示例中,转换逻辑可以组合两种不同类型的触觉信号波(例如,组合方波和锯齿波)。例如,该场景可以是由于在乘在移动的虚拟车辆上时发射虚拟机枪而导致的。在一些示例中,转换逻辑402可以分开地转换每个触觉信号。

虚拟触觉接收机206可被配置成经由计算系统102的通信接口来向触觉设备408发送触觉设备指令406,并且触觉设备408可基于触觉设备指令406经由触觉元件410来提供力反馈。

返回到图2,在所描绘的示例中,虚拟触觉接收机206中的每一者从多个虚拟触觉源202接收触觉信号302。在一些示例中,游戏引擎200可被配置成至少基于虚拟触觉源202的虚拟位置300和虚拟触觉接收机206的虚拟位置400来不同地调整传达给每个虚拟触觉接收机206的触觉信号302。例如,调整触觉信号302可包括根据虚拟触觉源202与虚拟触觉接收机206之间的距离来衰减触觉信号302。在所描绘的场景中,传达给虚拟触觉接收机206b的触觉信号302d可具有比传达给虚拟触觉接收机206c的触觉信号302d更大的强度,因为虚拟触觉接收机206b的虚拟位置与虚拟爆炸126的虚拟位置之间的距离短于虚拟触觉接收机206c的虚拟位置与虚拟爆炸126的虚拟位置之间的距离。换言之,左触觉鞋132可以按比右触觉鞋134稍大的强度振动,因为左触觉鞋132更靠近虚拟爆炸126。

在另一示例中,调整触觉信号302可包括根据虚拟触觉源202与虚拟触觉接收机206中间的虚拟对象来减小触觉信号302。在所描绘的场景中,传达给虚拟触觉接收机206a的触觉信号302b可基于虚拟沙袋掩体114来减小,因为虚拟沙袋掩体114位于虚拟爆炸124与虚拟触觉接收机206a中间。换言之,用户可能感觉到较小的爆炸的冲击力,因为虚拟化身躲在沙袋掩体后面。

游戏引擎200可以按任何合适的方式基于中间虚拟对象来调整触觉信号。在一个示例中,虚拟环境108中的每个虚拟对象可被指派特定的触觉衰减值,该触觉衰减值可被用于调整与该虚拟对象相交的触觉信号。例如,密度较大的虚拟对象(例如,金属、沙子)可具有较高的衰减值,而密度较小的虚拟对象(例如,木材)可具有较低的衰减值。

在一些示例中,游戏引擎200可被配置成至少基于表征触觉信号302的触觉参数集304来不同地调整传达给每个虚拟触觉接收机206的触觉信号302。例如,触觉信号的强度随距离变化的滚降曲线可指定在信号强度开始滚降之前的阈值距离内的虚拟触觉接收机可接收具有较大强度的触觉信号,而超过阈值距离的虚拟触觉接收机可接收具有较低强度的触觉信号。一些虚拟触觉接收机的距离可能足够远,以使得触觉信号对虚拟触觉接收机几乎没有或没有触觉影响。在所描绘的场景中,多个虚拟触觉接收机206可被定位成足够接近虚拟爆炸124、虚拟坦克120和虚拟爆炸126,以处于触觉信号302b、302c和302d的滚降曲线的有效区域内。如此,触觉信号302b、302c和302d可以提供不同的触觉设备上的可感知的力反馈。另一方面,与虚拟飞机122相对应的虚拟触觉源202a可以离开多个虚拟触觉接收机206足够远,使得触觉信号302a的强度基于滚降曲线减小到触觉信号302a不提供触觉设备上的可感知的力反馈的点。

在一些示例中,游戏引擎200可被配置成至少基于虚拟触觉源202的虚拟位置300、虚拟触觉接收机206的虚拟位置400以及表征触觉信号302的触觉参数集304来不同地调整传达给每个虚拟触觉接收机206的触觉信号302。

在一些示例中,不同的虚拟触觉接收机206可基于与这些不同的虚拟触觉接收机相关联的不同类型的触觉设备来不同地转换接收到的触觉信号302。例如,从虚拟爆炸126发射并且由针对左触觉鞋132实例化的虚拟触觉接收机206b接收到的触觉信号302d可被转换成使左触觉鞋132的振动组件振动的指令。同时,针对触觉背心130实例化的虚拟触觉接收机206e可将触觉信号302d转换成以较高的强度转动位于背心的前面的力反馈电机并且以较低的强度转动位于背心的后面的力反馈电机的指令。在该示例中,触觉设备指令因触觉设备的类型而异。例如,如果针对触觉鞋转换的触觉设备指令替代地被发送给触觉背心,则该触觉背心将无法按预期起作用,并且可能根本不起作用。

图5示出了其中不同的现实世界用户正利用触觉设备在共享虚拟环境中玩多玩家视频游戏的另一示例场景。游戏引擎500被配置成生成包括正持有第一虚拟枪支506a的第一虚拟化身504a的虚拟环境502。虚拟环境502进一步包括正持有第二虚拟枪支506b的第二虚拟化身504b。虚拟环境502附加地包括虚拟爆炸506c。游戏引擎500被配置成实例化多个虚拟触觉源508。虚拟触觉源508a对应于第一虚拟枪支506a,虚拟触觉源508b对应于第二虚拟枪支506b,并且虚拟触觉源508c对应于虚拟爆炸506c。虚拟触觉源508中的每一者具有虚拟环境502中的虚拟位置,并且发射由触觉参数集表征的触觉信号510。第一虚拟枪支506a在枪支发射子弹时发射触觉信号510a,第二虚拟枪支506b在枪支发射子弹时发射触觉信号510b,并且虚拟爆炸506c发射触觉信号510c。

游戏引擎500被配置成实例化多个虚拟触觉接收机512。虚拟触觉接收机512a对应于由第一玩家持有的游戏控制器516a,而虚拟触觉接收机512b对应于由第二玩家持有的游戏控制器516b。每个虚拟触觉接收机512可具有虚拟环境502中的不同虚拟位置。每个虚拟触觉接收机512被配置成从虚拟触觉源508接收触觉信号510;将触觉信号510转换成触觉设备指令514;以及向游戏控制器516发送触觉设备指令514。

在所描绘的场景中,不同的玩家可基于从不同的虚拟触觉源508发射的触觉信号510经由游戏控制器516来接收不同的力反馈。例如,游戏控制器516a可基于虚拟爆炸506c向第一玩家提供比由游戏控制器516b向第二玩家提供的力反馈强度更小的力反馈,因为虚拟触觉接收机512b比虚拟触觉接收机512a更靠近虚拟爆炸506c。在另一示例中,由于虚拟枪支506a发射子弹而导致的触觉信号510a可产生由第一玩家感知的力反馈。然而,第二玩家可能未从触觉信号510a接收到任何可感知的力反馈,因为虚拟触觉接收机512b可能离开虚拟触觉源508a足够远,以使得触觉信号510a的滚降曲线减小到不可感知的水平。

该多玩家示例可被扩展为包括任何合适数目的不同玩家使用任何合适数目的不同触觉设备,因为游戏引擎被配置成针对每个触觉设备实例化不同的虚拟触觉接收机。

图6示出了用于控制一个或多个触觉设备上的空间化力反馈的示例方法600。

例如,方法600可由图1的计算系统102、图8的计算系统800以及任何其他合适的计算系统来执行。

在602,方法600包括:经由通信接口来建立与该一个或多个触觉设备的通信。在604,方法600包括:实例化一个或多个虚拟触觉源。每个虚拟触觉源可具有虚拟环境中的虚拟位置,并且可被配置成发射由触觉参数集表征的触觉信号。在606,方法600包括:对于该一个或多个触觉设备中的每一者,实例化具有该虚拟环境中的虚拟位置并且包括转换逻辑的虚拟触觉接收机,该转换逻辑被配置成将接收到的触觉信号转换成可用于控制该触觉设备上的力反馈的触觉设备指令。

在一些实现中,在608,方法600可任选地可包括:至少基于该虚拟触觉源的虚拟位置和该虚拟触觉接收机的虚拟位置来调整传达给该虚拟触觉接收机的触觉信号。例如,调整触觉信号可包括根据虚拟触觉源与虚拟触觉接收机之间的距离来衰减触觉信号。在另一示例中,调整触觉信号可包括根据虚拟触觉源与虚拟触觉接收机中间的虚拟对象来减小触觉信号。在一些实现中,在610,方法600可任选地可包括:至少基于该触觉参数集来调整传达给该虚拟触觉接收机的触觉信号。在一些实现中,在612,方法600可任选地可包括:至少基于该虚拟触觉源的虚拟位置、该虚拟触觉接收机的虚拟位置和该触觉参数集来调整传达给该虚拟触觉接收机的触觉信号。

图7示出了可由每个实例化虚拟触觉接收机(例如,在图6的方法600的步骤606处实例化的虚拟触觉接收机)来执行的示例触觉信号转换方法700。在702,方法700包括:从一个或多个虚拟触觉源中的每一者接收该虚拟触觉源的触觉信号。在一些实现中,在704,方法700可任选地可包括:忽略与对应于该虚拟触觉接收机的触觉设备不兼容的触觉信号。在706,方法700包括:基于转换逻辑来将接收到的触觉信号转换成触觉设备指令。在708处,方法700包括:经由通信接口向该触觉设备发送该触觉设备指令。在一些示例中,每个虚拟触觉接收机可以针对从每个虚拟触觉源接收到的每个触觉信号执行方法700。

在一些实现中,本文中所描述的方法和过程可以与一个或多个计算设备的计算系统绑定。在一些实施例中,本文中所描述的方法和过程可以与一个或多个计算设备的计算系统绑定。

图8示意性地示出了可执行上述方法和过程中的一个或多个的计算系统800的非限制性实现。以简化形式示出了计算系统800。计算系统800可采取以下形式:一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、虚拟现实设备、增强现实设备、触觉设备和/或其他计算设备。

计算系统800包括逻辑机802和存储机804。计算系统800可任选地包括显示子系统806、输入子系统808、通信子系统810和/或在图8中未示出的其他组件。

逻辑机802包括被配置成执行指令的一个或多个物理设备。例如,逻辑机802可被配置成执行作为以下各项的一部分的指令:一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其他逻辑构造。此类指令可被实现以执行任务、实现数据类型、变换一个或多个组件的状态、实现技术效果、或以其他方式得到期望的结果。

逻辑机802可以包括被配置成执行软件指令的一个或多个处理器。附加地或替代地,逻辑机802可以包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机。逻辑机802的处理器可以是单核的或多核的,并且其上所执行的指令可以被配置成用于串行、并行和/或分布式处理。逻辑机802的各个个体组件可任选地分布在两个或更多个分开的设备之间,这些设备可以位于远程以及/或者被配置成用于协同处理。逻辑机802的各方面可以通过按云计算配置被配置的可远程访问的、联网计算设备来被虚拟化和执行。

存储机804包括被配置成保持可由逻辑机802执行的指令以实现本文中所描述的方法和过程的一个或多个物理设备。当实现这些方法和过程时,可以变换存储机804的状态-例如,以保持不同的数据。

存储机804可包括可移除和/或内置设备。存储机804可包括光学存储器(例如,cd、dvd、hd-dvd、蓝光盘等)、半导体存储器(例如,ram、eprom、eeprom等)、和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、mram等),等等。存储机804可包括易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、和/或内容可寻址设备。

将理解,存储机804包括一个或多个物理设备。然而,本文中所描述的指令的各方面可替代地通过不被物理设备保持达有限历时的通信介质(例如,电磁信号、光信号等)来传播。

逻辑机802和存储机804的各方面可被一起集成到一个或多个硬件逻辑组件中。此类硬件逻辑组件可包括例如现场可编程门阵列(fpga)、程序和应用专用集成电路(pasic/asic)、程序和应用专用标准产品(pssp/assp)、片上系统(soc),以及复杂可编程逻辑器件(cpld)。

术语“程序”和“引擎”可被用来描述计算系统800的被实现为执行特定功能的方面。在一些情形中,可经由执行存储机804所保持的指令的逻辑机802来实例化程序或引擎。将理解,不同的程序和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、api、函数等实例化。类似地,相同的程序和/或引擎可由不同的应用、服务、代码块、对象、例程、api、功能等来实例化。术语“模块”、“程序”和“引擎”可涵盖单个或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。

当显示子系统806时被包括时,显示子系统806可被用来呈现由存储机804保持的数据的视觉表示。该视觉表示可采取图形用户界面(gui)的形式。由于本文中所描述的方法和过程改变了由存储机保持的数据,并因而变换了存储机的状态,因此同样可以变换显示子系统806的状态以视觉地表示底层数据中的改变。显示子系统806可包括利用实质上任何类型的技术的一个或多个显示设备。可将此类显示设备与逻辑机802和/或存储机804组合在共享封装中,或者此类显示设备可以是外围显示设备。

当包括输入子系统808时,输入子系统808可包括诸如键盘、鼠标、触摸屏、或游戏控制器之类的一个或多个用户输入设备或者与上述用户输入设备对接。输入子系统808可包括诸如游戏控制器、空气涡流机、触觉反馈头盔、触觉反馈背心、触觉反馈鞋和其他触觉反馈服装之类的一个或多个触觉设备或者与上述触觉设备对接。在一些实现中,输入子系统可以包括所选择的自然用户输入(nui)部件或与其对接。此类部件可以是集成的或外围的,并且输入动作的换能和/或处理可以在板上或板外被处置。示例nui部件可包括用于语音和/或话音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体、和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计、和/或陀螺仪;以及用于评估脑部活动的电场感测部件。输入子系统808可包括被配置成建立与一个或多个输入设备的通信的任何合适的硬件部件。例如,输入子系统808可包括被配置成与输入设备和触觉设备进行通信的有线或无线(例如,蓝牙、wi-fi)通信信道。输入子系统可以是通信接口的示例。

当包括通信子系统810时,通信子系统810可被配置成将计算系统800与一个或多个其他计算设备通信地耦合。通信子系统810可包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统810可被配置成用于经由无线电话网络或者有线或无线局域网或广域网来进行通信。在一些实现中,通信子系统810可允许计算系统800经由诸如因特网之类的网络将消息发送至其他设备以及/或者从其它设备接收消息。

在一示例中,一种用于控制一个或多个触觉设备上的空间化力反馈的方法,包括:经由通信接口来建立与该一个或多个触觉设备的通信;实例化一个或多个虚拟触觉源,每个虚拟触觉源具有虚拟环境中的虚拟位置并且被配置成发射由触觉参数集表征的触觉信号;以及对于该一个或多个触觉设备中的每一者,实例化具有虚拟环境中的虚拟位置和转换逻辑的虚拟触觉接收机,该转换逻辑被配置成将触觉信号转换成可用于控制该触觉设备上的力反馈的触觉设备指令。虚拟触觉接收机被配置成:从一个或多个虚拟触觉源中的每一者接收该虚拟触觉源的触觉信号;基于转换逻辑来将接收到的触觉信号转换成触觉设备指令;以及经由通信接口来向触觉设备发送该触觉设备指令。在该示例和/或其他示例中,该方法可任选地可进一步包括:至少基于虚拟触觉源的虚拟位置和虚拟触觉接收机的虚拟位置来调整传达给该虚拟触觉接收机的触觉信号。在该示例和/或其他示例中,调整触觉信号可任选地可包括:根据虚拟触觉源与虚拟触觉接收机之间的距离来衰减触觉信号。在该示例和/或其他示例中,调整触觉信号可任选地可包括:根据虚拟触觉源与虚拟触觉接收机中间的虚拟对象来衰减触觉信号。在该示例和/或其他示例中,该方法可任选地可进一步包括:至少基于触觉参数集来调整传达给虚拟触觉接收机的触觉信号。在该示例和/或其他示例中,该方法可任选地可进一步包括:至少基于虚拟触觉源的虚拟位置、虚拟触觉接收机的虚拟位置和触觉参数集来调整传达给该虚拟触觉接收机的触觉信号。在该示例和/或其他示例中,虚拟触觉接收机可任选地可被配置成转换来自两个或更多个不同触觉源的两个或更多个同时接收到的触觉信号。在该示例和/或其他示例中,转换逻辑可任选地可被配置成忽略与触觉设备不兼容的触觉信号。在该示例和/或其他示例中,参数集可任选地可至少包括触觉信号的开始时间。在该示例和/或其他示例中,参数集可任选地可至少包括触觉信号的波类型。在该示例和/或其他示例中,参数集可任选地可至少包括触觉信号的频率。在该示例和/或其他示例中,参数集可任选地可至少包括触觉信号的幅度。在该示例和/或其他示例中,参数集可任选地可至少包括触觉信号的强度随距离变化的滚降曲线。在该示例和/或其他示例中,参数集可任选地可至少包括触觉信号的历时。在该示例和/或其他示例中,该一个或多个触觉设备可任选地可包括由用户使用的多个触觉设备,该用户或用户化身可具有虚拟环境中的虚拟位置,并且针对该多个触觉设备实例化的虚拟触觉接收机的虚拟位置可相对于用户或用户化身的虚拟位置来布置。在该示例和/或其他示例中,多个触觉设备可任选地可包括具有不同触觉反馈能力的多种不同类型的触觉设备。在该示例和/或其他示例中,该一个或多个触觉设备可包括由多个不同用户使用的多个触觉设备。在该示例和/或其他示例中,触觉设备指令可以是采用可由触觉设备识别的格式的因设备而异的指令。

在一示例中,一种计算系统,包括:通信接口,该通信接口被配置成与一个或多个触觉设备通信;逻辑机;以及存储机,该存储机保持能由该逻辑机执行以进行以下操作的指令:实例化一个或多个虚拟触觉源,每个虚拟触觉源具有虚拟环境中的虚拟位置并且被配置成发射由触觉参数集表征的触觉信号;对于该一个或多个触觉设备中的每一者,实例化具有虚拟环境中的虚拟位置和转换逻辑的虚拟触觉接收机,该转换逻辑被配置成将触觉信号转换成可用于控制该触觉设备上的力反馈的触觉设备指令。虚拟触觉接收机被配置成:从一个或多个虚拟触觉源中的每一者接收该虚拟触觉源的触觉信号;基于转换逻辑来将接收到的触觉信号转换成触觉设备指令;以及经由通信接口来向触觉设备发送该触觉设备指令。

在一示例中,一种用于控制一个或多个触觉设备上的空间化力反馈的方法,包括:经由通信接口来建立与该一个或多个触觉设备的通信;实例化一个或多个虚拟触觉源,每个虚拟触觉源具有虚拟环境中的虚拟位置并且被配置成发射由触觉参数集表征的触觉信号;以及对于该一个或多个触觉设备中的每一者,实例化具有虚拟环境中的虚拟位置和转换逻辑的虚拟触觉接收机,该转换逻辑被配置成将触觉信号转换成可用于控制该触觉设备上的力反馈的触觉设备指令。虚拟触觉接收机被配置成:从一个或多个虚拟触觉源中的每一者接收该虚拟触觉源的触觉信号,接收到的触觉信号至少基于该虚拟触觉源的虚拟位置、虚拟触觉接收机的虚拟位置和触觉参数集;基于转换逻辑来将接收到的触觉信号转换成触觉设备指令;以及经由通信接口来向触觉设备发送该触觉设备指令。

将会理解,本文中所描述的配置和/或办法本质是示例性的,并且这些具体实现或示例不应被视为是限制性的,因为许多变体是可能的。本文中所描述的具体例程或方法可表示任何数目的处理策略中的一个或多个。由此,所解说和/或所描述的各种动作可以以所解说和/或所描述的顺序执行、以其他顺序执行、并行地执行,或者被省略。同样,以上所描述的过程的次序可被改变。

本公开的主题包括各种过程、系统和配置以及此处公开的其他特征、功能、动作和/或属性、以及它们的任一和全部等价物的所有新颖且非显而易见的组合和子组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1