本期來說說 AR游戲是如何制作的。 AR 程序通常分為三部分,一是制作 3D 模型,第二是何時顯示這個 3D 模型,第三是如何顯示這個 3D 模型。這里面的核心在于第二和第三點。
首先是制作 3D 模型,也就是我們經常說的建模。在很多人眼里覺得 3D 建模是最沒有技術含量的工作。我經常聽到甲方說,你們什么 VR AR 3D 可視化不就是建模的嗎?之后我們單獨聊一期建模的技術。這里簡單說一下, AR 建模可以用 3D max 、maya,高手是可以用最少的模型表面實現更精美的畫面效果,能夠兼顧加載速度和畫面表現。而且這**步說到的制作模型除了 3D 模型之外,還包括貼圖、紋理、凹凸感和動畫。現在我們有了一個互動的 3D 模型了,任何人都可以把它拖到 unity 或者是 UE 4 里,點一下發布,我們就能得到了一個手機游戲,就是這個 3D 模型在手機里動的完全沒有難度。
第二步,何時顯示這個 3D 模型?如果 3D 模型隨時隨地都能在手機上顯示的話,就不叫 AR 程序了。 AR 的特點就是用手機攝像頭捕捉周圍的環境,當手機找到觸發信號之后,才顯示 3D 模型。比如售樓處的 3D 戶型圖。做這個項目的時候,設計師是先做好了 3D 模型,但是隱藏起來給程序預置一張照片作為處罰信號。當用戶打開手機攝像頭對著平面戶型圖掃描的時候,程序是在實時的對比,一直在找哪里的畫面跟預置的圖片是一樣的。當攝像頭找到預置圖片的時候,一分析這兩張圖 80% 都一樣,就是它了。
于是就把制作好的 3D 模型從隱藏狀態變成顯示狀態,我們就看到了,但這樣只是控制 3D 模型的顯示和隱藏。當模型顯示出來之后,它和周圍的環境沒有任何關系。
所以還需要第三步如何顯示這個 3D 模型。比如我們的手機攝像頭向下,我應該看到模型的頂面,我的手機向前我應該能看到模型的正面。如果手機在任何姿態下顯示的模型都是相同的話,那就沒有意思了。所以軟件還要調用手機的陀螺儀,知道手機自己的姿態,從而推算出三維模型應該如何顯示才是正確的。實際上這個姿態的判斷不僅僅是陀螺儀,還有攝像頭、激光雷達進行交叉驗證。總之我們知道手機能夠判斷出自己的位置和姿態就夠了。你別以為程序員懂,他也只是會調用這個姿態的結果而已。于是現在這個 3D 模型可以根據手機的姿態不同顯示出符合物理空間感的狀態了。
但是這樣的 AR 軟件沒有縱深感。因為當實際物體出現在 3D 模型前面的時候,本來應該是遮擋住 3D 模型的,但是軟件并不能夠判斷出有物體遮擋住了 3D 模型,軟件甚至都不會有判斷物體遮擋的這個過程。所以如果 3D 畫面顯示在所有物體前面時,還好如果有物體出現在 3D 模型的前面,而 3D 模型又遮擋住了物體,那么就會讓人覺得無比違和,于是就出戲了。
所以有的團隊在做 AR 程序的時候,會把周圍實際環境完整的建模出來。但是這個模型并不在程序里顯現,它只是用來判斷該顯示的模型什么時候能看見,什么時候會被遮擋。在觸發 3D 模型顯示的時候,也不是用預設的照片跟攝像頭的畫面進行對比,而是用周圍環境的 3D 模型跟攝像頭的畫面進行對比,這樣操作就會讓 AR 程序看起來更真實。