咨询电话:400-810-1418服务与监督电话:400-810-1418转接2
  • 相关推荐
  • 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 公众号