利用UE4和ARKit裝扮逼真的AR聖誕樹

為迎接2017年的聖誕節, 我們嘗試用ARKit + UE4 製作了一款遊戲應用」AR

ChristTree」,目前已上架蘋果AppStore,可以免費下載。

這款遊戲應用由一名程序和一名技術美術共同完成,從構思到開發完成只花了約一周時間,藉助UE4的強大工具支持,我們得以快速迭代達到理想的效果。現在這裡做一些開發的回顧和經驗分享。

準備階段

通過學習UE4.18提供的ARSample,我們了解到UE4已經為ARkit封裝了便於使用的藍圖節點,在開發過程中不需要再像Ios提供的原生Sample那樣進行一些初始化設定和事件處理,這一點非常友好。

使用HitTestatScreenPositionTrackingSpace節點,就可以方便實現把手指點擊的屏幕位置 投射到所識別的真實平面,再把真實平面中的坐標轉換到UE的虛擬世界坐標,而這些都在C++插件中完成了計算。美中不足的是,目前無法獲取Anchor平面的長度和寬度信息,但是通過修改插件,調用IOS的ArkitSDK方法可以獲取到。

為了確定在實機上最終能達到的效果,接著我們將美術素材導入引擎然後打包ios,可以發現美術效果在IPhone的AR中還是相對比較滿意的。

開發階段

在程序和美術流程跑通後,我們經過討論,確定了裝扮聖誕樹這一個主題。在操控方面,我們設計了以手指觸控為主,傳統UI為輔的輸入方式。在光照方面,我們提供了天光和方向光的調整,以實現玩家根據環境光照來達到理想的效果。

通過編輯器的觸控模擬和自定義UMG控制項,我們可以迅速迭代,改變燈光顏色和方向,以及物件的材質,預覽視覺效果。UI設計方面,UMG編輯器中可以方便預覽iphone和ipad上的布局,只需要設置好對齊錨點即可。

完成基本功能之後,我們的聖誕樹比AppStore已有的AR聖誕樹效果要更真實,但是還是略顯單調。我們的技術美術在UE材質方面有著豐富的從業經驗,立刻有了改善方案。

在製作當中為了快速做出一些效果,我們在實現效果時使用了一些材質特效。比如剛開始時樹的生長:樹榦是通過曲線修改模型本身屬性SCALE來達到縮放效果;而樹支則是通過曲線修改材質的世界偏移坐標實現生長。

一般聖誕樹是在稍遠距離觀察的。所以裝飾聖誕樹的時候,大一點的發光裝飾我們採取了在模型上賦予發光材質來實現,而在遠處看不清實體的小燈泡則是通過材質節點來在樹葉間產生規律性光點實現類似的效果。這樣能省下燈泡的模型實體,最大限度減少時間消耗。

為了保證場景中雪花遠觀近看都能保證貼圖不產生噪點、鋸齒、變形和色偏。我們直接用公式計算出了一個圓。重要的是我們不用安裝PS。

經過改善之後,通過這樣一個面板,我們的ARChristTree

可以調整出豐富的光點效果。

為了便於玩家分享,我們接入了IOS原生的分享功能,以及提供一鍵裝扮功能,還提供了幾首不同風格的背景音樂,另外我們還開發了保存和讀取功能。由於時間倉促,UI和功能設計方面還有優化和改善空間。


推薦閱讀:

《全局光照技術:從離線到實時渲染》眾籌推廣!
有趣的深度圖:可見性問題的解法
遊戲中的實時光線追蹤技術(技巧)
Pico-8——神奇的虛構遊戲機

TAG:虚幻引擎 | 增强现实AR | 游戏开发 |