過程化技術:打造「開放世界」的秘密

遊資網發表於2019-09-27
如果你經常接觸開放世界遊戲,應該不難發現在這些作品中,並不是每個角落都經過了精雕細琢。一張碩大的地圖裡,往往充斥著諸多相同的物件、地形和建築。某種程度上,這些都是使用過“過程化技術”的痕跡,背後也蘊藏了相當多的學問。

近幾年來,不同品類的開放世界內容頻頻推出,支撐這種遊戲場景開發的過程化技術,被越來越多的國內開發者所瞭解。騰訊互娛天美工作室的技術美術師楊拓,從 2016 年就開始致力於遊戲關卡設計,以及場景與玩法互動等技術的研究。在今年的 TGDC(騰訊遊戲開發者大會)上,他也就過程化技術進行了非常深入的討論。

過程化技術:打造「開放世界」的秘密


為什麼要用過程化技術

何謂過程化技術?說得簡單點,就是用程式演算法自動生成內容的方式,來替代純粹的人工製作。這個“內容”囊括了美術資源和音樂音效,也多見於大場景的製作。當然,它並不是一個特別新鮮的東西,早幾年《無人深空》吹噓自己有 1840 億億顆星球可供探索,其實就用到了這種方式。

在 TGDC 的演講中,楊拓針對過程化技術的作用,給出了這樣的定義:

“美術提供一些元素,包括基礎的圖形或輪廓元件,以及一些可以調整的數值,最後加上一個可以抽象出來的公式,就能夠到你最後想要的結果。”

過程化技術:打造「開放世界」的秘密
一個過程化技術的應用案例

通常情況下,基礎的開放世界地圖,涵蓋了非常豐富的地形地貌,比如對應不同季節的草地、雪地。以往的 MMO 也會去塑造這些東西,但很少做到無縫連線,有時候需要切換大地圖才會具體替換到新的地貌效果。但時至如今,將所有的地形、地貌集中顯示在幾公里的範圍內,可以說成了一種最基本的要求。

在此基礎上,植被和生態系統的引入又將製作難度提高了一個層次。比如綠地要長綠草,越靠近沙土的地方草的密度越少,美術對植被的生長有嚴格的控制和規則。如果用傳統的筆刷工具,一次、兩次還能借助人力來完成,一旦場景發生改動,便要頻繁根據地形的改變來重新修改植被分佈,製作的難度相當高。

若是想進一步增加場景活力,到頭來還得牽扯到城市規劃。從最初的道路規劃到由此劃分出的區塊,再到區塊中的房屋、花園、停車場、通道,這些是一層層規則的疊加,背後是一整套規則的樹狀結構。一旦處於規則頂層的道路發生了變化,同樣也會引起道路周圍每個要素的變化。

如果細化到城市裡的建築或者某個房間,美術和原畫還需要對建築風格和效果做把控。除此之外,關卡策劃還會將掩體、跑酷攀爬等場景互動一併加入,這實際上都依賴於建築之間擺放的觸發器來控制。試想一下,一旦缺少標準的製作流程和方案,帶來的結果便是美術工作量的堆積,遊戲包體的膨脹和巨大的溝通成本。

過程化技術:打造「開放世界」的秘密

不妨以《刺客信條:起源》為例,按照官方的說法,他們塑造了一個 120 平方公里的埃及場景。其中的城鎮數量少說幾十,每座城又有幾十棟建築,每個建築裡還包含傢俱、攀爬跑酷的觸發器,以及各種不同的牆面材質。在這樣工作量下,楊拓認為過程化技術將成為一個團隊的救命稻草:

“大世界的製作技術其實已經成型很久了,最近逐漸被人重視起來的原因,一是國外 3A 大廠遊戲品質不斷提升,使得在背後推進場景製作的技術,特別是 Houdini 技術逐漸被國內的各個工作室瞭解和接受,IEG(騰訊互動娛樂)內部每個工作室都有自己的一套 Houdini 管線(流水線),而且大家都在推進過程化的方案。

如果每個建築物件都要人工配,一個大世界有上千的部件,而且會經常有調整。全靠人力是不可行的。我們需要把這些物件進行模組化,通過模組的方式來管理每個物件的觸發器。另外一個是要有自動化的工具,根據建築的形狀來自動的把對應的觸發器生成出來。”


如何運用過程化技術

正如楊拓所言,談到過程化技術相關的工具,Houdini 是一個比較常用的圖形軟體。由於它是完全基於節點模式設計的產物,很適合用於“自動生成”一些東西,也和傳統的三維軟體有很大的差異。

最直觀的應用,就是在地表平面加入一些引數,很快便能創造有著高低差視角的遊戲關卡。開發者還可以在地形上連上一條曲線,用曲線讀取地形資訊,得到衝擊地形的河床以及這個河床所生成的河流。通過一些簡單的“點線面”輸入,進而獲取最終的效果。

過程化技術:打造「開放世界」的秘密
用 Houdini 生成地形

但在楊拓眼中,如果不帶腦子的使用過程化技術,又會導致相當多的隱患:

“以河流為例,河流橫穿 8×8 公里的地圖。意味著你這個河流改變一點引數,河流橫穿的 8×8 地塊都是被汙染掉的,也就是說需要重新構建。如果有人開發手機遊戲,就知道我們的遊戲每天都做「增量構建」,也做「全量構建」。但如果地圖的所有地塊每天做全量構建,對遊戲場景的開發迭代很不利。”

緊接著,他在 TGDC 上提出了一個“正常的方法”。實際上,現在國外的 3A 產品大部分都使用了名為“模組化點雲”的方案,楊拓表示:

“通過把地形地貌的坡度資訊、高度資訊以及地形圖層的資訊總和生成在 Houdini 裡面,就可以轉成一些點。你可以看到 Houdini 的例項圖裡面,這些點包含的是一棵樹的大小、縮放資訊和旋轉資訊……一百棵樹可能就幾 K 的資料量,而且這個東西通過渲染引擎的例項化方案,一個批次可以完全渲染完。

最後匯入到場景裡的話,比如我要換另外一種植被效果,只要換一棵草的樣子,整個場景的草都換了。換樹也是,只需要修改一棵樹。優化下來覺得效能不好,要降低草的密度,我只要點一個引數就全部改變。用這種方法我們就可以很快不斷迭代、不斷嘗試……”

過程化技術:打造「開放世界」的秘密
通過過程化技術鋪開植被

如果以建築為例,每個“點”實際上就是一個建築模組,開發者可以先組織建築模組的資訊,然後再做細化的替換。換而言之,通過這種方式,整個遊戲場景都能夠轉化為“點雲”。

“這些點雲匯入虛幻引擎或者 Unity 引擎裡面,通過實際化渲染,一個批次就可以全部渲完。直接調引數就可以優化,不用每次改什麼東西還要反覆調……我們的過程化技術其實是以點云為驅動的過程化技術,正是因為有點雲的組織結構,所有的操作、所有的變化通過一個 Excel 表就知道我加了什麼、減了什麼,也可以通過分析資料表的格式,知道某個單位內我們的美術資源量到底消耗了多少。”

過程化技術:打造「開放世界」的秘密
過程化技術生成的建築

可以預見的是,隨著經驗的積累,過程化技術將成為大型開發商擴大優勢的重要工具。楊拓認為這其中包含的可迭代性價值,體現在美術可以把玩法、程式的工作剝離出來,將精力集中於設計和創造。而關卡策劃和關卡程式只需要修改模組的生成規則,就可以將所有的修改量限制在非常小的範圍內。對於玩家們來說,未來體驗到品質更高,細節更為豐富的開放世界遊戲,似乎也不再是痴人說夢。

來源:VGtime
地址:https://www.vgtime.com/topic/1065756.jhtml


相關文章