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