Interp To Movement component only works on initial Activation

I have two Interp To Movement components on an Actor. The Actor picks one of the components to use, and then at the appropriate time calls Activate on the component (with Reset checked).

The Actor interpolates to all the points entered into the component correctly on the first activation of the component. I have the Behavior Type set to Loop Reset, and inside the OnResetDelegate Event of each component, I deactivate the appropriate component.

The problem is, when I go to activate the Interp To Movement component a second (or third, etc.) time, the Actor no longer moves, and the OnResetDelegate Event isn’t called.

This was working in 4.16, but after updating to 4.17, I noticed it isn’t working. Any ideas?

I believe I’m seeing the same issue in my project using UE 4.17.2. I have a fully defaulted InterpToMovement component and only works the first time

Tested this on 4.16 and have the same issue with the sample above

As a workaround for this issue, I setup moving the Actor using a Timeline in Blueprint to drive a linear interpolation along a spline. The spline’s points are at the same positions as the InterpTo Component’s Control Points. It achieves the same effect as the InterpTo component.

Really disappointing to see there’s no official explanation for this, and it’s also kind of impossible to find other solutions for this issue… I’m stuck with this on ue 4.26 myself.

made it to work (5.03):

  1. interpComponent.SetComponentTickEnabled(true)
  2. interpComponent.ResetControlPoints
  3. interpComponent.AddControlPointPosition : only relative coords works for me
  4. twice
  5. interpComponent.FinaliseControlPoints
  6. interpComponent.RestartMovement(direction=1)
  7. onStopEvent : interpComponent.SetComponentTickEnabled(false)
2 Likes

I can confirm the Activate node is still not working for InterpToMovement in UE 5.3.1. For me, to disable it I called SetComponentTickEnabled (false) and to re-enable: SetComponentTickEnabled (true). If you call RestartMovement it will always restart from initial position so you will get a sudden jump of the actor’s location, but using SetComponentTick would let the actor continue from previous location.

My workaround:

When you want to Activate, set the RootComponents Mobility to Movable.
When you want to Deactivate, set the RootComponents Mobility to Static.

Hope this helps.