跳至主要內容

Cosmo Tree Gen:免費 Godot 樹木生成器,內建 LOD、碰撞體與低多邊形預設集

abe ·

Cosmo Tree Gen 是一款免費、採 MIT 授權的 Godot 4.6+ 外掛,能在編輯器裡即時生成樹木,並匯出成附 LOD 與碰撞體的 glTF。本文介紹它的功能,以及如何用在你的遊戲中。

Cosmo Tree Gen 封面:陽光草原上以程序化生成的樹木,搭配標題文字 Cosmo Tree Gen、免費樹木、LOD 碰撞 glTF 匯出

Cosmo Tree Gen 是一款免費開源的 Godot 樹木生成器:這個外掛能在 Godot 4 編輯器裡即時建立程序化樹木,可以存成預設集,還能匯出成已經做好 LOD 和碰撞形狀的 glb/glTF。它採用 MIT 授權,需要 Godot 4.6 以上版本,1.0.0 版於 2026年11月8日推出。

開發者在 GitHub 上的名稱是 FrogCosmonaut,他因為受夠了手工建模樹木,才做出這個工具。對於在 Godot 裡打造森林、公園或低多邊形世界的人來說——包括每個三角形都得斤斤計較的網頁和手機遊戲——它能把好幾週的建模工作,濃縮成拉幾個滑桿、按一下隨機種子按鈕。

Cosmo Tree Gen 快速總覽

是什麼 Godot 4 程序化樹木生成外掛
開發者 FrogCosmonaut(GitHub)
授權 MIT,免費開源
需求 Godot 4.6+(以 4.6.2 開發)
最新版本 v1.0.0,2026年11月8日(首個公開測試版 0.5.0 於 11月3日推出)
匯出 附 LOD0–LOD2 與碰撞體的 glb / glTF
預設集 內建 4 組 + demo 資料夾另有 7 組
AI 使用 開發者聲明專案 100% 由人工製作
下載 github.com/FrogCosmonaut/cosmo_tree_gen

陽光明媚的草原上長滿以 Cosmo Tree Gen 生成的各式樹木和一叢灌木,圖片:FrogCosmonaut

Cosmo Tree Gen 能生成什麼

這個生成器由自訂的 Godot Resource 驅動,所以每棵樹都是一組可以調整、儲存的參數。主要的組成元素有:

  • 樹幹與樹枝。 每個節點可以有多根樹幹、可選的樹根,還能依機率加上斷枝。每一層樹枝的長度和葉片卡的大小都由曲線控制。
  • 兩種葉子做法。 一種是可設定細分等級的二十面體球(icosphere)葉團,很適合風格化和低多邊形的樹;另一種是葉片卡(card leaves),可單面或雙面,具備樹冠法線和內部環境光遮蔽。
  • 會隨風搖曳的葉子著色器。 它也會限制 mipmap,讓使用 alpha scissor 的葉子在遠處不會消失。
  • 平面著色(Flat shading)。 一個選用開關,可以做出 PSX/PS2 風格的畫面。

Godot 編輯器中並排的三組 Cosmo Tree Gen 預設集:枝葉茂密的白蠟樹、使用 icosphere 葉子的低多邊形樹和一棵光禿禿的樹,圖片:FrogCosmonaut

預設集與種子

外掛內建四組預設集——Ash、Bush、Low Poly Bush 和 Low Poly Tree——demo 資料夾裡還有七組。你也可以把自己的設定存成 CosmoTreePreset 資源。編輯器工具列可以載入和儲存預設集、隨機產生種子,並為每棵樹顯示繪製呼叫(draw call)和三角形計數器,這正是做網頁和手機版本時必須緊盯的數字。

Godot 編輯器中同一棵 Cosmo Tree Gen 樹套用兩個不同的隨機種子,呈現新的樹枝配置,圖片:FrogCosmonaut

為真正的遊戲打造:LOD、碰撞與匯出

漂亮的樹只完成了一半;遊戲還需要它們繪製成本低、走過去撞得到。Cosmo Tree Gen 兩邊都顧到了。

功能 你會得到什麼 為什麼重要
自動 LOD LOD0、LOD1 和 LOD2 網格,三角形預算和距離都能設定 遠方的樹耗用的三角形少很多
智慧簡化 先簡化樹幹;葉片卡變得更少、更大,而不是直接被砍掉 樹冠在遠處也能維持形狀
碰撞形狀 每根樹枝一個凸形、每段樹枝一個凸形,或單一 trimesh 在精準度和物理運算成本之間取捨
碰撞層級與高度 選擇哪些樹枝層級要碰撞(0 = 只有樹幹),並裁掉某個高度以上的碰撞 玩家會撞到樹幹,而不是頭頂的葉子
葉子碰撞 包住整個樹冠的凸包,或樹枝末端的球體 適合投射物或飛行角色
glb/glTF 匯出 匯出時附帶 LOD 和碰撞體,可選擇在 .import 檔中連結材質 在任何場景或專案中重複使用樹木
腳本 API 用 export_gltf 批次產生大量樹木 一次做出一整片各有變化的森林

透過 Cosmo Tree Gen 參數調整葉片大小,讓稀疏的樹變成茂密的樹冠,圖片:FrogCosmonaut

如何安裝與使用 Cosmo Tree Gen

  1. 確認 Godot 版本。 需要 Godot 4.6 或更新版本。
  2. 下載外掛,可從 GitHub 儲存庫或它的 Releases 頁面取得。
  3. 把 addons/cosmo_tree_gen/ 複製到你的專案中,再到 專案設定 → 外掛 裡啟用。
  4. 在場景中新增一個 CosmoTreeGen 節點。
  5. 從工具列選擇一組預設集,或編輯 trunk_params、foliage_params 和 branch_levels 清單。
  6. 指定材質——可以用你自己的,也可以用外掛附的樹皮和葉子材質。icosphere 葉子需要開啟 UV1 Triplanar 的材質。
  7. 用 collision_type 和 collision_level 開啟碰撞,並用 preview_collision 檢查。
  8. 打開 generate_lod,並在專案設定中設定三角形預算和距離。
  9. 直接拿這棵樹來做原型,或把它匯出——從工具列匯出成 glb/glTF。

Godot 屬性檢視器中的 Cosmo Tree Gen 樹枝曲線編輯器正即時改變樹的外形,圖片:FrogCosmonaut

給 Godot 網頁與手機遊戲的小技巧

  • 緊盯計數器。 每棵樹的繪製呼叫和三角形數值,能讓你及早知道這棵樹會不會拖垮手機或瀏覽器上的影格率。
  • 多用低多邊形預設集。 icosphere 葉子搭配平面著色,能做出乾淨的風格化效果,三角形數量遠少於密集的葉片卡。
  • 匯出一次,多次實例化。 用不同種子產生幾種變化,匯出後重複使用這些網格,而不是在執行時才生成樹木。
  • 碰撞保持簡單。 只有樹幹的碰撞(層級 0)通常就足以應付玩家角色。
  • 測試匯出結果。 在第一個測試版中,開發者把 glTF 匯出標為實驗性功能;更新外掛後請重新檢查匯出的樹木。

接下來會有什麼

公開的開發藍圖依優先順序排列,最先要做的是為最後一級 LOD 產生 billboard 替身圖(impostor)、更多低多邊形葉子類型(松樹形和方塊形),以及從幼苗到老樹的樹齡滑桿。之後的項目還包括預設集中的樹種參數範圍、只負責投射陰影的代理網格、原地烘焙樹木、階層式風效、樹樁和倒下的樹幹、花朵、果實與蘑菇、可以省下一次繪製呼叫的材質圖集,以及預設集圖庫。細節可能會調整,請追蹤 GitHub 儲存庫掌握最新消息。

常見問題

Cosmo Tree Gen 免費嗎?

免費。它以 MIT 授權免費開源,所以可以用在商業遊戲中。

需要哪個版本的 Godot?

Godot 4.6 以上。它是以 Godot 4.6.2 開發的。

可以把樹匯出到其他引擎或工具嗎?

樹木會以附 LOD 和碰撞體的 glb/glTF 格式匯出,這是許多引擎和 3D 工具都能開啟的標準格式。

能做低多邊形的樹嗎?

可以。它內建 Low Poly Tree 和 Low Poly Bush 預設集、icosphere 葉子,以及可選的平面著色模式,能做出 PSX/PS2 風格。

製作時有用 AI 嗎?

開發者聲明這個專案 100% 由人工製作,完全沒有使用 AI。

它有上架 Godot Asset Library 嗎?

開發者表示正在申請上架;目前請從 GitHub 儲存庫下載。

相關文章

遊戲載入中…

VENOGAME / PLAYBOOK

我的競技場

儲存在此裝置,無需帳號。

點擊愛心,建立自己的遊戲收藏。