UE5蓝图实现物体自动沿样条线运动
在UE引擎中,让物体沿着样条线运动是非常常见的功能,本文编写了沿样条线运动的组件,挂载该组件可轻松实现简单的多物体自动查找样条线并运动效果。

一.配置Spline蓝图
1.以UE5.3第三人称案例场景为例,首先创建Actor对象蓝图,用于存放Spline组件

2.添加Spline组件

3.添加函数,用于获取Spline,并且勾选Pure。勾选Pure可以不带主引脚,使用更便捷。但不能进行变量修改等操作。

4.在构造函数中设置Set Draw Debug函数,并将参数Show设置为True。这项设置可以让样条线不论是否选中都显示。

5.将该蓝图放入场景中,稍稍编辑关卡与Spline。

二.配置跟随样条移动组件
6.添加ActorComponent

7.命名为FollowSplineComponent

8.首先物体会查找样条线最近的点,但不能拿物体中心去查找,这样会显得不自然。应该取物体Forward方向向前偏移一些的位置点进行Spline查找。

9.添加函数GetForwardAimLocation,该函数返回值FrontLocation表示查找位置,并添加变量ForwardAimDistance控制偏移值,该函数逻辑如第8步,取物体Forward方向偏移一些的坐标值。

10.为Forward Aim Distance变量填入初始值

11.添加变量TargetSpline,类型为之前创建的样条蓝图 BPTargetSpline。并在BeginPlay中连接如下逻辑,查找Spline并缓存。

12.继续添加函数UpdateDestination,更新目标位置。并添加Destination变量以缓存目标点。

13.继续添加函数ProceedToDestination用于执行到目标位置操作,这里移动始终随着Forward方向,而只有旋转会朝向目标点,这样会呈现更自然的移动。并且增加Speed变量,用于配置速度。

14.设置速度初始值。

15.为该组件添加Tick事件,以最终组装所有函数。

16.将函数连接如下。

17.新建测试Actor蓝图,添加方块Mesh进行测试,挂载FollowSplineComponent组件。

18.最终全部放入场景中,测试效果。

https://dev.epicgames.com/community/learning/tutorials/ryL5/unreal-engine-follow-a-spline-and-report-distance-along-it-using-an-actor-component
