簡而言之: 純粹的隨機讀起來很假,因為真實植被是隨機的反面——它是爭奪光、水與土壤這場競爭的可見結果。 你不需要模擬這套生態中的任何一環。你需要五條擺放規則來偽造它的結果:成團、讓物種相互關聯、把邊緣做成 漸變、把尺寸結構化,並讓地形決定長什麼。本文給出每條規則及具體數字,外加那道比誰都早揪出假分佈的灰階測試。
沒有園丁擺過這個。樹木沿水與庇護成團,在岩石與山脊上稀疏,草地到森林的邊緣是一道漸變——本文的每條規則 都能在一張照片裡看到。
核心洞見:自然是規則加雜訊
在五條規則之前,先建立讓它們喀噠到位的心智模型:真實的地貌既不隨機也不有序——它是由規則驅動、上面蓋著 雜訊。種子落在親本附近,植物爭奪光照,水在谷地積聚,風懲罰暴露的山脊。結果之所以顯得有機,恰恰是因為簡單 規則先造出它,隨後隨機把邊緣弄糙。均勻隨機擺放跳過了規則,只留雜訊,所以讀起來像「這是電腦幹的」。以下的一切 都是把規則廉價地加回去的辦法。
規則一:自然會成團
均勻隨機擺放產出一種地球上任何地方都不存在的均勻撒點——真實植物圍著播下它們的東西成團,團與團 之間有真正空的間隙。把成團推得比讓你感覺安全的更遠。
樹木立成小樹林;花朵開成一片片;連沙漠灌叢也沿排水線成簇。團與團之間的空白不是浪費——正是它讓團讀得出來, 給視線以喘息之地,還(附贈)比均勻填充算繪更省,因為空地不花成本,而團作為整體被剔除。一個實用目標:瞄準 每團 3–12 個實例,團間留幾個團寬的間隙,而不是一片數學上均勻的場地。
為什麼要「比感覺安全的更遠」?因為在編輯器裡,從俯視看,強成團顯得太稀疏——你的本能是把間隙填滿。然後你 降到視平線走一遍,間隙已變成空地、視線通廊和光線積聚之處。信地面的讀數勝過俯視的讀數;俯視視角在對你的 密度感撒謊。
規則二:物種之間有關係
兩種關係類型覆蓋生態的大部分——吸引(蘑菇靠近樹幹、常春藤靠近牆、蘆葦靠近水)和迴避(地面花遠 離密林冠、幼苗遠離成熟樹)。一小把配對勝過把資產數量翻倍。
蘑菇不會隨機撒滿草地——它們跟隨枯木與濕氣。一條「吸引到樹幹和原木」的規則就能立即重現這點,觀眾讀作真實 卻不知為何。
在幾乎任何溫帶場景裡都能回本的配對:
- 蘑菇 → 吸引樹幹和倒下的原木(分解者跟隨枯木)
- 草 → 迴避密林冠(它在光照競爭裡落敗)
- 蕨類 → 吸引陰影邊緣(它們要濕氣,不要黑暗)
- 幼樹 → 迴避老樹(親本把幼苗遮進陰影)
- 蘆葦 → 吸引水線;草地花 → 迴避它們
- 岩石/巨礫 → 吸引坡腳(它們滾下坡並聚集)
這之所以如此廉價地賣出真實感:觀眾並不自覺地懂植物學,但他們走過一萬個這些相關性成立的真實場景。違背會被 登記為「遊戲味」,而玩家說不出森林為何不對勁。一套用距離參數說吸引/迴避關係的散佈設置——如 Numivo 的散佈所做——把上面整張列表變成五六條規則項,在你塗抹時自動求值。
規則三:森林是在邊緣造出來的
森林邊界不是一堵成年樹之牆——它是漸變:草,然後灌木,然後小樹,然後林冠,通常跨越 5–15 公尺。凡兩 個區域相接處都劃出一條過渡帶。
生態學家稱之為群落交錯區,那裡也是眼睛停留最久的地方,因為小徑、道路、營地和戰鬥空間都緊貼邊緣——深處的 森林反正大多被遮擋。一道好的邊緣漸變每次都勝過一份好的深林混合。同一原理適用於每條邊界:草地/岩石、岩石/ 水、水/沙、耕地/野地。若你對植被只做一件「進階」的事,就讓它是帶有各自物種混合的邊緣帶——這是可用槓桿最高的 改動。
要避免的失敗模式是硬邊緣:密林驟然變成光禿草地的一條俐落的線。自然裡除了修剪過的草坪或推土機,沒有那條線。 連火燒邊界或樹線也在數公尺內羽化開來。硬植被邊緣讀作關卡設計的邊界,恰在玩家最常看的地方打破沉浸。
規則四:尺寸講一個故事
一模一樣的縮放當場露餡,但天真的隨機縮放也好不了多少——把它結構化:庇護中心裡更大的個體,暴露 邊緣上被風咬過的更小者,外加小幅旋轉和幾度傾斜。
經得起推敲的有用預設值:
- 同一物種內縮放範圍 0.85–1.25×,在邊緣和高海拔偏小——均勻 ±40 % 的隨機看起來像玩具箱,因為它毫無邏輯 地把巨人擺在侏儒旁邊。
- 一切都加隨機偏航;闊葉樹額外獲得 2–5° 傾斜。斜坡上完美垂直的樹在喊「擺上去的」——山坡上的真樹會傾 斜、向光伸展、長得歪。
- 把實例沉入地面 2–5 公分。懸在腳踝高度的浮草是存在的最常見散佈瑕疵,編輯器裡看不見,截圖裡刺眼。
- 每實例幾個百分點的顏色變化,比添加網格變體更有效地打破大片場地裡複製貼上的閃爍——眼睛抓重複的顏色比 抓重複的形狀更快。
更深的一點:尺寸應當編碼成團與邊緣所講的同一個故事。谷地裡高大受庇護的樹,山脊上矮化的,光線照進的明亮森林 邊緣的幼苗。當尺寸與位置一致,場景讀作一個有歷史的生態系統;當尺寸隨機,它讀作撒在地形上的資產。
規則五:地形決定長什麼
坡度與高度遮罩是免費的生態——陡面留住岩石與耐性灌木,而非草坪;谷底比山脊線更蔥鬱;物種隨海拔而 變。你手頭已有的幾何就把它編碼了。
與感知對應良好的閾值:草與地被在約 30–35° 坡度以上淡出;灌木撐到約 45°;再往上是裸岩和偶爾的崖居者。 高度帶即便在小場景裡也重要——把谷地混合與山脊混合在過渡上融合,賣出一種平坦均勻覆蓋永遠達不到的大世界邏輯。 在引擎允許處把濕度作為第三張遮罩加入(近水處、窪地裡),你就編碼了真實生態系統實際回應的三條軸:光、海拔與水。
地形遮罩之美在於創作不花成本——坡度與高度資料已存在於你的高度圖中。你不是在塗草往哪去;你是在告訴系統「要草, 但別在懸崖上」,而懸崖自己把自己遮掉。
把它拼起來
令人鼓舞的部分:這些規則在一遍裡就能組合。成團的橡樹 + 被吸引到它們的蘑菇 + 迴避林冠的草 + 森林邊緣的一條 灌木帶 + 讓懸崖保持裸露的坡度遮罩——這是五個設置,不是五週的手工擺放。然後跑最終檢查。
灰階瞇眼測試: 給場景截圖,翻成黑白,瞇起眼。真實植被產出不均、成團的明度圖案——暗塊、亮空地、一種不安分 的質感。如果你的灰階看起來像平滑均勻的雜訊,你的分佈底下仍是均勻的,你得回到規則一,把成團推得更狠。這道 測試之所以有效,是因為去飽和剝掉了一直在討好你的顏色,只留下分佈——那才是真正讀作自然或虛假的東西。
值得偷師的現場數字
- 讀起來自然的團大小:3–12 個實例,團間幾個團寬的間隙
- 森林邊緣漸變寬度:5–15 公尺的專用過渡帶
- 縮放方差:0.85–1.25×,在邊緣和高海拔偏小
- 傾斜:闊葉樹 2–5°;下沉入地:一切 2–5 公分
- 草的坡度截止:約 30–35°;灌木:約 45°
- 一個豐富場景所需物種:約 2 林冠、2 灌木、2–3 地被、1–2 點綴——分佈勝過數量
迷你 FAQ
這適用於風格化遊戲嗎? 完全適用。成團、邊緣和地形邏輯關乎的是分佈,不是保真度——一個手繪且分佈自然的 世界,比一個照片級真實卻均勻撒點的更可信。分佈是玩家先於紋理讀到的那一層。
我到底需要多少物種? 比你以為的少。一個場景在兩種林冠樹、兩種灌木、兩三種地被和一兩種點綴物種之上,而且 彼此有關係,就撐得很好。分佈品質每次都勝過物種數量——十個按規則擺放的資產勝過四十個隨機擺放的。
效能怎麼辦? 成團是你的朋友:團作為整體被剔除,間隙不花成本,邊緣帶把細節集中到玩家看的地方。看起來自然的 散佈通常比均勻密度更便宜,而非更貴——你曾想填滿的空白就是免費的畫格時間。
我能用一張大雜訊紋理偽造這一切嗎? 部分能——雜訊給你成團,但給不了物種關係或邊緣漸變,而那些才是讀作 生態而非僅僅變化的部分。雜訊只是規則一;可信度來自規則二和三。
五條規則,一遍,加上用來驗證的灰階測試。自然不是隨機——它是由規則驅動、上面蓋著雜訊,而這正是一套好的散佈 設置的樣子。