ue4材质节点大全_Houdini Terrian & UE4 (一)基础的地形工作流

本文介绍了如何使用Houdini Engine在UE4中构建和编辑地形。通过创建高度图,导入UE4,编辑材质,创建mask信息,以及调整参数,详细阐述了基础工作流程。教程强调了在Houdini中制作hda文件后在UE4中反复使用的优势,以及在UE4中更新输入地形数据的重要性。
摘要由CSDN通过智能技术生成

0efdce1e0024abc2430377b9d17e2b38.png

导言

houdini本身是很优秀的地形编辑工具,houdini engine让我们可以在UE4中使用houdini生成的HDA文件快速的构建地形地貌,并且支持协同工作。

6390abf69974db6c6018f9d41b6024fa.png
UE4 & Houdini Pipeline

这里要了解到的一个概念是:我们在houdini中制作好了hda文件之后,在ue4中就可以反复的使用这个文件来做修改了,并不是传统的互相修改同一份文件来实现的,这使得ue4中可以进行闭环的操作,而不需要每一个使用到这部分功能的制作人员都掌握houdini使用方法

(注:未安装houdiniFX的电脑上,要想使用hda,一种选择是装sidefx提供的houdini engine版本,还有一种选择是在一台共用机上安装一个houdini engine,所有人在插件设置里使用tcp连接到共用机)。

这篇教程主要是为了带着大家走一遍houdini&ue4的基础,从houdini制作基础的高度图开始,导入ue4,在ue4中做一些调整,然后再使用hda文件cook一次,这就是最基础的一套操作环节啦!

关于一些houdini中基础的地形节点,请参照这篇文章呢!

键盘侠·伍德:Houdini Terrian & UE4 (〇)Terrian基础​zhuanlan.zhihu.com
3313712eb663e99218a92cf7851cd96c.png

1、houdini中制作height field

首先我们在obj目录里创建一个Geometry节点。

8f90058f802849243220f1716222d4e3.png

然后我们创建一个新的assert

7dd1a9062dfbb1b0935f1b9791462e3d.png

06ea207c7078aa7f00309ae1b00cb448.png

这里我们把输入设置到0,因为初始化地形的节点并不需要输入

14e9406b107a655f0c74f67ce7e7fd11.png

然后我们在之前创建的Geometry节点里面,创建这个assert。

6bebe6eca3aec55e8eb7b5f14c8d7e5d.png

这里我们要打开编辑功能才能进去编辑LandScapeInit节点

f2e00e8d1a8a3145eb0b174ae92bfb2d.png

这里我们就之做一个最基本的地形生成,怎么做的好看就自己研究啦~

03ce933e00dad2e736fcb390c7b8c763.png

对于最基础的节点,我们按照ue4的标准来设置地形信息,否则导入ue4后地形边缘一圈会出现拉伸。

b0b6c84741d08ea6038461858a76a785.png

c4299df4ec1015695ff7acdedefa9f95.png

这里插一个步骤,我们在ue4中先创建一个地形材质,这里我们简单的用颜色来表达。

5807110426a2a357e0c942f5e6731ae4.png

然后复制这个材质的引用

fd34b6f308d8b0498bc23060dc2fa4d6.png

用上面的引用在create attribute节点里面设置给unreal_material属性,记得要去头去尾哦。

这里的属性name是约定的。具体其他的属性可以参见官方文档或者看源码。

https://www.sidefx.com/docs/unreal/_attributes.html

这里我们设置好以后,地形被导入UE4时就会自动被赋予指定的材质

815a10928c5a62ba300b932fab3c061c.png

然后我们选中最后一个节点并保存这个hda

8390add39dc85a6543fd35adbbece775.png

2、导入ue4

刚刚我们创建好的hda文件,我们把它拖入UE4,这时候就能看到一个houdini图标的uassert了。

6885cc6ddee622a5780aef6c36580132.png

然后拖入到场景当中,hda会自动把我们上面创建的地形cook出来。

0ccf7f0cd13a93abc3babff25efb71d1.png

这里我们看到的地形因为没有layer的信息,所以是全黑的。

dd5c53a1ef1d08157894c2f651b65a67.png

点击LandScapeInit里面detail面板上的bake按钮,把地形脱离开来,这时候LandScapeInit文件就可以从场景中删除了。

eb571ed146308c85acfb0bb7f40cf3f5.png

到这里,地形的高度信息就已经导入成功了,下面我们要给地形生成一些mask。后续可以用作山顶、斜坡贴图等。

3、创建一个制作mask信息的hda文件

和上面一样。我们创建一个新的assert叫LandScapeMask,但是这里我们希望它有一个输入参数,来接收一个heightfield。

2abde6a2e518587ef64d44dc263deeae.png

783cf1e97ad0ea7d9a87a909025d3a2f.png

我们把这个节点创建到之前的LandScapeInit之后

打开允许编辑,我们来制作这个hda文件。

同样,这里也是做一个简单的mask创建。我们在这里用mask by feature对斜率信息做一个mask,然后把mask赋值到Slope。

后面反转slope层作为Base mask。

15c6b37de0777d5b64ecdfe469f24234.png

选择最后一个节点,保存

92190d96438f0266442b88690f4ee671.png

4、回到UE4

我们把新的hda文件拖入UE4。

3a96b9e3eb136a4d6e4d7d8fc078859b.png

然后我们就能看到刚刚我们定义的Input出现在了Detail面板里。

976711e987fc55e3c0fc4507ad4aa0cc.png

这里我们选择Update Input Landscape Data(更新输入的地形数据,不勾选的话会创建一个新的),然后点击列表中的Landscape,hda就会自动把地形送到houdini library处理了。

e28376a38ed8540292801c795a6e57b0.png

处理完之后我们就能看到我们的地形上的斜坡被着色了。

e949989e66dacb70da2c79c8080183f1.png

我们将这个处理之后的地形bake出来以后,可以做一些修改。这里我们在UE4中拉了一下地形。

e831d08da82534a24c368d999faef771.png

拖入LandScapeMask再次提交地形就可以看到,被提交的地形重新计算了slope layer的信息。

e526b8c030c7840dff1901852cc2503c.png

5.将houdini的调整参数带入UE4

打开houdini,进入LandScapeMask节点

7430e9f172b74e5dde58a6fbcb3d09f7.png

这里就是可以放入参数并带入UE4的地方啦。

0c2dc0629083af2b1852c604068ca56d.png

我们选中mask by feature节点,直接将参数拽入parameters面板中,应用并保存hda文件。

52c129bf0a59ad0944c67829a7d0441c.png

并且在UE4的内容浏览器里右键LandScapeMask选择Reimport,把修改的hda更新到uassert中。

ebdb423416d956c42cabc51c82e3879c.png

拖入场景,就能看到Detail面板里这些信息了。

d3475445e8a51743c9938ff6d8e7facb.png

如果地形没有被bake出来的话,在这里调整参数会直接应用到地形上。

6.注意点

  • 可以注意到我们这里用了两个hda节点来制作,其实也是个人自己觉得比较方便的方式。毕竟除了初始化地形的操作以外,很多操作如果没有输入是无法直接在houdini中预览效果的。通过这样的制作和连接方式,我们可以在制作mask活着后面撒点的时候都可以有个预览。
  • parameter和input都可以把参数抛进UE4中,但是input更常用一点,毕竟在houdini中input可以直接作为输入口来预览。
  • 每次用hda文件cook出结果后,最好都把结果bake出来,然后删除hda节点,下次要使用的时候再把hda拖进场景。当然,在确保没问题的情况下,把修改的地形放在hda下面能够得到更加及时的更新。
  • 每次hda操作之前和之后最好都保存并重新打开场景。
    • 如果操作前不保存,可能出现输入houdini engine的数据并不是当前最新的情况。
    • 如果操作后不保存重启,地形上的mask信息可能是错乱的,而且会发现调整地形或者画layer的时候笔刷在地形上很卡的情况。保存重开保存重开!真的很重要!

后记

到这里为止,我们在没有修改houdini engine插件的情况下完成了一次地形的基础工作流。在一些更加深入的工作流程探究时,我们还是会发现有很多不如人意的地方,这里暂不一一举例。

使用houdini&UE4做开发,除了houdini本身的使用外,还有很大一部分就是houdini engine根据项目的需求进行定制化,后面的分享也会围绕houdini engine定制来写。

还望多点赞,多指正,感谢感谢!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值