Houdini地形系统丨HDA制作丨导入UE4全流程制作讲解「新人必看」

今天是2022年05月14日 星期六

正文共:5866字 135图 预计阅读时间15分


本期内容

01-新建项目工程

02-什么是HeightFleields以及地形中常用节点介绍

03-制作地表Mask区域

04-按区域散布我们岩石与植被

05-创建HDA

06-设置我们UE4工程及地表材质创建

07-添加草/替换我们实例

08-完善HDA暴露参数

09-添加后效雾完结


首先我们新建工程

然后选择一个位置保存

禁用

创建一个Geometry节点我们将其称为地形

我们开始创建第一个节点高度场

最重要的两个参数:控制地形分辨率的网格间距大小默认为1000米乘1000米这意味着我们有一个平方公里可以使用

Grid spacing:网格间距

我们在搜索栏输入Hn (快捷键Tab或者右键)

选择我们高度长噪波节点,根据噪声为高度场生成一些高度值,您有一个用于控制强度或生成的那些高度值的范围,我们有一个元素大小,这是您控制尺寸的一种方法

Amplitude:噪波强度

Element Size:噪波的大小

Noise Type:噪波类型-默认有些基础地形效果

在基础造型上制作,我们可以加快制作效率

Fractal:分形类型

如果我们不使用分型只会得到一层噪声:这里有三种模式

通常地形的目的往往是最有趣的我们获得更多参数来调节,通过粗糙度对比度来获得更多噪声【Ctrl+鼠标中键=恢复参数默认值】

第二个:高度场扭曲

通过改变参数制作满意效果

第三个:道路节点

它将包括水力侵蚀和热力侵蚀,它将使我们的高度场看起来更加真实,您会注意到您现在在地形上具有颜色

在我们参数最后一项需要我们重新计算下地形高度

检测出高度场最大值和最小值并重新应用颜色

现在我们没有施加任何侵蚀效果,道路节点的高度与时间有关,因此需要经过几帧在每个框架中,它将遍历侵蚀您不需要重复很多帧,但是一旦按下播放键,您就可以看到逐渐涨水

参数

Bank Angle 倾斜角度:默认值会有清晰水线,我们将数值改小会出现更大一些水域

Spread lteration:迭代次数(这有点像灯光反弹次数概念)

模拟:Reset Simulation 设定24针

土地侵蚀位置

Erosion Rate:这里侵蚀权重意味着多快控制腐蚀发生的速度,此默认值效果很好

Cut Angle:切角这意味着35度后进行热腐蚀将会停止

我们看下另外一个参数也就是我们地图中颜色的表示

如果我们返回到上面高度场字符段可以看见我们高度和mask信息

Ctrl+鼠标中键可以锁定此窗口

我们可以该表颜色信息并选择不同阶段的颜色标记

Water

接下来我们要使用另一个命令进一步雕刻我们的地形高度,坍落度基本上是模拟松散的材料向下倾斜

流动层

但实际上有一个用于计算流量的特定节点高度场流

Heightfiled_slump///Heightfiled_flowfield:这两种效果供我们选择(路径的细节不同)

我们还可以改变平滑模式

对于您的山峰,我认为这真的很有用,这两个节点搭配使用会有一个很好效果

高度场噪波

尽量不要超过1,我们可以调整叠加类型以及噪波大小和对比度

接下来是与高度有关的遮罩节点,让我们来看看高度场绘制遮罩顾名思义,这是一个允许您绘制遮罩的节点

所以我选择了节点我要将光标放在视口按Enter键,然后绘制一个区域它是蒙版的100绝对蒙版图形适应高度

我们可以绘制自己想要的形状,同时通过运算配合我们之前的遮罩层达到目的,还有遮罩模糊

创建一些模型来生成一个面具,但我认为这是更有趣,因为它更具程序性我们创建一个圆环当作我们的遮罩

同样我们可以模糊遮罩和通过改变我们模型造型来改变遮罩

接下来是我们与高度场相关的遮罩按功能遮罩

这个遮罩已经分享,具体就不在这说了非常了不起⬇⬇⬇点击跳转

Houdini制作地形遮罩有几种方式?为散射模型和地表材质划分区域丨技术拆解03节

梯田效果//悬崖效果//节点

基于我们之前的地形生成形状我们还可以重新计算下高度,那样整个地形都会是梯田形式,然后我们调节高度配合我们现有地形结构,当然也可以模糊下

我们已经展示了一些雕刻和一些遮罩节点,为了能够真正完成我们的地形,我们需要再介绍几个对我们来说真的非常非常有用和重要的实用程序节点,能够管理我们拥有的所有信息并实际生成其他信息层,然后我们可以使用用于散射或控制材料游戏引擎,要介绍的是复制层(也只是复制上层信息)

合并效果

接下来是高度场模糊,我们可以清楚地看到,在我们的案例中效果。将会很有用,这样我们就可以连接更多的平坦区域,创建更多的在我们的角色奔跑的平坦区域,同时也可以模糊我们的遮罩mask

高度场噪声

为我们制作好的mask区域增加细节,当然也可以为这个地形添加

输入我们地形高度场和mask这样噪波节点只影响我们mask区域

主要作用域上图mask区域,未合并前是光滑平坦的

岩石和土壤层

我们想将其清除为一个值现在,我们将在遮罩层上工作,因为它使可视化变得更容易,这就是我们要结合的方式一切都在一起,

所以让我们考虑这是我们的现在,我们所有的地形都被岩石覆盖了现在我们开始在我们的沙子上耕作土壤层,我将使用复制高度场复制到面具将成为我们沙子的基础为我们的土壤材料,这将是流动

重新映射遮罩范围,这是我们沙层一部分

土壤,另一个遮罩基于特征的单独遮罩,通过特征使用高度场蒙版并使用坡度,我们需要删除山峰上的线条我们复制一个基于特征遮罩,然后与上面相连更改叠加方式我们要清除山峰上的线

注意调整这里面的叠加方式以及下面参数

结合我们的高度场:Layer2模式:Maximum

我们有一个非常好的土层,我们的山层,我们的岩层,通过减去我们有山层

现在我们有了一个漂亮的沙层,我们可以使用该层生成生成草层,草层只能出现在我们有土壤的地方。我们可以使用重映射和模糊从模糊开始,所以模糊将确保我们有一种中间值,如您所见,应用模糊时会得到这些渐变在边缘,我们之前使用了相同的技术设置模糊值4

一旦有了这个梯度我们就可以使用重新映射,告诉您重新映射遮罩值因此,通过此重新映射,我们将确保输出从0到1,然后调整下面坡度图这样就可以缩小面积保持整体形状

我们要确保草与土壤没有重叠我要减去来自土壤层的草信息确保我们重新映射并确保这些值始终是1,从沙层到沙面罩,我们将减去草面罩这就是我们要做的

高度场拷贝图层现在所有这些层的土壤和草都有相同的信息

现在我们需要一个高度填充层,我们需要首先复制高度字段,然后复制在面具上到土壤层,我们对草也做同样的事情,我要按住alt单击并拖动并创建一个副本,在该副本中将信息屏蔽到草层。现在我可以将其转移到我的主要路径上通过此高度字段,我要替换的图层与这是土壤。现在我们只需要创建一个副本并确保我们正在复制草层并将草层替换为来自的信息,最后我们要清除遮罩

我们将创建一个可视化工具,向我们展示我们所做的结果,到处都是沙子或土壤,然后我们大部分是草

高度场散射节点

HenghtField Scatter:散射节点

Scatter Method:散射方法

By Coverage using Mask Layer

*通过使用遮罩层的覆盖

给定一定的Coverage值和Variability值,此方法将分散点,以便它们覆盖高度场上绘制的蒙版上设置的Coverage量

By Density using Mask Layer

*使用遮罩层按密度

给定特定的密度值,此方法将分散点,以便它们将密度作为高度场上绘制的蒙版上每平方米的点数

Total Point Count using Mask Layer

*使用遮罩层的总点数

给定某个Total Point Count值,此方法将分散点,以便它们将精确地设置为它们在高度场上绘制的蒙版上的点数。

Per Point Count using Source Points

*使用源点的每点计数

给定某个范围或精确值,此方法将在标记与Source Point Tag匹配的点周围散布点

官方文档:

https://www.sidefx.com/docs/houdini/nodes/sop/heightfield_scatter.html

分层分散首先,我们将分散树木在开始扫描树木之前,我们先创建一个简单模型代替

复制散布节点散步灌木丛形状很有趣,这是因为它们正在对齐自己斜坡

接下来我们就需要调整下放松相关参数修改下外半径,数量每棵树周围采样五个,相互之间的半径介于0和10如果我们改为2他们相互很密集

这些参数效果都是围绕每一课树进行的

outer radius:外半径

Range:范围

source inner Radius:源内半径

效果对比

Outer Radius:1于0.5对比

Range:范围0-5

Sourec inner Radius:源外半径0-2(与上图对比灌木之间距离)

设置下随机旋转

如果想扩大范围我们可以增加数量

减少之间的重叠同时增加迭代次数(具体效果根据需求自行调节)

现在让我们给我们一些蕨类植物,我将创建一个代理对于蕨类植物,我们也将从网格开始,继续复制一个散射节点重新命名并将我们植被模型链接到节点上,这样我们就有了大树、中等灌木、草。这造成了不同程度的复杂性(我们可以修改草:密度、随机大小旋转位置、重叠)

我们接下来散布碎石,然后我们将其连接到散射节点,我们用盒子代替

这里面做了两种大小分布丰富细节

接下来我们准备将资产导入ue4在此处创建一个Null这是最终的输出

创建我们的hda选中所有节点然后打包

快捷键:Shift+C

重命名我们资产然后右键

创建保存,选择保存位置

现在我们不需要配置我们的HDA直接应用即可

在进入ue4之前我们先准备个商城资产

我们来到ue4新建文件夹创建地形保存并打开

打开场景我们配置下场景

我们在功能或内容包,我们添加小白人

我们添加一个玩家开始进入我们的项目设置

如果没有可用的选项,则可以在此处进行项目设置,然后选择我们的地形

我们还有些其他设置(看个人需求)

禁用纹理流

生成网格距离场

配置好环境接下来我们将我们的HDA拖拽进场景等待烘焙,过一会我们就有了我们有我们的树木植被岩石等

让我们开始研究我们的材料,如果您还记得的话在Houdini,我们曾经拥有完全一样的东西除了我要开放我们的数字资产,以便我们可以看一下我们的材料层看起来如何所以我右键单击允许编辑内容,以便您实际上可以访问我们的hda的内容这就是这个,所以我们的第一步将是创建一种材料实际上复制了将要在虚幻中构建的外观

所以在虚幻中,我将在此处创建一个名为Materials的新文件夹,

使用几种纹理,我们将这3层设置草

创建材质暴露参数

设置好以后创建实例放入放入我们的地形

下一步我们可以添加一些草,也是在我们的材质表达式上

选择grass就会在左边出现添加我们植被选框

新建

双击打开添加我们植被

设置好以后我们添加到草节点内

这时候就会出现在我们地形上

接下来我们替换下我们场景中的实例部分,选择我们HDA在细节面板可以看到实例部分

我们将资产库模型替换到实例上就可以在场景中实时显示,其它实例也如此

最后我们回到H整理下HDA文件我们希望H中地表贴图和实例对象会自动查找文件,好我们配置下新建属性节点

我们在虚幻复制我们材质路径

注意:Name 名字

继续设置我们其它实例新建节点

@tag="boulder_big"引号内是我们上面图层名字

接下来按照格式输入我们要替换物体路径

意思:我们散布的石头等于我们路径中物体

我们想控制两者之间的比例变化非常容易,只是使用一个if那么我要生成一个根据每个点数从0到1的随机数,如果从0到1的随机数小于0.6大概有百分之六十的可能性那么我的属性和ue实例将是第一行,否则剩下的40%将具有其他实例第二行

接下来我们暴露一些参数然后点击应用并保存即可

我们可以先删除ue大纲中HDA重新拖拽,开始创建它,它将自动加载实例和材料给了它可能需要一段时间的时间,接下来我们可以测试一些其他参数例如修改地形大小噪波间隔幅度等

整体从Houdini到UE4地形制作流程大概就是如此,最好还是上手制作一次这样印象比较深刻后面我们还会继续深耕Houdini到UE4的相关流程

本期分享就到这里!更多精彩+++关注联系我们

下期见,学习不止,不止学习

举报
评论 0