本發(fā)明涉及虛擬現(xiàn)實技術(shù)領(lǐng)域,尤其涉及一種虛擬現(xiàn)實中玩家與虛擬角色互動方法。
背景技術(shù):
虛擬現(xiàn)實技術(shù)(簡稱vr),是以沉浸性、交互性和構(gòu)想性為基本特征的計算機高級人機界面。他綜合利用了計算機圖形學(xué)、仿真技術(shù)、多媒體技術(shù)、人工智能技術(shù)、計算機網(wǎng)絡(luò)技術(shù)、并行處理技術(shù)和多傳感器技術(shù),模擬人的視覺、聽覺、觸覺等感覺器官功能,使人能夠沉浸在計算機生成的虛擬境界中,并能夠通過語言、手勢等自然的方式與之進行實時交互,創(chuàng)建了一種適人化的多維信息空間。使用者不僅能夠通過虛擬現(xiàn)實系統(tǒng)感受到在客觀物理世界中所經(jīng)歷的“身臨其境”的逼真性,而且能夠突破空間、時間以及其他客觀限制,感受到真實世界中無法親身經(jīng)歷的體驗。
現(xiàn)有技術(shù)中,在vr場景中如何真實模仿與虛擬角色的互動,并通過互動產(chǎn)生對應(yīng)結(jié)果,一直是強調(diào)真實的vr產(chǎn)品需要解決的實際問題。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的在于提供一種玩家與虛擬角色互動方法,在vr場景中如何真實模仿與虛擬角色的互動,并通過互動產(chǎn)生對應(yīng)結(jié)果。
為實現(xiàn)上述目的,本發(fā)明提供的玩家與虛擬角色互動方法,包括以下步驟:
建立虛擬角色,并為其添加抓取模塊;
設(shè)定虛擬角色的表現(xiàn)效果;
玩家與虛擬角色進行互動,并產(chǎn)生相應(yīng)的表現(xiàn)效果。
進一步地,所述建立虛擬角色,并為其添加抓取模塊,是建立被抓取的動物的類,并在所述類中添加抓取模塊。
進一步地,所述動物的類,包括普通動物、在水中的動物、全息地圖恐龍,以及全息資料臺上的恐龍。
進一步地,所述虛擬角色的表現(xiàn)效果,包括:
當(dāng)玩家抓取動物后停止ai和動作藍圖,播放被抓動作;
如果是普通動物,則被玩家扔出并落地后,恢復(fù)ai和動作藍圖;
如果是水中的動物,被玩家扔出并落到水里,則恢復(fù)ai和動作藍圖并使動物逃離;被玩家扔出并落到地面上,則需要先判斷是否為兩棲動物,如果是兩棲動物則恢復(fù)ai和動作藍圖,不是兩棲動物則讓動物播放在地面上掙扎的動作;
如果是全息地圖恐龍被玩家扔出,所述全息地圖恐龍將在落地后放大并播放特定的動作,然后恢復(fù)被抓取之前的位置和大小,恢復(fù)ai和動作藍圖;
如果是全息資料臺上的恐龍被玩家扔出,所述恐龍回到臺子并在顯示區(qū)域顯示相應(yīng)的恐龍資料。
更進一步地,所述玩家與虛擬角色進行互動,包括以下步驟:
玩家抓住動物,vr設(shè)備發(fā)送抓取消息給服務(wù)端,服務(wù)端接收抓取消息,并將動物綁在人物手上;
玩家松開動物,vr設(shè)備發(fā)送松開消息給服務(wù)端,服務(wù)端接收松開消息,并將動物從玩家手上解綁切換掉落動作;
動物與地面發(fā)生碰撞,編輯器產(chǎn)生一個hit事件,服務(wù)端根據(jù)該hit事件,并拋出落地事件。
本方法運用繼承與多態(tài)的方法表現(xiàn)了不同種類的動物在與玩家互動時產(chǎn)生的不同效果,并通過這些效果上細節(jié)的打磨,增加了玩家與動物之間的交互性,觀賞性與趣味性。
采用本發(fā)明,可以將vr場景中的所有動物都賦予被可以抓取的屬性,實現(xiàn)了玩家對場景中動物的操作,豐富了場景中的玩法與表現(xiàn)效果,增強了vr設(shè)備與虛擬場景之間的操作與交互。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。
附圖說明
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,并與本發(fā)明的實施例一起,用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1為根據(jù)本發(fā)明的玩家與虛擬角色互動方法流程圖;
圖2為根據(jù)本發(fā)明的玩家抓取動物的界面截圖;
圖3為根據(jù)本發(fā)明的抓取動物時動物與玩家之間的互動界面截圖;
圖4為根據(jù)本發(fā)明的丟掉動物后動物與玩家之間的互動界面截圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
圖1為根據(jù)本發(fā)明的玩家與虛擬角色互動方法,下面將參考圖1,對本發(fā)明的玩家與虛擬角色互動方法進行詳細描述。
首先,在步驟101,建立虛擬角色,并為其添加抓取模塊。
在該步驟中,首先建立一個可以被抓取的動物的類作為虛擬角色,然后在這個類中添加一個抓取模塊。
當(dāng)玩家抓住動物后,將會上發(fā)給服務(wù)端一個消息,服務(wù)端接收到這個消息后會開始處理抓取事件:將動物綁在人物手上,并停止動物的ai和動作藍圖,開始播放自定義的抓取動畫。在自定義的動物掙扎動畫中有自定義的事件反饋,當(dāng)接收到反饋后將會拋出手柄反饋使手柄震動,增加玩家的交互感。當(dāng)玩家松開手柄的時候會上發(fā)給服務(wù)端一個消息,服務(wù)端接收到這個消息將會處理松開手柄的事件:將動物從玩家手上解綁并添加物理模擬,并且將動物的動作切換為自定義的掉落動作。當(dāng)動物與地面發(fā)生碰撞后編輯器將會產(chǎn)生一個hit事件,當(dāng)服務(wù)端接收到這個hit事件后將會拋出一個落地的事件,該事件可以被子類繼承。
在步驟102,設(shè)定虛擬角色的表現(xiàn)效果。
在該步驟中,本發(fā)明中一共定義了4個類來實現(xiàn)所有被抓取的動物的表現(xiàn)效果,這些類都是繼承于上述所建立的類,并重寫了落地事件,具體實現(xiàn)如下:
1、普通動物:在接收到落地事件后,將會關(guān)閉模擬物理并恢復(fù)ai和動作藍圖。
2、在水中的動物:繼承基類中松開手柄的事件,重寫該事件并判定在松開手柄后到落地之間,如果所在的物理體為水體的話則判定為落入水中,否則接收到落地事件則判定為落在地面上。如果動物是落入水中則恢復(fù)動物ai和動畫藍圖,并停止模擬物理;如果動物落在地面上則先停止模擬物理,并判斷動物是否是兩棲動物,如果是兩棲動物則恢復(fù)動物ai和動畫藍圖,否則將播放自定義的在地面上的掙扎動畫。
3、全息地圖恐龍:當(dāng)接收到落地消息后,將會關(guān)閉模擬物理,恐龍會原地放大數(shù)倍,并播放一些特定的動作讓玩家觀看。過一段時間后恐龍將消失并回到出生點并恢復(fù)出生時的狀態(tài)。
4、全息資料臺上的可被選擇恐龍:類似于水中的動物,當(dāng)玩家將恐龍拋出后將判定是否與資料臺的屏幕有碰撞,如果與屏幕碰撞了則將屏幕上顯示的恐龍信息改為當(dāng)前的恐龍資料,并關(guān)閉物理并回到資料臺上,如果碰到了地面則返回資料臺上。
在步驟103,vr設(shè)備玩家與虛擬角色進行互動,并產(chǎn)生相應(yīng)的表現(xiàn)效果。
在該步驟中,當(dāng)玩家抓住動物后,將會上發(fā)給服務(wù)端一個消息,服務(wù)端接收到這個消息后會開始處理抓取事件:將動物綁在人物手上,并停止動物的ai和動作藍圖,開始播放自定義的抓取動畫。在自定義的動物掙扎動畫中有自定義的事件反饋,當(dāng)接收到反饋后將會拋出手柄反饋使手柄震動,增加玩家的交互感。當(dāng)玩家松開手柄的時候會上發(fā)給服務(wù)端一個消息,服務(wù)端接收到這個消息將會處理松開手柄的事件:將動物從玩家手上解綁并添加物理模擬,并且將動物的動作切換為自定義的掉落動作。當(dāng)動物與地面發(fā)生碰撞后編輯器將會產(chǎn)生一個hit事件,當(dāng)服務(wù)端接收到這個hit事件后將會拋出一個落地的事件,該事件可以被子類繼承。
本發(fā)明主要通過以下的步驟來實現(xiàn)vr設(shè)備玩家與虛擬角色進行互動,并產(chǎn)生相應(yīng)的表現(xiàn)效果:
1、玩家手柄與動物產(chǎn)生碰撞后,按住手柄扳機,服務(wù)端接收到抓取指令,將動物綁在玩家手上,并讓動物播放被抓取的動畫;圖2為根據(jù)本發(fā)明的玩家抓取動物的界面截圖。
2、在掙扎的過程中一直產(chǎn)生手柄震動反饋;圖3為根據(jù)本發(fā)明的抓取動物時動物與玩家之間的互動界面截圖。
3、當(dāng)玩家將動物扔出去并松開扳機的時候,將動物從玩家手上解綁,并開啟物理模擬;圖4為根據(jù)本發(fā)明的丟掉動物后動物與玩家之間的互動界面截圖。
4、當(dāng)動物撞到地上后,服務(wù)端將接收到hit事件,在hit事件中拋出一個事件并給不同類型的動物根據(jù)所處的狀態(tài)添加不同的表現(xiàn)。
本發(fā)明的恐龍表現(xiàn)效果一共有3種,具體如下:
普通動物:當(dāng)玩家抓取動物后停止ai和動作藍圖,播放被抓動作;當(dāng)玩家扔出動物并落地后,恢復(fù)ai和動作藍圖;
可以在水里游的動物:當(dāng)玩家抓取動物后停止ai和動作藍圖,播放被抓動作;當(dāng)玩家拋出動物后,根據(jù)是否產(chǎn)生hit事件或者是否落入到水體中判斷是落到地面上還是落到水里,如果落到水里則恢復(fù)ai和動作藍圖并使動物逃離,如果落到地面上則需要先判斷是不是兩棲動物,如果是兩棲動物則恢復(fù)ai和動作藍圖,不是兩棲動物則讓動物播放一個在地面上掙扎的動作;
全息恐龍:我們的場景中有2種全息恐龍,分別是全息地圖上的恐龍和恐龍資料臺上可供選擇的全息恐龍。兩者的功能是在落地后的表現(xiàn)方面有所不同。當(dāng)玩家抓取動物后停止ai和動作藍圖,播放被抓動作;當(dāng)玩家扔出動物后,全息地圖恐龍將在落地后放大并播放一個特定的動作,過段時間后恢復(fù)到一開始被抓取之前的位置并恢復(fù)原來的大小,恢復(fù)ai和動作藍圖;而全息恐龍資料臺上的恐龍將會判定是落地還是落入恐龍資料顯示區(qū)域,如果落地了將回到臺子上,如果落入資料顯示區(qū)域也會回到臺子上并在顯示區(qū)域顯示相應(yīng)的恐龍資料。
本發(fā)明玩家與虛擬角色互動方法,實現(xiàn)了玩家與vr場景中動物的抓取互動,當(dāng)玩家沒有抓取動物時動物是由自身,由ai控制其行為,而當(dāng)玩家抓起了動物后則是由玩家的行為來控制動物的行為,達到了玩家與動物之間的交互,并通過互動產(chǎn)生對應(yīng)結(jié)果。
當(dāng)玩家利用手柄觸碰一名可以互動的虛擬角色后,服務(wù)端會接收到消息,此時服務(wù)端會廣播消息讓該角色播放一個相對應(yīng)的動作。當(dāng)玩家松開手柄后,服務(wù)端會收到放棄事件,廣播給客戶端播放對應(yīng)動作并模擬物理效果。
本領(lǐng)域普通技術(shù)人員可以理解:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領(lǐng)域的技術(shù)人員來說,其依然可以對前述各實施例記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。