不懂編程也能做AR程序
可能一聽到要做AR程序萤衰,很多人都會想到這是程序員的事堕义。如果不懂編程,不會寫代碼脆栋,是做不了AR程序的胳螟。其實(shí),Vuforia的Unity SDK非常人性化筹吐,即使你不會編程,也能做出簡單的AR程序秘遏。只要按著這篇教程一步一步來丘薛,你就能做出一個簡單的識圖AR App。
在開始做AR App之前邦危,你需要準(zhǔn)備好制作工具洋侨,磨刀不誤砍柴工嘛舍扰。由于本篇教程是生成在iOS平臺,所以選擇的操作系統(tǒng)是Mac OS希坚,然后需要下載Unity和Xcode边苹。如果你是想做Android程序,在Windows上用Unity可以直接生成APK包裁僧。做一個簡單的識圖AR需要的大致步驟分為這樣幾步:
登錄Vuforia官網(wǎng)个束,注冊開發(fā)者賬號
在Vuforia的開發(fā)者平臺中,創(chuàng)建AR App的license Key
在對象數(shù)據(jù)庫中上傳你需要識別的圖像聊疲,下載圖片SDk
下載Vuforia的Unity SDK茬底,將Unity SDK導(dǎo)入到Unity中
將圖片SDK導(dǎo)入Unity中,拖入Vuforia預(yù)設(shè)體获洲,導(dǎo)入模型阱表,進(jìn)行一系列參數(shù)設(shè)置
用Unity生成Xcode工程,再用Xcode編譯鏈接贡珊,在iOS設(shè)備上運(yùn)行最爬;或者在Windows平臺上,直接用Unity生成APK包门岔。
在這里爱致,我采用的圖片是這張Unity社區(qū)中很有名的Unity Chan,
然后人物模型也是采用Unity Chan固歪,可以在Unity的Asset Store下載蒜鸡,地址是https://www.assetstore.unity3d.com/en/#!/content/18705。下載后將模型的Unity Package導(dǎo)入到Unity中牢裳。
可以看到這些步驟不需要你寫一行代碼逢防,就是一些簡單的拖拽和點(diǎn)擊。在設(shè)備上運(yùn)行的時候蒲讯,App會自動打開你的攝像頭忘朝,然后將攝像頭對著之前已經(jīng)打印好的識別圖像,你的攝像頭取景屏幕上就會出現(xiàn)Unity Chan模型和打印圖像相互疊加的AR景象判帮。好了局嘁,下面我就一步一步進(jìn)行講解,帶著你不寫一行代碼做出神奇的AR App晦墙。
注冊開發(fā)者賬號
在使用任何Vuforia SDK之前悦昵,你首先要做的是注冊Vuforia開發(fā)者賬號,有了賬號之后你才能有對象數(shù)據(jù)庫晌畅、才能下載SDK但指。進(jìn)入Vuforia官網(wǎng)(https://www.vuforia.com),點(diǎn)擊頂部的“Dev Portal”,進(jìn)入開發(fā)者平臺棋凳,
進(jìn)入之后點(diǎn)擊右上角的Register進(jìn)行賬號注冊拦坠,
創(chuàng)建App license,創(chuàng)建對象數(shù)據(jù)庫
注冊好開發(fā)者賬號之后剩岳,在開發(fā)者界面中點(diǎn)擊“Develop”贞滨,
之后會進(jìn)入開發(fā)者界面,會有兩個主要的選項(xiàng):
- License Manager:這是App的License管理界面拍棕,因?yàn)閂uforia對每個App都會有一個唯一的License Key晓铆,在Unity的設(shè)置中需要輸入這個長串的Key,才能開啟Vuforia的識別功能莫湘。點(diǎn)擊“Get Development Key”獲取免費(fèi)的開發(fā)license尤蒿,用免費(fèi)的key的話程序左下方會一直有Vuforia的水印,而且一些功能會有些限制幅垮,但是用來學(xué)習(xí)足夠了;
- Target Manager:這是對象數(shù)據(jù)庫管理界面腰池,每個數(shù)據(jù)庫中可以上傳需要識別的圖片。點(diǎn)擊“Add Database”忙芒,會彈出一個界面示弓,輸入這個數(shù)據(jù)庫的名字和類型。數(shù)據(jù)庫類型一共有三種:Device(設(shè)備識別)呵萨,Cloud(云端識別)奏属,VuMark(條形碼)。這里我們將數(shù)據(jù)庫名字取為“AR_Test”潮峦,類型選擇“Device”囱皿;
上傳識別圖像,下載圖像SDK
點(diǎn)擊創(chuàng)建好的數(shù)據(jù)庫忱嘹,進(jìn)入之后點(diǎn)擊“Add Target”添加圖片對象嘱腥,
之后會彈出圖片上傳界面,上傳需要進(jìn)行掃描識別的圖片
Type:這里選擇Single Image拘悦,因?yàn)橹皇且粋€簡單的圖片識別齿兔;
File:中從電腦本地中選擇識別圖片,這里選擇之前的Unity Chan圖片础米;
Width:輸入識別圖片的寬度分苇。這個是為了建立Unity場景中的單位長度,場景中所有其他物體的大小是以這個值為參照建立的屁桑。Vuforia中的單位長度是以米來計算医寿。輸入之后,圖片的高度會以這個寬度來自動計算蘑斧。這個值可以是任意的糟红,但是最好比Camera的Near Clip值要大艾帐,不然在鏡頭靠近時你可能會看不到相關(guān)內(nèi)容。這里輸入為1盆偿;
Name:識別圖的名字。這個很重要准浴,每張識別圖對象都有一個唯一的名字事扭,而且Vuforia可以同時識別多張不同的圖片,因此如果以后要用代碼來控制選擇是哪個對象的話乐横,就是用這個名字來查找是哪張識別圖求橄,所以最好取一個能方便認(rèn)識的名字。這里就輸入”Unity_Chan“葡公。
全部信息填完之后罐农,點(diǎn)擊”Add“就能將識別圖上傳到對象數(shù)據(jù)庫,之后就能在對象管理界面中看到已經(jīng)上傳成功的識別圖催什,這里要注意的是”Rating“的星星數(shù)量涵亏,這個是對圖像識別度的評級,滿分是5顆星蒲凶,一般來說最低要有3顆星才能被準(zhǔn)確識別气筋。所以上傳圖片的時候Rating要保證在3顆星以上。然后勾選住最左邊的checkbox旋圆,點(diǎn)擊上方的”Download Database“按鈕宠默,在彈出的界面中選擇Unity Editor,下載圖片的Unity Package灵巧。雙擊這個Package將圖片SDK導(dǎo)入到Unity中搀矫。將對象數(shù)據(jù)庫導(dǎo)入到Unity中需要注意的是,一定要保證Editor/Vuforia/ImageTargetTextures中的文件被拷貝進(jìn)Unity中刻肄,這是后面將要導(dǎo)入到Unity中ImageTarget的紋理瓤球。
下載Vuforia Unity SDK,進(jìn)行工程設(shè)置
之后就需要下載Vuforia的Unity SDK肄方,在開發(fā)者平臺的Download界面下載最新的Unity SDK冰垄,這里最新的版本號是6-2-10。下載完成之后权她,雙擊SDK的Package虹茶,將Vuforia SDK導(dǎo)入到Unity中。導(dǎo)入之后會在Unity的Project面板中出現(xiàn)Vuforia的相關(guān)文件夾隅要,如下圖所示蝴罪,這其中也包含了之前導(dǎo)入的圖片SDK相關(guān)文件:
Editor:包含了在Unity編輯器中與對象進(jìn)行互動控制的腳本;
Plugins:包含了Java和iOS的原生庫步清,用來將Vuforia集成到Android和iOS平臺上要门;
Vuforia:包含了用來實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)功能的預(yù)設(shè)體和代碼腳本虏肾;
StreamingAssets:包含了之前從Target Manager中下載的關(guān)于對象數(shù)據(jù)庫的XML配置文件和DAT文件。
打開其中的Prefabs文件夾欢搜,將ARCamera預(yù)設(shè)體拖入到Unity場景中封豪,并且將場景中之前默認(rèn)的Main Camera刪除掉。ARCamera負(fù)責(zé)渲染攝像頭的取景炒瘟,以及追蹤識別圖像對象吹埠。然后將Prefabs文件夾中的ImageTarget預(yù)設(shè)體也拖入到Unity場景中,ImageTarget就是專門用于圖像識別之用的疮装。
之后就進(jìn)行以下步驟的設(shè)置:
- 選中被拖入場景中的ARCamera缘琅,在其屬性面板中點(diǎn)擊”O(jiān)pen Vuforia Configuration“,進(jìn)行Vuforia的設(shè)置:
- 在“App License Key”中廓推,將之前申請的App license復(fù)制到輸入框中
- 在Datasets中將之前導(dǎo)入的識別圖片對象勾選上刷袍。其他設(shè)置采用默認(rèn)參數(shù)(我將會在下一篇教程中詳細(xì)講解這些另外參數(shù)的作用,這里先一筆帶過)樊展;
- 然后選中場景中的ImageTarget呻纹,在其屬性面板中將“Database”和“Image Target”分別選為之前設(shè)置好的數(shù)據(jù)庫和圖片對象,注意這里的“Image Target”中顯示的是之前在上傳圖片時填入的識別圖片的名字滚局,Unity中就是靠這個名字來區(qū)分單個圖片對象的居暖。原先場景中的ImageTarget是個灰色的平面,這是識別圖片對象的占位符藤肢,當(dāng)你在這里勾選上相應(yīng)的圖片對象之后太闺,這個占位符會選擇StreamingAssets文件夾中相應(yīng)的datasets,這樣這個ImageTarget就會按照datasets中圖片的大小和形狀來作為其紋理嘁圈。其他設(shè)置采用默認(rèn)參數(shù)省骂。
- 將之前下載好的Unity Chan的模型拖入到場景中,作為ImageTarget的子物體最住,調(diào)整模型的position和scale钞澳,使其能和ImageTarget的大小很相配,看起來Unity Chan仿佛站在圖片上一樣涨缚。
- 現(xiàn)在工程設(shè)置就已經(jīng)全部完成了轧粟,到目前為止沒有寫一行代碼。現(xiàn)在你可以在Unity中直接點(diǎn)擊Play運(yùn)行測試脓魏,Vuforia會自動調(diào)用電腦的攝像頭兰吟。如果攝像頭沒有調(diào)用,在ARCamera的屬性面板中茂翔,WebCam選項(xiàng)中選擇對應(yīng)的攝像頭混蔼,需要注意的是不要勾選Disable Vuforia Play Mode,這樣會禁止在Unity Editor中進(jìn)行測試珊燎。
然后將之前打印好的識別圖像移動到攝像頭前惭嚣,神奇的事情發(fā)生了遵湖,Unity Chan就赫然站在識別圖上了,而且會隨著識別圖方位的改變而轉(zhuǎn)動晚吞。這時你會驚嘆延旧,做AR就是這么簡單!
將AR搬上手機(jī)
但是你也不能抱著一個電腦筆記本給別人演示AR程序吧槽地。接下來我們就將已經(jīng)制作好的AR程序搬運(yùn)到移動設(shè)備上去垄潮,這里采用的設(shè)備是iPhone手機(jī)。點(diǎn)擊Unity主目錄中的File--Build Settings闷盔,將當(dāng)前的Unity場景添加到“Scenes In Build”中,然后“Platform”中選擇iOS旅急,再點(diǎn)擊Build And Run逢勾,會生成Xcode工程。
連上iPhone藐吮,編譯鏈接溺拱,將程序拷到手機(jī)中。之后谣辞,拿著你的手機(jī)向你的家人朋友炫耀吧迫摔,看,這是我做的神奇AR App泥从!
到這里句占,你應(yīng)該學(xué)會了不寫一行代碼就能做出AR程序,也知道AR是個什么概念了躯嫉。但這只是一個簡單的Demo纱烘,雖說沒有寫一行代碼就做出來了,但是你也看出功能太簡單了點(diǎn)祈餐。如果想要做出更加酷炫的AR程序擂啥,還是要會一些編程(用Unity開發(fā)的話主要是c#)。同時帆阳,AR也是要看展示效果的哺壶,因此模型方面也要精美。所以說AR程序是個需要精湛技術(shù)的藝術(shù)品蜒谤。發(fā)揮你的工匠精神吧山宾!
下面這段視頻是筆者加了一些控制代碼的效果,點(diǎn)擊按鈕可以與模型進(jìn)行簡單的互動芭逝。
點(diǎn)擊觀看AR Demo
視頻地址:http://v.youku.com/v_show/id_XMzAzNjg1OTY2MA==.html?spm=a2h3j.8428770.3416059.1