亞歷山大·薩蒂格(Alexander Sartig)分享了Shadow專案巨大而詳細的分解,一步一步地解釋了整個過程,並討論了此工作流中使用的工具。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

1介紹

你好我叫亞歷山大·薩蒂格。我是一個3D遊戲藝術家。在Axel Springer SE做了多年的平面設計師後,我於2016年決定在柏林的HTW(應用科學大學)學習遊戲設計,我今年畢業於該校。

在我的整個學習過程中,我繼續作為一名自由平面設計師工作,後來又成為一名3D遊戲藝術家。我曾參與過各種遊戲專案,比如Hekate遊戲工作室的《永無止境》。它仍在開發中,從2019年到今天,我一直以3D環境藝術家的身份參與該專案。

我對這個專案的目標是創造一個具有史詩和紀念意義的環境。它應該有一種黑暗而神秘的氣氛。我的想法是,整個環境非常嚴酷,其特點是一個具有有趣形狀的強光源。為了達到這種氛圍感,我計劃製作出一種強烈的對比。

另一個目標是,儘管場景需要具有很強的視覺效果,但整個場景都要進行了實時最佳化,並且可以像遊戲一樣流暢地執行。為了實現這一點,我將使用各種技術,使渲染3D場景所需的計算能力最小化,而不會降低可視性和豐富的細節。

2調研

正如專案名稱“Shadow”所示,陰影和燈光是我工作的重要組成部分。

我希望場景處於大型物件(如山)的陰影中。它應該是在一個黑暗的環境當中,有一個清晰的光源放置在前景當中,這是整個環境的特徵。我希望透過這種結構來形成非常美觀的明暗對比。

為了提前想象到這種想法的情緒和氛圍,我查閱了網際網路上的影象,製作了一個情緒板。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

3概念

我建立概念藝術的方法是直接在Maya或Unreal當中搭建大概的場景氛圍,然後截圖,之後在Photoshop中進行概念的繪製。這種技術的優點是我能夠很快地感受到環境的空間和大小。

在這個工作流程當中,白盒階段也是整個思考構建過程的一部分,因此很難相互分離。因此,此處顯示的概念圖是在構建階段結束時完成的。表達了在陡峭懸崖的陰影下建造一座千年古廟的概念,這座廟是由一種古老的文化建造的,但是曾經卻被匆忙的廢棄了。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

除了明暗對比,我還使用了色彩互補對比(藍色/橙色),這也是一種冷暖對比。

4地形

地形是我創造環境的基礎。以下所有資產均建立於地形之上,因此一個完善的地形至關重要。

Unreal中的地形雕刻工具非常直觀,您可以快速地探索形狀和構建地形。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

5材質

由於白盒也是概念階段的一部分,因此我必須提前建立基本材質,以便在白盒階段不僅探索形狀和空間,還可以探索顏色。舉個例子,白色的房間視覺上感覺就比黑色的房間大得多。因此,在早期嘗試顏色是很重要的。

我製作的第一個材質就是主材質,並作為所有後續材質的基礎(也就是例項材質球)。在這裡,我建立了最重要的引數,以使此材質在製作子材質時能儘可能的靈活。

主材質(MM)作為最終用於資源的材質例項(MI)的父物件,我可以在其中操縱引數,而無需更改MM。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

我建立的第二個材質是非常簡單的地形材質。在這裡,我只是將材質功能分成了3種不同材質的分層,以便稍後使用“地形繪製”工具在地形中建立紋理和顏色變化。

然後我將3個材質函式MF_MySand_01、MF_MySand_02和MF_MySand_03同時輸出到地形材質和實時虛擬紋理中,我稍後會使用該紋理將資源與地形進行混合。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

6替換紋理

首先,我使用來自於Quixel Bridge的替換紋理,我將用我在專案過程中自己建立的紋理去替換它。這些岩石都是用Quixel照片掃描出來的。然後我可以根據我的視覺效果對它進行調整和改變。暗色的岩石和淺色的沙子已經在這裡形成了有趣的對比,我將在接下來的步驟中進一步展開。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

7白盒

下面的圖片展示了在unreal中白盒的製作進度。對於雕像的頭部,我使用了人物的頭部作為比例參考。在這裡,我對光線進行了第一次調整,以便將顏色和氛圍感帶向所需要的方向。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

對於入口區域,我需要進行幾次嘗試和迭代才能獲得好的結果。首先,我計劃讓整個區域變得非常開放,然後製作出一座狹窄的橋去通向寺廟。然而在工作過程中,我改變了主意,決定用一個巨大的大門關閉這個區域,而不是用橋。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

在我製作好入口區域的白盒過後,我在Photoshop中再次對截圖進行了修改,並最終確定了我對大門創作的概念。隨著白盒階段的結束,我的概念階段也結束了,我清楚地知道了我需要哪些資產來建立我的場景。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

8建模

建模階段在概念/白盒階段結束之後開始,並貫穿整個專案。即使到現在,我仍在探索不同的形式和想法,但這些形式和想法在本質上彼此相同,因為我現在有了一個具體的創作概念。

我製作出完全符合我對比例和形狀想法的基礎模型(中模),以便在以後的工作步驟中使用ZBrush對它們進一步處理為成高模。在建立複雜的中模(如頭部雕像)時,我不會特別為之後的拓撲考慮,因為我將在重新拓撲階段從根本上重新拓撲它們。我只注意簡單資產的拓撲結構,我在ZBrush中只是稍微更改了一下它們,這樣我就可以將中模當作低模來在引擎中使用。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

9模組化資產

我決定給寺廟的牆壁和天花板製作模組化資產。我在Maya中的柵格中去製作它們,以便於我製作的每一塊牆的零件都彼此正好相鄰。為此,我始終將各個資產的軸心點放在最外層的上角。這允許我在遊戲引擎中使用頂點捕捉工具將牆的各個部分排列成一行。

這個場景中的其他模組化資產我可以透過不同的磚塊來組裝unreal中的瓷磚地板和臺階。與廟宇牆壁相比,磚塊是否完美地結合並不重要,因為我正在設計一座古代破舊的廟宇,小磚塊的鬆散排列會使自然風化的效果看起來更真實。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

10雕刻

我把中模匯入到ZBrush中雕刻高模。在這一步中,我可以雕刻一些在Maya中很難實現的有機形狀和生物細節。

我更改替換頭部的形狀,並新增與眾不同的面部特徵。我使鼻子變形,使它看起來有不一樣的定型。我還嘗試將寺廟的形狀融入雕像中。聖殿裡的光縫和圓形開口特徵現在也可以在雕像上找到。我想,創造這座廟宇的古代文化,是將光源和由此產生的形式視為一種神聖的外觀,並在一定程度上崇拜它,並將其建造用於儀式場合。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

小型資產的高模雕刻會具有更高的精度以用來作為後期的特寫和渲染效果。、

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

我稍後將用模組化磚塊的高模造型來裝飾神廟的內部。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

透過雕刻,我會在建築的邊和角上添加了磨損和撕裂效果,稍後我會在低模上烘焙這些效果。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

另外因為廟宇從入口到燈槽處有一個斜面,柱子頂部應該齊平,因此我設計的雕像的底部需要有兩種尺寸。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

我也會為一些巨大的物體做一些高模效果,比如有開口的岩石和樓梯。而烘焙出來的法線貼圖稍後將作為附加的細節法線貼圖新增到可平鋪的紋理當中去。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

11再拓撲

我將高模從ZBrush匯入到Maya。在這裡,我會使用四方繪圖工具對高模進行重新拓撲。我會確保拓撲的非常乾淨,並提供良好的佈線,這些會讓我以後更容易展uv。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

12展UV

我選擇在Maya中進展uv。在此過程中,我展uv的方式都是為紋理貼圖做鋪墊。我專門在三維模型進行剪下,以便在UV座標系上展開它們。稍後我可以直接將對這些UV殼進行紋理處理。製作過程中重要的是要將接縫放置在不重要的地方,最理想的情況是觀眾根本看不到接縫。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

我確保產生儘可能少的接縫,並將UV殼分佈在UV貼圖的最大範圍(提高利用率),併合理地去排列它們。因為我要給花瓶上紋理材質,我選擇用一個應該可以平鋪的圖案去製作花瓶的UV外殼,使其在V軸上佔據0到1的位置。這樣就可以確保花瓶瓷磚上的圖案可以無縫連線。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

為了獲得均勻的貼圖密度,我使用UV棋盤格去檢視模型。在這個檢視中,我可以看到後期紋理的可能存在的扭曲。不太重要且不需要太多細節的地方,其解析度可以低於模型資產中顯而易見且更有趣的部分。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

13貼圖

我在Substance Painter中烘焙低模上的高模資訊。烘焙法線貼圖、AO貼圖、曲率貼圖和世界位置貼圖等等。

在Substance Painter中,我會使用手繪板手動地將一些顏色和細節(如小劃痕或汙垢)新增到模型上去。材質製作對我來說很有趣,我在這個階段花了很多時間。即使是小的模型資產,我也會注意色彩的選擇搭配,並且保證了有有趣的對比和變化。

為了突出高光部分和邊緣,我在模型上繪製了陰影和燈光效果。這些明暗對比會使形狀更明顯,更具表現力。

以下是SP的截圖,左側模型不包含烘焙貼圖,右側模型包含了烘焙貼圖。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

為了獲得統一的外觀,我為最常見的材料(金屬和石頭)製作了自己的智慧材料球。這些智慧材質球包含所需的所有層。這種方法非常有用,因為它確保了統一的外觀,節省了大量時間,然後我可以花費更多的時間在材質的細節。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

左圖:直接新增我製作好的,“MyRock”智慧材質球,我已經為進一步的材質製作打下了良好的基礎。邊緣的亮邊效果有些強,因為這不是最終的效果。

右圖:此圖是我手動最佳化材質後的效果。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

14紋理裝飾板

我用一塊紋理裝飾板來為入口大門或寺廟牆壁等超大物體制作紋理。我首先在Maya中建立一個簡單的平面,並將其劃分為不同的分段。在ZBrush中,我在上面雕刻細節。然後我在一個平面上烘焙我製作好的高模效果。

然後我用我提前製作好的智慧材質球對貼圖進行紋理處理。在這裡我用Adobe Illustrator設計出了一種象形文字字型,之後我把它放在裝飾板的金屬表面上,作為一種風格化的裝飾。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

我將製作好的裝飾板載入到Maya當中,然後就可以在Maya中對資產進行紋理處理。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

包括裝飾板的材質製作,我已經為這個專案建立了5種不同的瓷磚材料。而其他四種材質,我都是利用Quixel Mixer來進行修改建立。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

這是我為我場景建立的所有資產的彙總展示。

15燈光

我的燈光都是完全動態的,因此不用進行烘焙。因為我的這個專案想建立的是一個實時應用的環境,所以我想保留動態燈光選項,以便能夠實時去更改燈光。使用這種照明方法,就可以實現光源(太陽、月亮)在遊戲過程中移動,場景的陰影隨之變化的效果。

人工打光對於一個看起來需要可信的夜景場景是一個巨大的挑戰。因為一方面,這個場景當然應該是黑暗的而且要烘托出夜間的氣氛,而另一方面,環境必須有一定的亮度,保證場景中的資產是清晰可見的。

為此,我使用了幾個平行光。我在這個場景中沒有任何烘焙全域性照明(GI),也沒有使用光線追蹤。因為全域性照明主要是間接光,由光的反射表達出來。為了更好地控制這種間接光,我用從下到上的平行光來代替它。我現在可以根據環境定製顏色和強度來修改這種假的間接光。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

我還用點光源或矩形光源來照亮一些過暗的區域,作為一種補光的存在。我還會使用點光源來突出一些我想在場景中強調的資產,例如雕像頭部的痕跡等等。

除了光線本身,指數高度霧的體積也非常重要,因為大量光線透過霧進行表達更好的效果。此外,我還用霧卡(Fog Cards)和聖光輝光(God Rays)來營造出一種特別的霧和雲的效果。我從Unreal的Megascans的一個女神神廟專案中獲得了霧卡和聖光的效果,這些都可以從Epic商店中免費下載下來。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

另一個挑戰是谷內燈光和谷外燈光的設定不能相同。每次我為場景的兩個部分中的一部分更改燈光時,另一部分的燈光就不再好看了。因此,我使用相同的方法編輯環境的兩部分,但會使用不同的設定和單獨的燈光。

為了遊戲中山谷可以在兩個燈光設定之間進行轉換,我在入口區域的狹窄區域放置了一個觸發框。玩家角色一進入神廟內部,就會與該觸發器碰撞,從而關閉外部燈光,開啟內部燈光。

下圖是虛擬世界大綱檢視的螢幕截圖,裡面展示的是我製作的帶有專案的資料夾結構。其中燈光資料夾已展開,在這裡您可以看到內部和外部部分的各種燈光設定。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

16頂點繪製

為了使整個環境更加古老原始,我非常重視視覺上的處理,而頂點繪製就非常適合這種情況。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

第一個螢幕截圖顯示了石牆和岩石間相交的區域,您可以清楚地看到資產之間的邊界在哪裡。

由於第二個螢幕截圖使用了頂點繪製,使同一區域看起來更加自然更加古老,使岩石和石牆之間的過渡沒有那麼清晰明確。

17RVT(虛擬紋理)混合

執行時虛擬紋理(RVT)非常適合將資源和地形進行混合。這種方法制作節省資源,外觀良好,並且與頂點繪製不同,它可以實時進行工作。使用頂點繪製,我必須手動地在材質之間切換。移動資產過後,我可能必須手動去更正頂點繪製引數。而移動資產時,RVT混合會自動更新。這使得變換資產更容易。

我在Quixel的RVT混合指南的幫助下建立了RVT景觀混合的主材料。而噪波紋理來自於Megascans中的神廟專案。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

左:無RVT混合。右:使用RVT混合。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

18貼花

貼花可以增添更高層次的細節和後續的顏色變化。特別是對於帶有裝飾紋理的入口等物件,新增貼花具有更好的效果。

我對於這個專案,我製作了六種不同的貼花。除了粗糙度和顏色資訊外,其中三個還具有一些法線資訊。這些帶有法線貼圖的貼花在ZBrush中建立為高模進行雕刻。我在立方體六個面中的三個面上雕刻裂縫。我在一個平面上烘烤雕塑,使其具有紋理。對於貼花,我在Substance Painter中建立一個不透明通道,並遮罩了裂縫周圍的所有內容。

然後將不透明資訊匯入到ORM貼圖的alpha通道當中。匯出紋理後,我在虛幻引擎中建立了一個貼花材質,並像往常一樣設定正常的引數,如顏色、粗糙度、法線強度等,以便能夠在材質例項中靈活地改變它們。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

沒有貼花和有貼花:

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

19佈景

在這個階段,我巧妙地安排了我在場景中建立的所有資源和貼花。我一定要結合敘事元素,用實物來講述故事。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

我想讓觀眾們感覺到這是一個聖地,曾經對建造它的人們意義重大。透過一些小的道具的佈置,玩家應該能注意到這個地方在當時是多麼繁忙。

在佈景裝飾階段,我還用植被和小石頭填充環境,並使用地形植被繪製工具將其放置在場景中。這些植物和石頭資源都是來自Quixel中華的照片掃描。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

透過這個佈景,我還建立了一些好的鏡頭點(POI)。稍後我將使用這些POI作為影象渲染的特寫鏡頭。POI獲得額外的照明,使其更加好看。為此,我使用三點照明,這也通常適用於攝影。

Shadow:在Maya,Subtance Painter&Unreal中建立3D環境

20展示

我想要一個電影般的場景展示。為此,我用虛幻音序器錄製了這部電影。我以每秒30幀的速度渲染快照,以獲得電影的感覺。然後我在AdobeAfterEffects中稍微編輯了一些鏡頭,並添加了微妙而大氣的背景音樂(標題:垂死的靈魂)。聲音來自YouTube,可以免費獲得。

在那之後,我用引擎中的電影渲染佇列進行影象渲染。為了給場景一種更史詩、更電影化的感覺和一點敘事性,我在環境中放置了一個角色,這是我從epic Marketplace購買的。

21執行

在整個開發過程中,我一直關注效能。為了給玩家創造一個良好的體驗,重要的是應用程式執行平穩,並且在播放時至少達到60 FPS。

為了獲得良好的效能,我使用了前面描述的各種技術。其中包括高模轉低模的工作流,我使用該工作流在場景中保留多邊形面數,並我將不移動的物件設定為靜態。因此,透過燈光烘焙,使燈光資訊儲存在快取中,只要燈光的位置不變,動態燈光就不會不斷重新計算。

對於動態環境光遮擋和著色,我還使用了UE4中的DF(Distance Fields)。為此,靜態物件在環境中的位置以及彼此之間的關係會儲存在體積紋理中。這是在應用程式啟動之前載入的,因此不會影響實時效能。執行時虛擬紋理,如地形混合效果,也在遊戲開始前載入,因此在使用過程中會非常輕鬆。

引擎提供匯入網格體的自動計算細節級別(LOD)。我分別確定了每個資產的LOD數量,以獲得最佳結果。

我還確保透過由許多較小物件組成的物件組合到一個較大的物件中來保持較低的繪製呼叫(Draw Call)。例如,入口區域或樓梯資源,其中整個樓梯呈現為一個整體,而不是每個步驟都形成自己的繪製呼叫。

當然,燈光也有繪製呼叫。我透過為場景中的每個點光源指定其自己的繪製呼叫距離來保持同時渲染燈光的數量較低。透過這種方式,我可以確保精細的點光源僅在觀察者到足夠近的位置,能看到其效果時才渲染。

22總結

我想創造一個黑暗和史詩般的環境,在視覺中心創造一個強烈的光源,甚至在我腦海中有一個場景之前就開始工作了。從計劃的角度來看,這個分解看起來相當簡單,但我花了好幾次嘗試才想出一個符合我期望心情的概念。回想起來,我想說的是,儘早考慮環境的設定更明智。然而,這是我迄今為止最大的環境專案,我對結果非常滿意。在這個過程中,我學到了很多東西,也從創作這個場景中得到了很多樂趣。

Alexander Sartig, 3D遊戲藝術家