获取和回放虚拟世界中发生的事件的方法和系统的制作方法

文档序号:6461209阅读:249来源:国知局

专利名称::获取和回放虚拟世界中发生的事件的方法和系统的制作方法
技术领域
:本发明总体上涉及虚拟现实领域。更具体地,本发明涉及获取和回放虚拟世界中发生的事件的方法和系统。
背景技术
:目前,无论是在现实世界或虚拟世界中,通常采用屏幕抓拍、视频捕获、flash动画等方式来记录一系列的行为活动。例如,在虚拟游戏中,通常采用屏幕抓拍的方式来记录游戏的场景。在诸如产品演示等的三维(3D)虚拟世界中,通常采用视频捕获或者flash动画的方式来演示产品,这些产品演示可以包括3D产品(例如计算机、机械设备)的装配和拆解过程的演示;物理产品或产品部件(例如机器零件、建筑物)的生产过程的演示;操作过程(例如飞行器逃生过程)的演示等。在这些应用中,如果采用视频捕获方式,则通常首先由专家演示产品的操作,比如装配、拆解等,同时用摄像机保存这些操作。这样就可以在需要时进行回放观看。如果采用flash动画方式,则需要为产品设计制作全面的flash动画。上述方法存在的问题是由于采用图像格式或者帧格式记录屏幕上发生的事件,因此在回放时,观看者只能按照拍摄或录制时的角度被动地观看记录的内容。如果在虚拟世界中存在人-对象的交互作用,则不能以语义方式记录下这些动作行为。还存在的另一问题是由于只有在创建视频或flash动画之后才能从头到尾地观看产品演示,以便得知应该对何处进行改进,因此无法实现所见即所得WYSIWYG(Whatyouseeiswhatyouget)。另夕卜,如果产品部件5的外表、功能等发生变化,则需要从头重新创建视频或flash动画。而制作flash动画的较高成本将导致产生额外的开销。此外,现有技术中还存在这样一种方法,即,直接在虚拟世界中通过例如采用脚本语言对3D产品演示进行编码,来实现对虚拟世界中的事件进行记录。然而,这种方法成本高却效率低。因此,现有技术需要一种捕获和回放虛拟世界中发生的事件的方法,该方法能够快速并且容易地捕获/记录虚拟世界中的各种事件,例如人与虚拟对象的交互活动、其他虚拟对象的移动、虚拟环境的变化等感兴趣事件,并且在回放这些事件时,观看者能以所希望的任意角度来进行观看。
发明内容本发明所要解决的技术问题在于,如何快速并且容易地获取虛拟世界中用户与虚拟对象的交互活动、与虚拟对象相关联的位置、方向的变化、以及其他一些感兴趣事件(例如,虚拟环境的改变),并且回放这些事件,以便其他用户在虛拟世界中能够以他们所希望的任意角度来查看这些交互活动。为了解决上述问题,本发明提供了一种获取和回放虚拟世界中发生的事件的方法和系统。本发明通过分布式方法而不是传统的集中式方法来获取和回放虚拟对象与化身的交互、虛拟对象的变化、以及虚拟环境变化等。根据本发明的一个方面,提供了一种用于获取虚拟世界中发生的事件的方法。所述虚拟世界的对象上设置有传感器。该方法可以包括以下步骤响应于虛拟世界中发生的事件,通过所述传感器捕获与所述事件相关联的信息。根据本发明的另一方面,提供了一种用于回放虚拟世界中发生的事件的方法。所述虚拟世界的对象上设置有效应器。该方法可以包括以下步骤根据事件日志数据库中的记录产生回放命令;将回放命令发送到虛拟世界内;接收所述回放命令;以及响应于回放命令,经由所述效应器产生对应的动作和/或效果。根据本发明的又一方面,提供一种用于获取和回放虚拟世界中发生的事件的方法。所述虚拟世界的对象上设置有传感器和效应器,该方法可以包括以下步骤响应于虚拟世界中发生的事件,通过所述传感器捕获与所述事件相关联的信息;将与所述事件相关联的信息记录到事件日志数据库中;根据事件日志数据中的记录产生回放命令;以及响应于回放命令,经由所述效应器产生对应的动作和/或效果。根据本发明的又一方面,提供一种用于获取虚拟世界中发生的事件的系统。该系统可以包括传感器,设置在所述虚拟世界的对象上,用于响应于虛拟世界中发生的事件,捕获与所述事件相关联的信息。根据本发明的又一方面,提供一种用于回放虚拟世界中发生的事件的系统。该系统可以包括回放器,用于根据事件日志数据库中的记录产生回放命令;命令发送器,用于将回放命令发送到虚拟世界内;命令接收器,用于接收所述回放命令;以及效应器,设置在虚拟世界的对象上,用于响应于回放命令,产生对应的动作和/或效果。根据本发明的又一方面,提供一种用于获取和回放虛拟世界中发生的事件的系统。该系统可以包括传感器,设置在虚拟世界的对象上,用于响应于虚拟世界中发生的事件,捕获与所述事件相关联的信息;记录器,用于将与所述事件相关联的信息记录到事件日志数据库中;回放器,用于根据事件日志数据中的记录产生回放命令;以及效应器,设置在虚拟世界的对象上,用于响应于回放命令,产生对应的动作和/或效果。本发明可以适用于产品演示、电影制作等涉及虚拟世界的应用。本发明提供了如下优点,包括(l)本发明是一种通用的方法,可以应用于3D/虚拟世界中所有类型的交互活动;(2)相对于现有技术,本发明的成本更低,效率和质量都更高;(3)本发明实现了所见即所得。参考以下结合附图的详细说明,本发明的特征、优点以及其他方面将变得更加明显,在附图中图1是根据本发明实施例的用于获取和回放虛拟世界中发生的事件的系统的示意性框事件的方法的示意流程事件的方法的示意流程图4是示出了根据本发明实施例的控制器的操作的示意流程图;图5是标准化记录的3D移动的示意图;以及图6示出了支持XML的3D记录编辑器的截图。具体实施例方式以下结合附图,对本发明进行更详细的解释和说明。应当理解,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。为了清楚起见,首先对本发明中所使用的术语作以解释。1.虛拟世界本发明中的术语"虚拟世界"是利用计算机生成的逼真三维视觉、听觉、触觉等各种感觉,使用户通过适当装置来对虚拟世界进行体验和交互。虚拟世界借助于计算机生成一个三维空间,通过将用户置身其中来产生一种身临其境的感觉。2.对象本发明中的术语"对象,,是指虚拟世界中的物体,既可以是有形的,也可以是无形。例如,对象可以是地形、道^各、建筑、植被、天空、玩家的化身等具体的物体,也可以是声音、光照等抽象的物体。这些对象既可以是基础对象,也可以是由多个基础对象组合在一起形成的复合对象。每个对象根据其所代表的含义可以具有各自的属性,例如包括位置、旋转、颜色、紋理等。对于不同类型的对象,可以使用传统的建才莫方法来得到相应的对象。下面给出两个对象的例子,其中定义了太阳和天空。太阳的属性可以包括方位角、仰角、颜色、环境光、投影等。天空的属性可以包括位置、旋转、比例、材质、多个云朵的高度和速度、雾、风等。因此,本发明的虚拟世界中的对象是由若干个属性来描述的。下面的代码段分别是创建对象"太阳"和"天空"的方法。newSunO{canSaveDynamicFields="1";azimuth="45";elevation="45";color二"0,350.350.351";ambient="0.50.150,271";CastsShadows="1";direction="0.577350.57735-0.57735";rotation二"1000";scale="11l',;position=',O00";上面的代码段描述了对象"太阳",即定义了"太阳"的方位角、仰角、颜色、环境光、投影、旋转、比例、位置等属性。newSky(){canSaveDynamicFields="1";position="3361360";rotation="1000";scale="111";materialList="~/data/skies/sky—overcast.dml";cloudHeightPer[O]="0.1";cloudHeightPer〖lj="0.2";cloudHeightPeri2J="0";doudSpeedl="O細";cloudSpeed2="0.001";cloudSpeed3="0.001";visibleDistance="900";fogDistance="50";fogColor="0.80.80.91";fogStorml="0";fogStorm2="0";fogStorm3="0";fogVolumel="000";fogVolume2="000";fogVolume3="000";fogVolumeColorl="128128128扁2.22768e+038";fogVolumeColor2="1281281280";fogVolumeColor3="128128128-1.70699e+038";windVelocity="510";windEffectPrecipitation="1";SkySolidColor="0.60.60.61";useSkyTextures="1'、renderBottomTexture="0";noRenderBans="0";上面的代码段描述了对象"天空",即定义了"天空"的位置、旋转、比例、材质列表、云的高度、云的移动速度、可见距离、雾的距离、雾的颜色等属性。3.事件本发明中的术语"事件"是指虚拟世界中所发生的任何变化。这些变化涉及到上述对象属性的改变。例如碰撞事件可能涉及碰撞对象与被撞对象位置属性的改变,还可能涉及外表属性的改变等。作为例子,以下代码段给出一个移动事件的描述。首先,定义了通用基础事件(CommonBaseEvent),其中包括创建时间、扩展名、消息、流逝的时间、重复次数、版本等。然后,定义了移动事件所涉及的各种参数,包括移动对象的ID、移动时间、源三维坐标(xsyszs)、目的三维坐标(xtytzt)等。<xmlversion-"1.0"encoding二"UTF-8"〉二<CommonBaseEventsxmlns="http:〃www.ibm.com/AC/commonbaseeventl—0—1"xmlns:xsi="http:〃www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http:〃wvm,ibm.com/AC/coiiimonbaseeventl—0—1commonbaseeventl一O一l.xsd"〉:<CommonBaseEventcreationTime="2007-07-llT05:56:20.640Z"extensionName二"MovementEvent"msg="MovementEvent"elapsedTime="0"repeatCount="0"version="1.0.0.1',>二<extendedDataElementsname="ObjectInfo"type="noValue">二<childrenname="ObjectID"type="string"〉<valucs/></children〉二〈childrenname二',Time"type-"string"〉<values/〉</chidren>二<childrenname二',SourceX"type="string"〉<values/></children>10二<childrenname="SourceY"type="string"><values/></children>二<childrenname="SourceZ"type=',string"><valu6s/></chiIdren>二<childrenname="TargetX"type="string"><valucs/></children>二<childrenname="TargetY',type="string"><valucs/></children>二<childrenname="TargetZ"type="string"〉<vducs/></children></extendedDataElements〉<sourceComponentIdcomponent=""componentIdType="ProductName"executionEnvironment二"Windows2000"instanceld="123"1ocation二"Machine2"locationType二"Hostname"processId="4657A3',subComponent="OrderEJB"threadld="564"componentType=',"/>二<situationcategoryName="OtherSituation"><situationTypexmlns:xsi="http:〃www.w3.org/2001/XMLSchema-instance"xsi:type="OtherSituation"reasoningScope=',sadfasd">OtherSituation</situationType></situation></CommonBaseEvent></CommonBaseEvents>接下来,参考图i,将详细描述根据本发明的用于获取和回放虚拟世界中发生的事件的系统。图i是示出了根据本发明实施例的用于获取和回放虚拟世界中发生的事件的系统的示意性框图。该系统可以分为虛拟世界io内和虛拟世界io外两部分。虛拟世界10内可以包括复合3D对象lla、简单3D对象llb、事件发送器13、命令接收器19以及控制器20。3D对象11上设置有可配置的传感器12和可配置的效应器21。相应地,虚拟世界10外可以包括事件接收器14、事件记录器15、事件日志数据库16以及3D回放器l7和命令发送器l8。概括地说,本发明的系统的实现如下。用户首先在虚拟对象上设置可配置传感器12,并对所述可配置传感器12进行配置以订阅某些事件。然后,一旦对象11所订阅的有效事件受到触发(例如,对象的旋转、对象的移动、或者对象与其他对象发生碰撞等),则可ii配置传感器12中相应的事件捕获器121-1至121-n就可以获取该事件的信息,然后将所获取的信息传送到事件发送器13。接着,事件发送器13使用预先定义的标准事件格式将事件发送到虚拟世界10外部。一旦虚拟世界10外的事件接收器14接收到该事件,则将该事件传送到事件记录器15。然后,事件记录器15将所接收事件记录在事件日志数据库16中。进一步,当希望回放虚拟世界10中发生的情景时,3D回放器17可以根据事件日志数据库16中的事件日志来向虚拟世界10发送一系列的命令,例如移动命令、旋转命令等。一旦虚拟世界10中的命令接收器19接收到这些命令,则向控制器20传送所接收命令。控制器20可以包括解析器201、调度器202和广播器203。解析器201首先对这些命令进行解析,将其分解为不可再分的单句命令。然后,调度器202安排各命令的时间进度。广播器203向设置在对象上的所有可配置效应器21广播这些命令。最后,相应的可配置效应器21根据命令来执行对应的动作或产生对应的效果。下面将结合图1来详细描述根据本发明实施例的系统的各组成部分。1.3D对象lla和lib虛拟世界10中的对象可以是简单3D对象lib,也可以由若干简单3D对象llb组合而成的复合3D对象lla。如上所述,可以使用传统的建模方法来得到相应的对象。例如,通过TerraVista软件来生成三维虚拟世界中的地形对象,以及通过3DMax软件来生成建筑对象等等。2.可配置的传感器12可配置传感器12是本发明用于感知各种类型的事件的关键部分。如图1所示,可配置传感器12可以嵌入或附着在虚拟世界10中的对象ll上。根据本发明,可配置传感器12具有多个用于捕获不同类型事件的事件捕获器121-1至121-n。用户可以通过对这些事件捕获器121-1至121-n进行选择来订阅不同的事件。具体地说,当在某个对象11上有事件触发时,如果该事件属于已订阅的事件,那么该对象11上的传感器12就可以通过对应的事件捕获器121-1至121-n来捕获该事件,即捕获与该事件相关联的信息,这些信息例如是"对象的旋转"、"对象的移动"、"对象与其他对象发生碰撞"等。然后,可配置传感器12将这些信息传送到事件发送器13。根据本发明,一个可配置传感器12可以包括一种或多种类型的事件捕获器121-1至121-n,其中不同类型的事件捕获器121-1至121-n分别支持相应类型的事件。优选地,如图l所示,可配置传感器12中包括多种事件捕获器121-1至121-n的列表,可以通过选择事件捕获器121-1至121-n来订阅不同的事件类型。在操作期间,根据所述列表,由相应的事件触发可配置传感器12。可以手动修改所述事件列表,也可以通过虚拟世界外部的某些事件来修改所述事件列表。在图1的系统实例中,所示的可配置传感器12具有n个事件捕获器,其中已订阅事件l、2、3和n。因此,当在对象11上发生事件1、2、3或n时,将触发可配置传感器12中相应的事件捕获器来捕获与事件相关联的有关信息。根据本发明,用户还可以自己定义各种不同类型的感兴趣事件。为了说明目的,下文参考表1给出了以虛拟世界《第二人生》(SecondLife)为例的若干事件实例。本领域技术人员应当理解,表中所给出的实例仅用于示例性作用,并不代表全部的事件。如表1所示,事件类型包括例如碰撞、移动、旋转、分解等。在《第二人生》中,不同类型的事件分别对应于接触类型或定时器类型的事件。例如,对于碰撞事件来说,当对象或化身与目标对象碰撞时,目标对象能够感应该碰撞事件。在该事件中,事件捕获器121可以获取如下信息碰撞(或移动、旋转、分解等事件发生)时间、碰撞对象、碰撞对象的所有者、被撞对象、以及被撞对象的所有者等。在《第二人生》中,在与对象发生接触时触发对应于接触事件的事件。例如,移动或旋转等事件对应于《第二人生》中的定时器事件,即在预定时间到期时触发传感器工作,获取相应事件的诸如位置、旋转角度等信息。表l《第二人生》中事件类型的实例<table>tableseeoriginaldocumentpage14</column></row><table>下面详细说明根据本发明的可配置传感器的实现。根据本发明,在《第二人生》中,可以使用林登脚本语言(LindenScriptLanguage:LSL)来实现可配置传感器12。通常,可配置传感器12实现为嵌入在上述对象11中的一段程序逻辑,例如脚本。下面的代码段示出了使用林登脚本语言实现《第二人生》中的可配置传感器12的逻辑的例子。具体地,该代码段为在雷达对象上嵌入的传感器逻辑。所述雷达负责感应及显示所发现的化身(avatar),其中化身是用户登录进3D虚拟世界里后自己在其中的3D虛拟人物形象。在该代码段中,定义了旋转事件捕获器,该旋转事件捕获器的状态设置包括是否开启(即,是否订阅该事件)、传感间隔(对于定时器事件)等参数。在传感器函数中,计算化身与某检测位置之间的距离,从而计算旋转的角度、方位等,并通过primRot和primRotVec这两个变量传送旋转事件的信息。<table>tableseeoriginaldocumentpage16</column></row><table>具体地,在上述实现传感器的逻辑段中,过程state_entry用于初始化捕获器,包括设置捕获器开关状态(OnOff),设置传感器捕获事件的时间间隔(sensorlnterval),设置监控对象的最大数目(maxAgent),以及通过过程11SetLinkPrimitiveParams对记录捕获结果的日志文件进行必要初始化。过程touch—start用于对触摸事件进行响应式监控,也即,捕获通过触摸来旋转对象的事件。过程sensor是捕获对象旋转的核心部分,其调用一系列过程和函数,以获得描述所捕获事件的核心参数。在该示例中,描述物体旋转的核心参数有两个primRot(物体朝向)和pdmRotVec(雷达朝向)。通过过程11SetLinkPrimitiveParams将这两个参数以参数列表的形式保存在日志文件中。应当理解,本发明并不限于使用林登脚本语言来实现可配置传感器12的逻辑的嵌入,也可以使用其他虚拟世界里的相应的合适的语言来在实现传感器逻辑的嵌入。正如上文所述的,本发明的一个优势在于,可以在对象上嵌入传感器逻辑段,以实现对对象以及对象间发生的事件的监控和采集。相比较,在传统的3D仿真环境中,3D对象中不能嵌入逻辑,因此化身/用户与虚拟对象之间的交互功能非常弱。3.事件发送器13和事件接收器14事件发送器13位于虚拟世界10的内部,用于接收由可配置传感器12所捕获的与相应事件相关联的信息,并向虚拟世界10外部发送该信息。事件接收器14位于虚拟世界10的外部,用于接收来自事件发送器13的信息,并将该信息发送到事件记录器l5。根据本发明,可以使用各种通信协议和事件格式,来在事件发送器13与虛拟世界10内的对象11上的可配置传感器12之间、事件发送器13与事件接收器14之间、以及事件接收器14与记录器15之间进行通信。例如,在《第二人生》中,可以使用超文本传输协议(HUp)用于上述各个部件之间的通信。在有些情况下,也可以17采用面向消息的中间件(Message-OrientedMiddleware:MOM)来实现上述各个部件之间的通信。根据本发明,事件格式可以利用诸如通用事件基础架构(CommonEventInfrastructure:CEI)等的事件描述和处理机制。下面的代码段以XML给出了利用CEI的事件的实例。其中定义了通用基础事件,包括创建时间、流逝的时间、扩展名、全局ID、局部ID、消息、优先级、重复次数等。还包括一些上下文数据元素、扩展数据元素、关联事件、消息数据元素等。用户可以根据实际事件的类型、特点来定义不同事件。<formula>formulaseeoriginaldocumentpage19</formula>4.事件记录器15和事件日志数据库16事件记录器15位于虚拟世界10的外部,用于接收来自事件接收器14的与事件相关的信息,并将该信息记录在事件日志数据库16中。具体地,事件记录器15记录虛拟世界10中的所有必要活动,包括(1)化身-对象的交互;(2)对象的变化;(3)虛拟世界的变化。下面的代码段示出了记录这三种活动的例子。例如,化身-对象交互的记录信息包括记录类型、时间标志、化身状态、动作要点、活动等。对象变化的记录信息包才舌记录类型、时间标志、对象、外表变化、运动等。虚拟事件的变化的记录信息包括记录类型、时间标志、世界、静态变化、动态变化等。(1)化身与对象的示例性记录<recordtype="avatar-object"><time-stamp><avatar-status>...<avatar-status/><action-points>...<action-points/><activities>...<activities/><time-stamp/><record/>(2)对象的变化的示例性记录<recordtype="object-change"><time-stamp><objects>...<objects/><appearance-changes>...<appearance-changes/><motions>...<motions/><time-stamp/><record/>(3)虚拟世界的变化的示例性记录<recordtype="world-change"><time-stamp><world>..<world/><static-changes>...<static-changes/><dynamie-changes>...<dynamic-changes/><time-stamp/><record/>根据本发明,记录的事件可以以事件日志的形式存储在事件曰志数据库16中,例如存储在IBMDB2中。所述事件日志可以直接用来回放和构造原始的虛拟世界场景。5.3D回放器17才艮据本发明实施例的3D播放器17位于虚拟世界10外部,用于根据事件日志数据库16中的记录产生回放命令。根据本发明的实施例,可以通过对目前虚拟世界的客户-服务器架构进行扩展来实现3D回放器17。本发明与现有虚拟世界的基础结构不同之处在于本发明中来自服务器的事件不是实时的事件,而是存储在本发明的事件20日志数据库16中的历史事件。这样,利用本发明的3D回放器17,可以使化身再次进入虚拟世界10,以查看和回放这些历史事件。6.命令发送器18和命令接收器19本发明的命令发送器18位于虚拟世界10外部,用于接收来自3D回放器l7的回放命令,并将回放命令发送至命令接收器19。命令接收器19位于虚拟世界10内部,接收来自命令发送器的命令。根据本发明,可以使用各种通信协议,来在3D回放器17与命令发送器18之间、命令发送器18与命令接收器19之间、以及命令接收器与虛拟世界10中的其他部件之间进行通信。例如,可以使用HUp来从虛拟世界10外向虛拟世界10内部进行通信。7.控制器20和可配置的效应器21控制器20位于虚拟世界10内部,用于接收来自命令接收器19的回放命令,并对该命令进行分析。以触发分布在对象上的可配置效应器21。优选地,控制器20可以包括以下部件,解析器201、调度器202以及广播器203。具体地,解析器201可以用来对所述回放命令进行解析并且将所述回放命令分解为单句命令。调度器202可以用来调度各单句命令。广播器203可以用来将所述单句命令广播至对象lla和lib上的相应可配置效应器21。可配置效应器21设置在虚拟世界的对象lla和lib上,用于响应回放命令来产生对应的动作和/或效果。具体地,如同可配置传感器12的实现一样,可配置效应器21也是嵌入在虚拟对象lla和lib上的一小段逻辑,它与可配置传感器12的功能相对应。可配置传感器12是利用特定嵌入的逻辑来检测虚拟对象的变化,并发送特定事件,而可配置效应器21是由特定回放命令触发然后执行特定的逻辑,使得虚拟对象lla和lib等产生特定的3D效果,例如移动、旋转、切换紋理、发光、闪烁等。下面的代码段示出了可配置效应器21接收到的事件的实例。在该接收到的事件实例中,指示了目标对象以及希望发生的动作或产生的效果。例如,在目标对象中指示了名称为Objectl、ID为objl、21物理特性为true的对象,在动作或效果描述中指示了所希望的效果是所述目标对象按顺序发光等。<effect《vcnts><effect-event><target-objects>〈objectnanie="objectr,id="objl,,physical="true,*>Msinboard<object/></targetobjects><effects><effecl><description>higUightlheobjectsinaseqttence<description/><parallel><play><sequences><sequences><play/><sequences><sequ6nces><play/><:paraltel/><effect></eflfects></effect>event></€iffect-cvents>下面参考2,详细描述根据本发明实施例的用于获取虚拟世界中发生的事件的方法。首先,在步骤S101处,设置在对象11a或lib上的可配置传感器12中的事件捕获器121-l至121-n可以捕获与事件相关联的信息,并将该信息传输至事件发送器13。所述事件可以是与对象和虚拟世界有关的任何变化。然后,可选地,在步骤S102处,事件发送器13将与事件相关联的信息发送至虚拟世界10外部,例如,虚拟世界10外部的事件接收器14。接着,在步骤S103处,事件接收器14接收来自虚拟世界10内部的与事件相关联的信息,并将该信息传输到事件记录器15。22然后,在步骤S1(M处,事件记录器15将与事件相关联的信息记录到事件日志数据路16中,以供随后的回放使用。下面参考图3,将详细描迷根据本发明实施例的用于回放虛拟世界10中发生的事件的方法。首先,在步骤S201处,3D回放器17根据事件日志数据库16中的记录产生回放命令,并将回放命令传输至命令发送器18。该回放命令可以是简单的回放命令或者复合的回放命令。然后,在步骤S202处,命令发送器18可以将回放命令发送至虛拟世界10内部的命令接收器19。接着,在步骤S203处,命令接收器19接收来自命令发送器18的回方文命令。接着,可选地,在步骤S204处,控制器20接收来自命令接收器19的回放命令,并对该命令进行分析,以触发分布在对象上的可配置效应器21。最后,在步骤S205处,可配置效应器21响应于回放命令而产生对应的动作和/或效果。具体地,由特定回放命令触发可配置效应器21,然后执行特定的逻辑,使得虚拟对象产生特定的3D效果,例如移动、旋转、切换紋理、发光、闪烁等。图4示出了根据本发明的控制器20在图3的步骤S204中所执行操作的详细示意图。首先,在步骤S2041处,控制器20中的解析器201解析回放命令,并将回放命令分解为不可再分的单句命令。然后,在步骤S2042处,控制器20中的调度器202调度各单句命令。最后,在步骤S2043处,控制器20中的广播器203向对象lla和lib上相应的可配置效应器21广播所述单句命令,使得可配置效应器21执行相应的动作。本发明实施例的变型根据本发明实施例的一个变型,本发明的系统可以进一步扩展以支持其他丰富的交互活动。例如,本发明的系统还可以包4舌各种编辑器,用于对事件日志数据库16中的记录进行以下操作中的至少之一编辑、增加注释、标准化移动路径以及添加多媒体效果。例如,可以将事件日志数据库16中记录的虚拟对象的移动事件进行标准化。例如,实际向右移动8.5cm,但是标准化(归一化)的移动区间是[7cm,8cm,9cm]。因此当化身在区间(7cm,9cm)的上下限之间的范围移动对象时,就直接将移动调准到中间,也即8cm。图5是标准化记录的3D移动的示意图,其中给出了标准化前和标准化后的移动轨迹,将矢量的方向和长度都进行标准化。另外,可以对事件日志数据库16中的事件信息进行调整,以调整事件发生的顺序或者添加其他多媒体效果。例如,记录的事件顺序可能是产品演示的专家首先移动对象A,然后移动对象B。但是将其编辑为支持两种次序(A,B)和(B,A)。图6给出了支持XML的3D记录编辑器的截图,其中位于虚线框中的是时间标记的滚动条,并随着滚动条拖动显示在对应时间标记下的对象的属性。所述编辑器还可以包括树图或曲线图等的嵌入式图形工具,使得能够直观地表示出虚拟对象之间的关系。根据本发明,可以根据需要,将一些部件布置在虚拟世界10内部,以及将另一些部件布置在虚拟世界IO外部,而不受图1所示的布置的限制。根据本发明,图1所示各种系统的各个部件之间可以采用任何合适的通信机制来通信,例如传输控制协议(TCP),用户数据报协议(UDP),超文本传输协议(HTTP)等。另外,应当理解,本发明的各个装置和模块可以通过软件、固件、硬件或者它们的组合的方式来实现。本领域技术人员应该认识到,也可以在供任何合适数据处理系统使用的信号承载介质上所设置的计算机程序产品中体现本发明。这种信号承载介质可以是传输介质或用于机器可读信息的可记录介质,包括磁介质、光介质或其它合适介质。可记录介质的例子包括硬盘驱动器中的磁盘或软盘、用于光驱的光盘、磁带,以及本领域技术人员所能想到的其它介质。本领域技术人员应该认识到,具有合适编程装置的任何通信终端都将能够执行如程序产品中体现的本发明方法的步骤。从上述描述应该理解,在不脱离本发明精神的情况下,可以对本发明各实施方式进行修改和变更。本说明书中的描述仅仅是用于说明性的,而不应被认为是限制性的。本发明的范围仅受权利要求书的限制。权利要求1.一种用于获取虚拟世界中发生的事件的方法,其中所述虚拟世界的对象上设置有传感器,该方法包括以下步骤响应于虚拟世界中发生的事件,通过所述传感器捕获与所述事件相关联的信息。2.根据权利要求1所述的方法,还包括步骤将与所述事件相关联的信息发送到虚拟世界外部。3.根据权利要求2所述的方法,还包括步骤接收与所述事件相关联的信息;以及将与所述事件相关联的信息记录到事件日志数据库中。4.根据权利要求3所述的方法,还包括步骤对所述事件日志数据库中的记录进行以下操作中的至少之一编辑、增加注释、标准化移动路径以及添加多J某体效果。5.根据权利要求1所述的方法,其中所述传感器包括多个事件捕获器,每个事件捕获器对应于一种事件类型,通过选择不同的事件捕获器组合来订阅事件类型,以及其中所述捕获步骤包括响应于所订阅事件的发生,由对应的事件捕获器来获取与对应的事件相关联的信息。6.根据权利要求1至5中任意一个所述的方法,其中所述事件包括化身与对象的交互活动、对象的变化以及虚拟世界的变化中的至少之一。7.—种用于回放虚拟世界中发生的事件的方法,其中所述虚拟世界的对象上设置有效应器,该方法包括以下步骤根据事件日志数据库中的记录产生回放命令;将回放命令发送到虚拟世界内;接收所述回放命令;以及响应于回放命令,经由所述效应器产生对应的动作和/或效果。8.根据权利要求7所述的方法,还包括步骤在所述效应器接收回放命令之前,对所述回放命令进行分析。9.根据权利要求8所述的方法,其中所述分析步骤还包括对所述回放命令进行解析并且将所述回放命令分解为单句命令;调度各单句命令;以及将所述单句命令广播到相应的效应器。10.—种用于获取和回放虚拟世界中发生的事件的方法,其中所述虚拟世界的对象上设置有传感器和效应器,该方法包括以下步骤响应于虚拟世界中发生的事件,通过所述传感器捕获与所述事件相关联的信息;将与所述事件相关联的信息记录到事件日志数据库中;根据事件日志数据中的记录产生回放命令;以及响应于回》文命令,经由所述效应器产生对应的动作和/或效果。11.一种用于获取虛拟世界中发生的事件的系统,该系统包括传感器,设置在所述虚拟世界的对象上,用于响应于虚拟世界中发生的事件,捕获与所述事件相关联的信息。12.根据权利要求11所述的系统,还包括事件发送器,用于将与所述事件相关联的信息发送到虚拟世界外部。13.根据权利要求12所述的系统,还包括事件接收器,用于接收与所述事件相关联的信息;以及记录器,用于将与所述事件相关联的信息记录到事件日志数据库中。14.根据权利要求13所述的系统,还包括编辑器,用于对所述事件日志数据库中的记录进行以下操作中的至少之一编辑、增加注释、标准化移动^各径以及添加多々某体效果。15.根据权利要求11所述的系统,其中所述传感器包括多个事件捕获器,每个事件捕获器对应于一种事件类型,通过选择不同的事件捕获器来订阅事件类型,以及响应于所订阅事件的发生,由对应的事件捕获器来获取与对应的事件相关联的信息。16.根据权利要求11至15中任意一个所述的系统,其中所述事件包括化身与对象的交互活动、对象的变化以及虛拟世界的变化中的至少之一。17.—种用于回放虚拟世界中发生的事件的系统,该系统包括回放器,用于根据事件日志数据库中的记录产生回放命令;命令发送器,用于将回放命令发送到虚拟世界内;命令接收器,用于接收所述回放命令;以及效应器,设置在虚拟世界的对象上,用于响应于回放命令,产生对应的动作和/或效果。18.根据权利要求17所述的系统,还包括控制器,用于在所述效应器接收回放命令之前对所述回放命令进行分析。19.根据权利要求18所述的系统,其中所述控制器还包括解析器,用于对所述回放命令进行解析并且将所述回放命令分解为单句命令;调度器,用于调度各单句命令;以及广播器,用于将所述单句命令广播至相应的效应器。20.—种用于获取和回放虚拟世界中发生的事件的系统,该系统包括传感器,设置在虚拟世界的对象上,用于响应于虛拟世界中发生的事件,捕获与所述事件相关联的信息;记录器,用于将与所述事件相关联的信息记录到事件日志数据库中;回放器,用于根据事件日志数据中的记录产生回放命令;以及效应器,设置在虚拟世界的对象上,用于响应于回放命令,产生对应的动作和/或效果。全文摘要本发明提供了一种用于获取和回放虚拟世界中发生的事件的方法和系统。所述虚拟世界的对象上设置有传感器和效应器,该方法包括以下步骤响应于虚拟世界中发生的事件,通过所述传感器捕获与所述事件相关联的信息;将与所述事件相关联的信息记录到事件日志数据库中;根据事件日志数据中的记录产生回放命令;以及响应于回放命令,经由所述效应器产生对应的动作和/或效果。文档编号G06T1/00GK101520884SQ20081008093公开日2009年9月2日申请日期2008年2月29日优先权日2008年2月29日发明者廖勤樱,健王,弘蔡,晨赵申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1