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


不懂編程也能做AR程序

可能一聽到要做AR程序,很多人都會想到這是程序員的事。如果不懂編程,不會寫代碼,是做不了AR程序的。其實,Vuforia的Unity SDK非常人性化,即使你不會編程,也能做出簡單的AR程序。只要按着這篇教程一步一步來,你就能做出一個簡單的識圖AR App。
在開始做AR App之前,你需要准備好制作工具,磨刀不誤砍柴工嘛。由於本篇教程是生成在iOS平台,所以選擇的操作系統是Mac OS,然后需要下載Unity和Xcode。如果你是想做Android程序,在Windows上用Unity可以直接生成APK包。做一個簡單的識圖AR需要的大致步驟分為這樣幾步:

  1. 登錄Vuforia官網,注冊開發者賬號
  2. 在Vuforia的開發者平台中,創建AR App的license Key
  3. 在對象數據庫中上傳你需要識別的圖像,下載圖片SDk
  4. 下載Vuforia的Unity SDK,將Unity SDK導入到Unity中
  5. 將圖片SDK導入Unity中,拖入Vuforia預設體,導入模型,進行一系列參數設置
  6. 用Unity生成Xcode工程,再用Xcode編譯鏈接,在iOS設備上運行;或者在Windows平台上,直接用Unity生成APK包。

在這里,我采用的圖片是這張Unity社區中很有名的Unity Chan,

然后人物模型也是采用Unity Chan,可以在Unity的Asset Store下載,地址是https://www.assetstore.unity3d.com/en/#!/content/18705。下載后將模型的Unity Package導入到Unity中。

可以看到這些步驟不需要你寫一行代碼,就是一些簡單的拖拽和點擊。在設備上運行的時候,App會自動打開你的攝像頭,然后將攝像頭對着之前已經打印好的識別圖像,你的攝像頭取景屏幕上就會出現Unity Chan模型和打印圖像相互疊加的AR景象。好了,下面我就一步一步進行講解,帶着你不寫一行代碼做出神奇的AR App。

注冊開發者賬號

在使用任何Vuforia SDK之前,你首先要做的是注冊Vuforia開發者賬號,有了賬號之后你才能有對象數據庫、才能下載SDK。進入Vuforia官網(https://www.vuforia.com),點擊頂部的“Dev Portal”,進入開發者平台,

進入之后點擊右上角的Register進行賬號注冊,

創建App license,創建對象數據庫

注冊好開發者賬號之后,在開發者界面中點擊“Develop”,

之后會進入開發者界面,會有兩個主要的選項:

  • License Manager:這是App的License管理界面,因為Vuforia對每個App都會有一個唯一的License Key,在Unity的設置中需要輸入這個長串的Key,才能開啟Vuforia的識別功能。點擊“Get Development Key”獲取免費的開發license,用免費的key的話程序左下方會一直有Vuforia的水印,而且一些功能會有些限制,但是用來學習足夠了;
  • Target Manager:這是對象數據庫管理界面,每個數據庫中可以上傳需要識別的圖片。點擊“Add Database”,會彈出一個界面,輸入這個數據庫的名字和類型。數據庫類型一共有三種:Device(設備識別),Cloud(雲端識別),VuMark(條形碼)。這里我們將數據庫名字取為“AR_Test”,類型選擇“Device”;

上傳識別圖像,下載圖像SDK

點擊創建好的數據庫,進入之后點擊“Add Target”添加圖片對象,

之后會彈出圖片上傳界面,上傳需要進行掃描識別的圖片

  • Type:這里選擇Single Image,因為只是一個簡單的圖片識別;
  • File:中從電腦本地中選擇識別圖片,這里選擇之前的Unity Chan圖片;
  • Width:輸入識別圖片的寬度。這個是為了建立Unity場景中的單位長度,場景中所有其他物體的大小是以這個值為參照建立的。Vuforia中的單位長度是以米來計算。輸入之后,圖片的高度會以這個寬度來自動計算。這個值可以是任意的,但是最好比Camera的Near Clip值要大,不然在鏡頭靠近時你可能會看不到相關內容。這里輸入為1;
  • Name:識別圖的名字。這個很重要,每張識別圖對象都有一個唯一的名字,而且Vuforia可以同時識別多張不同的圖片,因此如果以后要用代碼來控制選擇是哪個對象的話,就是用這個名字來查找是哪張識別圖,所以最好取一個能方便認識的名字。這里就輸入”Unity_Chan“。

全部信息填完之后,點擊”Add“就能將識別圖上傳到對象數據庫,之后就能在對象管理界面中看到已經上傳成功的識別圖,這里要注意的是”Rating“的星星數量,這個是對圖像識別度的評級,滿分是5顆星,一般來說最低要有3顆星才能被准確識別。所以上傳圖片的時候Rating要保證在3顆星以上。然后勾選住最左邊的checkbox,點擊上方的”Download Database“按鈕,在彈出的界面中選擇Unity Editor,下載圖片的Unity Package。雙擊這個Package將圖片SDK導入到Unity中。將對象數據庫導入到Unity中需要注意的是,一定要保證Editor/Vuforia/ImageTargetTextures中的文件被拷貝進Unity中,這是后面將要導入到Unity中ImageTarget的紋理。

下載Vuforia Unity SDK,進行工程設置

之后就需要下載Vuforia的Unity SDK,在開發者平台的Download界面下載最新的Unity SDK,這里最新的版本號是6-2-10。下載完成之后,雙擊SDK的Package,將Vuforia SDK導入到Unity中。導入之后會在Unity的Project面板中出現Vuforia的相關文件夾,如下圖所示,這其中也包含了之前導入的圖片SDK相關文件:

  • Editor:包含了在Unity編輯器中與對象進行互動控制的腳本;
  • Plugins:包含了Java和iOS的原生庫,用來將Vuforia集成到Android和iOS平台上;
  • Vuforia:包含了用來實現增強現實功能的預設體和代碼腳本;
  • StreamingAssets:包含了之前從Target Manager中下載的關於對象數據庫的XML配置文件和DAT文件。

打開其中的Prefabs文件夾,將ARCamera預設體拖入到Unity場景中,並且將場景中之前默認的Main Camera刪除掉。ARCamera負責渲染攝像頭的取景,以及追蹤識別圖像對象。然后將Prefabs文件夾中的ImageTarget預設體也拖入到Unity場景中,ImageTarget就是專門用於圖像識別之用的。

之后就進行以下步驟的設置:

  1. 選中被拖入場景中的ARCamera,在其屬性面板中點擊”Open Vuforia Configuration“,進行Vuforia的設置:

    • 在“App License Key”中,將之前申請的App license復制到輸入框中
    • 在Datasets中將之前導入的識別圖片對象勾選上。其他設置采用默認參數(我將會在下一篇教程中詳細講解這些另外參數的作用,這里先一筆帶過);
  2. 然后選中場景中的ImageTarget,在其屬性面板中將“Database”和“Image Target”分別選為之前設置好的數據庫和圖片對象,注意這里的“Image Target”中顯示的是之前在上傳圖片時填入的識別圖片的名字,Unity中就是靠這個名字來區分單個圖片對象的。原先場景中的ImageTarget是個灰色的平面,這是識別圖片對象的占位符,當你在這里勾選上相應的圖片對象之后,這個占位符會選擇StreamingAssets文件夾中相應的datasets,這樣這個ImageTarget就會按照datasets中圖片的大小和形狀來作為其紋理。其他設置采用默認參數。

  3. 將之前下載好的Unity Chan的模型拖入到場景中,作為ImageTarget的子物體,調整模型的position和scale,使其能和ImageTarget的大小很相配,看起來Unity Chan仿佛站在圖片上一樣。

  4. 現在工程設置就已經全部完成了,到目前為止沒有寫一行代碼。現在你可以在Unity中直接點擊Play運行測試,Vuforia會自動調用電腦的攝像頭。如果攝像頭沒有調用,在ARCamera的屬性面板中,WebCam選項中選擇對應的攝像頭,需要注意的是不要勾選Disable Vuforia Play Mode,這樣會禁止在Unity Editor中進行測試。

    然后將之前打印好的識別圖像移動到攝像頭前,神奇的事情發生了,Unity Chan就赫然站在識別圖上了,而且會隨着識別圖方位的改變而轉動。這時你會驚嘆,做AR就是這么簡單!

將AR搬上手機

但是你也不能抱着一個電腦筆記本給別人演示AR程序吧。接下來我們就將已經制作好的AR程序搬運到移動設備上去,這里采用的設備是iPhone手機。點擊Unity主目錄中的File--Build Settings,將當前的Unity場景添加到“Scenes In Build”中,然后“Platform”中選擇iOS,再點擊Build And Run,會生成Xcode工程。

連上iPhone,編譯鏈接,將程序拷到手機中。之后,拿着你的手機向你的家人朋友炫耀吧,看,這是我做的神奇AR App!

到這里,你應該學會了不寫一行代碼就能做出AR程序,也知道AR是個什么概念了。但這只是一個簡單的Demo,雖說沒有寫一行代碼就做出來了,但是你也看出功能太簡單了點。如果想要做出更加酷炫的AR程序,還是要會一些編程(用Unity開發的話主要是c#)。同時,AR也是要看展示效果的,因此模型方面也要精美。所以說AR程序是個需要精湛技術的藝術品。發揮你的工匠精神吧!

下面這段視頻是筆者加了一些控制代碼的效果,點擊按鈕可以與模型進行簡單的互動。
點擊觀看AR Demo
視頻地址:http://v.youku.com/v_show/id_XMzAzNjg1OTY2MA==.html?spm=a2h3j.8428770.3416059.1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM