将datatable指定单元格设置为空_使用Python将Houdini Curve移植成Unreal Spline

366d01514acafa6a85081ec7501771b7.png

大家好久不见,这篇文章将教大家如何使用python将Houdini的curve转移到Unreal中并生成Spline。首先请大家看一下效果,第一张图是Curve,第二张图是Unreal中的Spline组件。

可能有人会问,为什么不用Houdini Engine导入Curve呢。Houdini Engine生成或者是导入的Curve是属于Houdini Engine Actor这一门类下的,而Spline是Unreal引擎自身的组件,前者不能被蓝图系统很好的识别,因此才选用目前这一方法。

152d4f1401ce21877259de2373084687.png

66fff71f3226d8b46df3e57cd3265440.png

最近主要在研究程序化生态系统的流程。其中河流湖泊系统是比较主要的一环。如果大家经常看Houdini的教程可能会知道,国外有位大佬在官网发布了一篇使用Houdini制作Flowmap然后倒入引擎中的教程,大家如果感兴趣,链接如下。

Flowmaps! // Houdini for Games​www.sidefx.com
d2b113b8f18fff7bac19d2502b77c291.png

但是在实际的生态系统构建过程中,单独制作Flowmap的方法并不实际。我们还是需要在引擎中实现程序化的河流效果,下图是我在Unreal中实现的河流效果,这种河流不需要外部模型,只依靠Spline和一些参数来以程序化的方式生成

381d15f49dde7f2675d7f3d47e5e6889.gif

而制作河流则需要Spline作为引导组件,因此我们就需要在制作地形的过程中生成出河流的Curve,并且将这个Curve转换成Unreal的Spline组件,最终给到我们的河流系统。

话不多说,直接开始制作,首先直接在Houdini画一个简单的Curve

ae95e608180a24708286aa14aab3bac7.png

接着要设置好每个点的入射与出射方向。

这一步只需要一个简单的wrangle节点就可以了,我们将出入射的向量数据存储到tangentu和tangentv参数中去,最后在Unreal中,我们需要读取的Curve参数就只需要有P,tangentu和tangentv

if(@ptnum == 0)
{
    
    v@tangentu = v@tangentv = point(0, "P", 1) - @P;
}
else if(@ptnum == npoints(0)-1)
{
    
    v@tangentu = v@tangentv = @P - point(0, "P", @ptnum - 1);
}
else
{
    
    v@tangentu = point(0, "P&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值