如果您遵循了我們的生產日誌視頻和我們的每週上傳,您可能已經了解了我們設計和資產創建過程的許多內容。由於 遛狗計畫 的製作現已全面啟動,我想花點時間分享我們的關卡編輯工作流程的概述。這篇文章是我們目前流程的快照——隨著我們繼續完善工作流程,一些細節可能會改變!
遛狗發生在一個精美的手工製作的微型世界。受紙工藝和定格動畫的影響,朱利安和薇薇安著手創造一個迷人的觸覺環境。我們希望充分利用我們的經驗來創建豐富而複雜的世界,但這次是互動的,並且可以從許多不同的角度查看!
在研究 Godot 中的關卡建置時,我們得出的結論是,大多數人使用 Blender 和外部編輯器主要是為了創造個人資源。最終關卡通常直接在 Godot 編輯器中組裝,這在將它們與遊戲邏輯結合在一起時提供了更大的靈活性。
Godot 嚴重依賴 Blender 自己的 GLTF 導出 - 即使直接引用 .blend 文件,它也會在後台調用導出擴展。雖然它提供了非常流暢且功能齊全的互通性工作流程,但它的缺點之一是它需要應用連結資產的幾何形狀而不是引用它,這會產生不必要的數據並使更新過程更加麻煩。我應該指出,這當然是設計使然——提供完整的遊戲開發管道不是 GLTF 匯出的工作。
我們從一開始的目標就是盡可能在 Blender 內部建立我們的層級並保持連結層次完整。這意味著我們需要在 GLTF 導出器上開發自訂工具來追蹤資產、恢復連結和刪除重複紋理。
Simon 投入了大量時間來創建管道,以確保其盡可能的順暢和高效。 Julien Duroure 是 GLTF 導出器的主要開發人員,他也非常樂意為我們提供支持,修復錯誤並使我們的自訂管道正常運作。
請繼續關注 Simon 有關我們的 Godot 管道的更深入的文章。同時,歡迎隨時查看我們正在進行的研究這裡。
我們沿用過去電影專案中的術語,將關卡資產稱為「場景」。在我們的電影中,它們主要用作地面的容器,頂部散佈著圖書館資產。主關卡 world.blend 由(此時)三個區域組成:中心,Pinda 在那裡堆了雪人。空地,一片更茂密的森林區域。最後是圍欄,裡面有一個小型動物餵食站。
一個挑戰是我們決定處理碰撞形狀的方式。我們匯出的每個資源都會在 Godot 中轉換為 3D 節點。如果該設定是單一整體資源,則每個設定只允許一種類型的碰撞(靜態或穿透)。此外,我們無法將碰撞資源拆分為單獨的設置,以便讓 Pinda 對某些碰撞的反應與 巧克力 不同。這樣,將單獨的腳本和遊戲邏輯附加到關卡的各個部分也更容易。
為了實現所有這些,我們提出了所謂的「設定層」。這些基本上只是設定檔案中的集合,可作為單獨的 GLTF 可匯出資源。透過將這些集合實例化到主層級集合中,我們的匯出管道會在匯入時重新建立該參考。
我們使用以下前綴來識別我們的資源集合:
CH → 角色PR → 資源是來自單一來源的(操縱的)道具LI → 資源是可實例佈景元素庫的一部分SE → 主集錦SL → 單獨設定圖層該系統的一個主要優勢是它允許我們根據需要引用世界地圖中的任意數量的外部 Blender 檔案。這意味著多位藝術家可以同時處理同一關卡的不同部分。
為了保持高度的模組化,我們也依賴使用幾何節點的程式設定。這使得我們能夠動態地產生複雜元素,同時保留關卡設計的彈性。
隨著遊戲玩法的不斷完善,環境中的小溪、池塘和道路也必須持續更新。它們各自的節點系統使用曲線作為輸入,並產生具有陰影和紋理屬性的完全 UV 映射幾何體。
經過一些初步的 Vivien 的概念 和在 Blender 中進行的一些測試後,我們決定將小溪設計成類似於定格動畫塑料的小溪設計成類似於定格動畫塑料的小溪。該動畫是一個簡單的動畫 UV 偏移,我們在 Godot 中重新創建了它。
小溪的幾何形狀包括:
小溪被從地面網格中切出,以便在世界上進行動態放置。
路徑也依賴曲線輸入,UV 會沿其長度自動計算。我們使用紋理圖集來定義主路徑紋理、替代段和起始/結束端點。
為了幫助定位和區分世界各個地區,我們使用不同的路徑紋理。除了較大的路徑外,我們還有較小、更微弱的需求路徑,以推動玩家朝不同的方向前進。
大多數環境資產(如岩石和樹木)都是手工精心放置的。對於草和蘆葦,我首先用幾何節點將它們分散。最初沒有辦法將它們轉換為單獨的實例對象,因此很難手動優化放置。然而,感謝 Jacques 和 Simon,我們現在有了「對物體的視覺幾何」操作,我們現在可以將幾何節點結果應用為可編輯對象,從而實現兩全其美!
世界各地都分佈著大片深雪。我們用它們作為穿越挑戰來減慢孩子的動作速度。這些斑塊在視覺上類似於散落在地面上的碎紙片。。
最初,我們使用將真實撕紙的掃描圖像映射到網格上,每個網格都有自己獨特的形狀。雖然這些在視覺上很漂亮,但缺點是調整這些形狀會導致紋理扭曲,使變化難以管理。
為了解決這個問題,我們製作了一個幾何節點設置,它採用封閉曲線並產生動態的、解析度可調的網格島。島嶼有一個用於表面細節的主 UV,還有沿邊緣的條帶上的另一個 UV,用於繪製可平舖的淚珠紋理來控制透明度。這使得我們可以更自由地調整形狀,同時保持相似的美感。
每個雪塊還可以具有自動產生的相應的碰撞形狀。
整體來說,導出等級是一個順利且輕鬆的過程。每個區域或其各自的設定層都可以單獨更新。而且由於所有資源都是參考,因此每次幾何形狀發生變化時,我們不需要重新匯出整個集合,從而節省大量時間!
不過,我們注意到的一件事是,我們經常需要刪除並重新產生 Godot 快取以確保正確應用程式更新。這是確保一切順利進行的一個小但必要的步驟。
此工作流程代表了我們管道的當前狀態,但隨著我們繼續完善遊戲,我們可能會調整和改進它的某些方面。如果你對更多幕後花絮感興趣,請關注我們的每週製作日誌!
加入 並發表評論。