最近在一邊學習谷歌TensorFlow,一邊在做些簡單的AR demo,在此總結下學習經驗(自學的過程異常痛苦啊,還有總會有好人會在社區分享經驗,這就是前人栽樹,后人乘涼吶)
自從任天堂推出《精靈寶可夢GO》,一時間AR風頭無兩,你知道嗎,這並非真正的AR,《精靈寶可夢GO》所展現出來的特性只是依靠谷歌地圖上固定的經緯度而已,也就是它並沒有真正的與現實發生交互,當然,它仍然是一款優秀的AR游戲(什么,我說的自相矛盾,哈哈,其實並沒有😵)。與VR高昂的設備相比,AR可以部署在移動設備上,這簡直就是AR發展的福音啊。不過最近兩年,由於並沒有爆款出現,AR漸漸變得不是那么火熱。不過,我認為它仍然有巨大的發展空間,真正的全息投影必然是由AR一步步發展過去的,電影里的黑科技必然會由AR的發展而實現(我需要大量的振金😀)
接下來說正題,現在有三種sdk共大家選擇,分別是:ARToolkit,是一個開源的SDK,然后就是EasyAR和Vuforia,前者是國人開發的,簡直是英文盲的福星啊,后者是高通的,后來好像賣給誰了,這都不是問題,這兩款在移動端表現很好,更重要的是它們可以和unity3D很好的結合,所以大多數也是使用這兩個sdk😂。兩者的開發模式大同小異,會有細微區別,下面我會一一說明。
首先,你需要安裝unity3D,然后配置電腦的java運行環境,也就是下載Java的jdk,配置系統環境變量,當你在控制台敲Java -version會出現jdk版本信息,說明就OK了,接着去下載androidSDK,並配置系統環境變量,當然你也可以下載Android Stdio,它會自動下載AndroidSDK,也許你會問配置這些干嘛啊,當然是為了打包成APP啊😂。
准備工作做好,接下來去easyAR或者Vuforia下載對應的unity插件,當然有收費版本的,我們選擇免費版的就好了,然后注冊賬號獲取APP License Key,現在無牌車已經沒有活路了😂,成功后你會看到一長串字符串,這個是你需要添加到unity工程中的ARCamera組件中需要,否則工程無法使用sdk。進入unity3d中,導入easyAR或者Vuforia插件,在左下方project的Assets里。區別來了:easyAR識別圖是直接導入unity3d中的,它的path保存在一個json文件里,這就意味着你想更換識別圖,或者想識別多張圖的話就可以在這個json文件里更改,而Vuforia識別圖需要在你獲取key的地方,創建識別圖的數據庫對象,當然可以創建很多張識別圖。其實本質一樣,接下里,在unity里,在左上角的Hierarchy下面,刪除mianCamera,添加ARCamera,然后導入識別圖數據(兩者不一樣哦),導入3D模型在識別圖上方適當位置,怎么適當呢,這個自己琢磨一下吧,哈哈哈。接下來可以打包運行了,在此之前,你還需要配置Java jdk路徑,在edit->preferences->external tools這里哦,接下來file->build setting,選擇android應用,點擊playersettings,你可以設置app的名稱,公司名等,不過package需要填對,具體參照API文檔。usb連接手機,打開開發者模式,build and run就會在你的手機上打包成一個App。效果如下:
別問為什么只有一張,因為懶。當然,這只是AR開發的hello wrold,我接下來幾個月可能都會在研究AR開發,有什么問題歡迎隨時交流啊。
ps:后期我會整理自己的成果放在gitHub上,開源萬歲!