×

Houdini赛车游戏道路的程序生成流程分享

发布时间:2019-12-17 09:03:35

Hello . 大家好!今天给大家带来Houdini在赛车游戏道路的程序生成流程分享,希望能给大家带来一些帮助!

0.webp.jpg

1、介绍

我叫DávidKerekes(25岁),是匈牙利一家小型工作室的游戏开发者。我要向您展示的项目是为即将推出的手机赛车游戏创建环境关卡。主要是处理地形,纹理,树叶,照明,着色器,碰撞。

最终我们4人的工作室提前6周完成了19个关卡,3种生物群落类型的关卡环境制作任务,同时确保其能够以最佳性能运行。

1.webp.jpg

2、地形

首先,我们从甲方那里得到了基础的Unity地形,上面有一些细微的雕刻细节和道路方向。我们便将其转换为Houdini Heightfield。这个高度场数据是通过我们3个生物群落特定侵蚀网络之一提取的。每个生物群落网络都对海拔,侵蚀和生物群落(如多种草或土壤)具有不同的控制。

这样,我们通过一个广义的地形系统,可以在数分钟内改变关卡的环境生物群落。同时,我们可以在不破坏整个系统的情况下自由迭代我们的生物群系效果。例如,在splat贴图阶段,我们可以退回几次并将一些必要的数据添加到高度图中。

2-1.gif

2-2.webp.jpg

3、道路

有了道路网,我们的工作就很简单了。我们可以控制宽度和分段的坡度。然后将道路网格投影到地形上,并进一步生成生态群落,UV以及碰撞。同时通过保留道路边缘,可以很方便通过copy节点自动放置障碍物。绘画控件有助于打破重复和随机感。稍后在管道中,我们还必须对模型进行优化并将这些网格切成块以方便剔除。

这个流程跳过了高/低模型烘烤,因为是直接从SD生成的高度图中生成低模。所以,SD生成的法线贴图与模型很贴合。

3.gif

4、地形贴图

通过地形高度图蒙版,提取所有关键的splat数据。道路在哪里,地形有多陡峭,岩石在哪里?通过将它们全部提取到COP中,可以轻松地混合一些有趣的细节。例如,我们可以将道路纹理与地形混合在一起。通过使用COP和给定的数据,可以扩展和模糊道路边缘。而且这些操作都是完全程序性的,系统中的任何更改都会自动更新,其他所有通道均用作不同的地形纹理的遮罩。

4-1.webp.jpg

4-2.gif

4-3.webp.jpg

5、uv光影

当进行光烘焙时,每个生态群系都有所不同。以森林生态群系为例,可以将所有东西转换为具有不同分辨率的volumes,然后便可以获得类似于AO的软阴影。

5.webp.jpg

起初,我以为“好吧,我们必须为所有内容烘焙光照贴图”。事实证明这不是必需的。对地形,道路和障碍进行灯光映射足以实现我们想要的目标。考虑到柔和的阴影,没有太多的细节需要处理。我们使用了一个简单的UV展开节点制作光照贴图,该节点具有较大的填充,以减少小多边形面上的我们可以降低光照贴图的烘焙程度,而在游戏过程中没有任何明显的视觉错误。

6、碰撞

首先,我们提取了汽车可能碰撞的所有物体。然后提取道路边缘,然后向内缩进一段距离, 以便能够涵盖所有的碰撞点。然后,运行一个Ray SOP来确定碰撞物体的位置,虽然,它并不总是完美的,但大大减少了手工工作。

6-1.gif

6-2.webp.jpg

7、总结

Houdini的优点在于,它使像我这样的艺术家能够编写和设计自己的工具和系统,然后实现自己想做的东西。工具的进步节省了大量的制作时间,空出了更多的时间进行迭代。

来源:Thepoly 公众号

返回列表>