(3)[UE4]在4.18中使用ARKit

該文章為吃貨傳說原創(chuàng),轉(zhuǎn)載請注明出處。

4.18正式版好像悄么聲的發(fā)布了,不再是預(yù)覽版了。最近一直在和ARKit有關(guān)的東西,也做了一個小項(xiàng)目。過程中發(fā)現(xiàn)國內(nèi)可以查閱的資料太少太少了,甚至翻墻到國外也不是那么多??赡芤?yàn)闀r間還很短吧,現(xiàn)在從測試版出來大概就幾個月而已。不過ARKit作為蘋果主推的一個工具,在日后勢必要引領(lǐng)一番潮流的,不如現(xiàn)在趕緊先混個臉熟吧!

這篇文章展示了如何在4.18中使用ARKit插件創(chuàng)建一個最最最最最最最最簡單的AR項(xiàng)目。

4.17和4.18中ARKit有較大的區(qū)別,這篇文章不適用于4.17

那么我們開始吧!


1. 創(chuàng)建項(xiàng)目

首先我們來創(chuàng)建一個純藍(lán)圖項(xiàng)目。為什么要純藍(lán)圖項(xiàng)目呢,因?yàn)锳RKit默認(rèn)只提供了幾個藍(lán)圖方法。。。當(dāng)然,你可以去修改插件的源碼來暴露更多的方法給藍(lán)圖。

創(chuàng)建項(xiàng)目時選擇Blueprint->Blank,設(shè)置成移動端,質(zhì)量選擇Scalable 3D or 2D,No Starter Content(如果有需要可以在項(xiàng)目中添加一個Mobile Starter Content)。


創(chuàng)建項(xiàng)目

2. 啟用ARKit插件

打開Plugins設(shè)置,找到Augmented Reality,勾上Apple ARKit,如果之前沒勾的話,需要重啟一下項(xiàng)目。簡單易懂,不上圖了

3. 創(chuàng)建Pawn

創(chuàng)建一個Pawn類(MyPawn),在根組件下添加一個Camera Component,編譯,保存,關(guān)掉。

4. 創(chuàng)建GameMode

創(chuàng)建一個GameMode類(MyGameMode),把Default Pawn設(shè)置成MyPawn,編譯,保存,關(guān)掉。然后在World Settings里把GameMode Override設(shè)置成MyGameMode。

5. 創(chuàng)建一個我們要顯示的物體

創(chuàng)建一個Actor類(ARActor),在根節(jié)點(diǎn)下添加一個Cube,調(diào)整一下大小,把Scale設(shè)置成0.1吧,這樣看起來不會太大。編譯,保存,關(guān)掉。

6. 設(shè)置場景中的Actors

刪除默認(rèn)場景中的Actors,只留下PlayerStart,Skylight和Light Source,剩下的統(tǒng)統(tǒng)都干掉,并且不要忘了把PlayerStart的位置設(shè)置到0,0,0上。你應(yīng)該能看到漆黑一片的場景,最后不要忘了保存當(dāng)前關(guān)卡(ARKitMap)

7. 編輯MyPawn

添加一個Input Touch事件,然后和一個叫做Hit Test at Screen Position Tracking Space的節(jié)點(diǎn)連起來,這個節(jié)點(diǎn)在Apple ARKit分類下。Screen Position可以從Input Touch的Location針腳連過來,會自動又Vector轉(zhuǎn)成Vector2D。Types提供了5個枚舉選擇,我們就選擇默認(rèn)的None好了,這5種枚舉的具體不同可以去查閱官方的資料,這里不贅述。

這個節(jié)點(diǎn)也是ARKit的核心方法,用來檢測真實(shí)世界的平面。從返回的數(shù)據(jù) —— 一個Apple ARKit Hit Test Result Structures的數(shù)組,我們可以看到,該方法是支持多平面檢測的,不過目前我們只用到一個面就夠了。

接下來Break這個結(jié)構(gòu)體,我們可以看到如下信息:

Type——Hit Test類型

Distance——相機(jī)與Intersection的距離

Transform——Intersection的Transform信息

Anchor——錨點(diǎn)(只有在Existing Plane模式下可用)

簡單來說,拿到Transform之后,就可以在這個位置上生成我們的ARActor了,在此,我們只考慮Location的問題,Rotation和Scale請根據(jù)自己的需要調(diào)整。

那么程序上的事其實(shí)到此就結(jié)束了,接下來就是對項(xiàng)目進(jìn)行設(shè)置,好讓它在設(shè)備上跑起來。


藍(lán)圖截屏

8. 項(xiàng)目設(shè)置

1. 打開項(xiàng)目設(shè)置,在Description分類中的最下面勾上Start in AR。

2. 在Maps&Modes中將Default Maps設(shè)置成ARKitMap(就是我們剛剛保存的那個),Default GameMode換成MyGameMode

3. 打開iOS分類,設(shè)置好Mobile Provision,Certificate,Bundle Information。

如果你還不知道怎么在Windows PC打包或運(yùn)行iOS App,請看我的另外兩篇文章:

《(1)[UE4]在Windows PC上打包iOS App》

《(2)[UE4]在Windows PC上使用Remote Build打包iOS App》

然后在Rendering目錄下把Max Metal Shader Standard To Target 選成 Metal v1.2 或 v2.0;

OS Info中的Minimum iOS Version選成11.0;

如果你用的是Windows PC,那么Remote Build也要設(shè)置好;

在Orientation中只勾選Supports Landscape Right Orientation;

在Extra PList Data中輸入:

<key>NSCameraUsageDescription</key>\n <string>UE4 需要攝像機(jī)使用權(quán)限才能使用 ARKit。</string>\n

這是為了獲取蘋果設(shè)備的攝像機(jī)使用權(quán)限



這些基本設(shè)置完成后就可以運(yùn)行了。

9. 在設(shè)備上運(yùn)行

在頂部菜單選擇Launch旁邊的下拉箭頭,選擇Project Launcher,點(diǎn)擊右上角的Advanced。然后找到All_iOS_On_XXXX這一行,右邊的Data Build選擇By the book,這樣的話所有內(nèi)容在運(yùn)行前就會被烘焙好。

Project Launcher

點(diǎn)擊Launch。別忘了把手機(jī)連到PC上。抽根煙喝口茶,等所有的項(xiàng)目都打上勾,就可以運(yùn)行啦


10. 運(yùn)行效果

打開App后,會提示你需要相機(jī)的權(quán)限,允許后就可以看到畫面了。然而分辨率會比較低,這是ARKit的緣故。好了,現(xiàn)在找到一個平面,然后點(diǎn)一下,就可以看到我們可愛的Cube了。如果沒有出來,就稍等一下,檢測平面是需要時間的。


運(yùn)行效果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 該文章為吃貨傳說原創(chuàng),轉(zhuǎn)載請注明出處。 在上一篇文章《(1)[UE4]使用Windows PC打包iOS App》...
    吃貨傳說閱讀 8,125評論 3 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,653評論 19 139
  • 如何讓自己保持動力,如何讓自己不輕易放棄,我在之前的文章中提到過一個方法:給這件事情賦予重大的意義,甚至多重重大的意義。
    陳東Growth閱讀 317評論 0 0
  • 在容易感懷的四月天,思緒偶爾會像一匹脫韁的野馬,奔騰在這片蒼茫的春色中。 也許是寫論文寫到昏天黑地之余的一念閃爍,...
    桐蒿閱讀 188評論 0 0
  • 《鷓鴣天》 雨落窗前風(fēng)漸涼,絲竹韻律繞屋梁。 舊曲入夢心雖漾,新物推陳夜未央。 山郁郁,水泱泱,古城深院溢馨香。 ...
    陳大仙兒_九兒閱讀 401評論 0 0

友情鏈接更多精彩內(nèi)容