《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

雷火UX 發表於 2022-12-05
在日本CEDEC2022(今年的日本遊戲開發者大會)上,來自From Software的系統設計總監松本龍,分享了《艾爾登法環》的地圖設計理念,以及一些在開放世界遊戲的地圖製作過程中的效率化和自動化經驗。

2022年2月,由日本From Software開發,萬代南夢宮發行的幻想開放世界RPG遊戲《艾爾登法環》迎來全球發售。這部宮崎英高執掌下的From社歷史上體量最大的遊戲,在發行不到一個月的時間內,全球銷量即突破1200萬份。該作整合了這家工作室歷史上《黑暗之魂》系列、《只狼》等遊戲的製作經驗,並將其在一部體量更加龐大的開放世界大作中發揮地更加淋漓盡致。在剛剛揭曉的2022年金搖桿獎中,《艾爾登法環》也拿下了年度最佳遊戲的大獎。

《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

各位好,我是松本龍,於2009年加入From Software,歷任系統策劃組成員、總監,現擔任該司遊戲設計部門的副總監。

自上半年釋出以來,《艾爾登法環》這部由超大的開放世界地圖構築而成的動作冒險RPG,贏得了很多玩家的喜愛。與這部新的魂系作品中的地圖相比,我司的歷史鉅作《黑暗之魂3》的地圖就像是一粒豆子那樣,規模極小。再加上《艾爾登法環》的地下及各類副本地圖設計,這部作品的總地圖可以說是極為宏大。

所以,如果採用和公司歷史上的作品類似的地圖設計和開發方式的話,巨量的製作內容恐怕會帶來諸多問題。所以本次分享為大家帶來針對這些難題而採用的策略,以及具體的設計思路、實現方式。

《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

一、地圖的構成和製作方式

首先想講講地圖的構成。在過往我們發行的《黑暗之魂3》當中,地圖的資料會隨著玩家向某些地區的接近而逐步載入出來。在這次製作《艾爾登法環》的過程中,我們團隊也一度認為可以採用類似的設計方式。

但是,在《艾爾登法環》滿是各種“遺蹟”的開放世界地圖中,玩家移動的自由度極高。比如寧姆格福附近,就有多達11個遺蹟點,加上預測可能性很小的玩家移動方向,這就勢必會帶來資源載入的問題。

基於此,我們將地圖分為了單位更細的網格單元,以“逐步載入某網格附近的資源”為策略,做了整體地圖的構成。此外,我們也沒有將所有的地圖內都劃分成相同大小的網格單元,而是在重要的boss戰地圖/副本、以及需要進行高速移動的場景中,儘可能地將網格單元做大化,方便場景整體的載入。舉例來說,我們劃分的最小網格單元為256m×256m,也會有更大一些的比如1024m×1024m的網格劃分,這樣一方面可以對遊戲內地圖的總體網格數進行適當性的控制,同時有可能可以保持一些遠景的載入質量;另一方面,在與大型的boss或者敵人進行交戰時,非必要可以不使用過於細緻的網格進行配置及載入,因為這些敵人的移動幅度本身就比較大,大網格的設定也可以讓玩家從遠處就進行攻擊操作。

《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

接著,我想給大家分享一下《艾爾登法環》地圖的製作方式。在製作《黑暗之魂3》時,我們的做法是先將作為背景的建築物及周邊大致地圖搭建起來,然後再配置可互動的場景內物體、遠景等。但是在《艾爾登法環》這種巨幅地圖的製作過程中,這一方式可能不太適用了。與之相對,《艾爾登法環》中的地圖僅為地形及其起伏態勢等;我們會先把這部分內容製作好,而後在其中進行素材、建築、物體等的新增。這種製作方法的好處在於,可大量減少僅使用一次的地圖資源,對一些資源在不同地圖和環境當中進行復用;此外,將各類地圖內資源、物體進行多樣化的組合也可以造就很多風格不一的地圖樣式,以此豐富玩家的各類視覺體驗。

二、地圖中尋路系統的設計

敵人或者NPC在地圖當中移動時,需要考慮各個障礙物的位置。在《艾爾登法環》中,我們採用的是Navmesh尋路系統,敵人和NPC們會對地形和路線進行探索,而後進行自主移動。在這方面,《黑暗之魂3》則是有一部分移動路徑是自動生成的,關鍵部位則需要人工進行制定及調整。

在體量巨大的《艾爾登法環》的開放世界當中,因為敵人被設定為可以在具有高度差的地形中進行移動,在一些可以進行跳上、跳下的操作的地圖部分,我們也是利用自動生成的資料對地圖進行了製作。

而對於大體型的boss來說,要對非常小的障礙物、或者是有多層的高度差的地形進行判斷的話,會變得非常困難。針對這些大體型敵人,我們製作了專門的尋路和探索路徑;相比一般的敵人來講,他們對於高度差的判斷會更加大模組化,即可以無視一定的高度差及障礙物,這樣也符合現實設定。

《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

三、效能問題及地圖內依賴關係的檢測

這麼大的地圖,載入負荷和bug檢測方面的工作如何呢?會不會成大問題?關於這方面,我們在遊戲內引入了自動測試功能。遊戲會自動從地圖的任意一個角落跑遍整個地圖,來收集各種地圖載入、處理的負荷資料以及各類bug、報錯資料。在這個遊戲開發的過程中,經常會對非常多的場景、NPC及地圖等要素進行追加、變更或者刪除,這種定期的檢查系統,讓整個團隊在保障地圖質量的同時,能夠儘可能地減少上線後的問題。

《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

在自動測試的過程中,我們比較關注效能及記憶體佔用情況的問題。比如有沒有幀率突然變得惡化的地方,記憶體佔用突然升高的地方等等。因為在開發時,地圖中經常會不斷有不同大小、樣式、形態的資源加入進來,而這可能就會在不知不覺中讓整個場景載入的負擔變重,情況惡化;一旦發生比較根本性的問題,還經歷了長期的積累,就容易涉及到大規模的後期調整,對於開發進度以及遊戲整體質量來說是極為不利的。

《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

此外,在製作地圖的過程中,我們還有一個工具協助推進工作,那就是“依附關係資料工具”。這個工具的作用是,可以對地圖資源及資料的依附關係進行調查,判斷在資料出現變動時是否會影響其他資料的存在和功能,是否會新出現空置的資源,並直接生成視覺化結果。這樣就可以大大減少某地點的資源被替換或者錯誤被修正時,對其他部分的地圖產生負面影響。

另外,在《艾爾登法環》中,各“遺蹟”地圖內會有非常多的配置物,為了減輕遊戲執行壓力,我們會盡可能地將看不見的區域進行省去(比如牆壁的外側等)。而這種“地圖元素的顯示與否”的設定,也是自動生成的。此前,這些都需要畫面和場景製作相關的同事手動進行設定,但從《只狼》的開發經驗來看,因為涉及到很多高空的動作及鏡頭,如果要全部進行人眼及手動的判斷,就變得非常困難;在此基礎上,我們想辦法將其改成了自動生成的設定。

《艾爾登法環》如何效率化、自動化地構築宏大的開放世界地圖?

而在From Software,我們採用的方法是“顯示組合”,這種方法也是從《只狼》開發時就已經納入公司的開發流程了。簡單來講,這個自動生成功能的流程大致如下:

  • 首先對實際顯示的畫面進行拍照,來收集顯示了的要素,並使用“遮擋剔除”功能對所展示的畫素數量進行採集;
  • 接著利用尋路系統對拍照場所進行抽出;這裡需要找到尋路系統構成面的重心,照顧到尋路路徑的角落等等;
  • 然後再重複對場景進行多角度的拍攝,追加各視野角度的資料;並以此來構成整個“顯示組合”。

總體來說,本次分享主要介紹了《艾爾登法環》中地圖製作的構造方式,尋路系統的自動化,效能問題的自動檢測及視覺化,資料依賴關係的表格化,以及顯示範圍的最佳化等內容。在該作如此龐大的開放世界內容製作過程中,很多新方法和工具為開發人員帶來了更加效率化和自動化的工作模式,從流程及工具上保障了遊戲最後發行時的質量。


來源:網易雷火UX使用者體驗中心