Pico Neo3 VR Pro 开发新手入门有感(避坑与心得,新手学习必备,瞬移射线传送,移动,射线传送光圈效果,传送指定区域)
Pico Neo3 VR Pro 開發新手入門有感(避坑與心得,新手學習必備)
- 入門知識
- Pico Neo3 Pro 開發流程
- PICO PRO VR 傳送指定區域,光圈特效
- PICO PRO VR 環境配置
- PICO PRO VR 場景簡單漫游
- 應用發布
- Pico SDK
- PICO PRO VR 多人游戲
- 參考
入門知識
眾所周知,VR并不是單個技術,是很多的技術的集合,包括很多的內容, 比方說Unity知識和C#,這個是基礎。除此之外還有視覺方面的技術,比如貝葉斯網絡和卡爾曼濾波等等。以及圖形學也算是重中之重,如果想更上一層樓的話,3D重建等等的就不必多說。
此處就不過多贅述,單純從VR開發的角度去看待。
VR開發自然是需要設備的,市面上的設備知名的比如Pico啊HTC VIVE啊還有Oculus。
在PC機領域HTC充當了大佬的角色,網絡上有關于HTC的教程一抓一大把,開發相對來說還可以的。就是它是PC機的,拽著個線還得有定位器是不太方便的,不過現在也出了一體機,那就方便的多了,但是就是貴啊。
安卓一體機里我認為比較出彩的是Pico和Oculus。目前一個是Pico Neo3 一個是Oculus Quest2,一個是國內的字節一個是國外的臉書還是挺厲害的。
我個人對這兩個設備不知可否。
上周收集資料做了個對比,可能有的數據不是很準確,有什么需要更正的地方還請各位大佬批評指正。(_)
這些設備各有優缺點吧,根據自己的需求選擇適合自己的才是最好的
因為我們的業務需要,所以選擇了Pico Neo3 Pro作為開發設備。
Pico的官方文檔說實話我看不太懂,當然這也和我本人的水平有關,沒轍,還是得繼續學習……
話不多說下面進入正題。
Pico Neo3 Pro 開發流程
有這么幾個東西,頭顯是必須的,手柄當然也是,但是手套我平時用的著實是不多。。。
支持 DP 連接
可以通過定制的高速多媒體DP線通過虛擬現實耳機上的特殊 DP 接口將 Pico Neo3 Pro 或 Pico Neo3 Pro Eye 與 PC 或筆記本電腦連接。(這個得下載串流助手什么的,因為我電腦沒有DP口只能作罷)
它支持接近 4K 的原始分辨率和 72Hz 或 90Hz 的刷新率,以從您的 PC 或筆記本電腦流式傳輸 VR 內容(這個還是不錯的)。
6DoF光學定位系統
這個蠻不錯的
PICO PRO VR 傳送指定區域,光圈特效
獲取到手柄輸入
撞擊點位置生成一個預制體
PICO PRO VR 環境配置
一、導入Pico SDK
Pico SDK下載地址:點擊此處
把下載好的Pico SDK解壓后,記住這個位置的這個文件。
在Unity中,打開Package Manager,點擊左上角的加號“+”,選擇從硬盤中添加。在彈出的選擇框,把剛剛的package.json文件選中,然后點確定就可以了,等待導入。
導入成功后,找到XR Interaction ToolKit這個插件
XR 交互工具包的舊版本(0.9.4 預覽版,可升級為新版本)自動集成到 Pico Unity 集成 SDK 中。
啟用Pico SDK
點擊菜單欄的edit -> project settings
點擊XR Plugin-in Management
勾選Pico XR,這樣,項目就可以在PicoXR上適配。如果在PC端進行同步調試需要勾選全部的 PicoXR選項
設置Minimum API Level
點擊菜單欄 edit -> project settings -> player -> others Settings -> identification
將Minimum API Level設置為Android 8.1 (API 級別 27)
將目標 API 級別設置 為 自動(最高安裝)。
設置這個是因為Pico SDK內置的aar依賴組件,最低支持的Android版本為Android 8.1,而Pico Neo 3本身其實是一個Android 10的ROM
在 配置下:
將腳本后端設置 為 IL2CPP。
將Target Architectures設置 為 ARM64 并取消選中 ARMv7
到此位置Pico的環境配置也就完成了。
PICO PRO VR 場景簡單漫游
在舊版本XR中,先創建一個Room-Scale XR Rig對象。這個對象就會對應我們Pico頭顯的位置, 運行后我們的轉頭,移動等,都會反應到這個對象上。
XR更新后的選項為XR Origin(VR)
其中的腳本與對象都選擇與Device-based相關。
UI交互則需要選擇XR中的UI Canvas才可以通過VR進行交互。
XR Rig(XR Origin): 掛載用于場景管理和控制的組件和腳本,處理用戶在 Unity 世界空間中的位置
Camera Offset:同步 HMD 的 6DoF (光學定位系統)數據,使相機和手控器在場景中移動。
Main Camera:XR 相??機,用于捕捉虛擬世界并將其顯示給玩家。
LeftHand(RightHand)Controller :左右手控制器
在XR Rig對象上掛載如下腳本
Locomotion System腳本是負責玩家到目標點的移動,用于對XR Rig對象的控制,此腳本只能對一個XR Rig對象負責。
Teleportation Provider腳本是負責將Locomotion System與目標進行綁定
PXR_Manager 是打包在 Pico Unity 集成 SDK 中的一個重要腳本??梢允褂盟鼇砉芾碇饕?VR 功能,例如屏幕漸變、眼球追蹤和內容保護
手控制器也是 XR 應用程序的重要組成部分。它們使用戶能夠與虛擬世界進行交互,從而增強身臨其境的體驗
可以在紅色框的位置,定制槍、魔杖或拳擊手套等各種形狀的控制器模型
地面被點擊后,會通過Teleportation Provider,找到下面的Locomotion System對象,然后Locomotion System又會找到對應的XR Origin對象
手控制器:掛載腳本
XR Controller:對手控制器的跟蹤類型,輸入方式,模型樣式等進行設置
XR Ray Interactor:處理手柄射線與遠距離目標交互邏輯,設置手柄射線的交互邏輯與類型(三種曲線:直線,彈丸曲線,貝塞爾曲線)
Line Renderrer:Unity線渲染器
XR Interactor Line Visual:手柄射線樣式
場景漫游與傳送:
Teleportation Area腳本:在場景中,對漫游場景綁定該腳本,實現任意區域傳送
Teleportation Area腳本是負責區域傳送,可以傳送到地面的任意位置。(可設置傳送層級)
(與之對應的是Teleportation Anchor腳本,錨點傳送,只能傳送到指定點位)
地面被點擊后,會通過Teleportation Provider,找到下面的Locomotion System對象,然后Locomotion System又會找到對應的XR Rig對象
Teleportation Anchor腳本:錨點傳送,指定點位
與上一個不同的是,Teleportation Anchor Transform是錨點位置,可以設置一個空物體作為其地面的子物體作為傳送點位。
所有傳送到此平面的玩家都會被固定在錨點的位置。
應用發布
將Pico Neo3用USB數據線連接電腦,并且開啟Neo3的開發者模式。
開啟開發者模式方法:
https://sdk.picovr.com/docs/FAQ/chapter_one.html
可使用Preview Tool工具(官網下載),進行實時預覽。(PC端與Pico均需要同時打開Preview Tool工具應用)
Preview Tool下載地址:點這里
不過有一說一啊,這個Preview Tool工具不是很好用,無線連接取決于網絡,我一般是只能第一次能連上,之后就連不上了。有線連接就沒有成功過,一直在轉圈圈,后來我把數據線插在了DP的口上,然后退出串流助手的應用,打開Preview Tool的應用,然后再點有線連接,居然可以成功連接,但是有一個弊端,不知道是不是我的設備的問題,我的設備里是沒有畫面的,電腦上的Game窗口一開始有畫面是可以預覽的,后來不知道為什么就有沒有預覽畫面了,我就只能在Scene窗口去看效果,不是很方便。Oculus不知道怎么回事,據說是得有FB的賬號,還得小蹄子,怪費事的,就拉到了。
方法一:點擊菜單欄 File -> Build Settings,打開Build Settings彈窗
在Run Device中選擇對應的Pico設備。
方法二:點擊菜單欄 File -> Build and Run,首次發布需要設置文件保存路徑。
Pico SDK
Pico Unity XR SDK:這里是鏈接
鏈接: link.
PICO PRO VR 多人游戲
這個不過多贅述了
多人游戲SDK:點這里
參考
本文章參考學習B站UP主:https://space.bilibili.com/15752216
以上框圖均為本人整理分析制作,有需要轉載的請聯系我謝謝。
如果幫到了你還請點個贊,xiexie~
總結
以上是生活随笔為你收集整理的Pico Neo3 VR Pro 开发新手入门有感(避坑与心得,新手学习必备,瞬移射线传送,移动,射线传送光圈效果,传送指定区域)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Windows下使用CuteFTP向
- 下一篇: Java之移位运算符