[閒聊] 薩爾達傳說 王國之淚 如何無縫銜接製作過程

看板C_Chat (希洽)作者 (lucky)時間2月前 (2024/09/11 01:21), 編輯推噓4(402)
留言6則, 6人參與, 2月前最新討論串1/1
原文標題: 【CEDEC 24】《薩爾達傳說 王國之淚》如何連「製作過程」也實現無縫銜接? 原文網址:https://gnn.gamer.com.tw/detail.php?sn=273565 在 2024 年針對遊戲開發者所舉辦的論壇「CEDEC 2024」裡,舉行了講座「把《薩爾達傳 說 王國之淚》」的世界串連起來的技術 ~將天空、地面、地底以及製作都帶入無縫的領 域~」。 https://p2.bahamut.com.tw/B/2KU/90/6f0057904ae7de1de511d9c63c1rdea5.JPG
在該講座裡,介紹了《薩爾達傳說 王國之淚》關於製作場景、無縫演出的製作過程及手 法等內容。演講者為以下三位: 任天堂 企劃製作部 技術總監 堂田卓宏 任天堂 企劃製作部 程式總監 奧田貴洋 任天堂 企劃製作部 地形程式設計負責人 齋藤智久 https://p2.bahamut.com.tw/B/2KU/91/60d4231fe9ad96555dadcf2cfb1rdeb5.JPG
https://p2.bahamut.com.tw/B/2KU/92/72d7868b6fdda3b66308de178e1rdec5.JPG
https://p2.bahamut.com.tw/B/2KU/93/e7a08891b78100aff3f6748e4d1rded5.JPG
《薩爾達傳說 曠野之息》是採用二次元的設計 在講座一開始時,作為介紹開發《薩爾達傳說 王國之淚》(以下簡稱《王國之淚》)所 採用技術的前提,製作團隊首先解說了有關於前作《薩爾達傳說 曠野之息》(以下簡稱 《曠野之息》)的開發過程。 在《曠野之息》裡,為了要以無縫技術來呈現出廣大的世界與實現高自由度的遊玩方式, 首先選擇了必要的技術。舉例來說「為了呈現出廣大的世界」使用了在多邊形繪製上具有 優勢的延遲渲染技術,而「為了實現具備高自由度的動作」則選用了無論在任何狀況下, 執行物理運算皆難以出現失誤的物理引擎。 https://p2.bahamut.com.tw/B/2KU/94/0180bdeeeca562f1f3a1bd47f51rdee5.JPG
因此製作團隊從想要實現的遊戲元素中開始反向思考,在選擇技術的過程中,開發團隊最 重要的課題,便是「廣大的世界」與「無縫式的移動」。關於前者的部分,在《曠野之息 》開發初期所舉行的腦力激盪會議中,很明顯的整個團隊著眼的是「以平面的手法來呈現 的廣大世界」,為此從以區域設計的觀點而言,世界是平面的,也就是被視為二次元的設 計。 https://p2.bahamut.com.tw/B/2KU/95/9422806b024d33028ef902a1991rdef5.JPG
此外這種想法也連帶使得無縫式移動的設計變得單純起來,就結果來說,《曠野之息》的 區域是透過「處理遠處的物件時較為省略細節,而面對近處的物件時則繪製的較為精細」 、「使重要的物件即使在遠處也能出現,精細的物件則只有在玩家靠近時才會出現」的細 節層次(Level of Detail)技術,搭配上載入玩家的二次元(平面)移動資料的手法所 呈現出來的。 https://p2.bahamut.com.tw/B/2KU/96/db8dbf98df08d0f713d3063aac1rdeg5.JPG
為了實現想要實現的目標而選出了技術,同時也帶來了「無法實現」的問題。透過在區域 裡採用二次元的資料載入技術,會產生什麼無法實現的問題呢?那就是「三次元的立體構 造」。 換句話說,《曠野之息》是一款有著可以爬牆,或是以滑翔翼進行滑翔等玩法的 3D 動作 遊戲,但若是玩家仔細觀察遊戲設計跟實裝內容,就會發現這是一款在二次元的限制下所 開發出的遊戲。 https://p2.bahamut.com.tw/B/2KU/97/eef70f93a44f79ead888720e401rdeh5.JPG
相對而言《王國之淚》則是從開發初期的腦力激盪會議階段起,便開始思索擴展地面、天 空、地底等垂直空間的想法。重要的是,開發團隊有了想要挑戰在《曠野之息》裡所無法 實現的問題的想法。 此外《曠野之息》必須得根據 Wii U 的硬體規格來進行開發工作,但《王國之淚》則因 為是 Switch 專屬的遊戲,在硬體上的限制也比較少。回想起當時情況的堂田表示「要如 何將在《曠野之息》裡實現的二次元處理方式,擴展至三次元的領域呢?這便是《王國之 淚》所面臨的具體性技術課題了」。 https://p2.bahamut.com.tw/B/2KU/98/47d5db40ab1072c5e4495d56031rdei5.JPG
體現出三次元無縫式表現的「洞窟系統」 要將《王國之淚》化為三次元的設計,除了地面外還會存在空島、洞窟、地底等區域,其 結果便是有必要在三次元的思維下重新思考有關資料的載入及細節層次等技術。 為此團隊首先所著眼的部分是,不僅有著地面甚至還有著牆壁跟天花板的洞窟。為了運用 無縫技術繪製出身為三次元空間的洞窟,並實現使用資料載入及細節層次等技術,開發團 隊開發出了一個全新的地形系統「洞窟系統」。 https://p2.bahamut.com.tw/B/2KU/99/797c8174d59effa4bfcb5d92f71rdej5.JPG
洞窟系統的特色 https://p2.bahamut.com.tw/B/2KU/00/f2bd9da99759a316a9e34d099d1rdek5.JPG
https://p2.bahamut.com.tw/B/2KU/01/44d5811913b2b692a63f274a221rdel5.JPG
也介紹了洞窟系統內的資料載入及細節層次等技術 製作團隊意識到只要使用洞穴系統,便可以無縫地建構出一個大型的立體空間,因此便製 作出一個大型洞穴。透過將其設置在地下,便能建構出一個與地面無縫連接的巨大區域。 當開發團隊在摸索在這個廣大的空間下能夠實現何種玩法時,催生出在黑暗中的探索跟只 有存在於地底的強敵展開戰鬥、載具之間的戰鬥等點子。 https://p2.bahamut.com.tw/B/2KU/02/c4eb177b0458d45d36c1609e821rdem5.JPG
https://p2.bahamut.com.tw/B/2KU/03/37aee68d368a9770f6d31899141rden5.JPG
經過反覆測試,開發團隊得出的結論是,如果地下有一塊巨大的區域,會更容易打造出上 述的玩法。若地下跟地面之間有著聯繫關係,探索發現與遊玩的循環便得以進一步擴大, 並催生出透過在實際上交叉探索地面與地底的過程中,獲得有關兩地間提示的體驗。 https://p2.bahamut.com.tw/B/2KU/04/b79fc634897e3a953e05c94be01rdeo5.JPG
https://p2.bahamut.com.tw/B/2KU/05/bd97541af7b514f90607be25161rdep5.JPG
https://p2.bahamut.com.tw/B/2KU/06/54ec31ed84fe5586f33ff4e69d1rdeq5.JPG
地底的製作原則。地底是根據地面的資料為基礎製作出來的,更依此訂定了規則, 像在地面上凸起的地方會在地底呈現凹陷的狀態,而地面上有著祠堂的地方,在地底也會 存在著儲存點 https://p2.bahamut.com.tw/B/2KU/07/b6f66f91500a27c52dcb58a9821rder5.JPG
就連空島的製作,也使用了洞窟系統 為了以無縫方式來連接區域而重新打造的載入系統 《王國之淚》的世界除了擴展至三次元的製作方向外,還同時針對系統面重新打造出比起 《曠野之息》能更為靈活載入物件的載入系統。其中一項便是能根據遊戲的 Flag 來靈活 地替換物件的設計機制,被使用在村莊地形因遊戲進度而產生大幅度變化的情況下。 另外,在《曠野之息》裡會在進入大型迷宮時穿插載入畫面,但在《王國之淚》裡則準備 了事先載入獨立區域資料的泛用處理機制,因此才得以實現以無縫方式進入獨立區域的設 計。 https://p2.bahamut.com.tw/B/2KU/08/4ae582ebf1d7d76d04325dad781rdes5.JPG
https://p2.bahamut.com.tw/B/2KU/09/400fc031d003a731621b05e9101rdet5.JPG
https://p2.bahamut.com.tw/B/2KU/10/9b4de9f6fe35cb659fae6333bc1rdeu5.JPG
另一方面,由於載入系統的演算法本身就是直接拿《曠野之息》裡的演算法來使用,因此 要如何載入地底或天空的資料也成為了一種全新的挑戰。例如在身處於地底的情況下,由 於位於離地面相當遠的深處,因此就不會有機會出現同時看到兩種場景的情況。 為此,開發團隊認為在地面時就只載入地面,在地底時就只載入地底的資料,這種方式較 能呈現出帶有高密集度且廣大的世界,首先當玩家抵達一定深度時,便會釋放地面的資料 ,並存取地底的資料。 然而在第一次實裝作業時,因為釋放跟載入無法及時完成的緣故,導致玩家在墜落至地底 的過程中畫面會暫時停止。雖然這已經足以證明地底與地面相互連接,並能夠直接從地面 前往地底,但就以作為一個遊戲商品而言仍有不足,所以產生了必須得讓釋放與載入足以 及時運行,好實現以無縫方式呈現的墜落演出。 https://p2.bahamut.com.tw/B/2KU/11/8bce9aae90d36bb8081c595dc91rdev5.JPG
而開發團隊則使用了四種方法來加以改善。第一種是「透過分析器進行可視化與處理作業 的重新排序」,它會將成為處理瓶頸的耗時處理作業,分割為立即需要處理的部分和不需 立即處理的部分,並將前者重新排序至不執行載入時的空閒時段,而後者則會被重新排序 至之後再處理等。 https://p2.bahamut.com.tw/B/2KU/12/fae47a8fd08d98a2d6730c24621rdew5.JPG
透過像這樣的重新排序來解除處理上的瓶頸時,製作團隊注意到檔案本身經常無法及時載 入的緣故,於是製作團隊開始思考「減少需載入的檔案數量」這樣的方法。 在以二次元為基礎的載入系統裡,會根據每個物件所設定的顯示距離來進行載入的動作, 包含懸崖底下等處實際上看不到的物件也會進行載入。因此開發團隊在玩家有可能到達的 複數地點設置了拍攝點,只要使用被判定為無法從該處看到的物件的拍攝資料,就能夠減 少需載入的檔案數量。 https://p2.bahamut.com.tw/B/2KU/13/9975c3b4182b8b32baf181c5bc1rdex5.JPG
另外開發團隊也著手進行「縮小需載入的檔案大小」的方法。比如說判斷模組中使用的材 質的解析度是否合適,如果降低解析度沒有問題,則會自動降低模組解析度。 https://p2.bahamut.com.tw/B/2KU/14/fdfb3201da549e0c2217fbbfea1rdey5.JPG
https://p2.bahamut.com.tw/B/2KU/15/2e91cf515f417c268d2307c8b31rdez5.JPG
不過由於仍舊存在著即使使用上列三種手法,還是無法及時載入的案例,因此開發團隊這 次則選擇在「提前進行載入」的方法上下了功夫。 具體來說,首先將所有進入地底時需要讀取的檔案列為清單。然後當玩家接近洞口時,盡 可能在記憶體容許的範圍下載入那些清單檔案。 正因有像這樣經調整後的結果,在正式版本裡才得以實現進入地底時的無縫式移動。 https://p2.bahamut.com.tw/B/2KU/16/17fc0af5e6ea8f65f3d740d1ca1rdf05.JPG
那麼在天空世界時的載入情況又如何呢?由於在試作設置階段時的空島是屬於遊戲設計師 仍在進行反覆嘗試的階段,因此採用的是「姑且置之不理」的政策。這是因為要是在空島 的設計確定前就實裝讀取方式的話,那就不能把無法對應該讀取方式的創意加入至空島裡 了。 https://p2.bahamut.com.tw/B/2KU/17/716cb83c78073a585398e6e5f61rdf15.JPG
因此,遊戲設計師利用《曠野之息》的載入系統不受限制地測試空島,並逐步縮減出篩選 出空島真正所需物件的環境。其結果,就是在空島上設置了眾多的物件與機關,並整頓出 具備如與主線故事有關的大型設施、充當空中移動時航點的小型設施,以及需從中摸索該 如何抵達該處的地方等功能的設計內容。 https://p2.bahamut.com.tw/B/2KU/18/826c79aedbea5a7776dbafd7771rdf25.JPG
依照那些功能,配合玩家的行動,只載入一座大型空島、若周遭有小型空島,則會在載入 多個小型空島的資料後,將其資料暫存至記憶體中,而未載入的空島,則是透過配置情報 顯示出於事前繪製好細節層次的樣本資料等方針來加以進行實裝。透過以這樣的方式來定 義單位,並於事前賦予定位的方法,就能將移除空島並替換為其他空島的過程予以高速化 。 https://p2.bahamut.com.tw/B/2KU/19/e73da324a87afc2871e72bf7231rdf35.JPG
在講座的最後,還提及了「為了以無縫方式串連起世界所需的方法」跟「為實現無縫製作 而改善的工作流程」等話題。 https://p2.bahamut.com.tw/B/2KU/20/ce9d79cc0f46a7408dce2482ce1rdf45.JPG
https://p2.bahamut.com.tw/B/2KU/21/430ef43d1cb23bc6152e3a88cd1rdf55.JPG
https://p2.bahamut.com.tw/B/2KU/22/e9bf6b91532ec236402c9b2b591rdf65.JPG
https://p2.bahamut.com.tw/B/2KU/23/7a5be5a9306019b424f835271a1rdf75.JPG
https://p2.bahamut.com.tw/B/2KU/24/81a8ccaf695b540833de65878c1rdf85.JPG
https://p2.bahamut.com.tw/B/2KU/25/02e5cf9cc493cc0ec659ebb31d1rdf95.JPG
堂田在最後表示,在遊玩《王國之淚》的過程中若存在著俯瞰著世界的情景,當然也有著 只專注於眼前事物的場景,透過反覆切換這些場景,便會令玩家的腦海中建構出一個遊戲 世界。 而在遊戲開發的過程中,講者提到製作團隊有時會以製作週期這樣的長時間單位思考最佳 化,也有時候會以 1/1000 秒這樣的極短時間單位來思考,或者是若以整個團隊的反覆 運行週期為考量的話,則也有可能著眼於多邊形單位上,並在最後以「《王國之淚》的開 發工作需要在宏觀和微觀的視角之間來回切換,這對想以無縫方式實裝廣大的區域來說是 必要的」為本次的講座作出了總結。 https://p2.bahamut.com.tw/B/2KU/26/4c425e1e3ee039a41261e3e7f71rdfa5.JPG
《薩爾達傳說王國之淚》官方網站:https://gnn.gamer.com.tw/counter.php?sn=283775 -- 從偏向二次元的曠野之息,到考慮三次元的王國之淚,機體性能不再受到 WiiU 限制,透 過洞窟系統,以及控制視角內的資源、貼圖與模型等載入的數量,來做到無接縫的大地圖 ,在效能有限的 Switch 上,能達成這樣的成果,開發團隊真的是十分強大 -- 清廉正直射命丸文,世界第一可愛 https://i.imgur.com/XqOptr2.jpg
https://i.imgur.com/zGCOdHq.jpg
https://i.imgur.com/SJR03hx.jpg
https://i.imgur.com/nUbq2HQ.jpg
https://i.imgur.com/0yn2DP5.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.180.73 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1725988877.A.577.html

09/11 02:19, 2月前 , 1F
總之,先跪著看就對了。
09/11 02:19, 1F

09/11 06:14, 2月前 , 2F
switch 跟 wii u 性能不是差不多嗎?
09/11 06:14, 2F

09/11 06:35, 2月前 , 3F
白話:花很多時間跟人力做場景物件讀取順序清單
09/11 06:35, 3F

09/11 08:12, 2月前 , 4F
原神:好好好
09/11 08:12, 4F

09/11 10:35, 2月前 , 5F
GF的朱紫就是沒用這些技術(或不會) 玩起來就很卡
09/11 10:35, 5F

09/11 10:51, 2月前 , 6F
09/11 10:51, 6F
文章代碼(AID): #1cu80DLt (C_Chat)
文章代碼(AID): #1cu80DLt (C_Chat)