完美动力首页 > 技术分享 >
Houdini | 那些唯美的游戏场景是如何制作的?
最近几年国外的开放大世界游戏的不断推出,背后支撑这种游戏场景开发的程序化技术也被越来越多的国内游戏开发者所了解,特别是Houdini技术逐渐被国内各游戏制作公司了解和接受。
在游戏开发过程中,对于场景的制作要求越来越高,区域也较广阔,至少是4×4公里的面积,还要包含很多的树木等障碍物,密集的草地,道路,丰富的建筑群,建筑里面还要有玩家要寻找的武器、道具等———这就就导致了面临的几个综合性问题:
巨大的模型工作量、大量需要手动进行编辑的工作、巨大的模型量导致游戏包体的膨胀,移动端渲染变慢、内存会有很大压力,意味着不可能把非常丰富的资源全部加载到场景里面。
最好的解决办法就是模块化方案。这几种问题都可以通过Houdini软件的程序化功能,从而得到很好的解决。
程序化技术的价值不仅在于加速了美术内容生成,同时加速了串联美术、策划以及程序的整个流程,创造了游戏世界开发更灵活的迭代方式。
程序化生成,这个技术主要还是依赖Houdini软件。通过输入一些简单线条、或者是多边形、或者是一些参数,就可以根据预先设定好的处理流程的资产,得到最终的模型资源。管岩石峭壁,还是房屋或者道路河流、甚至一个关卡,都可以直接生成,只需要进行简单的参数调整,就可以得到不同的效果,而且这种方式是是可逆化的,也就是说,哪里觉得不合适直接就可以进行修改,方便快捷。
我们可以通过资产HDA里面的参数调节得到不一样形态的模型(图一、图二),也可以直接通过参数来控制模型的数量变化(图三、图四)。

图一


图二


图三


图四

1、地形系统
Houdini中的程序化地形生成可以快速获得可用于游戏引擎的逼真地形地貌资产。主要通过高度场来快速迭代,添加噪波进行变形模拟。
地形数据生成主要来源有以下两个方面:
在Houdini中基于Heightmap的数据;
游戏编辑期中输出的2D Mask数据。
经过仔细调节,得到最终需要的形态。
2、以点云为驱动的程序化技术
以点云为驱动的程序化技术,融合Houdini与点云系统,实现产品的高效迭代。
一座建筑的组件是20-30个,我们可以先通过点云组织位置信息,每个点实际上是一个建筑模块,把建筑模块和这些点云信息组织完成之后在做细化的替换。
一座楼房也是一样,如果想改变楼层、大小,只需要调节参数即可。如模型量占用内存过大,也可以优化缩减每个单元模型的面数、贴图的使用精度等,这样就给予了我们场景非常便利的优化条件。
通过这种方式,我们整个游戏场景就是一些点云组成。如树、植被、建筑包括所有的道路都是点云构成,这些点云导入虚幻引擎或者Unity引擎里面,通过实际化渲染,一个批次就可以全部渲染完。优化起来直接调节参数就可以。
总结一下,程序化技术其实是以点云为驱动的程序化技术。正是因为有点云的组织结构,所有的操作、所有的变化是可以通过一个Excel表就知道加了什么、减了什么,也可以通过分析Excel表或者数据表的格式,知道某个单位内的美术资源量到底消耗了多少。也是通过这种方式才有可能把非常大密度的建筑或者社区手机平台上渲染出来。
Houdini确实是很好流程化软件。当你的制作人员没有办法支持到项目的需求,项目又想在某个点上能够有自己的突破或者是爆发的时候,那么Houdini确实是一个非常方便的工具。因为只要有策划、只要有美术,它自己就可以搞定事情,不需要程序做过多的干预。