作者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/cn.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