Vuforia開發(fā)完全指南(二)--- 不懂編程也能做AR程序

不懂編程也能做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需要的大致步驟分為這樣幾步:

  1. 登錄Vuforia官網(wǎng)个束,注冊開發(fā)者賬號

  2. 在Vuforia的開發(fā)者平臺中,創(chuàng)建AR App的license Key

  3. 在對象數(shù)據(jù)庫中上傳你需要識別的圖像聊疲,下載圖片SDk

  4. 下載Vuforia的Unity SDK茬底,將Unity SDK導(dǎo)入到Unity中

  5. 將圖片SDK導(dǎo)入Unity中,拖入Vuforia預(yù)設(shè)體获洲,導(dǎo)入模型阱表,進(jìn)行一系列參數(shù)設(shè)置

  6. 用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è)置:

  1. 選中被拖入場景中的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ù)的作用,這里先一筆帶過)樊展;
  1. 然后選中場景中的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ù)省骂。
  1. 將之前下載好的Unity Chan的模型拖入到場景中,作為ImageTarget的子物體最住,調(diào)整模型的position和scale钞澳,使其能和ImageTarget的大小很相配,看起來Unity Chan仿佛站在圖片上一樣涨缚。
  1. 現(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塌碌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子旬盯,更是在濱河造成了極大的恐慌台妆,老刑警劉巖翎猛,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異接剩,居然都是意外死亡切厘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門懊缺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疫稿,“玉大人,你說我怎么就攤上這事鹃两∫抛” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵俊扳,是天一觀的道長途蒋。 經(jīng)常有香客問我,道長馋记,這世上最難降的妖魔是什么号坡? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮梯醒,結(jié)果婚禮上宽堆,老公的妹妹穿的比我還像新娘。我一直安慰自己茸习,他們只是感情好畜隶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逮光,像睡著了一般代箭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涕刚,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天嗡综,我揣著相機(jī)與錄音,去河邊找鬼杜漠。 笑死极景,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的驾茴。 我是一名探鬼主播盼樟,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锈至!你這毒婦竟也來了晨缴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤峡捡,失蹤者是張志新(化名)和其女友劉穎击碗,沒想到半個月后筑悴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡稍途,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年阁吝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片械拍。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡突勇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坷虑,到底是詐尸還是另有隱情甲馋,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布迄损,位于F島的核電站摔刁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏海蔽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一绑谣、第九天 我趴在偏房一處隱蔽的房頂上張望党窜。 院中可真熱鬧,春花似錦借宵、人聲如沸幌衣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豁护。三九已至,卻和暖如春欲间,著一層夾襖步出監(jiān)牢的瞬間惠窄,已是汗流浹背碍脏。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人池摧。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像堕仔,于是被迫代替她去往敵國和親躲因。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容