一种基于游戏引擎的AR模式探讨(上)
前言
因?yàn)閷?duì) AR 游戲領(lǐng)域的好奇,在網(wǎng)上搜集了一些資料。但是關(guān)于 AR 技術(shù)在游戲中實(shí)際應(yīng)用的文章較少,而且大多數(shù)文章只是簡單的介紹高通的 SDK 的使用,沒有關(guān)于 AR 的核心技術(shù)。
簡單了解目前的 AR 模式,大多數(shù)都是通過對(duì)相機(jī)中環(huán)境的檢測(cè),包括使用一些識(shí)別圖去進(jìn)行 AR 的檢測(cè)觸發(fā)。然后再通過對(duì)圖像的疊加完成增強(qiáng)現(xiàn)實(shí)的效果。后來看到一篇關(guān)于 unity 實(shí)現(xiàn) AR 的文章。盡管文章中實(shí)現(xiàn)的是一個(gè) APP。但是它這種關(guān)于 AR 的想法我認(rèn)為是完全可行的。在該作者想法的基礎(chǔ)上,我構(gòu)建了一種不同于現(xiàn)在常見 AR 的一種系統(tǒng)架構(gòu)。由于我暫時(shí)沒有發(fā)現(xiàn)其他人對(duì)這種 AR 模式的定義,為了闡述的方便,我在這篇文章中將這種 AR 系統(tǒng)稱為 Lefland’s AR,簡稱“L-AR”。
最初我是以游戲架構(gòu)為主提出的,但是隨著這個(gè)想法的成熟,我發(fā)現(xiàn)這個(gè)模式(L-AR)不僅可以創(chuàng)建出全新的 AR 游戲方式,而且可以應(yīng)用到未來的實(shí)際生活中,作為一種生活中的 AR 技術(shù)來使用。
接下來我將分成三部分講述這種模式(L-AR),第一是現(xiàn)有 AR 的分析,第二是 L-AR 架構(gòu)方式的整體系統(tǒng)闡述,最后是 L-AR 在未來的應(yīng)用與發(fā)展以及這種模式可能會(huì)出現(xiàn)的問題。
第一部分
現(xiàn)有的 AR 技術(shù),以高通的 ARSDK 為模板來闡述一下現(xiàn)在的 AR 模式。先來說一下這種 AR 使用的操作,主要是以識(shí)別圖為主,將所需要的識(shí)別圖上傳到高通的網(wǎng)站,然后可以生成 unity 的文件,導(dǎo)入到 unity 中,然后對(duì)想要顯示的模型進(jìn)行設(shè)定,綁好 AR 相機(jī),就可以完成目前很常見的通過圖像識(shí)別顯示出的 AR。
因?yàn)槠渲泻芏嗟募夹g(shù)都被封裝了,所以也不好說其中比較有技術(shù)性的部分。就單獨(dú)來看最終呈現(xiàn)時(shí)的圖像層次。后面的一層,就是我們相機(jī)拍攝的環(huán)境。前面的一層是呈現(xiàn)在識(shí)別圖上的模型,通過識(shí)別圖去定位模型的景深。最后通過兩層圖像的疊加,完成最后呈現(xiàn)給用戶的狀態(tài)。這種模式已經(jīng)很成熟了,而且操作難度不高,個(gè)人開發(fā)者也完全可以掌握其使用。
然后我們來看一下這種模式的 AR 的缺點(diǎn)。總體而言,這樣的 AR 很難給用戶一種類似于 VR 的沉浸式體驗(yàn),尤其是應(yīng)用在游戲中的時(shí)候。很多時(shí)候這個(gè) AR 只是個(gè)會(huì)動(dòng)的模型,很難在游戲的模式中有所創(chuàng)新。而且受限于技術(shù)的封裝,沒有辦法完成很多底層的修改。其中,識(shí)別圖定位以及無圖定位,都是使用圖像識(shí)別技術(shù)來完成的對(duì)圖像的質(zhì)量要求較高,并且容易出現(xiàn)“漂浮感”,讓人感覺模型漂浮在空中,讓人很難有沉浸式的體驗(yàn)。較為單一的互動(dòng)模式,還有對(duì)背景地點(diǎn)無交互(背景只是單純的背景,換成任何其它的背景或是純黑最后的效果也是一樣的),這些都是制約了 AR 開拓游戲市場(chǎng)的問題。
第二部分
分析:
一、首先我們來分析一下理想中的 AR 需求,以《劇場(chǎng)版刀劍神域》為例,來看一下我們理想中的 AR 是一個(gè)什么樣子:男主角參加了一次多人線下的 BOSS 戰(zhàn),然后玩家們戴上了 AR 設(shè)備,拿著體感控制器就一起上去打 BOSS 了。這一段中,我們可以看到,游戲的場(chǎng)景是在現(xiàn)實(shí)場(chǎng)景的基礎(chǔ)上增強(qiáng)得到的,保留了場(chǎng)景中的可以移動(dòng)的空間的設(shè)定,僅僅是在一些建筑的外形加以裝飾。這是第一條,對(duì)原場(chǎng)景的保留和增強(qiáng)。在二手手游買賣平臺(tái)中,我們有隊(duì)員,并且可以實(shí)時(shí)看到他們?cè)谟螒蛑械臉幼?#xff0c;并且可以在旁邊顯示玩家信息。。這是第二條,多名玩家在同一場(chǎng)景中的實(shí)時(shí)交互。不同玩家可以在不同的位置看著同樣的 BOSS 對(duì)他們發(fā)動(dòng)攻擊,這是第三條,公共 AR 環(huán)境的唯一性。
二、從上述幾條中,我們就發(fā)現(xiàn)了目前 AR 系統(tǒng)中存在的問題。由于使用的是識(shí)別圖或者是獲取相機(jī)景深建立空間模型的方式,無法對(duì)多人的游戲環(huán)境進(jìn)行實(shí)時(shí)的同步并且建立唯一的絕對(duì)空間。玩家設(shè)備間的互相定位和交互的實(shí)現(xiàn)也是較為困難的。
新的模式:
在前人的想法的基礎(chǔ)上我構(gòu)想出一種 L-AR,通過游戲引擎內(nèi)對(duì)現(xiàn)實(shí)世界的提前構(gòu)筑并通過畫面的疊加來完成一種增強(qiáng)現(xiàn)實(shí)的效果。
一、畫面層次分析:
最后一層是相機(jī)捕獲的現(xiàn)實(shí)場(chǎng)景,向前一層是引擎中的游戲場(chǎng)景,游戲場(chǎng)景中隱藏所有地形,只保留需要在 L-AR 中出現(xiàn)的游戲內(nèi)容。再向前一層是游戲的 UI 和玩家的操作面板。將這些疊加在一起達(dá)到增強(qiáng)現(xiàn)實(shí)的效果。
二、系統(tǒng)結(jié)構(gòu)分析
以 Unity 為例,我們的整體思路是把玩家在現(xiàn)實(shí)中的實(shí)景和游戲中的場(chǎng)景結(jié)合起來,因此,我們需要:
- 一個(gè)第一人稱的相機(jī)
- 一個(gè)按照真實(shí)場(chǎng)景的真實(shí)尺寸搭建的環(huán)境(在游戲中隱藏)
- 游戲中應(yīng)該有的模型(NPC,敵人,BOSS,道具,武器,寶箱)
- 一個(gè)用來映像相機(jī)獲得的圖像的背景平面(跟隨相機(jī))
- 玩家的輸入控制(1)相機(jī)的移動(dòng)通過手機(jī)傳感器獲取的 GPS 坐標(biāo)的差值進(jìn)行移動(dòng),通過加速度傳感對(duì)微小的移動(dòng)進(jìn)行矯正,并且對(duì)相機(jī)的旋轉(zhuǎn)和俯仰進(jìn)行控制。使得外部世界和游戲內(nèi)世界始終保持同步。(2)玩家可以通過手機(jī)屏幕上點(diǎn)擊虛擬按鍵來使用物品,打開寶箱,發(fā)動(dòng)技能,和目前的手機(jī)游戲相同(以 RPG 游戲?yàn)槔?#xff09;
- ⑥和正常的同類型游戲別無二致的游戲系統(tǒng)
- ⑦針對(duì)你想要進(jìn)行游戲的場(chǎng)地進(jìn)行實(shí)地的考察,并且將所有的游戲元素結(jié)合現(xiàn)場(chǎng)的實(shí)際情況進(jìn)行安排和布置,打造一個(gè)獨(dú)一無二的 AR 游戲世界。
三、以 Unity 為例,在構(gòu)建中的技術(shù)難點(diǎn)問題的解決方案
?
- 首先是玩家的移動(dòng),我們需要在 unity 中獲取手機(jī)的 GPS 信息,由于目前的 GPS 定位的誤差較大,無法直接用于我們的移動(dòng)。所以我選擇采用 GPS 位置的差值進(jìn)行位置的定位。玩家需要在現(xiàn)實(shí)場(chǎng)景中一個(gè)固定的位置開始游戲,然后這時(shí)定位玩家的 GPS,作為原點(diǎn)。之后不斷刷新玩家 GPS 信息,并且更新相機(jī)的位置。
- 相機(jī)跟隨手機(jī)角度的旋轉(zhuǎn):通過手機(jī)的加速度傳感器獲取手機(jī)當(dāng)前的狀態(tài)信息,通過四元數(shù)的方式傳遞給游戲中的相機(jī)。傳感器獲得的信息可能會(huì)因?yàn)槭謾C(jī)的抖動(dòng)產(chǎn)生擾動(dòng)導(dǎo)致偏移,這時(shí)我們需要在代碼中加入一個(gè)低通濾波器來除去高頻的雜波。
- 游戲中物體與現(xiàn)實(shí)世界的真實(shí)交互:我們需要整個(gè)場(chǎng)景的建模,然后對(duì)它們添加碰撞器,將對(duì)他們的渲染關(guān)掉,讓其在相機(jī)中不顯示。并且調(diào)整渲染順序,使透明的場(chǎng)景可以遮擋游戲中的其他物體。達(dá)到一種“真實(shí)”的感覺。
- 聯(lián)機(jī)游戲的設(shè)計(jì):通過 P2P 對(duì)等網(wǎng)絡(luò)進(jìn)行區(qū)域內(nèi)玩家信息的傳輸。
- 游戲性:單機(jī)游戲可以向 Rougelike 冒險(xiǎn)發(fā)展,以隨機(jī)物品和戰(zhàn)斗為主。聯(lián)機(jī)游戲可以向 MMORPG 發(fā)展,以線上線下的社交為主。
總結(jié)
以上是生活随笔為你收集整理的一种基于游戏引擎的AR模式探讨(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【GPU精粹与Shader编程】(一)
- 下一篇: 《最后的守护者》的开发技术猜想