在 2024 年針對遊戲開發(fā)者所舉辦的論壇「CEDEC 2024」裡,舉行了講座「把《
薩爾達(dá)傳說 王國之淚 》」的世界串連起來的技術(shù) ~將天空、地面、地底以及製作都帶入無縫的領(lǐng)域~」。
任天堂 企劃製作部 技術(shù)總監(jiān) 堂田卓宏
任天堂 企劃製作部 程式總監(jiān) 奧田貴洋
任天堂 企劃製作部 地形程式設(shè)計負(fù)責(zé)人 齋藤智久
在《曠野之息》裡,為了要以無縫技術(shù)來呈現(xiàn)出廣大的世界與實(shí)現(xiàn)高自由度的遊玩方式,首先選擇了必要的技術(shù)。舉例來說「為了呈現(xiàn)出廣大的世界」使用了在多邊形繪製上具有優(yōu)勢的延遲渲染技術(shù),而「為了實(shí)現(xiàn)具備高自由度的動作」則選用了無論在任何狀況下,執(zhí)行物理運(yùn)算皆難以出現(xiàn)失誤的物理引擎。
因此製作團(tuán)隊(duì)從想要實(shí)現(xiàn)的遊戲元素中開始反向思考,在選擇技術(shù)的過程中,開發(fā)團(tuán)隊(duì)最重要的課題,便是「廣大的世界」與「無縫式的移動」。關(guān)於前者的部分,在《曠野之息》開發(fā)初期所舉行的腦力激盪會議中,很明顯的整個團(tuán)隊(duì)著眼的是「以平面的手法來呈現(xiàn)的廣大世界」,為此從以區(qū)域設(shè)計的觀點(diǎn)而言,世界是平面的,也就是被視為二次元的設(shè)計。
此外這種想法也連帶使得無縫式移動的設(shè)計變得單純起來,就結(jié)果來說,《曠野之息》的區(qū)域是透過「處理遠(yuǎn)處的物件時較為省略細(xì)節(jié),而面對近處的物件時則繪製的較為精細(xì)」、「使重要的物件即使在遠(yuǎn)處也能出現(xiàn),精細(xì)的物件則只有在玩家靠近時才會出現(xiàn)」的細(xì)節(jié)層次(Level of Detail)技術(shù),搭配上載入玩家的二次元(平面)移動資料的手法所呈現(xiàn)出來的。
為了實(shí)現(xiàn)想要實(shí)現(xiàn)的目標(biāo)而選出了技術(shù),同時也帶來了「無法實(shí)現(xiàn)」的問題。透過在區(qū)域裡採用二次元的資料載入技術(shù),會產(chǎn)生什麼無法實(shí)現(xiàn)的問題呢?那就是「三次元的立體構(gòu)造」。
換句話說,《曠野之息》是一款有著可以爬牆,或是以滑翔翼進(jìn)行滑翔等玩法的 3D 動作遊戲,但若是玩家仔細(xì)觀察遊戲設(shè)計跟實(shí)裝內(nèi)容,就會發(fā)現(xiàn)這是一款在二次元的限制下所開發(fā)出的遊戲。
相對而言《王國之淚》則是從開發(fā)初期的腦力激盪會議階段起,便開始思索擴(kuò)展地面、天空、地底等垂直空間的想法。重要的是,開發(fā)團(tuán)隊(duì)有了想要挑戰(zhàn)在《曠野之息》裡所無法實(shí)現(xiàn)的問題的想法。
此外《曠野之息》必須得根據(jù) Wii U 的硬體規(guī)格來進(jìn)行開發(fā)工作,但《王國之淚》則因?yàn)槭?Switch 專屬的遊戲,在硬體上的限制也比較少。回想起當(dāng)時情況的堂田表示「要如何將在《曠野之息》裡實(shí)現(xiàn)的二次元處理方式,擴(kuò)展至三次元的領(lǐng)域呢?這便是《王國之淚》所面臨的具體性技術(shù)課題了」。
體現(xiàn)出三次元無縫式表現(xiàn)的「洞窟系統(tǒng)」
要將《王國之淚》化為三次元的設(shè)計,除了地面外還會存在空島、洞窟、地底等區(qū)域,其結(jié)果便是有必要在三次元的思維下重新思考有關(guān)資料的載入及細(xì)節(jié)層次等技術(shù)。
為此團(tuán)隊(duì)首先所著眼的部分是,不僅有著地面甚至還有著牆壁跟天花板的洞窟。為了運(yùn)用無縫技術(shù)繪製出身為三次元空間的洞窟,並實(shí)現(xiàn)使用資料載入及細(xì)節(jié)層次等技術(shù),開發(fā)團(tuán)隊(duì)開發(fā)出了一個全新的地形系統(tǒng)「洞窟系統(tǒng)」。
洞窟系統(tǒng)的特色
也介紹了洞窟系統(tǒng)內(nèi)的資料載入及細(xì)節(jié)層次等技術(shù)
製作團(tuán)隊(duì)意識到只要使用洞穴系統(tǒng),便可以無縫地建構(gòu)出一個大型的立體空間,因此便製作出一個大型洞穴。透過將其設(shè)置在地下,便能建構(gòu)出一個與地面無縫連接的巨大區(qū)域。當(dāng)開發(fā)團(tuán)隊(duì)在摸索在這個廣大的空間下能夠?qū)崿F(xiàn)何種玩法時,催生出在黑暗中的探索跟只有存在於地底的強(qiáng)敵展開戰(zhàn)鬥、載具之間的戰(zhàn)鬥等點(diǎn)子。
經(jīng)過反覆測試,開發(fā)團(tuán)隊(duì)得出的結(jié)論是,如果地下有一塊巨大的區(qū)域,會更容易打造出上述的玩法。若地下跟地面之間有著聯(lián)繫關(guān)係,探索發(fā)現(xiàn)與遊玩的循環(huán)便得以進(jìn)一步擴(kuò)大,並催生出透過在實(shí)際上交叉探索地面與地底的過程中,獲得有關(guān)兩地間提示的體驗(yàn)。
地底的製作原則。地底是根據(jù)地面的資料為基礎(chǔ)製作出來的,更依此訂定了規(guī)則,
像在地面上凸起的地方會在地底呈現(xiàn)凹陷的狀態(tài),而地面上有著祠堂的地方,在地底也會存在著儲存點(diǎn)
就連空島的製作,也使用了洞窟系統(tǒng)
為了以無縫方式來連接區(qū)域而重新打造的載入系統(tǒng)
《王國之淚》的世界除了擴(kuò)展至三次元的製作方向外,還同時針對系統(tǒng)面重新打造出比起《曠野之息》能更為靈活載入物件的載入系統(tǒng)。其中一項(xiàng)便是能根據(jù)遊戲的 Flag 來靈活地替換物件的設(shè)計機(jī)制,被使用在村莊地形因遊戲進(jìn)度而產(chǎn)生大幅度變化的情況下。
另外,在《曠野之息》裡會在進(jìn)入大型迷宮時穿插載入畫面,但在《王國之淚》裡則準(zhǔn)備了事先載入獨(dú)立區(qū)域資料的泛用處理機(jī)制,因此才得以實(shí)現(xiàn)以無縫方式進(jìn)入獨(dú)立區(qū)域的設(shè)計。
另一方面,由於載入系統(tǒng)的演算法本身就是直接拿《曠野之息》裡的演算法來使用,因此要如何載入地底或天空的資料也成為了一種全新的挑戰(zhàn)。例如在身處於地底的情況下,由於位於離地面相當(dāng)遠(yuǎn)的深處,因此就不會有機(jī)會出現(xiàn)同時看到兩種場景的情況。
為此,開發(fā)團(tuán)隊(duì)認(rèn)為在地面時就只載入地面,在地底時就只載入地底的資料,這種方式較能呈現(xiàn)出帶有高密集度且廣大的世界,首先當(dāng)玩家抵達(dá)一定深度時,便會釋放地面的資料,並存取地底的資料。
然而在第一次實(shí)裝作業(yè)時,因?yàn)獒尫鸥d入無法及時完成的緣故,導(dǎo)致玩家在墜落至地底的過程中畫面會暫時停止。雖然這已經(jīng)足以證明地底與地面相互連接,並能夠直接從地面前往地底,但就以作為一個遊戲商品而言仍有不足,所以產(chǎn)生了必須得讓釋放與載入足以及時運(yùn)行,好實(shí)現(xiàn)以無縫方式呈現(xiàn)的墜落演出。
而開發(fā)團(tuán)隊(duì)則使用了四種方法來加以改善。第一種是「透過分析器進(jìn)行可視化與處理作業(yè)的重新排序」,它會將成為處理瓶頸的耗時處理作業(yè),分割為立即需要處理的部分和不需立即處理的部分,並將前者重新排序至不執(zhí)行載入時的空閒時段,而後者則會被重新排序至之後再處理等。
透過像這樣的重新排序來解除處理上的瓶頸時,製作團(tuán)隊(duì)注意到檔案本身經(jīng)常無法及時載入的緣故,於是製作團(tuán)隊(duì)開始思考「減少需載入的檔案數(shù)量」這樣的方法。
在以二次元為基礎(chǔ)的載入系統(tǒng)裡,會根據(jù)每個物件所設(shè)定的顯示距離來進(jìn)行載入的動作,包含懸崖底下等處實(shí)際上看不到的物件也會進(jìn)行載入。因此開發(fā)團(tuán)隊(duì)在玩家有可能到達(dá)的複數(shù)地點(diǎn)設(shè)置了拍攝點(diǎn),只要使用被判定為無法從該處看到的物件的拍攝資料,就能夠減少需載入的檔案數(shù)量。
另外開發(fā)團(tuán)隊(duì)也著手進(jìn)行「縮小需載入的檔案大小」的方法。比如說判斷模組中使用的材質(zhì)的解析度是否合適,如果降低解析度沒有問題,則會自動降低模組解析度。
不過由於仍舊存在著即使使用上列三種手法,還是無法及時載入的案例,因此開發(fā)團(tuán)隊(duì)這次則選擇在「提前進(jìn)行載入」的方法上下了功夫。
具體來說,首先將所有進(jìn)入地底時需要讀取的檔案列為清單。然後當(dāng)玩家接近洞口時,盡可能在記憶體容許的範(fàn)圍下載入那些清單檔案。
正因有像這樣經(jīng)調(diào)整後的結(jié)果,在正式版本裡才得以實(shí)現(xiàn)進(jìn)入地底時的無縫式移動。
那麼在天空世界時的載入情況又如何呢?由於在試作設(shè)置階段時的空島是屬於遊戲設(shè)計師仍在進(jìn)行反覆嘗試的階段,因此採用的是「姑且置之不理」的政策。這是因?yàn)橐窃诳諐u的設(shè)計確定前就實(shí)裝讀取方式的話,那就不能把無法對應(yīng)該讀取方式的創(chuàng)意加入至空島裡了。
因此,遊戲設(shè)計師利用《曠野之息》的載入系統(tǒng)不受限制地測試空島,並逐步縮減出篩選出空島真正所需物件的環(huán)境。其結(jié)果,就是在空島上設(shè)置了眾多的物件與機(jī)關(guān),並整頓出具備如與主線故事有關(guān)的大型設(shè)施、充當(dāng)空中移動時航點(diǎn)的小型設(shè)施,以及需從中摸索該如何抵達(dá)該處的地方等功能的設(shè)計內(nèi)容。
依照那些功能,配合玩家的行動,只載入一座大型空島、若周遭有小型空島,則會在載入多個小型空島的資料後,將其資料暫存至記憶體中,而未載入的空島,則是透過配置情報顯示出於事前繪製好細(xì)節(jié)層次的樣本資料等方針來加以進(jìn)行實(shí)裝。透過以這樣的方式來定義單位,並於事前賦予定位的方法,就能將移除空島並替換為其他空島的過程予以高速化。
在講座的最後,還提及了「為了以無縫方式串連起世界所需的方法」跟「為實(shí)現(xiàn)無縫製作而改善的工作流程」等話題。
堂田在最後表示,在遊玩《王國之淚》的過程中若存在著俯瞰著世界的情景,當(dāng)然也有著只專注於眼前事物的場景,透過反覆切換這些場景,便會令玩家的腦海中建構(gòu)出一個遊戲世界。
而在遊戲開發(fā)的過程中,講者提到製作團(tuán)隊(duì)有時會以製作週期這樣的長時間單位思考最佳化,也有時候會以 1/1000 秒這樣的極短時間單位來思考,或者是若以整個團(tuán)隊(duì)的反覆運(yùn)行週期為考量的話,則也有可能著眼於多邊形單位上,並在最後以「《王國之淚》的開發(fā)工作需要在宏觀和微觀的視角之間來回切換,這對想以無縫方式實(shí)裝廣大的區(qū)域來說是必要的」為本次的講座作出了總結(jié)。