大家好久不见,这篇文章将教大家如何使用python将Houdini的curve转移到Unreal中并生成Spline。首先请大家看一下效果,第一张图是Curve,第二张图是Unreal中的Spline组件。
可能有人会问,为什么不用Houdini Engine导入Curve呢。Houdini Engine生成或者是导入的Curve是属于Houdini Engine Actor这一门类下的,而Spline是Unreal引擎自身的组件,前者不能被蓝图系统很好的识别,因此才选用目前这一方法。
最近主要在研究程序化生态系统的流程。其中河流湖泊系统是比较主要的一环。如果大家经常看Houdini的教程可能会知道,国外有位大佬在官网发布了一篇使用Houdini制作Flowmap然后倒入引擎中的教程,大家如果感兴趣,链接如下。
Flowmaps! // Houdini for Gameswww.sidefx.com但是在实际的生态系统构建过程中,单独制作Flowmap的方法并不实际。我们还是需要在引擎中实现程序化的河流效果,下图是我在Unreal中实现的河流效果,这种河流不需要外部模型,只依靠Spline和一些参数来以程序化的方式生成
而制作河流则需要Spline作为引导组件,因此我们就需要在制作地形的过程中生成出河流的Curve,并且将这个Curve转换成Unreal的Spline组件,最终给到我们的河流系统。
话不多说,直接开始制作,首先直接在Houdini画一个简单的Curve
接着要设置好每个点的入射与出射方向。
这一步只需要一个简单的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&#