找回密码
 立即注册
查看: 588|回复: 0

Houdini程序化通道框架生成(Unity,UE4)

[复制链接]
发表于 2020-12-28 10:03 | 显示全部楼层 |阅读模式
在很多的游戏中都会出现通道的制作。例如Dying Light里面的下水道的管道和死亡空间里面的太空通道。
在制作通道的时候,一般都会将通道以一节或半截为单位制作,然后再放入游戏引擎中由美术人员根据策划的要求手工摆放到要求的位置,这样的坏处是摆放的人员会面临很多重复且缺少技术的工作,更不必说如果通道有很多种变体了。
不过,有了houdini引擎(Houdini在Unity与Unreal里的插件),我们就可以在游戏引擎中用画曲线的方法来放置通道,并且可以通过设置参数的方法来决定我们在那些位置需要防止怎么样的通道类型,有效优化美术人员的工作量。


在这篇文章中我们要想大家分享的就是一个简单的通道摆放框架。我们先在Houdini中使用节点配合Vex的方式来制作一个HDA(Houdini预制件),然后将这个文件导入到Unity和Unreal Engine4中
下图就是将hda文件导入到Unity和Unreal中的效果(需要安装Houdini Engine插件),我们可以在Unity或者Unreal里面通过拖动曲线锚点的方式实时构建我们的通道。


Unreal中的HDA
Unity中的HDA
Houdini中的效果


那么在制作之前,我们需要先了解清楚我们需要达到的效果。
1.我们需要在Unity或者是UE4中获取到曲线,这一点Houdini Engine以及帮助我们完成了
2.我们要保证我们获取到的曲线是"直的",不然我们的通道无法对齐
3.如果放置的锚点过于密集,需要将不合适的锚点删除掉
4.确保通道与转角处的方向是正确的
5.对于通道填不满的地方要使用一面墙来填充


好的,现在我们知道了我们要达成的目标,下面我们来一点一点对其执行。
-----------------------------------------------------------------------------------------------


首先我们在Houdini中随意画出一条曲线,保证其基本紧贴着网格,像这样
curve
在我们画线的过程中,可能一条直线上有数个点,而这些点是我们所不想要的,所以放下一个facet节点,然后选择remove inline Points,并且将删除的距离调节为一个单位
facet
这样一来,我们就应该会得到像下图一样的的线了,可以看到现在只有转角处才有点了
facet
不过这些点目前来说都是没有法线方向的,法线方向对于我们后面的Vex计算有着至关重要的作用,所以现在,我们使用Polyfram节点和point节点给它加上法线
polyframe
point
虽然有了法线,但是现在的法线方向是和我们的曲线平行的,我们需要让它与坐标轴平行,那么就需要一个attribwrangle节点
只需要一行代码即可
现在大家如果打开Geometry Spreadsheet窗口就可以看到,法线是与X轴或Y轴平行的了。


到现在为止,我们得到了一个带法线的曲线,在下一篇中,我们将使用大量的Vex代码,来对这个曲线进行修改,使它符合我们的要求。
谢谢大家的阅读

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 06:22 , Processed in 0.091173 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表