本文将介绍为遛狗计划创建资产的艺术和技术过程。请访问遛狗计划内容库,查看更多幕后图片和视频。
在开始制作资产之前,我们查看了一些现有的概念作品,以确定我们需要什么样的资产。最初的资产包括松树、桦树、灌木丛、巨石和一些道具。道具和图书馆资产的区别在于角色和资产之间的互动。铲子、网球和交通锥都是道具,它们都有装备,可以制作动画,而巨石和树木则是可重复使用的库资产,它们被放置在整个环境中。在我们的制作管理工具 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 中的頂點著色器。這使得松樹的枝幹能夠隨風搖曳。
當玩家停止移動時,攝影機會靠近角色,這就是樹木變得透明的原因。作為一個小細節,我們決定在樹幹內部放置一個較小的、不會褪色的樹幹。這個樹幹使用了一種替代材質,保持不透明,並在邊緣添加了撕裂紋理。
任何細微的拓撲和碰撞優化都會在最終版本獲得批准之前進行。例如:
感謝閱讀!
加入 并发表评论。