谷歌分享:如何用ARCore開發(fā)AR手游《太空入侵者世界防御》
查看引用/信息源請點(diǎn)擊:映維網(wǎng)Nweon
如何利用ARCore來開發(fā)《太空入侵者世界防御》
(映維網(wǎng)Nweon?2023年09月07日))谷歌和TAITO合作的免費(fèi)AR手游《太空入侵者世界防御》最初在今年7月發(fā)行。作品沿用了經(jīng)典街機(jī)版《太空侵略者》的玩法,并利用ARCore來將現(xiàn)實(shí)世界作為戰(zhàn)斗舞臺,從而允許一系列的外星人精確出現(xiàn)在靜態(tài)城市圖像周圍,如同真實(shí)一般入侵地球。
日前,谷歌專門撰文介紹了他們是如何利用ARCore來開發(fā)《太空入侵者世界防御》,下面是具體的整理:
為了慶祝《太空入侵者》的45周年,我們與最初的街機(jī)游戲開發(fā)商TAITO和UNIT9合作推出了《太空入侵者世界防御》。這是一款利用最先進(jìn)的LBE AR技術(shù)的沉浸式游戲,而世界各地的玩家都可以走到戶外并探索當(dāng)?shù)氐纳鐓^(qū),保護(hù)地球免受從附近建筑中產(chǎn)生的太空入侵者的攻擊。所有這一切都是通過增強(qiáng)現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)。
這款游戲由我們最新的ARCore技術(shù)提供支持:Geospatial API,Streetscape Geometry API和Geospatial Creator。我們非常高興向你展示游戲開發(fā)的幕后過程,以及我們?nèi)绾问褂米钚碌墓δ芎凸ぞ邅碓O(shè)計(jì)首個程序化的全球規(guī)模AR游戲玩法。
Geospatial API:把世界變成游樂場
Geospatial API允許你將內(nèi)容遠(yuǎn)程附加到谷歌街景地圖的任何區(qū)域,并創(chuàng)建與全球范圍內(nèi)的真實(shí)世界位置相關(guān)聯(lián)的沉浸式體驗(yàn)?!短杖肭终呤澜绶烙吩?00多個國家和地區(qū)的街景中都有視覺定位服務(wù)VPS覆蓋,從而允許游戲適應(yīng)繁忙的大都市和恬靜的小城鎮(zhèn)。
對于沒有VPS覆蓋的地區(qū)的玩家,我們提供了一種全新的室內(nèi)模式,從而允許你在任何環(huán)境或地點(diǎn)保護(hù)地球免受太空入侵者的攻擊。
創(chuàng)建初始用戶流程
ARCore Geospatial API通過用戶設(shè)備的攝像頭圖像來掃描特征點(diǎn),并將其與谷歌街景的圖像進(jìn)行比較,以便在現(xiàn)實(shí)世界空間中精確定位設(shè)備。

這需要用戶舉起手機(jī),在區(qū)域移動,以便收集足夠的數(shù)據(jù)來準(zhǔn)確定位用戶。為了做到這一點(diǎn),我們采用了一種聰明的技術(shù):對于特定區(qū)域掃描,我們要求玩家在攝像頭的視場中追蹤宇宙飛船的軌跡,從而引導(dǎo)用戶完成對特定區(qū)域的掃描。
利用這個用戶流程,我們不斷檢查Geospatial API是否收集了足夠的數(shù)據(jù)來提供高質(zhì)量的體驗(yàn):
if (earthManager.EarthTrackingState == TrackingState.Tracking) { ? ? ? ?var yawAcc = earthManager.CameraGeospatialPose.OrientationYawAccuracy; ? ? ? ?var horiAcc = earthManager.CameraGeospatialPose.HorizontalAccuracy; ? ? ? ?bool yawIsAccurate = yawAcc <= 5; ? ? ? ?bool horizontalIsAccurate = horiAcc <= 10; ? ?return yawIsAccurate && horizontalIsAccurate; }
將環(huán)境轉(zhuǎn)變?yōu)檫\(yùn)動場
掃描附近區(qū)域后,游戲使用來自Streetscape Geometry API的網(wǎng)格數(shù)據(jù),并通過算法來確保在不同地點(diǎn)開玩游戲都是一種獨(dú)特的體驗(yàn)。每個現(xiàn)實(shí)世界的地點(diǎn)都有自己的地形和城市布局,并以自己獨(dú)特的方式影響著游戲玩法。

在游戲中,太空入侵者可以從建筑物中生成,所以我們使用從世界不同地方獲得的建筑幾何來構(gòu)建測試用例。這確保了游戲在從當(dāng)?shù)卮迩f到繁華城市的各種環(huán)境中都能發(fā)揮最佳效果。

進(jìn)入入侵者的次元
我們從研究發(fā)現(xiàn),對于用戶而言,為了增強(qiáng)現(xiàn)實(shí)體驗(yàn)而長時間舉起手可能會非常疲憊。這影響了我們的游戲玩法開發(fā):我們創(chuàng)造了入侵者的次元,從而允許玩家有機(jī)會放松手臂,并提高用戶的舒適度。
我們最喜歡的“哇塞”時刻是真實(shí)世界的AR和虛擬生成的3D維度之間的過渡,它真正向你展示了Geospatial API的強(qiáng)大功能。
這種效果是通過將攝像頭饋送與虛擬環(huán)境著色器混合來實(shí)現(xiàn)。其中,虛擬環(huán)境著色器以獨(dú)特的線框風(fēng)格渲染建筑物和地形。

在玩家進(jìn)入入侵者的資源后,玩家的宇宙飛船將通過算法生成的路徑飛過他們的當(dāng)?shù)厣鐓^(qū)。這是通過從過頂camera創(chuàng)建用戶環(huán)境的深度圖來完成。在這張深度圖中,紅色通道代表建筑物,藍(lán)色通道代表可能用于飛行路徑的空間。然后,可以使用圖像生成包含路徑應(yīng)該遵循的點(diǎn)的網(wǎng)格,并使用A*搜索算法來求解遵循所有點(diǎn)的路徑。
最后,生成的A*路徑進(jìn)行后期處理,以平滑任何潛在的抖動,急轉(zhuǎn)彎和碰撞。
為了確保宇宙飛船的路徑平滑,我們通過在一組節(jié)點(diǎn)間隔對路徑進(jìn)行采樣來消除抖動。然后,我們通過分析路徑的角度來確定路徑是否存在急轉(zhuǎn)彎。如果出現(xiàn)急轉(zhuǎn)彎,我們引入兩個額外的點(diǎn)來完成它。最后,我們查看這條平滑的路徑是否會與任何障礙物發(fā)生碰撞,并調(diào)整它以在檢測到障礙物時飛過它們。

創(chuàng)造全球規(guī)模游戲體驗(yàn)
制作游戲的一個關(guān)鍵收獲是,情境生成的復(fù)雜性需要在全球范圍內(nèi)進(jìn)行測試。使用Unity,我們將多個環(huán)境帶入測試用例,從而能夠快速迭代并驗(yàn)證算法的改動。這令我們有信心在全球范圍內(nèi)部署游戲。
使用Geospatial Creator可視化游戲
我們使用了Geospatial Creator來驗(yàn)證虛擬內(nèi)容如何在Unity中出現(xiàn)在東京的特定地標(biāo)旁邊。

通過Photorealistic 3D Tiles,,我們能夠在特定的地點(diǎn)看到入侵者,包括日本的東京鐵塔。
未來的更新和版本
自游戲發(fā)布以來,我們不斷聽取玩家的反饋,并一直在積極更新和改進(jìn)游戲體驗(yàn)。
我們已經(jīng)增加了一個新的游戲模式室內(nèi)模式,從而允許所有沒有VPS覆蓋的玩家或不想使用AR模式的玩家體驗(yàn)游戲。
為了鼓勵用戶在AR中開玩游戲,我們重新平衡了分?jǐn)?shù),并給予室外玩家更多的獎勵。
更多關(guān)于游戲的情報和我們是如何改進(jìn)游戲,請關(guān)注我們的X(原Twitter)賬號Twitter?(@GoogleARVR)。另外,請?jiān)L問我們的ARCore和Geospatial Creator網(wǎng)站,以探索如何使用谷歌的AR技術(shù)構(gòu)建內(nèi)容。
---
原文鏈接:https://news.nweon.com/112338