【Gamystery】EP9 | 判斷使用PCG的四個要點
- 彥澤 廖
- 2024年5月14日
- 讀畢需時 3 分鐘
前言
研究了一段時間的PCG後,我想再次了解「利用PCG取代傳統場景擺設」的可行性。於是,我決定嘗試利用PCG重建Gothic Cathedral Asset Pack範例場景中出現的教堂。主要目的是想了解新舊做法上的優劣差異,以及現行存在的問題。在文章中分享了這個過程,最後提供了我個人對於四點判斷新任務是否適合導入PCG的問題。
這是PCG系列的最後一篇了,之後預計朝VR的方向研究。網路上的資源很多,有些整理的甚至更清楚,碎片化散落在各個地方。之後文章主會以,統整資源與補充被忽略的小細節為主。
PCG 重建歐式教堂

先將展示案例中的模型,獨立出來。

由於物件的數量非常多,從外觀上可以觀察到,不斷重複出現的樣式。
最終整理出五樣個樣板, 依序名為:
No Door
Side Door
Goalpost
Front Door
Corner
主要根據門或功能的不同區分,其中Corner從範例獨後,有因PCG本身的限制有在做些修改( 新增一個牆面 )。

想法一 - Voulmn Base
利用Volume的大小控制建築物的尺寸,當Volume越大,增加的是物件的數量。
與一般的縮放(Scale)不同,縮放會改變原本的整體比例。
開始嘗試之後,發現了兩個主要問題:PCG Point的過濾和間隔。我的第一步是對空間進行取樣(Volume Sampler)。
在空間布滿點(Point Data)後,過濾掉與主題毫不相關的區域。
我的選擇是利用一個Volume當作我完全不需要的區域。
最終,在盡可能調整相關參數後,整體雖然與原來相同,仍然隱藏不少問題,例如底邊素材的轉向、物件過於重疊等等。

想法二 - Spline Base
控制方式改以Spline為主,來調整教堂的外型。
主要的好處是Spline的節點本身具有方向性,能解決前一個想法中底部物件方向不一致的錯誤。
我設計了五個控制點,把別代表正門、兩個轉角處、兩個側門。
在PCG 裡要特別標記某一個節點非常麻煩且困難的,取決於是否存在特定規律、還必須同時具備夠多的屬性。
最快的方法就是新增控制點處理,好處是快速、壞處是降低了整體的連動性。
以此案例來說,當Spline調整時,正門的控制點也必須一同調整。
最壞狀況就需要調整6次( 1 Spline + 5 ControlPoint )。
最終,撇除地板、樓梯.... 等沒有用到的元素,外觀大致有87%像。在細節上要做到工整、對齊真的不太容易。整個過程,大概花了5~6個小時,包含重複組合手上有的工具與知識,從中找到可行的執行方式、尋找設定是否錯誤( 經常照教學做,但結果就是不一樣 )。


結論
個人認為教堂的案例,極度不適合使用。理論上,我相信存在調整PCG Graph的邏輯,達到更好的效果的空間。實務上,需要的投入門檻與獲得的效益不高。
以現有的操作方式、可用的邏輯來說,指線上升,尤其到節點的資料操作上,開始反人類直覺,並不是很友善。
判斷使用PCG的四個要點:
如果新收到一個任務,我透過以下四點,評估是否要使用PCG:
任務是存在大量、重複的重複要素
這些要素不要求非常精確
未來變動的可能性
經常需要類似的內容
自然環境( 森林、濕地... ),確實都滿足上述條件。四個問題並非缺一不可,目的在於判斷與PCG特點的相性如何。
如果你喜歡這次的內容,歡迎到Facebook粉絲團,給我們點個讚,表達對內容的支持喔!
粉專會不定期分享在學習Unreal Engine,有重大幫助的資源。