PART 2:使用Houdini构建程序化开放世界——道路生成
Thepoly 16191 1
实名

通过了实名认证的内容创造者

发布于 2022-5-23 11:34:47

您需要 登录 才可以下载或查看,没有账号?注册

x
81206981b603f57a91c07389ac43df78.jpg



e940ce9a1f575982c0ae15fb3a6cb5f2.jpg




Hello . 大家好
今天我们继续往下探讨,关于开放世界
道路生成



一旦我们有了landscape,我们就开始在landscape上创建道路,比如土路和铺砌的道路。这个环节可以用定义任务点、城市或在landscape里面特定部分发生的游戏事件,并让Houdini计算出所有事物连接在一起的最佳路径。我们使用Heightfield控制和寻路来做到这一点。




1概述
在这个HAD中,我将有3个输出点
Incoming Heightfield:输入高度场
Start Points:在世界中我们要开始绘制路径的点。
End Points:在世界中我们想要结束路径的点。

所有这些都是可以从虚幻引擎读取的输入,Start Points和End Points都可以是放置在landscape上的静态网格上,然后,将其投影到landscape上的一个点,用来绘制往返路径。我们直接将点区分为起点和终点,因为,我们正在绘制连接所有点的路径。但是,我在系统中做出了这种区别,因此,我可以在 Unreal中使用多个路径生成资源,并在需要时指定不同的路径,这只是为了让虚幻中的关卡设计更多样化。
以下是该过程的逐步细分。







2HF处理和转换
1. 接收到 HF 输入后,我们首先清除 HF 上的所有遮罩。
2. 然后我们屏蔽掉 HF 的平坦区域,用来定位水域。我们这样做是为了向路径查找系统指定在生成路径时,需要做出避开的landscape区域。
3. 最后,我们将 HF 转换为交替三角形的Primitives。






3Start Points和End Points处理
1. 然后,我们将路径起点和终点两个输入进来,并投影到landscape上。
2. 通过这样做,我们得到了跟landscape高度匹配的往返两个节点。





4landscape点
有了这些点,我们然后在VEX中融合并运行一个近点函数。Nearpoint函数返回几何图形(在本例中为landscape)上, 最接近几何图形外部指定点的点。

然后,可以将这些点分组到源组和目标组中,以便路径查找节点在它们之间生成路径。我们还添加法线并使用convertline将整个几何图形转换为线,因为,通过 FindShortedPath 节点运行时效率最高。



5找到最短路径
将landscape上的起点和终点分组后,我们就可以开始生成路径了。
由于 HF 层已作为属性转移到基本模块,因此,我使用水属性将水的模块拆分,并归类到一个组中,这样我们就可以避免穿过它们的路径。
然后,我们使用 Find Shortest Path节点,将起点和终点指定为Source和Destination组的方法,并设置生成为每个起点到每个终点的路径。
在Surface Constraints选项卡中,我们在“边”中提取“水”的部分,以避免出现“水”的部分。
在路径成本选项卡中,我们编写了一个表达式,该表达式在计算路径时考虑了高度,以便路径避免陡坡,并更平坦的区域作为生成区域。






6世界标记
然后,我将两个高大的柱子/盒子复制到起点和终点,以便可视化生成路径的点所在的位置。
我们可以选择是否在Unreal中使用这些,尽管这是多余的,因为,我们还会通过Unreal指定起点和终点。







7水系统提取
这里的一个较小的子系统是水系统,我用它来从我们创建的landscape中提取水。
经过一些清理后,我将 HF 转换为primitives,并删除了primitives中具有较低的蓝色部分。这样,我们就只剩下侵蚀系统留下的水体。
然后,我再清理一些零碎的部分,这样我就可以在 Unreal 中,为给上水材质。







7导入Unreal Engine
当我们将HDA导入 Unreal 时,我们需要指定三个输入。
对于Heightfield,我们指定之前的TerrainGeneration HDA,因为,我们希望使用该输出。
我们可以让他们在landscape上放置任意数量的静态网格,并选择它们作为源或目标。这允许最大控制,因为我们可以手动指定位置,如果我们想要不连接的路径,还可以放置多个HDA。



接下来,我们通过指定不同种类及其分布、区域、限制和约束来确定landscape的叶脉。这些参数包括土壤类型、与水流的距离等。在Unreal中,我们使用材料系统根据landscape层次来指定材质。


- End -


喜欢Thepoly的可以通过三种方式与我们建立联系。分别是公众号、微信群以及QQ群。公众号是我们最为官方的窗口,更多内容都必须关注公众号后才能获取。另外现已开通网站:www.thepoly.cn更多精彩请关注我们。

         

本帖被以下画板推荐:

还没有设置签名!您可以在此展示你的链接,或者个人主页!
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表