專利名稱::獲取和回放虛擬世界中發(fā)生的事件的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明總體上涉及虛擬現(xiàn)實(shí)領(lǐng)域。更具體地,本發(fā)明涉及獲取和回放虛擬世界中發(fā)生的事件的方法和系統(tǒng)。
背景技術(shù):
:目前,無論是在現(xiàn)實(shí)世界或虛擬世界中,通常采用屏幕抓拍、視頻捕獲、flash動畫等方式來記錄一系列的行為活動。例如,在虛擬游戲中,通常采用屏幕抓拍的方式來記錄游戲的場景。在諸如產(chǎn)品演示等的三維(3D)虛擬世界中,通常采用視頻捕獲或者flash動畫的方式來演示產(chǎn)品,這些產(chǎn)品演示可以包括3D產(chǎn)品(例如計(jì)算機(jī)、機(jī)械設(shè)備)的裝配和拆解過程的演示;物理產(chǎn)品或產(chǎn)品部件(例如機(jī)器零件、建筑物)的生產(chǎn)過程的演示;操作過程(例如飛行器逃生過程)的演示等。在這些應(yīng)用中,如果采用視頻捕獲方式,則通常首先由專家演示產(chǎn)品的操作,比如裝配、拆解等,同時用攝像機(jī)保存這些操作。這樣就可以在需要時進(jìn)行回放觀看。如果采用flash動畫方式,則需要為產(chǎn)品設(shè)計(jì)制作全面的flash動畫。上述方法存在的問題是由于采用圖像格式或者幀格式記錄屏幕上發(fā)生的事件,因此在回放時,觀看者只能按照拍攝或錄制時的角度被動地觀看記錄的內(nèi)容。如果在虛擬世界中存在人-對象的交互作用,則不能以語義方式記錄下這些動作行為。還存在的另一問題是由于只有在創(chuàng)建視頻或flash動畫之后才能從頭到尾地觀看產(chǎn)品演示,以便得知應(yīng)該對何處進(jìn)行改進(jìn),因此無法實(shí)現(xiàn)所見即所得WYSIWYG(Whatyouseeiswhatyouget)。另夕卜,如果產(chǎn)品部件5的外表、功能等發(fā)生變化,則需要從頭重新創(chuàng)建視頻或flash動畫。而制作flash動畫的較高成本將導(dǎo)致產(chǎn)生額外的開銷。此外,現(xiàn)有技術(shù)中還存在這樣一種方法,即,直接在虛擬世界中通過例如采用腳本語言對3D產(chǎn)品演示進(jìn)行編碼,來實(shí)現(xiàn)對虛擬世界中的事件進(jìn)行記錄。然而,這種方法成本高卻效率低。因此,現(xiàn)有技術(shù)需要一種捕獲和回放虛擬世界中發(fā)生的事件的方法,該方法能夠快速并且容易地捕獲/記錄虛擬世界中的各種事件,例如人與虛擬對象的交互活動、其他虛擬對象的移動、虛擬環(huán)境的變化等感興趣事件,并且在回放這些事件時,觀看者能以所希望的任意角度來進(jìn)行觀看。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題在于,如何快速并且容易地獲取虛擬世界中用戶與虛擬對象的交互活動、與虛擬對象相關(guān)聯(lián)的位置、方向的變化、以及其他一些感興趣事件(例如,虛擬環(huán)境的改變),并且回放這些事件,以便其他用戶在虛擬世界中能夠以他們所希望的任意角度來查看這些交互活動。為了解決上述問題,本發(fā)明提供了一種獲取和回放虛擬世界中發(fā)生的事件的方法和系統(tǒng)。本發(fā)明通過分布式方法而不是傳統(tǒng)的集中式方法來獲取和回放虛擬對象與化身的交互、虛擬對象的變化、以及虛擬環(huán)境變化等。根據(jù)本發(fā)明的一個方面,提供了一種用于獲取虛擬世界中發(fā)生的事件的方法。所述虛擬世界的對象上設(shè)置有傳感器。該方法可以包括以下步驟響應(yīng)于虛擬世界中發(fā)生的事件,通過所述傳感器捕獲與所述事件相關(guān)聯(lián)的信息。根據(jù)本發(fā)明的另一方面,提供了一種用于回放虛擬世界中發(fā)生的事件的方法。所述虛擬世界的對象上設(shè)置有效應(yīng)器。該方法可以包括以下步驟根據(jù)事件日志數(shù)據(jù)庫中的記錄產(chǎn)生回放命令;將回放命令發(fā)送到虛擬世界內(nèi);接收所述回放命令;以及響應(yīng)于回放命令,經(jīng)由所述效應(yīng)器產(chǎn)生對應(yīng)的動作和/或效果。根據(jù)本發(fā)明的又一方面,提供一種用于獲取和回放虛擬世界中發(fā)生的事件的方法。所述虛擬世界的對象上設(shè)置有傳感器和效應(yīng)器,該方法可以包括以下步驟響應(yīng)于虛擬世界中發(fā)生的事件,通過所述傳感器捕獲與所述事件相關(guān)聯(lián)的信息;將與所述事件相關(guān)聯(lián)的信息記錄到事件日志數(shù)據(jù)庫中;根據(jù)事件日志數(shù)據(jù)中的記錄產(chǎn)生回放命令;以及響應(yīng)于回放命令,經(jīng)由所述效應(yīng)器產(chǎn)生對應(yīng)的動作和/或效果。根據(jù)本發(fā)明的又一方面,提供一種用于獲取虛擬世界中發(fā)生的事件的系統(tǒng)。該系統(tǒng)可以包括傳感器,設(shè)置在所述虛擬世界的對象上,用于響應(yīng)于虛擬世界中發(fā)生的事件,捕獲與所述事件相關(guān)聯(lián)的信息。根據(jù)本發(fā)明的又一方面,提供一種用于回放虛擬世界中發(fā)生的事件的系統(tǒng)。該系統(tǒng)可以包括回放器,用于根據(jù)事件日志數(shù)據(jù)庫中的記錄產(chǎn)生回放命令;命令發(fā)送器,用于將回放命令發(fā)送到虛擬世界內(nèi);命令接收器,用于接收所述回放命令;以及效應(yīng)器,設(shè)置在虛擬世界的對象上,用于響應(yīng)于回放命令,產(chǎn)生對應(yīng)的動作和/或效果。根據(jù)本發(fā)明的又一方面,提供一種用于獲取和回放虛擬世界中發(fā)生的事件的系統(tǒng)。該系統(tǒng)可以包括傳感器,設(shè)置在虛擬世界的對象上,用于響應(yīng)于虛擬世界中發(fā)生的事件,捕獲與所述事件相關(guān)聯(lián)的信息;記錄器,用于將與所述事件相關(guān)聯(lián)的信息記錄到事件日志數(shù)據(jù)庫中;回放器,用于根據(jù)事件日志數(shù)據(jù)中的記錄產(chǎn)生回放命令;以及效應(yīng)器,設(shè)置在虛擬世界的對象上,用于響應(yīng)于回放命令,產(chǎn)生對應(yīng)的動作和/或效果。本發(fā)明可以適用于產(chǎn)品演示、電影制作等涉及虛擬世界的應(yīng)用。本發(fā)明提供了如下優(yōu)點(diǎn),包括(l)本發(fā)明是一種通用的方法,可以應(yīng)用于3D/虛擬世界中所有類型的交互活動;(2)相對于現(xiàn)有技術(shù),本發(fā)明的成本更低,效率和質(zhì)量都更高;(3)本發(fā)明實(shí)現(xiàn)了所見即所得。參考以下結(jié)合附圖的詳細(xì)說明,本發(fā)明的特征、優(yōu)點(diǎn)以及其他方面將變得更加明顯,在附圖中圖1是根據(jù)本發(fā)明實(shí)施例的用于獲取和回放虛擬世界中發(fā)生的事件的系統(tǒng)的示意性框事件的方法的示意流程事件的方法的示意流程圖4是示出了根據(jù)本發(fā)明實(shí)施例的控制器的操作的示意流程圖;圖5是標(biāo)準(zhǔn)化記錄的3D移動的示意圖;以及圖6示出了支持XML的3D記錄編輯器的截圖。具體實(shí)施例方式以下結(jié)合附圖,對本發(fā)明進(jìn)行更詳細(xì)的解釋和說明。應(yīng)當(dāng)理解,本發(fā)明的附圖及實(shí)施例僅用于示例性作用,并非用于限制本發(fā)明的保護(hù)范圍。為了清楚起見,首先對本發(fā)明中所使用的術(shù)語作以解釋。1.虛擬世界本發(fā)明中的術(shù)語"虛擬世界"是利用計(jì)算機(jī)生成的逼真三維視覺、聽覺、觸覺等各種感覺,使用戶通過適當(dāng)裝置來對虛擬世界進(jìn)行體驗(yàn)和交互。虛擬世界借助于計(jì)算機(jī)生成一個三維空間,通過將用戶置身其中來產(chǎn)生一種身臨其境的感覺。2.對象本發(fā)明中的術(shù)語"對象,,是指虛擬世界中的物體,既可以是有形的,也可以是無形。例如,對象可以是地形、道^各、建筑、植被、天空、玩家的化身等具體的物體,也可以是聲音、光照等抽象的物體。這些對象既可以是基礎(chǔ)對象,也可以是由多個基礎(chǔ)對象組合在一起形成的復(fù)合對象。每個對象根據(jù)其所代表的含義可以具有各自的屬性,例如包括位置、旋轉(zhuǎn)、顏色、紋理等。對于不同類型的對象,可以使用傳統(tǒng)的建才莫方法來得到相應(yīng)的對象。下面給出兩個對象的例子,其中定義了太陽和天空。太陽的屬性可以包括方位角、仰角、顏色、環(huán)境光、投影等。天空的屬性可以包括位置、旋轉(zhuǎn)、比例、材質(zhì)、多個云朵的高度和速度、霧、風(fēng)等。因此,本發(fā)明的虛擬世界中的對象是由若干個屬性來描述的。下面的代碼段分別是創(chuàng)建對象"太陽"和"天空"的方法。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";上面的代碼段描述了對象"太陽",即定義了"太陽"的方位角、仰角、顏色、環(huán)境光、投影、旋轉(zhuǎn)、比例、位置等屬性。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細(xì)";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";上面的代碼段描述了對象"天空",即定義了"天空"的位置、旋轉(zhuǎn)、比例、材質(zhì)列表、云的高度、云的移動速度、可見距離、霧的距離、霧的顏色等屬性。3.事件本發(fā)明中的術(shù)語"事件"是指虛擬世界中所發(fā)生的任何變化。這些變化涉及到上述對象屬性的改變。例如碰撞事件可能涉及碰撞對象與被撞對象位置屬性的改變,還可能涉及外表屬性的改變等。作為例子,以下代碼段給出一個移動事件的描述。首先,定義了通用基礎(chǔ)事件(CommonBaseEvent),其中包括創(chuàng)建時間、擴(kuò)展名、消息、流逝的時間、重復(fù)次數(shù)、版本等。然后,定義了移動事件所涉及的各種參數(shù),包括移動對象的ID、移動時間、源三維坐標(biāo)(xsyszs)、目的三維坐標(biāo)(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,將詳細(xì)描述根據(jù)本發(fā)明的用于獲取和回放虛擬世界中發(fā)生的事件的系統(tǒng)。圖i是示出了根據(jù)本發(fā)明實(shí)施例的用于獲取和回放虛擬世界中發(fā)生的事件的系統(tǒng)的示意性框圖。該系統(tǒng)可以分為虛擬世界io內(nèi)和虛擬世界io外兩部分。虛擬世界10內(nèi)可以包括復(fù)合3D對象lla、簡單3D對象llb、事件發(fā)送器13、命令接收器19以及控制器20。3D對象11上設(shè)置有可配置的傳感器12和可配置的效應(yīng)器21。相應(yīng)地,虛擬世界10外可以包括事件接收器14、事件記錄器15、事件日志數(shù)據(jù)庫16以及3D回放器l7和命令發(fā)送器l8。概括地說,本發(fā)明的系統(tǒng)的實(shí)現(xiàn)如下。用戶首先在虛擬對象上設(shè)置可配置傳感器12,并對所述可配置傳感器12進(jìn)行配置以訂閱某些事件。然后,一旦對象11所訂閱的有效事件受到觸發(fā)(例如,對象的旋轉(zhuǎn)、對象的移動、或者對象與其他對象發(fā)生碰撞等),則可ii配置傳感器12中相應(yīng)的事件捕獲器121-1至121-n就可以獲取該事件的信息,然后將所獲取的信息傳送到事件發(fā)送器13。接著,事件發(fā)送器13使用預(yù)先定義的標(biāo)準(zhǔn)事件格式將事件發(fā)送到虛擬世界10外部。一旦虛擬世界10外的事件接收器14接收到該事件,則將該事件傳送到事件記錄器15。然后,事件記錄器15將所接收事件記錄在事件日志數(shù)據(jù)庫16中。進(jìn)一步,當(dāng)希望回放虛擬世界10中發(fā)生的情景時,3D回放器17可以根據(jù)事件日志數(shù)據(jù)庫16中的事件日志來向虛擬世界10發(fā)送一系列的命令,例如移動命令、旋轉(zhuǎn)命令等。一旦虛擬世界10中的命令接收器19接收到這些命令,則向控制器20傳送所接收命令??刂破?0可以包括解析器201、調(diào)度器202和廣播器203。解析器201首先對這些命令進(jìn)行解析,將其分解為不可再分的單句命令。然后,調(diào)度器202安排各命令的時間進(jìn)度。廣播器203向設(shè)置在對象上的所有可配置效應(yīng)器21廣播這些命令。最后,相應(yīng)的可配置效應(yīng)器21根據(jù)命令來執(zhí)行對應(yīng)的動作或產(chǎn)生對應(yīng)的效果。下面將結(jié)合圖1來詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的系統(tǒng)的各組成部分。1.3D對象lla和lib虛擬世界10中的對象可以是簡單3D對象lib,也可以由若干簡單3D對象llb組合而成的復(fù)合3D對象lla。如上所述,可以使用傳統(tǒng)的建模方法來得到相應(yīng)的對象。例如,通過TerraVista軟件來生成三維虛擬世界中的地形對象,以及通過3DMax軟件來生成建筑對象等等。2.可配置的傳感器12可配置傳感器12是本發(fā)明用于感知各種類型的事件的關(guān)鍵部分。如圖1所示,可配置傳感器12可以嵌入或附著在虛擬世界10中的對象ll上。根據(jù)本發(fā)明,可配置傳感器12具有多個用于捕獲不同類型事件的事件捕獲器121-1至121-n。用戶可以通過對這些事件捕獲器121-1至121-n進(jìn)行選擇來訂閱不同的事件。具體地說,當(dāng)在某個對象11上有事件觸發(fā)時,如果該事件屬于已訂閱的事件,那么該對象11上的傳感器12就可以通過對應(yīng)的事件捕獲器121-1至121-n來捕獲該事件,即捕獲與該事件相關(guān)聯(lián)的信息,這些信息例如是"對象的旋轉(zhuǎn)"、"對象的移動"、"對象與其他對象發(fā)生碰撞"等。然后,可配置傳感器12將這些信息傳送到事件發(fā)送器13。根據(jù)本發(fā)明,一個可配置傳感器12可以包括一種或多種類型的事件捕獲器121-1至121-n,其中不同類型的事件捕獲器121-1至121-n分別支持相應(yīng)類型的事件。優(yōu)選地,如圖l所示,可配置傳感器12中包括多種事件捕獲器121-1至121-n的列表,可以通過選擇事件捕獲器121-1至121-n來訂閱不同的事件類型。在操作期間,根據(jù)所述列表,由相應(yīng)的事件觸發(fā)可配置傳感器12。可以手動修改所述事件列表,也可以通過虛擬世界外部的某些事件來修改所述事件列表。在圖1的系統(tǒng)實(shí)例中,所示的可配置傳感器12具有n個事件捕獲器,其中已訂閱事件l、2、3和n。因此,當(dāng)在對象11上發(fā)生事件1、2、3或n時,將觸發(fā)可配置傳感器12中相應(yīng)的事件捕獲器來捕獲與事件相關(guān)聯(lián)的有關(guān)信息。根據(jù)本發(fā)明,用戶還可以自己定義各種不同類型的感興趣事件。為了說明目的,下文參考表1給出了以虛擬世界《第二人生》(SecondLife)為例的若干事件實(shí)例。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,表中所給出的實(shí)例僅用于示例性作用,并不代表全部的事件。如表1所示,事件類型包括例如碰撞、移動、旋轉(zhuǎn)、分解等。在《第二人生》中,不同類型的事件分別對應(yīng)于接觸類型或定時器類型的事件。例如,對于碰撞事件來說,當(dāng)對象或化身與目標(biāo)對象碰撞時,目標(biāo)對象能夠感應(yīng)該碰撞事件。在該事件中,事件捕獲器121可以獲取如下信息碰撞(或移動、旋轉(zhuǎn)、分解等事件發(fā)生)時間、碰撞對象、碰撞對象的所有者、被撞對象、以及被撞對象的所有者等。在《第二人生》中,在與對象發(fā)生接觸時觸發(fā)對應(yīng)于接觸事件的事件。例如,移動或旋轉(zhuǎn)等事件對應(yīng)于《第二人生》中的定時器事件,即在預(yù)定時間到期時觸發(fā)傳感器工作,獲取相應(yīng)事件的諸如位置、旋轉(zhuǎn)角度等信息。表l《第二人生》中事件類型的實(shí)例<table>tableseeoriginaldocumentpage14</column></row><table>下面詳細(xì)說明根據(jù)本發(fā)明的可配置傳感器的實(shí)現(xiàn)。根據(jù)本發(fā)明,在《第二人生》中,可以使用林登腳本語言(LindenScriptLanguage:LSL)來實(shí)現(xiàn)可配置傳感器12。通常,可配置傳感器12實(shí)現(xiàn)為嵌入在上述對象11中的一段程序邏輯,例如腳本。下面的代碼段示出了使用林登腳本語言實(shí)現(xiàn)《第二人生》中的可配置傳感器12的邏輯的例子。具體地,該代碼段為在雷達(dá)對象上嵌入的傳感器邏輯。所述雷達(dá)負(fù)責(zé)感應(yīng)及顯示所發(fā)現(xiàn)的化身(avatar),其中化身是用戶登錄進(jìn)3D虛擬世界里后自己在其中的3D虛擬人物形象。在該代碼段中,定義了旋轉(zhuǎn)事件捕獲器,該旋轉(zhuǎn)事件捕獲器的狀態(tài)設(shè)置包括是否開啟(即,是否訂閱該事件)、傳感間隔(對于定時器事件)等參數(shù)。在傳感器函數(shù)中,計(jì)算化身與某檢測位置之間的距離,從而計(jì)算旋轉(zhuǎn)的角度、方位等,并通過primRot和primRotVec這兩個變量傳送旋轉(zhuǎn)事件的信息。<table>tableseeoriginaldocumentpage16</column></row><table>具體地,在上述實(shí)現(xiàn)傳感器的邏輯段中,過程state_entry用于初始化捕獲器,包括設(shè)置捕獲器開關(guān)狀態(tài)(OnOff),設(shè)置傳感器捕獲事件的時間間隔(sensorlnterval),設(shè)置監(jiān)控對象的最大數(shù)目(maxAgent),以及通過過程11SetLinkPrimitiveParams對記錄捕獲結(jié)果的日志文件進(jìn)行必要初始化。過程touch—start用于對觸摸事件進(jìn)行響應(yīng)式監(jiān)控,也即,捕獲通過觸摸來旋轉(zhuǎn)對象的事件。過程sensor是捕獲對象旋轉(zhuǎn)的核心部分,其調(diào)用一系列過程和函數(shù),以獲得描述所捕獲事件的核心參數(shù)。在該示例中,描述物體旋轉(zhuǎn)的核心參數(shù)有兩個primRot(物體朝向)和pdmRotVec(雷達(dá)朝向)。通過過程11SetLinkPrimitiveParams將這兩個參數(shù)以參數(shù)列表的形式保存在日志文件中。應(yīng)當(dāng)理解,本發(fā)明并不限于使用林登腳本語言來實(shí)現(xiàn)可配置傳感器12的邏輯的嵌入,也可以使用其他虛擬世界里的相應(yīng)的合適的語言來在實(shí)現(xiàn)傳感器邏輯的嵌入。正如上文所述的,本發(fā)明的一個優(yōu)勢在于,可以在對象上嵌入傳感器邏輯段,以實(shí)現(xiàn)對對象以及對象間發(fā)生的事件的監(jiān)控和采集。相比較,在傳統(tǒng)的3D仿真環(huán)境中,3D對象中不能嵌入邏輯,因此化身/用戶與虛擬對象之間的交互功能非常弱。3.事件發(fā)送器13和事件接收器14事件發(fā)送器13位于虛擬世界10的內(nèi)部,用于接收由可配置傳感器12所捕獲的與相應(yīng)事件相關(guān)聯(lián)的信息,并向虛擬世界10外部發(fā)送該信息。事件接收器14位于虛擬世界10的外部,用于接收來自事件發(fā)送器13的信息,并將該信息發(fā)送到事件記錄器l5。根據(jù)本發(fā)明,可以使用各種通信協(xié)議和事件格式,來在事件發(fā)送器13與虛擬世界10內(nèi)的對象11上的可配置傳感器12之間、事件發(fā)送器13與事件接收器14之間、以及事件接收器14與記錄器15之間進(jìn)行通信。例如,在《第二人生》中,可以使用超文本傳輸協(xié)議(HUp)用于上述各個部件之間的通信。在有些情況下,也可以17采用面向消息的中間件(Message-OrientedMiddleware:MOM)來實(shí)現(xiàn)上述各個部件之間的通信。根據(jù)本發(fā)明,事件格式可以利用諸如通用事件基礎(chǔ)架構(gòu)(CommonEventInfrastructure:CEI)等的事件描述和處理機(jī)制。下面的代碼段以XML給出了利用CEI的事件的實(shí)例。其中定義了通用基礎(chǔ)事件,包括創(chuàng)建時間、流逝的時間、擴(kuò)展名、全局ID、局部ID、消息、優(yōu)先級、重復(fù)次數(shù)等。還包括一些上下文數(shù)據(jù)元素、擴(kuò)展數(shù)據(jù)元素、關(guān)聯(lián)事件、消息數(shù)據(jù)元素等。用戶可以根據(jù)實(shí)際事件的類型、特點(diǎn)來定義不同事件。<formula>formulaseeoriginaldocumentpage19</formula>4.事件記錄器15和事件日志數(shù)據(jù)庫16事件記錄器15位于虛擬世界10的外部,用于接收來自事件接收器14的與事件相關(guān)的信息,并將該信息記錄在事件日志數(shù)據(jù)庫16中。具體地,事件記錄器15記錄虛擬世界10中的所有必要活動,包括(1)化身-對象的交互;(2)對象的變化;(3)虛擬世界的變化。下面的代碼段示出了記錄這三種活動的例子。例如,化身-對象交互的記錄信息包括記錄類型、時間標(biāo)志、化身狀態(tài)、動作要點(diǎn)、活動等。對象變化的記錄信息包才舌記錄類型、時間標(biāo)志、對象、外表變化、運(yùn)動等。虛擬事件的變化的記錄信息包括記錄類型、時間標(biāo)志、世界、靜態(tài)變化、動態(tài)變化等。(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/>根據(jù)本發(fā)明,記錄的事件可以以事件日志的形式存儲在事件曰志數(shù)據(jù)庫16中,例如存儲在IBMDB2中。所述事件日志可以直接用來回放和構(gòu)造原始的虛擬世界場景。5.3D回放器17才艮據(jù)本發(fā)明實(shí)施例的3D播放器17位于虛擬世界10外部,用于根據(jù)事件日志數(shù)據(jù)庫16中的記錄產(chǎn)生回放命令。根據(jù)本發(fā)明的實(shí)施例,可以通過對目前虛擬世界的客戶-服務(wù)器架構(gòu)進(jìn)行擴(kuò)展來實(shí)現(xiàn)3D回放器17。本發(fā)明與現(xiàn)有虛擬世界的基礎(chǔ)結(jié)構(gòu)不同之處在于本發(fā)明中來自服務(wù)器的事件不是實(shí)時的事件,而是存儲在本發(fā)明的事件20日志數(shù)據(jù)庫16中的歷史事件。這樣,利用本發(fā)明的3D回放器17,可以使化身再次進(jìn)入虛擬世界10,以查看和回放這些歷史事件。6.命令發(fā)送器18和命令接收器19本發(fā)明的命令發(fā)送器18位于虛擬世界10外部,用于接收來自3D回放器l7的回放命令,并將回放命令發(fā)送至命令接收器19。命令接收器19位于虛擬世界10內(nèi)部,接收來自命令發(fā)送器的命令。根據(jù)本發(fā)明,可以使用各種通信協(xié)議,來在3D回放器17與命令發(fā)送器18之間、命令發(fā)送器18與命令接收器19之間、以及命令接收器與虛擬世界10中的其他部件之間進(jìn)行通信。例如,可以使用HUp來從虛擬世界10外向虛擬世界10內(nèi)部進(jìn)行通信。7.控制器20和可配置的效應(yīng)器21控制器20位于虛擬世界10內(nèi)部,用于接收來自命令接收器19的回放命令,并對該命令進(jìn)行分析。以觸發(fā)分布在對象上的可配置效應(yīng)器21。優(yōu)選地,控制器20可以包括以下部件,解析器201、調(diào)度器202以及廣播器203。具體地,解析器201可以用來對所述回放命令進(jìn)行解析并且將所述回放命令分解為單句命令。調(diào)度器202可以用來調(diào)度各單句命令。廣播器203可以用來將所述單句命令廣播至對象lla和lib上的相應(yīng)可配置效應(yīng)器21。可配置效應(yīng)器21設(shè)置在虛擬世界的對象lla和lib上,用于響應(yīng)回放命令來產(chǎn)生對應(yīng)的動作和/或效果。具體地,如同可配置傳感器12的實(shí)現(xiàn)一樣,可配置效應(yīng)器21也是嵌入在虛擬對象lla和lib上的一小段邏輯,它與可配置傳感器12的功能相對應(yīng)??膳渲脗鞲衅?2是利用特定嵌入的邏輯來檢測虛擬對象的變化,并發(fā)送特定事件,而可配置效應(yīng)器21是由特定回放命令觸發(fā)然后執(zhí)行特定的邏輯,使得虛擬對象lla和lib等產(chǎn)生特定的3D效果,例如移動、旋轉(zhuǎn)、切換紋理、發(fā)光、閃爍等。下面的代碼段示出了可配置效應(yīng)器21接收到的事件的實(shí)例。在該接收到的事件實(shí)例中,指示了目標(biāo)對象以及希望發(fā)生的動作或產(chǎn)生的效果。例如,在目標(biāo)對象中指示了名稱為Objectl、ID為objl、21物理特性為true的對象,在動作或效果描述中指示了所希望的效果是所述目標(biāo)對象按順序發(fā)光等。<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,詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的用于獲取虛擬世界中發(fā)生的事件的方法。首先,在步驟S101處,設(shè)置在對象11a或lib上的可配置傳感器12中的事件捕獲器121-l至121-n可以捕獲與事件相關(guān)聯(lián)的信息,并將該信息傳輸至事件發(fā)送器13。所述事件可以是與對象和虛擬世界有關(guān)的任何變化。然后,可選地,在步驟S102處,事件發(fā)送器13將與事件相關(guān)聯(lián)的信息發(fā)送至虛擬世界10外部,例如,虛擬世界10外部的事件接收器14。接著,在步驟S103處,事件接收器14接收來自虛擬世界10內(nèi)部的與事件相關(guān)聯(lián)的信息,并將該信息傳輸?shù)绞录涗浧?5。22然后,在步驟S1(M處,事件記錄器15將與事件相關(guān)聯(lián)的信息記錄到事件日志數(shù)據(jù)路16中,以供隨后的回放使用。下面參考圖3,將詳細(xì)描迷根據(jù)本發(fā)明實(shí)施例的用于回放虛擬世界10中發(fā)生的事件的方法。首先,在步驟S201處,3D回放器17根據(jù)事件日志數(shù)據(jù)庫16中的記錄產(chǎn)生回放命令,并將回放命令傳輸至命令發(fā)送器18。該回放命令可以是簡單的回放命令或者復(fù)合的回放命令。然后,在步驟S202處,命令發(fā)送器18可以將回放命令發(fā)送至虛擬世界10內(nèi)部的命令接收器19。接著,在步驟S203處,命令接收器19接收來自命令發(fā)送器18的回方文命令。接著,可選地,在步驟S204處,控制器20接收來自命令接收器19的回放命令,并對該命令進(jìn)行分析,以觸發(fā)分布在對象上的可配置效應(yīng)器21。最后,在步驟S205處,可配置效應(yīng)器21響應(yīng)于回放命令而產(chǎn)生對應(yīng)的動作和/或效果。具體地,由特定回放命令觸發(fā)可配置效應(yīng)器21,然后執(zhí)行特定的邏輯,使得虛擬對象產(chǎn)生特定的3D效果,例如移動、旋轉(zhuǎn)、切換紋理、發(fā)光、閃爍等。圖4示出了根據(jù)本發(fā)明的控制器20在圖3的步驟S204中所執(zhí)行操作的詳細(xì)示意圖。首先,在步驟S2041處,控制器20中的解析器201解析回放命令,并將回放命令分解為不可再分的單句命令。然后,在步驟S2042處,控制器20中的調(diào)度器202調(diào)度各單句命令。最后,在步驟S2043處,控制器20中的廣播器203向?qū)ο髄la和lib上相應(yīng)的可配置效應(yīng)器21廣播所述單句命令,使得可配置效應(yīng)器21執(zhí)行相應(yīng)的動作。本發(fā)明實(shí)施例的變型根據(jù)本發(fā)明實(shí)施例的一個變型,本發(fā)明的系統(tǒng)可以進(jìn)一步擴(kuò)展以支持其他豐富的交互活動。例如,本發(fā)明的系統(tǒng)還可以包4舌各種編輯器,用于對事件日志數(shù)據(jù)庫16中的記錄進(jìn)行以下操作中的至少之一編輯、增加注釋、標(biāo)準(zhǔn)化移動路徑以及添加多媒體效果。例如,可以將事件日志數(shù)據(jù)庫16中記錄的虛擬對象的移動事件進(jìn)行標(biāo)準(zhǔn)化。例如,實(shí)際向右移動8.5cm,但是標(biāo)準(zhǔn)化(歸一化)的移動區(qū)間是[7cm,8cm,9cm]。因此當(dāng)化身在區(qū)間(7cm,9cm)的上下限之間的范圍移動對象時,就直接將移動調(diào)準(zhǔn)到中間,也即8cm。圖5是標(biāo)準(zhǔn)化記錄的3D移動的示意圖,其中給出了標(biāo)準(zhǔn)化前和標(biāo)準(zhǔn)化后的移動軌跡,將矢量的方向和長度都進(jìn)行標(biāo)準(zhǔn)化。另外,可以對事件日志數(shù)據(jù)庫16中的事件信息進(jìn)行調(diào)整,以調(diào)整事件發(fā)生的順序或者添加其他多媒體效果。例如,記錄的事件順序可能是產(chǎn)品演示的專家首先移動對象A,然后移動對象B。但是將其編輯為支持兩種次序(A,B)和(B,A)。圖6給出了支持XML的3D記錄編輯器的截圖,其中位于虛線框中的是時間標(biāo)記的滾動條,并隨著滾動條拖動顯示在對應(yīng)時間標(biāo)記下的對象的屬性。所述編輯器還可以包括樹圖或曲線圖等的嵌入式圖形工具,使得能夠直觀地表示出虛擬對象之間的關(guān)系。根據(jù)本發(fā)明,可以根據(jù)需要,將一些部件布置在虛擬世界10內(nèi)部,以及將另一些部件布置在虛擬世界IO外部,而不受圖1所示的布置的限制。根據(jù)本發(fā)明,圖1所示各種系統(tǒng)的各個部件之間可以采用任何合適的通信機(jī)制來通信,例如傳輸控制協(xié)議(TCP),用戶數(shù)據(jù)報協(xié)議(UDP),超文本傳輸協(xié)議(HTTP)等。另外,應(yīng)當(dāng)理解,本發(fā)明的各個裝置和模塊可以通過軟件、固件、硬件或者它們的組合的方式來實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到,也可以在供任何合適數(shù)據(jù)處理系統(tǒng)使用的信號承載介質(zhì)上所設(shè)置的計(jì)算機(jī)程序產(chǎn)品中體現(xiàn)本發(fā)明。這種信號承載介質(zhì)可以是傳輸介質(zhì)或用于機(jī)器可讀信息的可記錄介質(zhì),包括磁介質(zhì)、光介質(zhì)或其它合適介質(zhì)??捎涗浗橘|(zhì)的例子包括硬盤驅(qū)動器中的磁盤或軟盤、用于光驅(qū)的光盤、磁帶,以及本領(lǐng)域技術(shù)人員所能想到的其它介質(zhì)。本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到,具有合適編程裝置的任何通信終端都將能夠執(zhí)行如程序產(chǎn)品中體現(xiàn)的本發(fā)明方法的步驟。從上述描述應(yīng)該理解,在不脫離本發(fā)明精神的情況下,可以對本發(fā)明各實(shí)施方式進(jìn)行修改和變更。本說明書中的描述僅僅是用于說明性的,而不應(yīng)被認(rèn)為是限制性的。本發(fā)明的范圍僅受權(quán)利要求書的限制。權(quán)利要求1.一種用于獲取虛擬世界中發(fā)生的事件的方法,其中所述虛擬世界的對象上設(shè)置有傳感器,該方法包括以下步驟響應(yīng)于虛擬世界中發(fā)生的事件,通過所述傳感器捕獲與所述事件相關(guān)聯(lián)的信息。2.根據(jù)權(quán)利要求1所述的方法,還包括步驟將與所述事件相關(guān)聯(lián)的信息發(fā)送到虛擬世界外部。3.根據(jù)權(quán)利要求2所述的方法,還包括步驟接收與所述事件相關(guān)聯(lián)的信息;以及將與所述事件相關(guān)聯(lián)的信息記錄到事件日志數(shù)據(jù)庫中。4.根據(jù)權(quán)利要求3所述的方法,還包括步驟對所述事件日志數(shù)據(jù)庫中的記錄進(jìn)行以下操作中的至少之一編輯、增加注釋、標(biāo)準(zhǔn)化移動路徑以及添加多J某體效果。5.根據(jù)權(quán)利要求1所述的方法,其中所述傳感器包括多個事件捕獲器,每個事件捕獲器對應(yīng)于一種事件類型,通過選擇不同的事件捕獲器組合來訂閱事件類型,以及其中所述捕獲步驟包括響應(yīng)于所訂閱事件的發(fā)生,由對應(yīng)的事件捕獲器來獲取與對應(yīng)的事件相關(guān)聯(lián)的信息。6.根據(jù)權(quán)利要求1至5中任意一個所述的方法,其中所述事件包括化身與對象的交互活動、對象的變化以及虛擬世界的變化中的至少之一。7.—種用于回放虛擬世界中發(fā)生的事件的方法,其中所述虛擬世界的對象上設(shè)置有效應(yīng)器,該方法包括以下步驟根據(jù)事件日志數(shù)據(jù)庫中的記錄產(chǎn)生回放命令;將回放命令發(fā)送到虛擬世界內(nèi);接收所述回放命令;以及響應(yīng)于回放命令,經(jīng)由所述效應(yīng)器產(chǎn)生對應(yīng)的動作和/或效果。8.根據(jù)權(quán)利要求7所述的方法,還包括步驟在所述效應(yīng)器接收回放命令之前,對所述回放命令進(jìn)行分析。9.根據(jù)權(quán)利要求8所述的方法,其中所述分析步驟還包括對所述回放命令進(jìn)行解析并且將所述回放命令分解為單句命令;調(diào)度各單句命令;以及將所述單句命令廣播到相應(yīng)的效應(yīng)器。10.—種用于獲取和回放虛擬世界中發(fā)生的事件的方法,其中所述虛擬世界的對象上設(shè)置有傳感器和效應(yīng)器,該方法包括以下步驟響應(yīng)于虛擬世界中發(fā)生的事件,通過所述傳感器捕獲與所述事件相關(guān)聯(lián)的信息;將與所述事件相關(guān)聯(lián)的信息記錄到事件日志數(shù)據(jù)庫中;根據(jù)事件日志數(shù)據(jù)中的記錄產(chǎn)生回放命令;以及響應(yīng)于回》文命令,經(jīng)由所述效應(yīng)器產(chǎn)生對應(yīng)的動作和/或效果。11.一種用于獲取虛擬世界中發(fā)生的事件的系統(tǒng),該系統(tǒng)包括傳感器,設(shè)置在所述虛擬世界的對象上,用于響應(yīng)于虛擬世界中發(fā)生的事件,捕獲與所述事件相關(guān)聯(lián)的信息。12.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括事件發(fā)送器,用于將與所述事件相關(guān)聯(lián)的信息發(fā)送到虛擬世界外部。13.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括事件接收器,用于接收與所述事件相關(guān)聯(lián)的信息;以及記錄器,用于將與所述事件相關(guān)聯(lián)的信息記錄到事件日志數(shù)據(jù)庫中。14.根據(jù)權(quán)利要求13所述的系統(tǒng),還包括編輯器,用于對所述事件日志數(shù)據(jù)庫中的記錄進(jìn)行以下操作中的至少之一編輯、增加注釋、標(biāo)準(zhǔn)化移動^各徑以及添加多々某體效果。15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述傳感器包括多個事件捕獲器,每個事件捕獲器對應(yīng)于一種事件類型,通過選擇不同的事件捕獲器來訂閱事件類型,以及響應(yīng)于所訂閱事件的發(fā)生,由對應(yīng)的事件捕獲器來獲取與對應(yīng)的事件相關(guān)聯(lián)的信息。16.根據(jù)權(quán)利要求11至15中任意一個所述的系統(tǒng),其中所述事件包括化身與對象的交互活動、對象的變化以及虛擬世界的變化中的至少之一。17.—種用于回放虛擬世界中發(fā)生的事件的系統(tǒng),該系統(tǒng)包括回放器,用于根據(jù)事件日志數(shù)據(jù)庫中的記錄產(chǎn)生回放命令;命令發(fā)送器,用于將回放命令發(fā)送到虛擬世界內(nèi);命令接收器,用于接收所述回放命令;以及效應(yīng)器,設(shè)置在虛擬世界的對象上,用于響應(yīng)于回放命令,產(chǎn)生對應(yīng)的動作和/或效果。18.根據(jù)權(quán)利要求17所述的系統(tǒng),還包括控制器,用于在所述效應(yīng)器接收回放命令之前對所述回放命令進(jìn)行分析。19.根據(jù)權(quán)利要求18所述的系統(tǒng),其中所述控制器還包括解析器,用于對所述回放命令進(jìn)行解析并且將所述回放命令分解為單句命令;調(diào)度器,用于調(diào)度各單句命令;以及廣播器,用于將所述單句命令廣播至相應(yīng)的效應(yīng)器。20.—種用于獲取和回放虛擬世界中發(fā)生的事件的系統(tǒng),該系統(tǒng)包括傳感器,設(shè)置在虛擬世界的對象上,用于響應(yīng)于虛擬世界中發(fā)生的事件,捕獲與所述事件相關(guān)聯(lián)的信息;記錄器,用于將與所述事件相關(guān)聯(lián)的信息記錄到事件日志數(shù)據(jù)庫中;回放器,用于根據(jù)事件日志數(shù)據(jù)中的記錄產(chǎn)生回放命令;以及效應(yīng)器,設(shè)置在虛擬世界的對象上,用于響應(yīng)于回放命令,產(chǎn)生對應(yīng)的動作和/或效果。全文摘要本發(fā)明提供了一種用于獲取和回放虛擬世界中發(fā)生的事件的方法和系統(tǒng)。所述虛擬世界的對象上設(shè)置有傳感器和效應(yīng)器,該方法包括以下步驟響應(yīng)于虛擬世界中發(fā)生的事件,通過所述傳感器捕獲與所述事件相關(guān)聯(lián)的信息;將與所述事件相關(guān)聯(lián)的信息記錄到事件日志數(shù)據(jù)庫中;根據(jù)事件日志數(shù)據(jù)中的記錄產(chǎn)生回放命令;以及響應(yīng)于回放命令,經(jīng)由所述效應(yīng)器產(chǎn)生對應(yīng)的動作和/或效果。文檔編號G06T1/00GK101520884SQ20081008093公開日2009年9月2日申請日期2008年2月29日優(yōu)先權(quán)日2008年2月29日發(fā)明者廖勤櫻,健王,弘蔡,晨趙申請人:國際商業(yè)機(jī)器公司