UE4学习笔记:Spline组件的使用

本文介绍了如何在UE4中利用蓝图和SplineComponent创建物体沿样条曲线移动的效果,以及如何将视角沿路径移动,包括设置Actor蓝图、添加SplineComponent、定义移动变量、编写Tick逻辑、编辑样条曲线、调整移动速度,以及通过LevelSequencer渲染成视频的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spline组件能编辑样条曲线,定义一条路径,路径上的点可以通过距离起点的长度获取,因此可以实现物体沿路径连续移动的效果或者物体沿路径分布的效果。本文实现一个沿路径运动的功能。

1、新建一个基于Actor的蓝图,并添加SplineComponent

2、新建3个变量,MoveActor表示需要运动的Actor,在关卡中指定,distance表示物体移动的距离,用于获取样条曲线上的点,Speed用于设置物体的移动速度,将MoveActor和Speed后的眼睛点开,便于在关卡中设置。

3、在tick中设置物体的位置和旋转,蓝图代码如下

4、将上面的蓝图拖进关卡,并添加需要移动的物体,这里添加了第三人称角色,将其设置为MoveActor,修改物体的移动速度,然后编辑样条曲线,设置想要的运动路径,按住Alt键拖动其中一个关键点,可以复制该点,或者右键选择删除或复制关键点

完成后如下图所示

### 如何在 Unreal Engine 中翻转 Spline 组件的方向 为了实现 `Spline` 组件方向的反转,在 Unreal Engine 中可以通过编程方式调整样条曲线的关键点顺序来达到效果。具体来说,这涉及到遍历现有的所有关键点并将其位置按照相反的顺序重新设置。 对于 C++ 实现而言,可以编写如下函数用于反转型样条: ```cpp void ReverseSpline(USplineComponent* SplineComp) { int32 NumPoints = SplineComp->GetNumberOfSplinePoints(); for (int32 i = 0; i < NumPoints / 2; ++i) { FVector StartPointLocation = SplineComp->GetLocationAtSplinePoint(i, ESplineCoordinateSpace::World); FRotator StartPointRotation = SplineComp->GetTangentAtSplinePoint(i, ESplineCoordinateSpace::World).Rotation(); FVector EndPointLocation = SplineComp->GetLocationAtSplinePoint(NumPoints - 1 - i, ESplineCoordinateSpace::World); FRotator EndPointRotation = SplineComp->GetTangentAtSplinePoint(NumPoints - 1 - i, ESplineCoordinateSpace::World).Rotation(); SplineComp->SetLocationAtSplinePoint(i, EndPointLocation, ESplineCoordinateSpace::World); SplineComp->SetTangentAtSplinePoint(i, EndPointRotation.Vector(), ESplineCoordinateSpace::World); SplineComp->SetLocationAtSplinePoint(NumPoints - 1 - i, StartPointLocation, ESplineCoordinateSpace::World); SplineComp->SetTangentAtSplinePoint(NumPoints - 1 - i, StartPointRotation.Vector(), ESplineCoordinateSpace::World); } } ``` 上述代码展示了如何交换每一对相对应的位置以及切线向量,从而完成整个路径的逆转[^1]。 如果更倾向于使用蓝图脚本来解决问题,则可以在蓝图中创建自定义事件或函数,并通过循环结构和数组处理逻辑来执行相似的操作。不过需要注意的是,蓝图中的具体方法可能因版本差异有所不同,请参照官方文档获取最新指导[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值