以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

GR編譯發表於2022-06-06
由ustwo games開發的《Alba:A Wildlife Adventure》是一款關於環保主義和觀鳥的 3D 開放世界探索遊戲,背景設定在一個名為 Pinar del Mar 的西班牙小島上。此前,《Alba》環境藝術家 Jessie van Aelst詳細介紹了環境設計和開發過程。

  • 製作:早期,團隊為整個遊戲定義了四大支柱——關愛自然、西班牙意識、人類對自然世界的影響以及童年的自由。
  • 研究:他們通過谷歌地圖在西班牙進行虛擬旅行,甚至在現實生活中觀鳥。他們收集了很多參考照片並組裝了情緒板。
  • Blockout:他們製作了具有簡單幾何形狀和平面顏色的島嶼的早期版本,使他們能夠快速迭代和測試遊戲系統/角色——一旦他們對遊戲有了更好的瞭解,他們後來重新設計並完全重建了島嶼。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

Alba的靈感

從一開始,這個專案就受到了地中海的童年以及對觀鳥和攝影的熱愛的啟發。

遊戲在最終確定chillectathon(慢走馬拉松)理念之前經歷了幾個迭代階段,即玩家可以按照自己的節奏四處探索。遊戲的核心程式是通過收集簽名來完成一份請願書。你可以在島上四處幫助人們,並以此為一個更大的目標聚集他們的支援。保護野生動物和環境的主題是將故事聯絡在一起的一條主線。

為了確保遊戲能夠呈現出真正意義上的西班牙,我花了很多時間與我們的創意總監David一起在谷歌地圖上旅行。他帶我參觀了巴倫西亞、Náquera、塞拉和埃爾帕爾馬等地區。

有些區域深受現實世界的啟發。下面這些圖片是真實世界中的建築,它們以某種形式出現在遊戲中。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

觀鳥

我們還和團隊一起去了赫特福德郡的拉伊米德實地考察,真正捕捉到觀鳥的感覺!

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

環境藝術風格

當我第一次加入團隊時,環境藝術是使用簡單的幾何形狀和純色來構建的。這一過程讓我們能夠快速且輕鬆地在引擎內部建立內容。同樣的過程也被用於創造我們的角色。

雖然這不是我們想要的最後的外觀,但它相當迷人。它給遊戲帶來了一種孩子般的視角,就像你通過Alba的眼睛看到的世界一樣。我們非常喜歡這款遊戲,遊戲角色一直保持著這種簡單的外觀,直到最終發行。

從那時起,David和我便開始合作創造適合遊戲美術方向的環境美術風格。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
左圖:在環境藝術就位之前建立了2019年的Demo。右圖: Alba角色的早期版本,由許多原始形狀組成

調色盤

最後的調色盤很大程度上受到了實地拍攝的真實照片以及Joaquín Sorolla的作品的啟發——一位西班牙畫家1863-1923年的作品。他的作品不僅激發了調色盤的靈感,而且也激發了我們想在Alba描繪的主題和情緒,你通常會在他的作品中發現的。我們密切關注玩家所在位置的結構,這樣玩家就可以享受拍攝周圍環境的樂趣,並捕捉一張野生動物照片。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
遊戲環境的主要藝術靈感來自西班牙畫家Joaquín Sorolla 1863-1923

關卡細節

為了保持我們所喜歡的簡單形狀和純色,我們也很自然地將其引入到環境資產中。一旦我們開始用這種方式製作大型資產,我們需要明確一種讓陰影區域更加精確的方式。我們將模型的UV拉伸,然後將我們將一個漸變色紋理對映到上面。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
左:我們用純色製作了第一個建築物 右:在相同的建築物上是否應用漸變對映的區別

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
在漸變紋理上調整UV可讓完全控制陰影細節。

貼花(Decals)

純色以及漸變色在大部分物體中都很好, 但是在一些比較大的物體上,我們用一些紋理來增強質感。大型物體的表面例如城鎮住房、混凝土橋墩以及通風牆等。

我們希望避免使用平鋪紋理,因為它們難以基於我們純色和漸變色的工作流實現。這也意味這我們可以將貼花貼圖整合到帶漸變的紋理對映流程中來。

為優化效能,我們儘量避免使用透明貼花。同時,出於效能的考慮,我們烘焙了光照。所以我們將貼花從Mesh中分離出來以避免其投射陰影。因此並非所有物體都被優化為了1個Drallcall。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

碎片(Chipping)

我們的資產都是低多邊形(lowpoly)的,這樣我們可以讓我們的遊戲流暢執行,並保持如同角色一樣乾淨和簡單的形狀。但是在某些地方,我們想要一些破碎來烘托世界的真實感。我們在建模時用布林運算製造各種破碎的痕跡,這種方式讓我們在不使用貼花的情況下,僅僅使用三角面就實現了轉角破損。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
布林技術用於切割我們的資產和減少直線。

聚集(Clumping)

考慮到漸變色、貼花、破損,這些都是在mesh層面做的,我們還把各種不同的模型混合在一起,以避免世界中出現視覺上的直線輪廓。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
在長長的直線周圍放置裝飾性的網格有助於打破直線輪廓。

為了減少紋理大小,我們在Alba中並沒有使用法線紋理。作為替代方法,我們選擇通過編輯頂點以平滑法線。Normal Transfer是面向我們的著色器語言的,可以將一個平滑模型的法線對映到一個複雜模型上來讓一些物體看起來比較平滑和連續。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
左:不正常轉移 右:正常轉移

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
平臺的考慮

相機視角(FOV)

Alba是基於移動平臺的考慮而建立的。在usttwo games,我們為自己迭代遊戲設計而感到自豪,這樣我們就可以用一隻手自然地玩遊戲。

為了讓遊戲更符合這一標準,我們選擇了人像模式相機,玩家可以用拇指導航Alba,相機會從後面跟隨。

這種方法的缺點在於,我們需要一個非常大的視角,這樣玩家就可以在不讓攝像機太靠後的情況下看到他們左右兩邊的更多東西,但這樣你就看不到可愛的主角了。

我們的一些資產,特別是建築,因此從一層向上的比例就被壓縮了,所以當它們站在一個大的建築前面時,它們看起來仍然與角色保持一定的比例,但不會過度拉伸視角。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
左:現實比例-右:擠壓一樓

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

優化

事實上,我們創造的是一款開放世界的手機遊戲,這意味著我們將挑戰這類裝置所能承受的極限。

從一開始,環境藝術就需要使用有限的紋理空間。正如在美術風格部分所提到的,我們故意使用漸變和貼花來為我們的環境資產獲得最大限度的純色風格。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
我們使用了一個在梯度上預先展開的原始集合來快速建立資產。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
這些相同的資產通過使用我們的梯度顏色地圖集快速重新著色。

LODs

使用漸變色對映就意味著我們會重度依賴模型頂點。同時,這也成為一個相當的開銷,因此我們必須為我們的模型製作大量的LOD。然而這本身並不是沒有開銷的。

為模型做更多的LOD網格意味著我們的包體和記憶體開銷將增大。所以我們必須仔細考慮哪些模型需要LOD、需要多少個級別以及在什麼級別我們可以完全剔除。(不同的模型LOD應用於不同的距離, 某些模型比較小可能1-2級的LOD就可以剔除了)

我們最後使用InstaLOD工具來生成我們的LOD。我們在Maya中使用外掛可以根據一個優化後的減面演算法快速為我們的模型建立LOD。這為我們節省了大量的時間,讓我們可以進一步打磨、清理以完善我們的遊戲。

減少紋理空間加重我們遊戲內網格資料,所以我們需要LOD特定的網格。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
松樹是遊戲中最常見的資產之一。它也相當高,所以可以從遠處看到-因此它有4個LOD。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
從許多角度都可以看到遊戲中的藍色高層建築。它優先獲得比大多數其他資產更多LOD級別。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

地形和工具

我們用來製作Alba的最大的定製工具是地形編輯器。從一開始,我們就知道我們想要在我們的地形上繪畫和雕琢,但我們也想要移動這些部分,以便讓空間變得更近或更遠,同時設計在位置、組成和距離上進行迭代。

為了讓空間變得可識別,我們選擇了一種程式化的方法。幸運的是,我們所使用的島嶼的整體尺寸並不太大,從美術角度來看,我們可以在地形上只使用4種材料,所以我們設法讓我們的工具只執行在1個地形網格上。

我們用來製作Alba的最大的定製工具可能是我們的地形編輯器。

地形渲染/地貌(Terrain Height manipulations)

地形工具使用3種高度模式:

  • 山脊-用於建造山丘、懸崖、海灘和梯田
  • 山谷-用於河流、排水口和池塘
  • 水平-用於平坦區域和平滑的斜坡過渡

這些都可以通過曲線和變數(如噪聲)進行編輯。地形高度控制將被放入高度貼圖中,然後再反饋到地形中。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
地形脊線特徵

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

用脊線實現高度操控——紅色標記都代表一個“拉點”

高度地圖也提供給地形著色器,我們有4種地塊(地貌),每個地塊都有自己的顏色通道(RGBA):

  • R -汙垢-麵包和黃油打破其他濺起的東西。
  • G -粘土-橘色粘土懸崖。代表著西班牙的這個地區。
  • B -草-沒有草就沒有自然——
  • A-沙,任何島嶼都離不開它!

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

地塊通過預定義的高度規則分成RGBA

對於每一種地塊,我們都有一個規則集。沙子只會出現在地勢較低的地方。汙垢會在下一層的高度出現,也會出現在平坦的表面上。然後過渡到草地,幾乎所有的遊戲區域都是草地,除非坡度太大,然後會變成懸崖。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

在這裡可以看到所有的4個地形塊。

在這個過程完成後,我們新增了更多的細節地圖到每個地塊。這意味著地塊之間的梯度轉換現在會有更多的細節。

在整個遊戲中,我們只有4種地塊,所以我們需要讓它們發揮作用。

這些地圖確實幫助我們擴充套件了有限的地形寬度。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

這些地圖中的灰色區域將決定細節在塊地梯度之間呈現的速度。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

地形筆刷(Terrain Stamps)

在很長一段時間裡,地形的程式化生成方法正是我們所需要的。直到我們想要更小心地處理這些地塊。在平坦的區域,地形生成會產生塵土,但如果我們想要一大片平坦的草地呢?

我們想要獲得更多自由的方法便是使用地形標記。這些將由已經分配給地塊的相同的RGBA值組成。筆刷本身可以使用任何我們想要的蒙版形狀,儘管我們通常只使用有限的一套。在所有高度計算完成後,這些資料將被投影到地形上。

地形筆刷為美術團隊提供了更多的靈活性和控制。

地形標記的作用不僅在於給平坦的區域更多的定義,而且還在於把原本會有草的地方變成泥土。由於草的技術,我們會在草地形塗記的地方生成草網格,當草穿過農藥坑、樓梯或車道等淺層網格時,並不總是理想的。這就是我們的解決辦法。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
在農場區域自定義地形筆刷

地形生物群落

我們不僅使用了程式化的高度地圖資料來渲染我們的地形,我們還程式化地生成了很大一部分生物群落。

Alba島上有許多動物,它們都集中在一個小島上。我們想讓玩家覺得他們身處截然不同的區域,這也解釋了動物群的變化。

再一次地,們知道這一改變是高度迭代的,所以為了讓美術團隊更輕鬆地載入內容,我們便編寫了一種工具去隨機分散生物群落資產。

我們用生物群系元素來定義每個生物群系。例如:松樹林生物群落包括松樹、松果和灌木生物群落元素。生物群落元素都有不同的目錄槽,以及指示每個資產產生的可能性和規模範圍的變數。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
森林生物群落及其生物群落元素

這些生物群落將以類似於地形渲染的方式放置在地形上。該標記將投射立方體到地形上,以指示它將生成生物群落的區域。這些立方體的顏色代表:

  • 黃色-生物群系產生的區域。
  • 綠色-一個資產將在這裡生成。
  • 紅色-一個資產可以在這裡生成,但不會被限制。

這些顏色對於我們在生成地形之前理解會發生什麼非常有用。我們提出的一個要求是,能夠在生物群落標記周圍移動,並保持內部成分完整。例如,一叢以正確的組合生成的樹木將以相同的組合生成,即使我們將這個生物群落移到島的另一邊。

生物群系通常是重疊的,那麼我們如何讓它們一起工作呢?為了重疊或把一個生物群落放到另一個生物群落中,我們制定了一個優先順序系統。因此,標記的垂直位置將決定什麼將被覆蓋。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
生成森林生物群落

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
標記高度變化產生的生物群落的優先順序

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

這一切是如何發生的

所有這些地形工具都非常有用,我們可以在此基礎上進行裝飾。當優化階段到,我們決定移除一些程式,然後再次放置資產以獲得更好的控制水平。

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?

以《Alba》為例談談,如何完整打造出一座島嶼的環境生態?
地形生成和手動放置資產

在這裡,你可以看到所有這些工作是如何組合在一起,形成Alba一些美麗的地方。希望這一分析能夠幫助那些想要了解我們在手機平臺上如何創造一款開放世界遊戲所使用的技術的人。



相關文章