虚拟环境中的虚拟传感器的制作方法

文档序号:13742722阅读:346来源:国知局
技术领域一个实施例涉及虚拟传感器。更具体地,一个实施例涉及在虚拟环境中用于触觉生成的虚拟传感器。

背景技术:
传感器触觉可以用来快速和逼真地生成触觉效果。例如,传感器可被添加到真实世界的对象上,并收集关于这些对象如何在其环境中进行交互的物理机制的数据。传感器数据可以用来创作触觉效果,以伴随拍摄的或创作的环境,这些环境具有与那些用传感器数据捕捉到的交互类似的交互。触觉设计者可以基于传感器数据开发用于在一个或多个触觉输出设备上回放的触觉信息。在创作的环境中,像三维(“3D”)动画电影或展示、或3D场景游戏,触觉设计者可以在开发触觉效果时加入传感器数据。使用传感器数据连同触觉设计者的专业技能和经验,可以确定触觉效果。触觉设计者可以创建触觉轨道,当在触觉输出设备上播放该轨道时,该轨道将产生触觉效果。

技术实现要素:
一个实施例是用于在虚拟环境中用环境特性、虚拟对象和对象特性信息生成触觉效果的系统。程序化的虚拟传感器被放置在虚拟环境中的虚拟对象上。用于该虚拟环境的呈现引擎呈现该虚拟环境。用于虚拟传感器的模块接收虚拟传感器数据,该虚拟传感器数据包括该传感器的地点和时间,并且该模块计算包括用于该虚拟传感器的加速度数据和对象交互数据的传感器输出数据。触觉轨道发生器基于该传感器输出数据生成触觉轨道。附图说明图1是根据实施例的计算机服务器/系统的框图。图2是根据一个实施例的使用虚拟传感器来生成触觉效果的系统的流程图。图3是根据一个实施例的使用虚拟对象信息来生成虚拟环境中的触觉效果的系统的流程图。图4是根据一个实施例的使用虚拟对象信息或传感器来生成虚拟环境中的触觉效果的系统的流程图。图5是根据一个实施例的使用虚拟对象信息或传感器来生成虚拟环境中的触觉效果的系统的流程图。图6是根据一个实施例的使用虚拟对象信息或传感器和已有的触觉效果信息来修改虚拟环境中的已有的触觉效果的系统的流程图。图7是根据一个实施例的在虚拟环境中碰撞的两个对象的图示。具体实施方式实施例允许设计者在创作环境中放置一个或多个虚拟传感器,而不是实际的传感器。这些虚拟传感器可以收集环境内的数据,并使用所收集的数据生成触觉轨道,以用于在触觉设备上回放或用于进一步编辑。在一些实施例中,已有的触觉效果轨道可以被修改,以提供增强的触觉回放信息。在视频游戏或其它虚拟环境中使用虚拟传感器在物理引擎级别的自动触觉效果生成可以提供由空间化引擎更改的触觉效果的另一层复杂性。此外,虚拟传感器可以在实时呈现的环境(或运行时间)中实时生成全新的触觉效果,或用于稍后在所产出的呈现的环境中回放。实施例还包括运行对象和环境的计算机仿真的应用。其它用途还包括电影动画,比如3D动画电影长片。由于动画电影中的每个动作都必须在创作工具或框架内被设计,根据实施例来仿真传感器以检测碰撞或物理性质使得触觉轨道的自动生成能够减少或消除创作一个触觉轨道的需求。图1是根据实施例的计算机服务器/系统10的框图。尽管示出为单个系统,但是系统10的功能可以被实现为分布式系统。系统10包括用于传输信息的总线12或其它通信机构以及耦接到总线12以处理信息的处理器22。处理器22可以是任何类型的通用或专用处理器。系统10还包括用于存储信息和待由处理器22执行的指令的存储器14。存储器14可以包括以下各项的任何组合:随机存取存储器(“RAM”)、只读存储器(“ROM”)、诸如磁盘或光盘的静态存储装置或者任何其它类型的计算机可读介质。系统10还包括诸如网络接口卡的通信设备20以提供对网络的访问。因此,用户可以直接地或通过网络或任何其它已知的方法远程地来与系统10对接。计算机可读介质可以是可由处理器22访问的任何可用的介质,并且包括易失性介质和非易失性介质二者、可移除介质和不可移除介质二者以及通信介质。通信介质可以包括计算机可读指令、数据结构、程序模块或在诸如载波或其它输送机构的调制数据信号中的其它数据,并且包括任何信息递送介质。处理器22还经由总线12耦接到诸如液晶显示器(“LCD”)的显示器24。键盘26和诸如计算机鼠标的光标控制设备28还被耦接到总线12,以使用户能够与系统10对接。在一个实施例中,存储器14存储软件模块,该软件模块在由处理器22执行时提供功能。模块包括为系统10提供操作系统功能的操作系统15。模块还包括虚拟传感器控件16,该控件16提供和处理来自虚拟传感器19的数据,如以下更详细公开的那样。系统10可以是诸如触觉输出系统、触觉回放系统或触觉创建系统的更大的系统的一部分。因此,系统10通常会包括一个或多个附加的功能模块18以包括附加的功能。数据库17被耦接到总线12,以便为模块16和18提供集中式的存储以及存储一个或多个数据集以支持语境数据处理等。一些实施例可以不包括图1中的所有元件。触觉输出系统(未示出)可包括用于输出触觉效果的致动器或其它触觉输出设备。例如,致动器可以是任何类型的马达,包括但不限于:偏心旋转块(“ERM”)、线性谐振致动器振动马达(“LRA”)、压电马达或螺线管致动器。其它类型的触觉输出设备可以是非机械或非振动设备,比如使用静电摩擦(“ESF”)、超声表面摩擦(“USF”)的设备、使用超声触觉换能器引起声学辐射压力的设备、使用触觉基板和柔性或可形变的表面或形状变化设备并可被附接到用户的身体的设备、提供诸如使用空气喷嘴吹空气的投射触觉输出的设备、提供电的肌肉仿真的设备等。触觉输出设备可以被包含在诸如电话、平板或控制器的手持设备中、诸如带条、手套或服装物品的可穿戴设备中或者通过粘附的或机械的设备直接附接到用户的皮肤。触觉输出系统可以判断要播放哪些触觉效果以及基于高级别参数播放这些效果的次序。总体上,限定具体的触觉效果的高级别参数包括幅度、频率和持续时间。诸如流式马达命令的低级别参数也可用于确定具体的触觉效果。如果触觉效果包括在触觉效果被生成时的这些参数的一些变化或者基于用户的交互的这些参数的变化,则触觉效果可被看作“动态的”。图2是根据一个实施例的使用虚拟传感器来生成触觉效果的系统的流程图。在一个实施例中,图2(以及以下的图3-5)的流程图的功能由存储在存储器或其它计算机可读的或有形的介质中的软件来实现,并且由处理器执行。在其它实施例中,该功能可以由硬件(例如,通过使用专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”)等)或硬件和软件的任何组合执行。在205处,诸如虚拟传感器19的虚拟传感器被放置在虚拟环境中。虚拟环境可以是例如二维(“2D”)或3D视频游戏引擎、视频创作程序、3D建模环境或工作空间、虚拟现实环境等。虚拟传感器19可以被放置在虚拟环境中的对象上。虚拟传感器可以是基于插件的创作框架内的特殊对象。可以通过将该虚拟传感器拖放至它将被放置到的对象或位置来放置该虚拟传感器。在环境中的对象移动时,虚拟传感器也将移动,从而相对于该虚拟传感器被放置到的对象保持固定的地点。在一些实施例中,虚拟传感器19可以在创作软件环境中可见,而在呈现的软件环境中不可见。在210处,可以呈现虚拟环境。取决于环境的类型,该呈现可以被实时地完成(比如对于其中字符被控制器控制的视频游戏)或者可以被产出(比如对于带有计算机生成的交互式图形的电影)。在虚拟环境被呈现时,虚拟传感器19将根据脚本或根据来自控制器的输入围绕该环境移动。虚拟传感器19被放置在其上的对象可以在呈现过程中接触其它的虚拟对象,比如字符、墙壁、地板等。在215处,收集虚拟传感器数据。数据可以包括地点数据(比如在三个轴上的位置数据)、其它对象数据(尤其是来自在虚拟传感器的某种接近范围内的对象的对象数据)、时间数据(第四个轴)和诸如重力、温度等的环境数据。根据该数据,可以生成触觉效果。在220处,生成触觉效果。例如,如果诸如虚拟传感器19的虚拟传感器在一时间段内在一方向上移动,然后经一个短的时间段后改变方向或停止,则这可以被计算成急剧减速度,该减速度有资格作为特定类型的触觉效果。在一些实施例中,诸如虚拟传感器19的虚拟传感器可能已经与它的特定触觉效果相关联。例如,开发者可以把虚拟传感器放在将产生隆隆响的触觉效果的点处,并把另一虚拟传感器放在将产生戳的触觉效果的同一点(不同点)处等等。作为在220处生成触觉效果的一部分,虚拟传感器模块16可以使用环境中可用的其它信息来更具体地裁剪触觉效果。例如,在重力特性已经被设置成地球重力的三分之一的虚拟环境中,当传感器检测到向下运动中的变化时,触觉效果可以不那么剧烈,因为相比于具有地球重力的环境,在该环境中的重力加速度力更小。作为在该环境中可用的信息的类型的另一示例,地板可以具有粗糙的特性,并且紧密接近该地板移动的传感器可以被确定为在地板上“摩擦”,使得产生适当的触觉效果,以更逼真地模拟对着粗糙的表面摩擦的感觉。图3是根据一个实施例的使用虚拟对象信息来生成虚拟环境中的触觉效果的系统的流程图。除了诸如虚拟传感器19的虚拟传感器之外,虚拟环境中的对象还可以被设定为目标以变得类似于大的虚拟传感器,其中感测被跨整个对象启用。虚拟环境可以是2D或3D,并且被实时呈现或产出。在305处,用于虚拟环境的场景的全局触觉优先性可以被设置。这些优先性可以包括如上所讨论的那些环境特性,比如重力、湿度、空中对水中等等。这些特性可以经由软件中的触觉插件模块输入到创作环境中。在310处,虚拟环境中的模型或对象可以被选择。在315处,可以按照在310中选择的对象的参数启用触觉生成。对象中的其它参数可以包括任何类型的物理特性,比如重量、密度、材料(其可以基于预设)等。在320处,可以指定对象或交互的参数。例如,交互的参数可以包括对象的边缘监测,使得当对象的边缘接触另一对象的边缘时,触觉效果被生成。参数还可以指定触觉效果的强度可如何根据该两个对象之间的接触的所感知或所计算的强度而变化。在325处,在场景被呈现时指定在哪里保存或播放触觉效果的输出触觉轨道可以被识别。例如,如果像在视频游戏中那样呈现被实时完成,则触觉轨道可对应于触觉输出设备,或者如果该呈现产出视频文件,则触觉轨道可以是保存的格式,该保存的格式用于在触觉输出设备上回放触觉信息。在330处,可以指定场景中的触觉效果优先级。例如,某些类型的触觉效果可以在场景中具有优先性。隆隆响可以具有比按压感觉更低的优先级,使得如果对象的边缘接触另一对象,则按压可以与所伴随的隆隆声区分开地被感觉到。在另一示例中,可以根据与地板对象等的基本上恒定的接触来生成的触觉效果可以获得较低的优先级,因为根据这种接触的恒定的触觉效果可以减弱该场景中与其它接触相关地生成的效果。在利用诸如虚拟传感器19的虚拟传感器的实施例中,其中使用多个传感器,每一个传感器可以被分派不同的优先级,使得具有较低优先级的传感器可以生成较少的触觉效果,或者基于该虚拟传感器数据生成的触觉效果可以被削弱。在335处,呈现该场景。呈现可以是产出工作,比如对于其中呈现发生并被保存到视频文件的电影或电视节目,或者呈现可以来自实时呈现引擎,比如对于其中呈现被直接输出到视频显示器的视频游戏。在340处,基于在之前的流程中讨论的优先级和优先性生成触觉效果。在这里对象被检测到并贯穿整个场景被跟踪。对象边缘(或者如果适当的话,线框边缘点)可以贯穿整个场景被跟踪。可以基于贯穿整个场景对对象的跟踪和对象的移动来生成触觉效果。例如,一个算法可以跟踪第一对象上的线框边缘和第二对象上的线框边缘。该算法然后可以注意到第一对象边缘和第二对象边缘大致出现在X-Y-Z轴中的同一点内。该算法然后可以注意到,虽然在相同的接近范围内,第一对象边缘快速地加速离开第二对象边缘。该算法可以确定应当为该运动生成触觉效果。本领域技术人员可以开发用于基于对象(或虚拟传感器)的加速度和减速度、对象(或虚拟传感器)与其它对象的接近性以及环境因素来生成不同的触觉效果的算法。正如在真实世界模拟中的传感器,该算法将很大程度上基于在该场景中的地点和加速度。下面更详细地讨论这如何可以工作的一个示例。在345处,所生成的触觉被输出到指定的轨道。触觉效果可以在触觉输出设备上播放或者被保存到触觉回放文件。生成到特定触觉输出设备的触觉效果也可以被适当地保存到文件。如何能够在虚拟环境中使用图2和图3中的流程的一个示例是使用该环境中的虚拟橡胶球对象。该橡胶球可以使一组触觉特性与其相关联,该组触觉特性代表该球感觉起来会如何,比如弹力、纹理、握力、伸展性等,以及该球在标准重力下如何表现,比如与重量、质量、体积、密度、加速度等有关的特性。同样,在同一环境中的虚拟墙壁可以具有另一组触觉特性,该另一组触觉特性代表该墙壁感觉起来会如何以及在标准重力下如何表现,比如纹理、硬度、朝向等。基于该球与该墙壁的碰撞可以生成触觉效果。重力然后可以被改变,因此基于环境特性(即,重力)的该变化以及该球相对于该墙壁的运动的作为结果的任何变化(如果有的话),触觉效果也被改变。在如何能够在虚拟环境中使用图2和图3中的流程的另一示例中,游戏控制器可以包括在第一人称射击类型游戏中用来玩游戏的来复枪控制器。虚拟传感器可以在游戏中被放置在枪的枪托、手柄和扳机上和/或角色或虚拟化身的相应的肩、手和手指上。在游戏中开枪的物理性质,比如在枪开火时的反冲,可以被位于枪和角色上的虚拟传感器捕捉到。可以生成触觉效果,该触觉效果被发送到位于枪托、手柄和扳机处的控制器上的触觉输出设备以便给用户触觉反馈,而不需要特别地创作该触觉效果。图4是根据一个实施例的使用虚拟对象信息或传感器来生成虚拟环境中的触觉效果的系统的流程图。在405处,环境可以被生成或创建。该环境可以是3D游戏引擎、3D建模/动画平台、2D游戏引擎或者其中虚拟对象正在与其它虚拟对象交互的任何其它平台。在410处,可以设置环境特性和参数。该特性和参数可以包括模拟真实世界的特性,比如物理性质、维度、重力、辐射/放射等。在415处,可以在虚拟环境中创建或生成虚拟对象。在420处,虚拟对象可以具有被分派的对象特性和参数,包括模拟真实世界的特性,比如重量、弹力、质量、大小、辐射/发射等。在425处,包括虚拟对象的环境可以被运行或呈现。虚拟对象和环境知晓对象交互,比如碰撞检测、速度、运动、方向、朝向和视角。在使用诸如虚拟传感器19的虚拟传感器的实施例中,传感器可以用作实际的对象或关于对象的特定感兴趣的点的代理。在430处,作为用于对象和环境的呈现或运行处理的一部分,可以使用与呈现或运行该环境和对象有关的设置。设置可以包括诸如帧速率、分辨率、对象中的三角形数量等特性。在435处,可以使用触觉引擎来基于所呈现或运行的环境中的动作生成适当的触觉效果。该引擎可以被基于样式或其它选项的一个或多个算法驱动。例如,作为设置的一部分,场景的视角(例如观看者/玩家的视角或另一相机角度)可以被设置,这可以更改所生成的效果的类型。其它选项可以包括目标触觉平台和可选的触觉效果优先化引擎或混合器。在440处,基于对象或环境特性,触觉效果可以由435中的触觉引擎生成。例如,在呈现时,触觉的生成可以由场景的相机和被指定为在触觉效果的混合中留印记的元素的数量和优先级确定。在一些实施例中,触觉效果可以被呈现或者在呈现的同时被预览。在445处,触觉效果可以被输出为可编辑或可播放的格式。在运行时间(比如在玩游戏的过程中)、动画回放或者碰撞检测时,可以对能够呈现所生成的触觉效果的、诸如触觉输出设备的设备完成生成和输出。生成和输出可以被保存到存储触觉轨道的、类似于将特定音频元素隔离到一个轨道的音频子混合(stem)文件的文件中。可以使用图4的流程的一个示例是在虚拟游戏环境中,在该环境中特定的触觉效果可以被预先创作,但是环境的效果在游戏中动态生成,仿佛每个对象都配备了多个虚拟传感器。触觉效果可以被生成并被优先化引擎优先化,以确定是否会播放所生成的触觉效果或者该生成的触觉效果是否会被另一效果替代掉。触觉效果可以基于环境中的对象的动作(例如,确定表面强度、伸展性或纹理和相对于时间的地点(速度/加速度))和世界的特性(例如,重力、玩家的相对视角等)程序性地被生成。可以使用图4的流程的另一示例是在创建引擎电影(即,使用游戏引擎来创建和呈现动作的3D动画)的过程中的触觉效果的自动生成。可以使用图4的流程的另一示例是作为内容创建工具的一部分,该内容创建工具用于创建复杂的3D动画(比如被PixarTM用于其电影和短片的动画)。诸如碰撞检测的参数可以被全局地构建以便以音频文件的形式或者以触觉文件的形式被写入特定的轨道。替选地,可以使得单独的对象能够发射/生成特定的触觉效果,比如:使角色的脚/鞋能够基于与另一对象(比如地上的雪)的碰撞来生成效果。雪可以具有触觉特性,该触觉特性可以通过角色的冲击(impact)的速度、角度和大小进行修改。另一触觉特性可以是确定待生成的效果的优先级/重要性的值以及确定触觉轨道可以被写入何种文件的设置。在呈现动画时,触觉效果的生成可以进一步通过场景的相机角度和被指定为包括在触觉效果生成中的元素的数量和优先级来确定。在一些实施例中,取决于环境和相机角度,多个触觉轨道可以被输出。轨道可以基于在环境中使用的虚拟相机,以使得电影编辑器能够编辑原始的连续镜头,以在呈现最终剪辑时包括适当的触觉内容。图5是根据一个实施例的使用虚拟对象信息或传感器来在虚拟环境中生成触觉效果的系统的流程图。图5的流程包括关于为了生成触觉效果的目的而能够如何对虚拟对象之间的虚拟交互进行建模的附加细节。在505处,虚拟对象的特性被确定。对象特性可以包括像质量、重量、材料、加速度、密度、纹理等特性。在510处,第二对象、第三对象等的特性被确定,连同全局或环境特性一起。全局或环境特性可以包括诸如重力、光源/光强度、大气条件、对象的默认值等特性。在515处,基于对象和环境的特性,仿真环境中对象的物理性质。例如,碰撞检测可以确定在虚拟空间中的对象彼此接触时该对象的交互。应当注意到,物理引擎和碰撞检测算法是游戏和计算机生成的图形中的成熟技术。但是,在对象碰撞时单独的对象的物理性质可以确定适当的触觉响应。例如,如果对象之一是具有类似橡胶材料的设备,就像在现实生活中一样,橡胶会吸收冲击并减弱触觉响应。从物理性质方面描述,橡胶用于减小对象的加速度的绝对值,这进而减小碰撞的力。相比于与诸如保龄球的硬的对象的冲击,即便是具有相同质量的对象,碰撞的力也会更大,因为加速度的绝对值(或球减速到停止的速度)会更小。在520处,可以确定用于对象的物理交互的数值,比如冲击的强度、频率、上冲(attack)和衰退(decay)的值。例如,力等于质量乘以加速度(F=ma)。因此,强度的数值可以根据碰撞数据而得到。类似地,频率数值可以根据碰撞数据而得到。上冲和衰退可以根据碰撞数据和对象的比如每冲击面积的力的物理特性而得到。作为如何能够得到数值的示例,高的力值会导致高的冲击强度。高频率的冲击(比如两个对象沿着彼此滑动而快速创建大量冲击)或者低频率的冲击(比如上下弹动的球)可以影响所确定的触觉效果是否将针对高频或低频触觉输出设备(比如用于高频效果的LRA或压电致动器或者用于低频效果的ERM)。在525处,数值基于呈现设置被映射到触觉效果生成。呈现设置可以包括诸如在游戏中的实时呈现设置或者与基于产出的呈现相关联的设置。设置还可以包括期望的输出类型和/或可用的或作为目标的触觉输出设备。例如,触觉效果可以包括对目标类型的触觉输出设备的考虑,或者如果作为目标的触觉使能的设备是已知的(用户的智能电话或游戏系统的品牌/型号),则可以创建裁剪后的触觉效果/轨道。在一些实施例中,多个触觉轨道可以包括在特定于触觉使能的设备的类型的每一个轨道中的信息。数值到触觉效果的映射可以取决于可用的触觉输出设备,并且可以对碰撞冲击进行建模。例如,在已经对橡胶球撞击手部计算出数值后,该数值可以被映射到触觉效果。触觉效果可以包括用于一个或多个触觉输出设备的幅度、频率、持续时间和衰退速率。在530处,可以基于所生成的触觉效果和参数输出或呈现触觉信号(例如,实时输出、写入到触觉输出轨道等)。在535处,如果可应用的话,优先化选项可以在回放触觉效果时被应用到可用的触觉效果(或者被包括在触觉轨道中的优先化信息)。例如,在一些实施例中,触觉效果可以基于相机角度或其它环境因素而被更改。图6是根据一个实施例的使用虚拟对象信息或传感器和已有的触觉效果信息来修改虚拟环境中已有的触觉效果的系统的流程图。作为触觉效果创建的一部分,已有的所创作的触觉效果可以被更改。开发者可能更改所创作的触觉效果的一个理由是使该触觉效果更逼真。其他理由可以是因为目标触觉输出设备被改变、动画的视角被改变、世界的物理特性被改变等等。图6的流程可以在通过图2-5中的任一个的流程生成的触觉效果上执行。在605处,读取第一触觉效果。第一触觉效果可以是被创作的、之前由引擎参数自动生成的或者根据音频轨道得到的触觉效果。在610处,虚拟传感器数据(或虚拟对象数据)被收集,比如在图2的流程元素215、图3的335、图4的435和图5的515-525中。虚拟传感器数据可以基于行动者/对象的位置、行动者/对象的运动、环境的特性(比如重力、替选的触觉发射器等)等。在615处,基于传感器数据修改第一触觉效果以创建第二触觉效果。修改可以是对第一触觉效果的调制,比如基于来自虚拟加速度计的传感器数据对原始效果的频率进行变调。另一修改可以是碰撞检测传感器在适当的时候更改效果的强度。对第一触觉效果的修改可以基于根据真实世界传感器的触觉效果信息的库。在一些实施例中,第二触觉效果可以被输出,以替换第一触觉效果,而在一些实施例中,第二触觉效果可以作为分开的触觉效果而被输出,以提供可以取决于对环境或相机角度的改变而选择的多个可用的触觉效果轨道。当然,本领域技术人员将会理解到,通过修改第一或第二触觉效果可以创建第三触觉效果,以此类推。在620处,输出和/或播放第二效果(类似于如上所述的输出触觉轨道)。图7是根据一个实施例的在虚拟环境中碰撞的两个对象的图示。虚拟环境700包括第一对象705和第二对象710。虚拟传感器715位于第二对象710上。该传感器的其它可能的位置包括对象上的位置720等等。对象710向下朝对象705移动,与对象705碰撞。虚拟传感器715收集关于该碰撞的数据,包括诸如加速度(减速度)、碰撞强度、对象705和对象710之间的表面摩擦以及两个对象的从碰撞点开始随着时间继续前进的地点数据的数据。如果传感器715被放置在另一位置720,则所生成的触觉效果会有所不同。如所公开的,实施例包含虚拟环境中的虚拟传感器或虚拟对象跟踪以收集关于该环境中的对象(或传感器)的数据以及呈现或运行时间。基于传感器数据、环境和对象的特性,生成触觉效果以便为用户提供交互式的氛围。本文具体示出和/或描述了若干实施例。但是,将会理解到,所公开的实施例的修改和变型被以上教导涵盖,并处于随附权利要求的范围内,而不脱离本发明的精神和所意在的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1