過程化技術:打造「開放世界」的秘密
近幾年來,不同品類的開放世界內容頻頻推出,支撐這種遊戲場景開發的過程化技術,被越來越多的國內開發者所瞭解。騰訊互娛天美工作室的技術美術師楊拓,從 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
相關文章
- 走進JavaWeb技術世界5:初探Tomcat的HTTP請求過程JavaWebTomcatHTTP
- 荒野之息-用乘法打造開放世界玩法
- 騰訊魔方《洛克王國》開放世界技術詳解
- 工業產品開發過程中的PDM技術
- 一個技術的成長過程
- 過去10年,開放世界遊戲發生了哪些變化?(下)遊戲
- 過去10年,開放世界遊戲發生了哪些變化?(上)遊戲
- 透過智慧化技術來打造SMT貼片加工行業新面貌行業
- 騰訊光子《黎明覺醒》技術美術負責人:如何製作超真實的開放世界?
- 開源技術夠用了麼?我的 NAS 選型與搭建過程
- Unreal Open Day 2021虛幻引擎技術開放日 完整議程正式曝光Unreal
- 淘寶小部件:全新的開放卡片技術!
- 西山居和騰訊聯手打造的「開放世界」,去哪兒了?
- 《短途旅行》設計師分享:如何打造一個小小的開放世界
- 前端工程化:圍繞Jenkins打造工作流的過程前端Jenkins
- 走進JavaWeb技術世界3:JDBC的進化與連線池技術JavaWebJDBC
- 《原神》開放世界的思考
- 創造一個小小開放世界:《A Short Hike》開發歷程分享
- AI中的影像識別技術的原理及過程AI
- MLPerf世界紀錄技術分享:通過模型壓縮優化取得最佳效能模型優化
- FunPlus將通過世界頂尖的遊戲引擎技術,打造獨一無二的遊戲產品體驗遊戲引擎
- Qt混合Python開發技術:Python介紹、混合過程和DemoQTPython
- 世界上「秘密最多」的梵蒂岡檔案室,將因為AI技術而大白於天下AI
- 技術專訪:探究《鳴潮》二次元開放世界的後啟示錄美學二次元
- <開放世界>專題整理
- 百度技術開放日即將開啟 揭祕春晚紅包背後的技術
- Insomniac分享:開放世界VR遊戲《Stormland》背後的藝術和洞察VR遊戲ORM
- 在Flutter開發過程中快速生成json解析模板類的工具 | 掘金技術徵文FlutterJSON
- 蘋果超級簽名的實現過程、技術原理蘋果
- 分享DDOS防禦過程中需要了解的技術手段
- MasterCard宣佈開放區塊鏈技術APIAST區塊鏈API
- Unity的超大開放世界解決方案Unity
- 米哈遊CEO蔡浩宇GDC演講:《原神》如何打造動人的開放世界?
- 騰訊天美3A專案熱招 打造開放世界、射擊專案
- 支付寶開放“蜻蜓”刷臉技術,助力線下商家數字化轉型
- 打造自己的HelloDrone 無人機APP過程《0》無人機APP
- 探秘某音開放平臺介面:掌握潮流電商的秘密武器
- 祖龍技術總監王遠明:用虛幻引擎解決開放世界5大難題