作者oopFoo (3d)
看板GameDesign
標題Re: [程式] Wave Function Collapse 實用技巧
時間Wed Dec 30 14:08:49 2020
只用Wave Function Collapse(Constraint Solver?)的問題是,它太限制了。
舉個例子
https://github.com/mxgmn/WaveFunctionCollapse
他自動做的地圖。
https://raw.githubusercontent.com/mxgmn/Blog/master/resources/wfc-summer-1.png
但其實這種只用現成的tiles來拼湊的地圖是很古老的方法。
如tiled map editor
https://www.mapeditor.org/
但是它有layers,有Wang tiles。
但其實我所知道的作法是,我們只用幾種textures(tiles)然後用blending來製作transition.
https://www.gamasutra.com/view/feature/3028/tiled_terrain.php?print=1
美術設定或程式設定都可,設些參數就好。可預先做好,也可在遊戲裡產生。
現在有3d gpu,制作先進的texture splatting(blending)超快,超容易。
https://www.gamasutra.com/blogs/AndreyMishkinis/20130716/196339/Advanced_Terrain_Texture_Splatting.php?print=1
所以我們可以設layers的tile(水,沙灘,地,草,路,牆,高地...)設一些條件,然後blend起來。
人工做也很快,要procedure generate也可。
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.141.214 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GameDesign/M.1609308535.A.361.html
※ 編輯: oopFoo (36.231.134.39 臺灣), 12/30/2020 14:14:28
1F:推 dklassic: 我想有個誤會是 WFC 本來就不是要純粹生成出一個獨特 12/30 16:39
2F:→ dklassic: 地圖 XD 12/30 16:39
3F:→ dklassic: 由於 WFC 是 Tile-based 所以可以確保在每一個 Tile 12/30 16:39
4F:→ dklassic: 都是由完全手刻的創意展現出來的 12/30 16:39
5F:→ dklassic: 就算本質是 ProcGen 也能相對有效控制產生出來的品質 12/30 16:39
6F:→ dklassic: 不然如你所說單純要做 ProcGen 確實有很多其他手動輸 12/30 16:39
7F:→ dklassic: 入需求更低的作法,但這就不是 WFC 的目的了 12/30 16:39
8F:→ oopFoo: 但除了3d tile沒有好的取代方法,用wfc做2d tile意義不大 12/30 17:03
9F:→ oopFoo: 而且3d地形也很容易用其它方法做變化。 12/30 17:04
10F:→ oopFoo: 所以我之前才問,有趣但不知可用在那。 12/30 17:04
11F:→ dklassic: 就只是一種選項而已,根據需求選擇使用的方法 12/30 17:16
12F:→ dklassic: 相對大的優勢就只有創意的可控性比其他 ProcGen 高而已 12/30 17:16
13F:推 cjcat2266: 能做出遊戲就是有用,看看Townscaper吧 12/30 23:41
14F:→ cjcat2266: 看起來也沒什麼受限,重點是看怎麼應用吧 12/30 23:44
16F:→ oopFoo: 不確定townscaper怎麼玩,但看demo重點不在WFC,如何讓人 12/31 08:01
17F:→ oopFoo: 建造/破壞建物才是重點吧。 12/31 08:02
18F:→ oopFoo: 我提出疑問其實是因為我們寫程式的常常被有趣的algorithm 12/31 08:03
19F:→ oopFoo: 迷惑,但遊戲重點是玩法是企劃整合是一直調整。找最簡單的 12/31 08:04
20F:→ oopFoo: 方法做最多的變化。在我看來WFC花的精力多收穫少 12/31 08:06
21F:→ oopFoo: 而且現在proc gen的趨勢是由人來設定調整generation,不是 12/31 08:07
22F:→ oopFoo: 一次電腦作到好 12/31 08:08
23F:→ dklassic: WFC 沒有一定要一次全部產生完啊 XD 12/31 15:28
24F:→ dklassic: 演算法都只是一個參考架構,要怎麼改當然都可以 12/31 15:28
25F:→ oopFoo: 對,其實並不一定要一次算玩 12/31 18:46