[Translate] Procedural Islands of ‘Dauntless’ | [译] “无畏”中的程序化生成岛屿

来自GDC2018的一个Talk:Technical Artist Bootcamp Procedural Islands of ‘Dauntless’

主讲者两位, Michael Trottier,之前在Bioware做Artist和TA; Mykola Konyk,之前在Side Effect做工程师开发Houdini

Phoenix Labs是Vancouver的一个工作室

关卡和原画是怎么一个需求,浮空岛。

下面这些是程序化生成的

1. UE-Houdini Pipeline

UE4导入Houdini有很多自定参数,和Biomes相关的,比如用哪些植被哪些贴图等等;这些参数直接存了一个JSON格式放进houdini里用Python解析;

Houdini倒回UE4会直接生成Actor。

2. 地形体量生成

最开始是根据关卡的一个连通图开始的,生成voronoi图

平面做整体挤出然后voronoi,上表面和侧壁侧壁上布点这样就能得到底面的尖:右上图,之后再去掉

Outcrops
一些地形上的小峭壁是这么做的,选取一组连通域的voronoi整体做旋转。。。

3. 点云信息

比如gameplay策划配置点,实时植被,实时峭壁,水体的几何体,反射探头,都可以houdini里生成后导入ue4直接生成Actor

4. 峭壁

非常神奇,峭壁直接用的贴面模型,预先制作一些贴面模型,分别对应不同尺寸比例,在houdini里用启发式算法找到合适的贴面模型

5. 生态群落(Biomes)

预先定义一个二维风场(假的,主要是为了模拟一个植物的生长方向,这样植物就不是随机分布的,而是成团出现的

每种biomes会对应一个recipes(预先制作好的houdini节点

 

6. 地形

平地还是用的houdini的heightfield辅助的,放到ue里对应到landscape系统,方便后期编辑

地表想做出真的材质积累 比如雪地沙地,而不是用假的法线图,给artist提供了曲线工具调整剖面profile

7. 结论

比较重要的是:模块化节点,不要做uber asset;Python+VEX快速迭代;houdini输出输出需要与ue的actor兼容;非几何信息的传输需要特别的方法(这里是打包json

个人的总结:和上一篇远哭一样,讲到Houdini Engine拓展引擎作为程序化生成工具,和引擎衔接的数据处理各有各的操作不过差不多,一样用点云导入引擎生成场景,biomes和峭壁实现思路各不相同不过大体方向一致。本talk说明,procedural方法不仅适用于远哭这种写实风格,非写实风格一样可以用,不过需要一些trick(比如本文中的landmass voronoi操作,很有启发意义)。峭壁的处理很有意思,不过也因为风格化的原因,峭壁都是方的石头好做heuristic的匹配,但是程序化摆贴面模型这个思路可以的。

程序式生成不是perlin noise,而需要很巧妙的设计。

One thought on “[Translate] Procedural Islands of ‘Dauntless’ | [译] “无畏”中的程序化生成岛屿

发表评论

电子邮件地址不会被公开。 必填项已用*标注