本發(fā)明涉及虛擬現(xiàn)實(shí)領(lǐng)域,特別是指一種移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的方法、裝置和系統(tǒng)。
背景技術(shù):
虛擬現(xiàn)實(shí)(VR,Virtual Reality)技術(shù)是一種可以創(chuàng)建和體驗(yàn)虛擬世界的計(jì)算機(jī)仿真系統(tǒng)。它利用計(jì)算機(jī)生成一種模擬環(huán)境,是一種多源信息融合的交互式的三維動態(tài)視景和實(shí)體行為的系統(tǒng)仿真使用戶沉浸到該環(huán)境中。目前主流的虛擬現(xiàn)實(shí)設(shè)備包括電腦端頭顯、手機(jī)端頭顯、一體機(jī)頭顯和主機(jī)端頭顯,其中手機(jī)端和一體機(jī)是主要的移動虛擬現(xiàn)實(shí)設(shè)備。
移動虛擬現(xiàn)實(shí)頭顯相比電腦端頭顯和主機(jī)端頭顯最大的優(yōu)點(diǎn)在于它具有移動性,在沒有線纜的束縛情況下,人們可以獲得更好的體驗(yàn)以及沉浸感。
目前很多游戲外設(shè)(如:游戲方向盤、飛行搖桿、游戲手柄等)主要都是為適配電腦而設(shè)計(jì),它們的驅(qū)動程序沒有可以支持移動端設(shè)備的版本。作為虛擬現(xiàn)實(shí)體驗(yàn)非常要求沉浸感,這些游戲外設(shè)就顯得尤為重要。為了使得移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè),現(xiàn)有的解決辦法是將電腦外設(shè)與移動端直接相連,并且為電腦外設(shè)開發(fā)支持移動端設(shè)備的驅(qū)動。但是這種方法存在很多問題:首先,電腦外設(shè)的種類很多,需要針對每一種電腦外設(shè)開發(fā)一款驅(qū)動程序,并安裝到移動端,開發(fā)工作量大,而且在移動端安裝較多驅(qū)動會占用移動端的資源;其次,電腦外設(shè)的接口種類較多,而移動端只有有限的接口,有些電腦外設(shè)很難直接與移動端連接。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的方法、裝置和系統(tǒng),本發(fā)明實(shí)現(xiàn)了移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè),并且不需要在移動虛擬現(xiàn)實(shí)設(shè)備上安裝電腦外設(shè)的驅(qū)動程序,減少了開發(fā)工作量,不會占用移動虛擬現(xiàn)實(shí)設(shè)備的資源,并且本發(fā)明可以適用于各種類型的電腦外設(shè)。
為解決上述技術(shù)問題,本發(fā)明提供技術(shù)方案如下:
一方面,本發(fā)明提供一種移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的方法,包括:
步驟100:獲取所述電腦外設(shè)的動作信息,所述動作信息為所述電腦外設(shè)進(jìn)行某個(gè)功能所產(chǎn)生的數(shù)據(jù);
步驟200:根據(jù)所述動作信息,得到響應(yīng)信息;
步驟300:將所述響應(yīng)信息發(fā)送給所述移動虛擬現(xiàn)實(shí)設(shè)備。
進(jìn)一步的,所述步驟200包括:
步驟210:使用Input類,得到所述動作信息的類型、名稱和數(shù)值;
步驟220:根據(jù)所述類型、名稱和數(shù)值,得到所述響應(yīng)信息。
進(jìn)一步的,所述類型包括開關(guān)型、區(qū)間型或觸發(fā)型。
進(jìn)一步的,所述步驟300進(jìn)一步為:
使用Socket技術(shù)將所述響應(yīng)信息發(fā)送給所述移動虛擬現(xiàn)實(shí)設(shè)備。
另一方面,本發(fā)明提供一種服務(wù)端,所述服務(wù)端包括:
動作信息獲取模塊,用于獲取所述電腦外設(shè)的動作信息,所述動作信息為所述電腦外設(shè)進(jìn)行某個(gè)功能所產(chǎn)生的數(shù)據(jù);
響應(yīng)信息獲取模塊,用于根據(jù)所述動作信息,得到響應(yīng)信息;
響應(yīng)信息發(fā)送模塊,用于將所述響應(yīng)信息發(fā)送給所述移動虛擬現(xiàn)實(shí)設(shè)備。
進(jìn)一步的,所述響應(yīng)信息獲取模塊包括:
第一獲取單元,用于使用Input類,得到所述動作信息的類型、名稱和數(shù)值;
第二獲取單元,用于根據(jù)所述類型、名稱和數(shù)值,得到所述響應(yīng)信息。
進(jìn)一步的,所述類型包括開關(guān)型、區(qū)間型或觸發(fā)型。
進(jìn)一步的,所述響應(yīng)信息發(fā)送模塊進(jìn)一步用于:
使用Socket技術(shù)將所述響應(yīng)信息發(fā)送給所述移動虛擬現(xiàn)實(shí)設(shè)備。
再一方面,本發(fā)明提供一種移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的系統(tǒng),包括電腦外設(shè)、移動虛擬現(xiàn)實(shí)設(shè)備和上述服務(wù)端,其中:
所述電腦外設(shè)與所述服務(wù)端連接,所述服務(wù)端與移動虛擬現(xiàn)實(shí)設(shè)備通過無線網(wǎng)絡(luò)連接。
本發(fā)明具有以下有益效果:
本發(fā)明利用服務(wù)端獲取電腦外設(shè)的動作信息,并且將該動作信息轉(zhuǎn)換成移動虛擬現(xiàn)實(shí)設(shè)備可以理解并使用的響應(yīng)信息,并將該響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備,供其作出相應(yīng)的響應(yīng)。
本發(fā)明實(shí)現(xiàn)了移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè),并且不需要在移動虛擬現(xiàn)實(shí)設(shè)備上安裝電腦外設(shè)的驅(qū)動程序,減少了開發(fā)工作量,不會占用移動虛擬現(xiàn)實(shí)設(shè)備的資源,并且本發(fā)明可以適用于各種類型的電腦外設(shè)。
附圖說明
圖1為本發(fā)明的應(yīng)用場景示意圖;
圖2為本發(fā)明的移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的方法示意圖;
圖3為本發(fā)明的服務(wù)端的示意圖;
圖4為本發(fā)明的移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的系統(tǒng)示意圖。
具體實(shí)施方式
為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。
本發(fā)明適用于移動虛擬現(xiàn)實(shí)設(shè)備與電腦外設(shè)進(jìn)行交互的場景,其中,電腦外設(shè)與服務(wù)端相連,服務(wù)端與移動虛擬現(xiàn)實(shí)設(shè)備通過網(wǎng)絡(luò)相連,如圖1所示。本發(fā)明中所述的服務(wù)端既可以是服務(wù)器,也可以是PC機(jī),前述的網(wǎng)絡(luò)連接優(yōu)選為無線網(wǎng)絡(luò)連接。
一方面,本發(fā)明提供一種移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的方法,本方法運(yùn)行在服務(wù)端,如圖2所示,包括:
步驟100:服務(wù)端獲取電腦外設(shè)的動作信息,動作信息為電腦外設(shè)進(jìn)行某個(gè)功能所產(chǎn)生的數(shù)據(jù)。
電腦外設(shè)具有多個(gè)功能,每個(gè)功能對應(yīng)到電腦外設(shè)的實(shí)體部件上即為按鈕按鈕、滾輪、遙感、開關(guān)等等。用戶在操作這些部件時(shí),電腦外設(shè)會根據(jù)部件的動作產(chǎn)生相應(yīng)的動作信息,這些動作信息的數(shù)據(jù)格式因電腦外設(shè)的不同而異,不能直接被服務(wù)端以及移動虛擬現(xiàn)實(shí)設(shè)備直接理解并使用,服務(wù)端需要安裝該電腦外設(shè)的驅(qū)動程序,移動虛擬現(xiàn)實(shí)設(shè)備需要通過本發(fā)明提供的方法才能理解并使用該動作信息。
步驟200:服務(wù)端根據(jù)動作信息,得到響應(yīng)信息。
本步驟中,將移動虛擬現(xiàn)實(shí)設(shè)備不能理解的動作信息,轉(zhuǎn)換成移動虛擬現(xiàn)實(shí)設(shè)備可以可理解的響應(yīng)信息。
本步驟可以有多種實(shí)現(xiàn)方式,最簡單的一種即為:服務(wù)端獲取電腦外設(shè)的所有功能對應(yīng)的動作信息;通過服務(wù)端安裝的該電腦外設(shè)的驅(qū)動程序,解析所有動作信息,即獲取動作信息表示的動作類型,名稱和數(shù)值等信息;將前述的的類型,名稱和數(shù)值等信息轉(zhuǎn)換成移動虛擬現(xiàn)實(shí)設(shè)備可以理解的數(shù)據(jù)類型,即為響應(yīng)信息。這樣就得到了電腦外設(shè)的所有動作信息與響應(yīng)信息的對應(yīng)關(guān)系,將該對應(yīng)關(guān)系存儲起來,就可以在后續(xù)使用時(shí)得到任一動作信息的響應(yīng)信息。
步驟300:將響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備。
移動虛擬現(xiàn)實(shí)設(shè)備根據(jù)響應(yīng)信息作出相應(yīng)的響應(yīng)。
本發(fā)明利用服務(wù)端獲取電腦外設(shè)的動作信息,并且將該動作信息轉(zhuǎn)換成移動虛擬現(xiàn)實(shí)設(shè)備可以理解并使用的響應(yīng)信息,并將該響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備,供其作出相應(yīng)的響應(yīng)。
本發(fā)明實(shí)現(xiàn)了移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè),并且不需要在移動虛擬現(xiàn)實(shí)設(shè)備上安裝電腦外設(shè)的驅(qū)動程序,減少了開發(fā)工作量,不會占用移動虛擬現(xiàn)實(shí)設(shè)備的資源,并且本發(fā)明可以適用于各種類型的電腦外設(shè)。
作為本發(fā)明的一種改進(jìn),步驟200的一個(gè)具體實(shí)施方式可以包括:
步驟210:使用Input類,得到動作信息的類型、名稱和數(shù)值;
步驟220:根據(jù)類型、名稱和數(shù)值,得到響應(yīng)信息。
此時(shí),類型可以包括開關(guān)型、區(qū)間型或觸發(fā)型等。
本實(shí)施例中,需要預(yù)先測試電腦外設(shè)的輸入信息,記錄電腦外設(shè)每個(gè)功能(即動作信息)對應(yīng)的數(shù)據(jù)類型、名稱和數(shù)值等。
以一個(gè)游戲方向盤做為例。方向盤各個(gè)功能對應(yīng)的數(shù)據(jù)類型有區(qū)間型(如方向從-90度到90度,油門從0到1)、開關(guān)型(如車大燈開關(guān),檔位搖桿012345R)、觸發(fā)型(如喇叭按鈕)。不同的類型有不同的數(shù)值,如油門的0到1的區(qū)間、喇叭的0或1、檔位的0123456R狀態(tài)。
然后根據(jù)上述的測試結(jié)果結(jié)合Input類編寫外設(shè)輸入數(shù)據(jù)采集功能,得到響應(yīng)信息。Input類是Unity3D的獲取輸入設(shè)備(本發(fā)明中指電腦外設(shè))響應(yīng)的類,這個(gè)Input類可以獲取用戶輸入信息,包括游戲外設(shè)、鼠標(biāo)鍵盤、觸屏觸摸、手機(jī)陀螺儀等,我們獲取到響應(yīng)以后需要根據(jù)具體的類型、名稱、數(shù)值做出一個(gè)相應(yīng)的程序響應(yīng),得到響應(yīng)信息。
Unity3D是由Unity Technologies開發(fā)的一個(gè)讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎。
本實(shí)施例使用了Unity3D的Input類獲取動作信息,并得到響應(yīng)信息,簡單快速。
本發(fā)明中,電腦外設(shè)通過服務(wù)端間接地與移動虛擬現(xiàn)實(shí)設(shè)備適配,一定程度上造成了信息的延遲,而游戲?qū)?shí)時(shí)性的要求比較高,因此需要將響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備時(shí)延遲較低,實(shí)時(shí)性較高,為此,步驟300進(jìn)一步為:
使用Socket技術(shù)將響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備。
Socket,作為BSD UNIX的進(jìn)程通信機(jī)制,通常也稱作套接字,用于描述IP地址和端口,是一個(gè)通信鏈的句柄,可以用來實(shí)現(xiàn)不同虛擬機(jī)或不同計(jì)算機(jī)之間的通信。
本發(fā)明基于上述原理,可以在Unity引擎中使用UNet技術(shù)進(jìn)行實(shí)現(xiàn)響應(yīng)信息的發(fā)送。
UNet是Unity3D中的一個(gè)網(wǎng)絡(luò)通信模塊,底層基于Socket技術(shù),對其進(jìn)行封裝,使用Unet及高層次的API,可以非常方便的建立一個(gè)基于網(wǎng)絡(luò)的通信環(huán)境。
UNet使用UDP協(xié)議實(shí)現(xiàn)的P2P數(shù)據(jù)同步。其中,UDP協(xié)議全稱是用戶數(shù)據(jù)報(bào)協(xié)議,在網(wǎng)絡(luò)中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無連接的協(xié)議。它具有資源消耗小,處理速度快的優(yōu)點(diǎn),即使偶爾丟失一兩個(gè)數(shù)據(jù)包,也不會對接收結(jié)果產(chǎn)生太大影響。
本發(fā)明使用Unet通信技術(shù),使得本發(fā)明的延遲性低、實(shí)時(shí)性好。
當(dāng)然,也可以使用Unreal、CryEngine等引擎,其網(wǎng)絡(luò)通信模塊底層也是基于Socket技術(shù)。
另一方面,本發(fā)明提供一種服務(wù)端1(即移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的裝置),如圖3所示,服務(wù)端1包括:
動作信息獲取模塊11,用于獲取電腦外設(shè)的動作信息,動作信息為電腦外設(shè)進(jìn)行某個(gè)功能所產(chǎn)生的數(shù)據(jù)。
響應(yīng)信息獲取模塊12,用于根據(jù)動作信息,得到響應(yīng)信息。
響應(yīng)信息發(fā)送模塊13,用于將響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備。
本發(fā)明的服務(wù)端獲取電腦外設(shè)的動作信息,并且將該動作信息轉(zhuǎn)換成移動虛擬現(xiàn)實(shí)設(shè)備可以理解并使用的響應(yīng)信息,并將該響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備,供其作出相應(yīng)的響應(yīng)。
本發(fā)明實(shí)現(xiàn)了移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè),并且不需要在移動虛擬現(xiàn)實(shí)設(shè)備上安裝電腦外設(shè)的驅(qū)動程序,減少了開發(fā)工作量,不會占用移動虛擬現(xiàn)實(shí)設(shè)備的資源,并且本發(fā)明可以適用于各種類型的電腦外設(shè)。
作為本發(fā)明的一種改進(jìn),響應(yīng)信息獲取模塊12可以包括:
第一獲取單元,用于使用Input類,得到動作信息的類型、名稱和數(shù)值。
第二獲取單元,用于根據(jù)類型、名稱和數(shù)值,得到響應(yīng)信息。
此時(shí),類型包括開關(guān)型、區(qū)間型或觸發(fā)型。
本實(shí)施例使用了Unity3D的Input類獲取動作信息,并得到響應(yīng)信息,簡單快速。
本發(fā)明中,電腦外設(shè)通過服務(wù)端間接地與移動虛擬現(xiàn)實(shí)設(shè)備適配,一定程度上造成了信息的延遲,而游戲?qū)?shí)時(shí)性的要求比較高,因此需要將響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備時(shí)延遲較低,實(shí)時(shí)性較高,為此,響應(yīng)信息發(fā)送模塊13進(jìn)一步用于:
使用Socket技術(shù)將響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備。
本發(fā)明使用Unet通信技術(shù),使得本發(fā)明的延遲性低、實(shí)時(shí)性好。
再一方面,本發(fā)明提供一種移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè)的系統(tǒng),如圖4所示,包括電腦外設(shè)2、移動虛擬現(xiàn)實(shí)設(shè)備3和上述的服務(wù)端1,其中:
電腦外設(shè)2與服務(wù)端1連接,服務(wù)端1與移動虛擬現(xiàn)實(shí)設(shè)備3通過無線網(wǎng)絡(luò)連接。
本發(fā)明通過服務(wù)端獲取電腦外設(shè)的動作信息,并且將該動作信息轉(zhuǎn)換成移動虛擬現(xiàn)實(shí)設(shè)備可以理解并使用的響應(yīng)信息,并將該響應(yīng)信息發(fā)送給移動虛擬現(xiàn)實(shí)設(shè)備,供其作出相應(yīng)的響應(yīng)。
本發(fā)明實(shí)現(xiàn)了移動虛擬現(xiàn)實(shí)設(shè)備適配電腦外設(shè),并且不需要在移動虛擬現(xiàn)實(shí)設(shè)備上安裝電腦外設(shè)的驅(qū)動程序,減少了開發(fā)工作量,不會占用移動虛擬現(xiàn)實(shí)設(shè)備的資源,并且本發(fā)明可以適用于各種類型的電腦外設(shè)。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。