毛豐
摘? 要? 文章主要通過使用UE4中的ARKIT插件在iOS平臺開發(fā)AR應(yīng)用程序,并在UE為我們提供的Handheld AR模版基礎(chǔ)之上,添加了圖像檢測功能。以該應(yīng)用程序?yàn)槔榻B了iOS平臺開發(fā)的準(zhǔn)備和UE4中圖像檢測功能的實(shí)現(xiàn)。
關(guān)鍵詞? Unreal Engine;ARKIT;AR
中圖分類號? G2? ? ? 文獻(xiàn)標(biāo)識碼? A? ? ? 文章編號? 2096-0360(2019)03-0029-02
隨著增強(qiáng)現(xiàn)實(shí)技術(shù)不斷的發(fā)展和完善,增強(qiáng)現(xiàn)實(shí)已經(jīng)成為各學(xué)校和企業(yè)的研究方向,與虛擬現(xiàn)實(shí)技術(shù)不同,增強(qiáng)現(xiàn)實(shí)是將我們制作出來的虛擬物體與現(xiàn)實(shí)中的場景或物體相結(jié)合,將虛擬世界物體融合到現(xiàn)實(shí)世界中并進(jìn)行一系列的互動(dòng)。
1? 發(fā)布程序到iOS平臺前準(zhǔn)備工作
1.1? 生成簽名證書
首先在mac程序塢中找到啟動(dòng)臺,點(diǎn)擊進(jìn)入找到“鑰匙串訪問”。在左上角的菜單欄中找到“鑰匙串訪問”—“證書助理”—“從證書頒發(fā)機(jī)構(gòu)請求證書”。輸入郵箱,選擇“存儲到磁盤”并繼續(xù),選擇存儲位置之后點(diǎn)擊“存儲”。然后我們就能夠在存儲位置找到我們剛剛保存的.csr文件。
1.2? 證書申請
登錄https://developer.apple.com/,注冊Apple開發(fā)者賬號。之后選擇“Certificates,Identifiers&Profiles”。點(diǎn)擊“Certificates”下的“All”,在右側(cè)頁面中會顯示我們已經(jīng)添加的證書,點(diǎn)擊“+”按鈕,點(diǎn)擊選擇“iOS App Development”,然后下拉到窗口底部選擇“Continue”。在跳轉(zhuǎn)到的頁面中提示我們?nèi)绾螐膍ac中獲取.csr文件,也就是我們在1.1中提到的方法。點(diǎn)擊“Continue”下一步。在彈出的頁面中點(diǎn)擊“Choose File”選擇剛剛下載好的.csr文件并上傳。點(diǎn)擊“Continue”下一步就能夠下載我們所必要的證書文件。將證書保存到本地。
1.3? 添加設(shè)備
點(diǎn)擊“Devices”下的“All”,在右側(cè)頁面中會顯示我們已經(jīng)添加的設(shè)備,想要添加新設(shè)備,則需要點(diǎn)擊“+”按鈕。在跳轉(zhuǎn)的頁面中輸入想要添加設(shè)備的顯示名字和UDID。添加好之后,在右側(cè)的設(shè)備列表中就會看到新的設(shè)備名字以及UDID號。每一個(gè)Apple Developer賬號可以添加不超過100臺設(shè)備。
1.4? 申請iOS App IDs
iOS App IDs是一個(gè)分為兩部分的字符串,用于辨認(rèn)一個(gè)或者多個(gè)應(yīng)用程序。點(diǎn)擊“Identifiers”下的“App IDs”,在右側(cè)頁面中會顯示我們已經(jīng)添加好的App ID,想要?jiǎng)?chuàng)建新的App ID,則需要點(diǎn)擊“+”按鈕,在跳轉(zhuǎn)的頁面中輸入App ID的名稱。這里我們使用Wildcard App ID,最后一位用“*”代替。下方的App Services(應(yīng)用程序服務(wù))保持默認(rèn)并點(diǎn)擊“Continue”。添加好之后在右側(cè)的列表中就會看到新添加的App ID。
1.5? 下載配置文件
點(diǎn)擊“Provisioning Profiles”下的“ALL”,在右側(cè)頁面中會顯示我們已經(jīng)添加好的配置文件,想要添加新的配置文件,則需要點(diǎn)擊“+”按鈕,在跳轉(zhuǎn)的頁面中選擇“iOS App Development”,也就是iOS應(yīng)用程序開發(fā),并點(diǎn)擊“Continue”。
在Select App ID頁面中選擇剛剛創(chuàng)建好的App ID,并點(diǎn)擊“Continue”。Select certificates頁面中選擇之前創(chuàng)建好的簽名證書,并點(diǎn)擊“Continue”。Select devices頁面中選擇我們需要安裝或者發(fā)布測試的設(shè)備,并點(diǎn)擊“Continue”。最后,輸入配置文件名稱并點(diǎn)擊“Continue”,將配置文件下載到計(jì)算機(jī)中。
2? AR圖像識別應(yīng)用程序設(shè)計(jì)流程
2.1? 創(chuàng)建圖像數(shù)據(jù)資產(chǎn)
制作此類AR應(yīng)用程序的第一步是導(dǎo)入我們想要在場景當(dāng)中搜索的圖像。在Unreal Engine中,我們需要將圖像拖放到內(nèi)容瀏覽器當(dāng)中作為識別圖資產(chǎn)。完成上面的操作后,我們需要對圖像的默認(rèn)參數(shù)配置進(jìn)行一些簡單的修改。在將圖像作為ARKIT識別圖之前,將Compression Settings改為UserInterface2D。將Mip Gen Settings改為NoMipmaps,因?yàn)槲覀兪褂迷搱D像僅僅是用于在場景中被檢測。另外將Texture Group更改為UI,因?yàn)樵撡N圖組通常不會改變圖像。
現(xiàn)在我們已經(jīng)成功導(dǎo)入圖像并修改完圖像參數(shù),下一步是使用該圖像創(chuàng)建一個(gè)圖像數(shù)據(jù)資產(chǎn)來為ARKIT識別提供信息,作為ARKIT使用其來創(chuàng)建錨點(diǎn)的圖像。這個(gè)數(shù)據(jù)資產(chǎn)的類型為ARCandidateImage,這是在創(chuàng)建新的數(shù)據(jù)資產(chǎn)時(shí)選擇的類型。右鍵內(nèi)容瀏覽器空白處,選擇Miscellaneous——Data Asset,然后選擇ARCandidateImage。雙擊打開創(chuàng)建好的ARCandidateImage資產(chǎn),這里面需要選擇圖像的定位是Landscape(風(fēng)景)還是Portrait(肖像)。還需要輸入圖像在現(xiàn)實(shí)世界中的width(寬度)和height(高度),ARKIT使用這些信息在三維空間中正確放置圖像的定位點(diǎn),如果給出不正確的尺寸可能會導(dǎo)致錨定位置距離攝像機(jī)太近或者太遠(yuǎn)。
2.2? 創(chuàng)建ARSessionConfig資產(chǎn)
UE中啟動(dòng)ARKIT需要使用ARSessionConfig配置,創(chuàng)建方法與數(shù)據(jù)資產(chǎn)的創(chuàng)建同理。右鍵內(nèi)容瀏覽器空白處,選擇Miscellaneous——Data Asset,然后選擇ARSessionConfig。下一步是將之前創(chuàng)建好的圖像數(shù)據(jù)資產(chǎn)添加到ARSessionConfig當(dāng)中,通過向Candidate Images(候選圖像)添加一個(gè)數(shù)組元素并設(shè)置為ARCandidateImage圖像資產(chǎn)來完成。雙擊創(chuàng)建好的ARSessionConfig,點(diǎn)擊Candidate Images右側(cè)的“+”按鈕添加一個(gè)數(shù)組元素,并選擇之前創(chuàng)建好的圖像數(shù)據(jù)資產(chǎn)。
2.3? 創(chuàng)建ARKIT藍(lán)圖
我們構(gòu)建一個(gè)這樣的功能,程序開始時(shí),ARKIT在現(xiàn)實(shí)世界中尋找我們添加好的圖像,一旦找到這個(gè)圖像,它就會在世界中圖像的位置創(chuàng)建一個(gè)錨定,然后在這個(gè)錨定的位置生成我們需要放置的物體。
2.4? iOS項(xiàng)目設(shè)置并發(fā)布
在發(fā)布應(yīng)用程序之前,我們需要將iOS配置文件添加到iOS項(xiàng)目設(shè)置當(dāng)中。步驟為選擇Project Settings—Platforms—iOS,在Mobile Provision中將配置文件、證書分別添加進(jìn)去。然后在Bundle Information—Bundle Identifier中輸入之前設(shè)定好的App ID,比如“com.iostest.01”,這時(shí)會發(fā)現(xiàn)Mobile Provision中配置文件的Status欄變更為Valid,則為iOS項(xiàng)目設(shè)置成功配置完成。最后,確保iOS設(shè)備與Mac相連接,在快捷啟動(dòng)欄中的Launch下找到想要發(fā)布的設(shè)備并點(diǎn)擊。這時(shí)UE開始執(zhí)行打包程序,稍微等待過后,在你的iOS設(shè)備上就可以看到安裝好的應(yīng)用程序。
3? 結(jié)束語
ARKIT 2.0在UE中增加了對iOS平臺AR場景中的多圖像檢測支持,可用于博物館應(yīng)用程序的基礎(chǔ)。在博物館應(yīng)用程序當(dāng)中,可以將生成物體改為與博物館展出內(nèi)容相關(guān)的一系列詳細(xì)信息,比如藝術(shù)家信息、創(chuàng)建時(shí)間、作品名稱等。
參考文獻(xiàn)
[1]UnrealEngine官方網(wǎng)站[EB/OL].https://www.unrealengine.com/zh-CN/what-is-unreal-engine-4.
[2]UnrealEngine官方文檔[EB/OL].http://api.unrealengine.com/CHN/index.html.