Unity與Apple合作開(kāi)發(fā)新功能,讓AR開(kāi)發(fā)更容易
在游戲大作發(fā)布前,我們常在游戲廣告中看到“運(yùn)用最新3D引擎打造”類似的字眼,也會(huì)時(shí)不時(shí)的在網(wǎng)絡(luò)評(píng)論中看到關(guān)于某游戲“舊瓶裝新酒”用了前作的老引擎之類的吐槽。那么引擎到底是什么呢?
首先,游戲引擎包括一個(gè)渲染引擎,讓程序員能夠把內(nèi)部繪制的2D圖像和3D網(wǎng)格圖適配在一起,從而制作出一個(gè)逼真的模型。之后,大多利用與一個(gè)或多個(gè)API重復(fù)利用處理器和顯卡性能。此外游戲引擎還提供一些物理碰撞、光照反射等等功能??偟膩?lái)說(shuō),游戲引擎就是一個(gè)合理編寫(xiě)的程序框架。
對(duì)于VR游戲,目前運(yùn)用最多的引擎也就是Unity3D和Unreal Engine 4了,而且這兩者對(duì)于AR也是相當(dāng)支持。前些日子,Unity3D和Unreal Engine 4也是動(dòng)作不斷,相繼推出新版本,更加優(yōu)化了對(duì)于VR/AR的開(kāi)發(fā)。
Unity3D
上個(gè)月,伴隨著ARKit2.0的推出,Unity也與Apple合作,更新了其ARKit插件。更新后的Unity ARKit插件具備了及時(shí)訪問(wèn)功能,即共享和持久性的AR體驗(yàn),也就是所謂的AR云了。開(kāi)發(fā)人員可以使用ARWorldMap功能保存用戶環(huán)境的特征點(diǎn),并且可以發(fā)送給其他用戶以建立多人游戲會(huì)話或由應(yīng)用程序加載來(lái)查看已保存的內(nèi)容。應(yīng)用程序可以使用與觀察到的環(huán)境相對(duì)應(yīng)的ARWorldMap中的要素點(diǎn)來(lái)將設(shè)備重新定向到其周圍環(huán)境。
ARKit 2.0使用一種名為AREnvironmentProbeAnchor的新錨點(diǎn)類型來(lái)建立了一個(gè)區(qū)域的環(huán)境地圖,可隨著時(shí)間的推移更新地圖,并使用機(jī)器學(xué)習(xí)來(lái)預(yù)測(cè)紋理和光照的變化。為此Unity添加了一個(gè)新參數(shù)來(lái)處理錨點(diǎn)和三個(gè)用于指定紋理的新值。
除此以外,Unity還在iPhone X應(yīng)用程序中啟用了舌頭和眼睛注視跟蹤參數(shù)
也正是乘著iPhone X TrueDepth攝像頭的一波東風(fēng),Unity推出了面部動(dòng)畫(huà)的新工作流程。借助facial AR remote component,開(kāi)發(fā)人員可以通過(guò)iPhone X上的TrueDepth攝像頭捕捉高質(zhì)量的實(shí)時(shí)動(dòng)作,Unity提供52種混合形狀,來(lái)令表演者的面部表情與動(dòng)畫(huà)角色的面部表情相匹配。這在一定程度上大大方便了動(dòng)畫(huà)的制作。
同樣方便創(chuàng)作者的還有unity推出的3D游戲工具包Mars。無(wú)需編碼,通過(guò)元素的選擇就可以制作出一個(gè)簡(jiǎn)單的AR游戲。
當(dāng)然,Unity不光支持ARKit,對(duì)于ARCore也是同樣支持。而且Unity還致力于在二者之間構(gòu)建一座橋梁,打破水火不容的現(xiàn)狀,實(shí)現(xiàn)跨平臺(tái)兼容的愿望。于是AR Foundation應(yīng)運(yùn)而生,AR FoundaTIon目前支持的AR功能包括表面平面檢測(cè)、深度數(shù)據(jù)點(diǎn)云、設(shè)備位置和方向跟蹤、內(nèi)容縮放、光線投射、錨定虛擬對(duì)象的參考點(diǎn)、渲染色調(diào)。它在ARKit和ARCore之間建立了一些共同點(diǎn),讓開(kāi)發(fā)人員更容易同時(shí)支持兩個(gè)平臺(tái),從而也縮短了平臺(tái)間應(yīng)用發(fā)布與更新的時(shí)間差。