版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章VR開發(fā)
5.4OculusQuest平臺(tái).目錄.1.Unity中OculusQuest開發(fā)包的安裝配置
.2.
OculusLink的使用.3.
虛擬場景中的基本移動(dòng).4.
加入控制手柄或手部模型.5.
加入碰撞檢測.6.
抓取物體.7.
隔空取物功能
OculusQuest是Meta(原臉書)公司旗下在虛擬現(xiàn)實(shí)方面的產(chǎn)品,在2019年5月正式發(fā)售。OculusQuest屬于一體式VR頭顯設(shè)備,OculusQuest頭顯和手柄如圖所示。其內(nèi)核是Android系統(tǒng),價(jià)格并不昂貴,有人認(rèn)為它是能夠?yàn)槠胀ù蟊姶蜷_虛擬世界大門的一款產(chǎn)品。它與其他VR頭顯產(chǎn)品主要的不同在于,它通過頭顯上分布在4個(gè)角的攝像頭和內(nèi)置算法,實(shí)現(xiàn)了六自由度的空間定位追蹤系統(tǒng),無須任何外設(shè)與線纜,擺脫了對(duì)高昂價(jià)格的計(jì)算機(jī)設(shè)備的依賴,玩家可以在虛擬世界里更加自由地行動(dòng)。并且,設(shè)備整體價(jià)格大幅下降,更加有利于被普通大眾接受。
(1)配置好計(jì)算機(jī)和Unity的Android開發(fā)環(huán)境。
注意,Unity發(fā)布設(shè)置“PlayerSettings”里面的“MinimumAPILevel”必須設(shè)為“APILevel19”或者更高級(jí)別,因?yàn)镺culusQuest不支持低于APILevel19的Android系統(tǒng)。1.
Unity中OculusQuest開發(fā)包的安裝配置
(2)在Unity的AssetStore中搜索并下載免費(fèi)的OculusIntegration,然后將其導(dǎo)入U(xiǎn)nity。該資源是Oculus官方提供的開發(fā)SDK。OculusIntegration下載界面如圖所示。1.
Unity中OculusQuest開發(fā)包的安裝配置
(3)在Unity中,單擊菜單“Edit”→“ProjectSettings”打開工程設(shè)置窗口,Unity中配置Oculus平臺(tái)VR開發(fā)如圖所示。在“Player”選項(xiàng)卡中,找到“XRSettings”,勾選“VirtualRealitySupported”復(fù)選框,然后單擊“+”按鈕,在彈出的列表中選擇“Oculus”。這樣設(shè)置之后,結(jié)合前面步驟中導(dǎo)入的OculusIntegration工具包,Unity就具備了開發(fā)Oculus平臺(tái)應(yīng)用的能力。1.
Unity中OculusQuest開發(fā)包的安裝配置
(4)從上頁圖中可以看到,有一個(gè)警告標(biāo)志,說明這時(shí)在配置上還有一些問題。這是由于Unity的一些默認(rèn)屬性設(shè)置和當(dāng)前的Oculus有一些沖突的地方。解決方法很簡單,還是在這個(gè)界面中,打開“OtherSettings”,刪除“Vulkan”選項(xiàng)以適應(yīng)Oculus的配置,如圖所示。1.
Unity中OculusQuest開發(fā)包的安裝配置
(5)經(jīng)過以上操作,在Unity中就準(zhǔn)備好了Oculus的開發(fā)配置。下面還需要從Oculus的官網(wǎng)生成并獲取開發(fā)App的許可證ID。
打開Oculus的官網(wǎng),注冊開發(fā)者賬號(hào)并登錄,單擊網(wǎng)頁中的“CreateNewApp”按鈕,創(chuàng)建OculusApp賬號(hào),如上圖所示。在打開的界面中輸入要?jiǎng)?chuàng)建的App的名稱,Platform平臺(tái)選擇“Quest(Applab)”,然后單擊“創(chuàng)建”按鈕,如下圖所示。1.
Unity中OculusQuest開發(fā)包的安裝配置
(6)在單擊“創(chuàng)建”按鈕之后,可以在界面左側(cè)菜單欄的“API”中找到新申請到的AppID,如圖所示。1.
Unity中OculusQuest開發(fā)包的安裝配置
(7)回到Unity中,單擊菜單“Oculus”→“Platform”→“EditSettings”打開平臺(tái)設(shè)置界面,將申請到的AppID復(fù)制到其中,并取消勾選“UseStandalonePlatform”復(fù)選框,設(shè)置Unity中的OculusAppID如圖所示。1.
Unity中OculusQuest開發(fā)包的安裝配置
(8)繼續(xù)單擊菜單“Oculus”→“Tools”→“OculusPlatformTools”打開平臺(tái)工具設(shè)置界面,在其中選擇“OculusQuest”,并復(fù)制、粘貼AppID,在平臺(tái)工具設(shè)置界面中設(shè)置相關(guān)屬性如圖所示。至此,Unity中的OculusQuest開發(fā)配置就完成了。下面還需要將OculusQuest頭顯的開發(fā)者模式打開,這樣才能從Unity中將開發(fā)好的應(yīng)用導(dǎo)入OculusQuest設(shè)備。1.
Unity中OculusQuest開發(fā)包的安裝配置
(9)啟用OculusQuest頭顯,并找一臺(tái)手機(jī),打開手機(jī)的藍(lán)牙和定位功能。然后在手機(jī)上安裝并運(yùn)行Oculus官方App,在手機(jī)上打開OculusQuest頭顯的開發(fā)者模式,如圖所示。單擊“Settings”按鈕進(jìn)入設(shè)置界面,手機(jī)會(huì)自動(dòng)查找附近的頭顯并連接,圖中2號(hào)框所示的就是連接正常后顯示出來的頭顯名稱和信息。再單擊3號(hào)框處的“MoreSettings”按鈕,進(jìn)入下一級(jí)設(shè)置界面。單擊4號(hào)框處的“DeveloperMode”按鈕,進(jìn)入再下一級(jí)界面。設(shè)置打開5號(hào)框處的“開關(guān)”。這樣,OculusQuest頭顯的開發(fā)者模式就被打開了。1.
Unity中OculusQuest開發(fā)包的安裝配置
(10)將打開了開發(fā)者模式的OculusQuest頭顯用數(shù)據(jù)線與計(jì)算機(jī)相連,然后單擊Unity的菜單“File”→“BuildSettings”打開設(shè)置窗口,在“RunDevice”中可以看到與計(jì)算機(jī)相連的頭顯名稱。單擊“BuildAndRun”按鈕,就能將Unity中編輯好的場景發(fā)布到OculusQuest頭顯中運(yùn)行并觀察效果了。直接從Unity中發(fā)布應(yīng)用App到OculusQuest頭顯中,如圖所示。1.
Unity中OculusQuest開發(fā)包的安裝配置
直接使用前面的方法開發(fā)Quest應(yīng)用時(shí),會(huì)感覺很不方便,因?yàn)樵赨nity中直接運(yùn)行應(yīng)用是看不到任何效果的。每次都只有通過單擊Unity中的“BuildAndRun”按鈕對(duì)整個(gè)工程進(jìn)行發(fā)布并輸出、安裝到OculusQuest頭顯中才可以看到效果,相當(dāng)費(fèi)時(shí)費(fèi)力。為了解決這種問題,同時(shí)也為了能方便用戶同步計(jì)算機(jī)和OculusQuest頭顯數(shù)據(jù),Oculus給出了一套解決方案——OculusLink。2.
OculusLink的使用
OculusLink需要軟件和硬件的配合才能使用。在軟件上,OculusQuest頭顯必須升級(jí)到最新的操作系統(tǒng)版本,同時(shí)和OculusQuest相連的計(jì)算機(jī)上也要安裝最新版本的計(jì)算機(jī)版OculusApp軟件,以保證計(jì)算機(jī)和OculusQuest頭顯在軟件上的匹配。圖所示的是計(jì)算機(jī)版OculusApp軟件界面。2.
OculusLink的使用
在硬件上,首先需要一根有一端是Type-C端口的USB3.0數(shù)據(jù)線,以連接計(jì)算機(jī)和OculusQuest頭顯。而且,這根數(shù)據(jù)線要質(zhì)量比較好,以保證能實(shí)現(xiàn)大量數(shù)據(jù)的傳輸,若為一般質(zhì)量的數(shù)據(jù)線則可能會(huì)無法使用OculusLink功能。另外,對(duì)計(jì)算機(jī)的硬件要求也比較高,需要顯卡是NVIDIAGTX970或者NVIDIAGTX1060以上的配置。
當(dāng)軟硬件方面都滿足條件后,OculusLink會(huì)將Unity的編輯窗口和頭顯進(jìn)行數(shù)據(jù)同步,在Unity中可以直接觀察效果,而不需要每次都發(fā)布程序到頭顯中。這樣就很大程度地提高了開發(fā)效率。2.
OculusLink的使用
(1)新建一個(gè)場景,在其中添加一個(gè)Plane作為地板,再添加一些三維物體作為參照物,簡單的三維場景如圖所示。3.
虛擬場景中的基本移動(dòng)
(2)刪除場景中默認(rèn)的攝像機(jī)。在Project面板中的“Assets”→“Oculus”→“VR”→“Prefabs”中,找到OVRCameraRig預(yù)設(shè)體,將其拖入場景并擺放在合適的位置。OVRCameraRig預(yù)設(shè)體就是Oculus針對(duì)虛擬空間制作好的一個(gè)虛擬雙目攝像機(jī),它所攜帶的OVRManager組件作為關(guān)鍵組件,決定了OVRCameraRig使用的設(shè)備種類、輸入形式、渲染屬性、追蹤屬性和混合現(xiàn)實(shí)屬性等內(nèi)容。OVRCameraRig預(yù)設(shè)體的OVRManager組件如圖所示。3.
虛擬場景中的基本移動(dòng)
(3)保持預(yù)設(shè)體的默認(rèn)屬性設(shè)置,這樣就已經(jīng)實(shí)現(xiàn)了基本的Oculus的虛擬場景,可以直接發(fā)布應(yīng)用,并在頭顯中觀看效果。這時(shí)可以實(shí)現(xiàn)轉(zhuǎn)頭觀察整個(gè)場景,并且因?yàn)镺culus的追蹤功能,用戶可以在安全范圍內(nèi)走動(dòng),但是不能使用手柄功能,也沒有任何其他可以交互的東西。下面再介紹使用另外的預(yù)設(shè)體來實(shí)現(xiàn)這些功能。3.
虛擬場景中的基本移動(dòng)
(1)將上一小節(jié)中的OVRCameraRig預(yù)設(shè)體刪除,換成同一目錄下的OVRPlayerController預(yù)設(shè)體。該預(yù)設(shè)體包含OVRCameraRig(作為子物體),并因?yàn)轭~外添加的CharacterController和OVRPlayerController組件,獲得了移動(dòng)的能力。OVRPlayerController預(yù)設(shè)體的組件如圖所示。運(yùn)行場景,這時(shí)用戶除了能自己走動(dòng)以外,還能用左手柄的搖桿控制前后左右自由移動(dòng),這樣就擴(kuò)大了用戶在虛擬世界的移動(dòng)范圍。4.
加入控制手柄或手部模型
(2)和HTCVIVE一樣,Oculus也支持在虛擬場景中顯示用戶手上拿的手柄,以增加真實(shí)性。在
Project
面板中的“Assets”→“Oculus”→“VR”→“Meshes”→“OculusTouchForQuestAndRiftS”中,可以看到左、右兩個(gè)手柄的模型。將這兩個(gè)模型分別拖入
Hierarchy
面板中的OVRPlayerController預(yù)設(shè)體的LeftHandAnchor、RightHandAnchor物體下作為子物體,添加手柄模型如圖所示。4.
加入控制手柄或手部模型
運(yùn)行場景,就可以看到左、右兩個(gè)控制器顯示在虛擬空間里,并且它們能跟隨著用戶拿著的真實(shí)手柄的運(yùn)動(dòng)而運(yùn)動(dòng)。OculusQuest手柄在虛擬場景中的樣子如圖所示。4.
加入控制手柄或手部模型
(3)Oculus不僅能顯示手柄,還能顯示手部模型。先刪除第2步中添加到場景中的手柄模型,然后在Project面板中的“Assets”→“Oculus”→“Avatar”→“Content”→“Prefabs”下,找到LocalAvatar預(yù)設(shè)體,將其拖入場景作為OVRPlayerController預(yù)設(shè)體下TrackingSpace物體的子物體,添加LocalAvatar預(yù)設(shè)體如左圖所示。
運(yùn)行場景,就可以看到左右手模型,并且它們能跟隨著用戶手部運(yùn)動(dòng)而運(yùn)動(dòng)。顯示手的模型,如右圖所示。4.
加入控制手柄或手部模型
(1)找到場景中OVRPlayerController預(yù)設(shè)體的CharacterController組件,減小組件中“Radius”屬性的值。這是因?yàn)椤癛adius”屬性表示的是虛擬世界中代表用戶的虛擬人身軀的半徑,原來的默認(rèn)值是0.5,這個(gè)值太大了,經(jīng)常會(huì)使用戶感覺因?yàn)椤吧眢w太胖”而離其他物體還有一段距離就被擋住,需要將該值調(diào)得小一點(diǎn),增加真實(shí)感。(2)在Project面板中找到CharacterCameraConstraint腳本,將其賦給場景中的OVRPlayerController預(yù)設(shè)體作為組件。將OVRPlayerController預(yù)設(shè)體的子物體OVRCameraRig拖入組件的“CameraRig”框中,并勾選“EnableCollision”復(fù)選框,最后將“CollideLayers”改為“Everything”,添加攝像機(jī)碰撞組件如圖所示。5.
加入碰撞檢測經(jīng)過這樣的設(shè)置之后,用戶在虛擬世界中運(yùn)動(dòng)時(shí)就會(huì)被障礙物擋住,不會(huì)“一穿而過”了。
(1)選取需要設(shè)置被抓功能的物體,為其添加RigidBody組件以及OVRGrabbable腳本組件,保持它們的默認(rèn)屬性即可。(2)
在Hierarchy面板中,找到OVRPlayerController下的LeftHandAnchor和RightHandAnchor物體,為它們添加SphereCollider組件,并將組件中的“Radius”屬性調(diào)整為0.05,勾選“IsTrigger”。(3)為LeftHandAnchor和RightHandAnchor物體添加OVRGrabber腳本組件,并勾選“ParentHeldObject”,以防止抓取物體并移動(dòng)時(shí)產(chǎn)生物體跳躍抖動(dòng)的錯(cuò)誤。6.
抓取物體
(4)繼續(xù)修改RightHandAnchor物體的OVRGrabber組件。將RightHandAnchor的子物體RightControllerAnchor拖入“GripTransform”框中,再將“GrabVolumes”下的“Size”設(shè)為1,將RightHandAnchor物體本身拖入“Element0”框中,并將“Controller”設(shè)置為“RTouch”,OVRGrabber組件的屬性設(shè)置如圖所示。(5)對(duì)LeftHandAnchor物體按同樣的方式處理。然后運(yùn)行場景,以實(shí)現(xiàn)抓取功能。6.
抓取物體
(1)將上個(gè)小節(jié)中修改后的OVRPlayerController物體刪除,從Project面板中將該預(yù)設(shè)體重新拖入場景,恢復(fù)到初始狀態(tài)。(2)在新添加進(jìn)來的OVRPlayerController物體下創(chuàng)建一個(gè)空物體,并為這個(gè)空物體添加GrabManager和SphereCollider兩個(gè)組件。其中GrabManager組件由Oculus提供,有抓取操作的管理功能,其參數(shù)保持默認(rèn)設(shè)置即
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色養(yǎng)殖場牛奶直銷合同
- 遼寧農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《現(xiàn)代教育技術(shù)在教學(xué)中的應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 遼寧金融職業(yè)學(xué)院《市政工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度汽車展覽會(huì)參展商展會(huì)現(xiàn)場翻譯服務(wù)合同
- 二零二五年度離婚協(xié)議書范本:婚姻解除的法律保障
- 2025年度電子商務(wù)平臺(tái)違約責(zé)任歸責(zé)原則及賠償細(xì)則合同
- 2025年度租賃房屋押金退還及保管協(xié)議范本
- 2025年度診所租賃合同含醫(yī)療廢物處理及回收服務(wù)
- 南京財(cái)經(jīng)大學(xué)《虛擬儀器》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度自媒體平臺(tái)廣告投放服務(wù)合同
- 《化學(xué)實(shí)驗(yàn)室安全》課程教學(xué)大綱
- 2024年人教版初二地理上冊期末考試卷(附答案)
- 2024文旅景區(qū)秋季稻田豐收節(jié)稻花香里 說豐年主題活動(dòng)策劃方案
- 高低壓供配電設(shè)備檢查和檢修保養(yǎng)合同3篇
- 2023-2024學(xué)年福建省廈門市八年級(jí)(上)期末物理試卷
- 霧化吸入療法合理用藥專家共識(shí)(2024版)解讀
- GA/T 804-2024機(jī)動(dòng)車號(hào)牌專用固封裝置
- DBJ04∕T 398-2019 電動(dòng)汽車充電基礎(chǔ)設(shè)施技術(shù)標(biāo)準(zhǔn)
- 國有資本投資、運(yùn)營公司改革初探 20240927 -遠(yuǎn)東資信
- 《新課改下的農(nóng)村小學(xué)班主任工作策略的研究》課題研究方案
- 蘇教版三年級(jí)上冊除法豎式計(jì)算題練習(xí)300道及答案
評(píng)論
0/150
提交評(píng)論