本文將介紹為遛狗計畫創建資產的藝術和技術過程。請造訪遛狗計畫內容庫,查看更多幕後圖片和影片。
在開始製作資產之前,我們查看了一些現有的概念作品,以確定我們需要什麼樣的資產。最初的資產包括松樹、樺樹、灌木叢、巨石和一些道具。道具和圖書館資產的差別在於角色和資產之間的互動。鏟子、網球和交通錐都是道具,它們都有裝備,可以製作動畫,而巨石和樹木則是可重複使用的庫資產,它們被放置在整個環境中。在我們的製作管理工具 Kitsu 上,我們會添加這些資產,以追蹤其狀態並傳達任何反饋/修改。
我將以鬆樹為例,它是為遛狗計畫創建的第一批資產之一,也是最顯眼的資產之一。這裡所描述的步驟大多是按時間順序進行的,但也有例外的情況。
除了數字概念之外,藝術總監 Vivien Lulkowski 還製作了真實的紙模型,這些模型對於實現藝術指導的設計/結果至關重要。我們參考了這些模型,並討論了模型的建構過程。尤其是灌木叢,需要多次迭代才能獲得合適的體積和葉子組合。 Vivien 還繪製了各種紋理,這些紋理經過掃描和數字處理,以便於/優化/平鋪映射。接下來是建立初步模型並開始迭代。
第一個模型以簡單的飛鏢形狀為基底,上面分佈著平面切口。松樹切口是將單獨的紙藝元素放置在掃描板上,然後在 Krita 中裁剪而成的。這個過程有點繁瑣,所以我們嘗試在某些情況下使用不同的紙張背景來將某些值轉換為 Alpha 通道。這種方法並不完美,但對於撕得很薄的紙張來說效果很好。
接下來是根據反照率創建簡單的粗糙度貼圖和法線貼圖,雖然這並非最精確,但在我們的遊戲中,我們懸浮在環境之上,因此靈活性更高。匯出後,我使用「影像」>「網格平面」匯入已指派 Alpha 頻道的紋理貼圖,並手動裁切出各個部分。通過截取部分並以不同的順序重新組合,我們實現了更多變化。
我想創建一種簡單且程式化的方法來創建松木切面的變化。透過新增簡單的幾何節點設定和頂點權重,我可以確定切面中各個線條「突出」的方式。為了讓組裝好的零件在樹根周圍彎曲,所有鬆木切面素材都使用了格子結構。
最初,我嘗試使用可平舖的松木切面紋理,並自行切割松木切面形狀,但最終效果平淡無奇。掃描的零件不僅是手繪的,而且還帶有一些漂亮的瑕疵,例如紙張撕裂產生的白邊。這使得手工紙藝作品的效果更加出色!
創建幾個松木切面後,就該將它們添加到樹根了。我的第一反應是手動將它們作為實例放置,但我認為速度更重要,所以我使用了幾何節點來散佈松木碎片。最終,程式散射被移除,出於特定的藝術指導和優化考慮,我決定手動放置。在這個項目中,對於大多數物體,我喜歡添加“三角測量”修改器來觀察模型的表現。這意味著最終幾何體的結果與導出時所應用的修改器完全相同。我們還決定添加「加權法線」修改器,以避免烘焙法線貼圖,從而在支撐環上花費更多渲染預算,儘管許多最終影像的細節得益於手繪的反照率貼圖。
松樹的改變包括將幾何節點應用於基礎樹幹,之後重新製作了UV並優化了拓撲結構。現在,松樹由不同的部分組成,這些部分像可折疊的望遠鏡一樣相互契合。它的表面也出現了更細微的瑕疵。我們後來添加的另一個元素是“松節孔”,以增加樹幹的變化。
在匯出資產之前,新增碰撞形狀非常重要,這樣角色就不會相交。通常透過添加簡單的形狀(例如球體、藥丸形狀、圓柱體等)來解決此問題。在本例中,我們在底部新增了一個圓柱體,並以「COL-」作為前綴,以便插件識別它是 Godot 中的碰撞物件。
遊戲中,我們有一個可以與物體碰撞的牽引繩,但為了更好地控制碰撞,遊戲總監 Julien Kaspar 設計了牽引繩點,當偵測到重疊時,牽引繩會與這些點對齊。
在製作過程中,我們決定建立一個「Asset Zoo」來檢查和比較所有資源,以了解它們的工作原理。這是一個單獨的 .blend 文件,也載入到 Godot 中進行測試。為了輔助製作,我們使用了 Blender 的資源庫,它在我們的項目中至關重要,尤其是在我們所有的佈景工作都是在 Blender 中完成之後。
Simon 開發的「Asset Export」插件用於初始化(標記)要匯出的集合。匯出指向 Godot 遊戲目錄,並在 Godot 開啟時讀取。在本例中,資源導出為靜態資源,即帶有碰撞。
邊緣磨損 在實際匯出資源之前,我們可以使用「Wear」透過顏色屬性添加額外的視覺細節。 Simon 創建了一個著色器設置,可以轉換為 Godot 材質,這使得在 Blender 中調整參數非常容易,並且這些參數會在 Godot 中自動更新。此著色器包含一個“Paper Wear”部分,可以調整任何參數來模擬紙張的破損。我們利用它將資源與地面上的雪更好地融合在一起。
該材質提供多種選項,可影響各種 Alpha 效果、背面顏色以及諸如底色、粗糙度和法線等標準通道。它還允許使用輔助 UV2 通道作為法線貼圖,從而使用可平鋪紋理來增加細節。
在 Godot 中檢查。資源載入完成後,我們會進行目視檢查,看看它與 Blender 的結果有何不同。由於 pine_tree_001 已在不同的場景中使用,我們可以打開遊戲世界(或測試場景),看看碰撞和牽引點是否能如預期運作。
此時,我們可能會在收到回饋後對資源進行迭代。遺憾的是,幾何節點實例中鬆樹的枝條散落在松樹底部,未能正常運作。這個問題後來得到了解決,但同時,我們使用了集合實例來規避這個問題。這並非什麼大問題,因為松樹和大多數資源一樣,需要更注重藝術指導。觸感。
為了讓松樹增添更多活力,我們需要在松樹的枝幹上添加頂點風,也就是頂點繪製影響 Godot 中的頂點著色器。這使得松樹的枝幹能夠隨風搖曳。
當玩家停止移動時,攝影機會靠近角色,這就是樹木變得透明的原因。作為一個小細節,我們決定在樹幹內部放置一個較小的、不會褪色的樹幹。這個樹幹使用了一種替代材質,保持不透明,並在邊緣添加了撕裂紋理。
任何細微的拓撲和碰撞優化都會在最終版本獲得批准之前進行。例如:
感謝閱讀!
加入 並發表評論。