All Houdini Unreal Engine 4

Houdini 支持 Unreal多层高度图功能

Unreal 4.24 地形最大的变化就是在编辑侧支持了多层高度图,你在创建地形的时候可以勾选如下选项则表示开启这个功能。

要注意的是,如果你没有勾选这个选项,下列Houdini对多层高度图的支持不会启用,使用流程同以前。

 
 

  1. Houdini 的输入

     
     

启用多层高度图后,你可以开启关闭每一层高度图,世界窗口中显示的就是当前高度图状态下的地形表现。

Houdini的输入地形,就是世界窗口中表现的地形。

如图右边显示什么样就是输入Houdini的地形长什么样。

【要特别注意的是,每次开关地形高度层导致世界窗口中地形表现不一样时,需要Rebuild】

 
 

  1. Houdini 的输出

 
 

在没有启用多层高度图的地形,结果与没有这功能前一致。

启用多层高度图的地形,输出结果我们作如下demo做说明:

 
 

Demo 1: 支持Houdini结果输出到多层高度图的地形

 
 

这里首先给一张测试地图,包含两个默认材质层,效果如下。

然后实现了一个简单的Houdini测试文件,功能就是修饰地形的同时会生成几个材质层。

 
 

下面是结果

情况1:我们不勾选 Update Input Landscape Data,也就是期望生成新的地形。

这时候得到的结果就是生成一张新的地形,启用了材质层且只有一层,上面的Houdini运算结果会保存在这一层。

 
 

情况2:我们勾选 Update Input Landscape Data,也就是期望改变当前地形的数据。

这时候得到的结果,我们输入的地形会创建一层名字叫做HoudiniGen的地形层,不管是高度信息还是材质层信息,结果会存在创建的这一层上,原来的层的数据不变。

这里的好处就是:你可以单独修改或者删除HoudiniGen这一层的数据,直到满意再合并结果。

下图是开启HoudiniGen层的效果:

关闭HoudiniGen这一层的效果,和原地形一样,如下图

【这边要注意的是,我们的生成结果始终会给到HoudiniGen这个命名的层上,这样方便调参重算。如果你觉得结果满意了,就可以改名;如果你想某一层的结果被Houdini运算,就把层的名字改成HoudiniGen,这样这层的数据会被Houdini运算结果替换。】

 
 

补充:两个设置

首先是Houdini生成的地形要不要默认启用地形层;

其次是Houdini修改的地形层的命名,默认是 HoudiniGen,可修改

 
 

 
 

Demo 2: 支持 Houdini 自定义多层高度图结果输出

 
 

我们可以在 Houdini 里面来控制输出的多层高度图结果。

Demo 的houdini文件如下:

我们自定义了约定字段: unreal_landscape_layer_id

你可以自定义layer的id是是多少,如上述demo展示的那样使用,就可以直接输出含有多层的高度图。

 
 

我们继续采用Demo1里面使用的场景来做测试,当使用上述文件作为HDA在unreal场景里面生成的时候,也分为两种情况。

 
 

首先是不勾选 Update Input Landscape Data,也就是期望生成新的地形。

如图生成的新的地形,id为0的会生成为基础层,其他的会一层一层叠加上去。

 
 

然后是勾选 Update Input Landscape Data,也就是期望改变当前地形的数据。

如图会保留原来的层信息的基础上,生成的层从0开始一层一层叠加上去。

 
 

【注意:没layer的地形使用这个hda的时候,如没有勾选 Update Input Landscape Data,则会生成三个地形;如果勾选了Update Input Landscape Data,则会用id=0的层信息替换掉原本的层信息。】

 
 

【注意:地形不要存在高度偏移,锚点高度值要归0

如上图所示,如果地形存在高度偏差的话,houdini 高度数据在合并的时候可能会出现过度叠加,比如下面两个层的数据阈值都为1的时候,地形向下多叠加了一个高度偏移,这不是我们所期望的。

这时候只能手动保证混合权重为1,但是最好的方法就是在创建地图的时候保证没有锚点偏移。

 
 

 
 

20200814 补充注意事项:

  1. 处理Spline的特殊层,要永远放在第一层,其作用是对他下面的层在spline覆盖的区域做平整,如果放在上方的layer是不会做平整的。

 
 

  1. 暂时Houdini处理的数据只会去掉基础层的层高影响,其它层的非0还是会导致结果出问题,这个要注意。