UnityAR系列(二)——AR插件Vuforia入門

作者:朔宇
大家好,先給大家拜個(gè)早年。新的一年要繼續(xù)堅(jiān)持做游戲哦!

Vuforia
之前的文章中,我們大體介紹了Unity中主流的幾種AR插件。
本文我們來了解在Unity中使用高通的Vuforia制作AR游戲。
Vuforia(https://www.vuforia.com/)是與高通公司的合作產(chǎn)品,致力于虛擬現(xiàn)實(shí)的技術(shù)。VR和AR的結(jié)合在Android端和iOS端表現(xiàn)效果相當(dāng)不錯(cuò),并且可以通過終端自帶的攝像頭進(jìn)行虛擬現(xiàn)實(shí),同時(shí)支持VR和AR的交互工作,達(dá)到體驗(yàn)不輸給傳感器的效果。
Unity2017.3平臺開始全面支持Vuforia 7。通過Unity編輯器,開發(fā)人員可以直接將各種各樣的實(shí)物、環(huán)境與 3D 圖像混合,從而開發(fā)出跨平臺的AR應(yīng)用
Vudoria也是當(dāng)今AR行業(yè)使用較廣的方案。
開始前準(zhǔn)備
在學(xué)習(xí)Vuforia前,我們需要做一些準(zhǔn)備工作,同時(shí)來了解一下Vuforia中比較重要的一些功能參數(shù)。
1.安裝vuforia
Unity2017.3及之后的版本中,我們可以直接通過Unity安裝包來安裝Vufoia,如圖所示:

2.vuforia游戲?qū)ο?/h1>
安裝完成后,Vuforia相關(guān)的對象,便可以在GameObject菜單中創(chuàng)建 :

3.激活vuforia
在使用Vuforia之前,我們必須在項(xiàng)目中激活Vuforia,然后才能構(gòu)建Vuforia應(yīng)用程序 ,如下圖所示:

勾選右側(cè)Inspector面板中Vuforia Augmented Reality選項(xiàng)
vuforia的重要參數(shù)
ARCamera:ARCamera可以說是Vuforia的靈魂所在,其中包含了大部分AR表現(xiàn)的參數(shù)設(shè)置。

點(diǎn)擊Open Vuforia Configuration會出現(xiàn)如下界面:

我們可以了解一下其中比較重要的參數(shù):
1.World Center Mode:
SPECIFIC_TARGET:指定一個(gè)物體為世界中心的坐標(biāo),此物體必須繼承Vuforia Behaviour ;FIRST_TARGET:攝像機(jī)所照射到的第一個(gè)需要識別的目標(biāo) ;
CAMERA:以攝像機(jī)為世界中心坐標(biāo) DEVICE_TRACKING 設(shè)備追蹤,以設(shè)備正在追蹤的物體。
2.Camera Device Mode(設(shè)備的模式)
質(zhì)量優(yōu)先,優(yōu)化質(zhì)量;
速度優(yōu)先,優(yōu)化速度;
默認(rèn)的模式,在以上兩種間做一個(gè)平衡,在沒有特殊需求時(shí)使用。
3.Max Simultaneous Tracked Images:最大追蹤識別圖片數(shù)量 為1時(shí),就是無論有多少需要識別的圖片,只能一張一張的識別,識別一張后,其它的就不能識別。?
Max Simultaneous Tracked Objects:同上,只不過是識別物體。
4.Camera Direction 攝像頭的方向?
CAMERA_DEFAULT:默認(rèn)攝像頭,調(diào)用系統(tǒng)默認(rèn)的攝像頭;
CAMERA_BACK:后置攝像頭,但是在PC時(shí)會調(diào)用電腦的前置攝像頭;?
CAMERA_FRONT:前置攝像頭,會調(diào)用PC的后置,但是PC沒有后置,所以當(dāng)調(diào)用時(shí)GAME視圖會黑屏 手機(jī)正常。
5.Digital Eyewear 設(shè)備類型
Handheld:手持;?
Digital Eyewear:微軟眼鏡;?
Phone + Viewer:MR。
6.DataBases 數(shù)據(jù)庫 把需要識別的圖片上傳到數(shù)據(jù)庫中,在下載,導(dǎo)入U(xiǎn)nity。 建立數(shù)據(jù)庫后,把想被目標(biāo)識別的物體上傳到Target中,之后再根據(jù)需要下載不同類型,再導(dǎo)入。 ARCamera—Databases下第一個(gè)第二個(gè)(下載創(chuàng)建的數(shù)據(jù)庫和激活)打鉤。
vuforia官方demo解析
接下來我們可以研究一下vuforia的官方unity案例,案例可在Asset Store中下載

我們選擇Vuforia Core Samples 在導(dǎo)入后可以看到,這個(gè)案例中有如下場景:

這些場景包含了vuforia的所有功能,下面我們依次來介紹這些功能
1. Cloud Targets(云識別)
其主要是將Target和其他數(shù)據(jù)放在云端,或者將相關(guān)數(shù)據(jù)放到自己的服務(wù)器端。然后客戶端進(jìn)行獲取圖像在云端匹配并獲取json數(shù)據(jù)在客戶端解析之后,展示出來。
2.Cylinder Targets
通過這些demo的名稱一般都能看出他們的功能??梢詫R內(nèi)容放置在圓柱形和圓錐形的物體上。蘇打水罐,瓶子和印有圖案的管子都是最佳選擇。

3.Image Targets
Image Targets是將AR內(nèi)容投放在雜志頁面,卡片和照片等平面物體上的方法。

4.Multi Targets
其是將AR內(nèi)容放置在可以從多個(gè)方面查看或包含多個(gè)圖像的平坦表面的對象上的方法。產(chǎn)品包裝,海報(bào)和壁畫都是非常好的應(yīng)用場合。

5.Object Targets 應(yīng)用于3D對象,在掃描時(shí)可以識別和跟蹤3D對象。對象識別對幾何穩(wěn)定且具有表面細(xì)節(jié)的對象起到最佳效果。

6.Virtual Button 虛擬按鈕
虛擬按鈕我們會在之后的文章中,詳細(xì)介紹。
7.VuMarks
其是自定義設(shè)計(jì)的AR標(biāo)記,可以對數(shù)據(jù)進(jìn)行編碼,以支持ID以及文本和字節(jié)數(shù)據(jù)。 VuMarks是識別對象獨(dú)特部分的方法,該部分可以是一個(gè)系列或集合的一部分。它們是解鎖玩具和零售產(chǎn)品數(shù)字體驗(yàn)的解決方案。

在最新的Vuforia中,開發(fā)者還可以通過Ground Plane將內(nèi)容附加到水平表面,如地板和桌面,我們也可以通過官方案例Vuforia Ground Plane來學(xué)習(xí)研究

使用Vuforia制作AR游戲
上文中,我們介紹了Vuforia在unity中的主要的攝像機(jī)參數(shù),以及官方demo的介紹。
這里我們通過unity中的Vuforia插件,制作一個(gè)小的AR項(xiàng)目,以便于加深對Vuforia的了解,并且初步掌握Vuforia的用法
1.導(dǎo)入Vuforia,并創(chuàng)建ARCamera

2.激活Vuforia

勾選右側(cè)Inspector面板中Vuforia Augmented Reality選項(xiàng)
這兩個(gè)步驟在之前已經(jīng)講過
3.訪問https://developer.vuforia.com?并注冊賬號,注冊方法和其他網(wǎng)站或應(yīng)用沒什么差別。

4.進(jìn)入以下界面,我們在License Manager中選擇Get Development Key,獲取許可證

5.出現(xiàn)下邊的頁面,我們填寫上APP Name,并勾選下面的選項(xiàng)然后點(diǎn)擊確定

6.在如下頁面中,點(diǎn)擊我們剛創(chuàng)建的項(xiàng)目,在這里,我們選擇ARTest

7.復(fù)制下圖中拉黑的數(shù)據(jù)

8.接下來我們打開Unity,在我們之前創(chuàng)建的工程中,選擇我們創(chuàng)建的ARCamera,可以看到Inspector面板中有Vuforia Behaviour組件,在組件中我們點(diǎn)擊Open Vuforia confineration。

9.出現(xiàn)如下界面后,我們把之前復(fù)制的key粘貼到App License Key中

10.然后我們回到之前的網(wǎng)頁,選擇Target Manager,然后選擇Add Database建立我們的倉庫

創(chuàng)建數(shù)據(jù)倉庫,如下所示

11.進(jìn)入剛才建立的倉庫,選擇Add Target

12.然后我們會得到如下界面,在Add Target中,我們可以選擇添加單張圖片、立方體、圓柱、以及3D物體,下邊的選項(xiàng)分別是文件、寬度、名稱。在本文中,我們選擇單張圖片,并添加圖片文件,寬度設(shè)置為1(在場景單元中輸入目標(biāo)的寬度。目標(biāo)的大小應(yīng)該與虛擬內(nèi)容的大小相同。VuFuia使用米作為默認(rèn)單位規(guī)模。當(dāng)你上傳你的圖像時(shí),會計(jì)算出目標(biāo)的高度。),名稱可以取任意名稱(注意,不能是中文)

13.在添加完成后,我們的倉庫中會出現(xiàn)剛添加的項(xiàng)目

我們可能注意到,在右側(cè)有星號,星號表示圖片的識別度,星越多圖片的識別度也就越高。理論上來說,圖片越復(fù)雜,其識別率也就會越高。
14.我們選中項(xiàng)目后,點(diǎn)擊Download Database,選擇Unity Editor,下載數(shù)據(jù)庫。

14.下載完成后,將其導(dǎo)入當(dāng)前的Unity項(xiàng)目中

15.接下來創(chuàng)建一個(gè)ImageTarget

16.設(shè)置好ImageTarget的屬性,然后將我們希望展示的物體,作為ImageTarget的子物體并調(diào)整好其大小及位置。


到此為止,我們簡單的AR應(yīng)用就制作完成了,我們運(yùn)行測試我們的應(yīng)用。

到此為止,我們使用Vuforia制作的識別圖片創(chuàng)建物體的一個(gè)簡單AR應(yīng)用就完成了,過程非常簡單,甚至在整個(gè)流程中沒有出現(xiàn)需要代碼實(shí)現(xiàn)的邏輯。
當(dāng)然,這并不是Vufoira的全部。之后的文章會通過更加復(fù)雜的案例,給大家介紹Vuforia更多更有趣的功能。
想系統(tǒng)學(xué)習(xí)游戲開發(fā)的童鞋,歡迎訪問?http://levelpp.com/???????
游戲開發(fā)攪基QQ群:869551769???