我在之前的一篇文章中写过沿样条线创建网格体的方法:
https://blog.csdn.net/grayrail/article/details/130453733
但该方法没有网格变形操作,就会导致每一段网格对象是无法连接的:
后来发现了SplineMesh方法可以比较好的解决这个问题:
因此本文就来讲一讲如何通过SplineMesh组件创建连续的网格体。
1.操作流程
首先需要重新提一下几个概念:
1.1 在UE中构造函数的内容是可以在编辑器下执行的。我们会将操作样条线的逻辑连在构造函数中。
1.2 在蓝图中可以通过Add xxx component节点来动态添加组件,例如如下:
1.3 Spline Mesh Component组件并不能直接生成完整的样条化模型,但是可以扭曲模型,与Spline组件组合使用,最终得到完整的样条化模型。
1.3 最终通过给Spline组件的前后2个关键点位置动态添加Spline Mesh Component组件即可实现:
按照上述蓝图连接,即可实现gif中的效果。
2.优化
那么能否不手动给Spline加那么多点,直接通过距离插值去动态创建SplineMeshComponent呢?并且基于Spline关键点也会导致模型拉伸距离不均匀。
目前没有找到简单直接的方法,但可以通过设置2个Spline组件来解决。
首先,添加2个Spline组件,Spline2负责根据Spline的长度重置出距离等长的关键点:
对节点进行修改,在前面添加Spline数据转到Spline2的操作:
后面节点的链接和之前类似:
最终效果如下: