Character is pushed forward while landing on moving base

To reproduce the issue:

  1. Start with TPS template.
  2. Create moving platform - just an actor with a cube rootcomponent. It is translated with a const velocity in Tick. (AddActorLocalOffset with Vector variable * DeltaTime each frame).
  3. Place the moving platform in the level, and place the PlayerStart on it so the character is standing on it when the game starts.
  4. Start the map and press the “Jump” button (without any direction input, so the jump (relative to base) is vertical only) - each time the character lands on the platform he is moved in the direction of the base’s velocity (relative to the base). The faster the base velocity the more the character is moved “forward”. After a while he simply falls off :frowning:

I used the vector FVector(0,600,0), the offset after the landing is clearly visible with that.

Hi Elathan,

If you are experiencing sliding when the character lands try increasing the “Breaking Friction Factor” in your your character movement component. Since you are landing on an object while technically moving through space you may slide if the friction is low enough.

If that isn’t the issue you are describing, please point that out.

let me know if that helps,

Ed

1 Like

Hi,

I would not it sliding - it is just replaced in a single frame, looks glitchy.

Changing the “Breaking Friction Factor” can indeed reduce the effect - or if I increase it too much the character is actually teleported backwards relative the base’s movement speed.

However changing that value also has other effects on the movement, which is something I would like to avoid. I guess there is no other way right now, I’ll check if the effect is insignificant enough not to ruin already created movement based puzzles.

I think it would be still cool on the long run if someone responsible for the movement code would check this issue, because in this case independently from friction values the character should not be moved to any direction relative to the base at landing.

Maybe if I find the time to understand the movement code behaviour better I will try to override CalcVelocity() and ProcessLanded().

anyway,

Elathan

I only mentioned this because while running your test I wasn’t able to reproduce any jumpy or twitchy movement upon landing. Could you provide a short video showing the issue if possible?

I did notice twitchy movement while in the air though. However, upon landing the character slid smoothly to a stop. I just want to make sure we are experiencing the same thing so that I can create a bug report if needed.

Also note, if changing the Breaking Friction Factor does help for this specific situation you can just dynamically change it during run time when needed. For example if the character jumps while on this moving platform set friction to be higher and after landing (maybe with a slight delay) set the friction back to what you need.

This may be a legitimate bug so I would like to investigate further if possible.

I made a video, but I suppose it is the same for you as well:

The friction force and the movement of the character are actually perpendicular here, so the friction should not have any effect at all.

Anyway changing the value dynamically sounds pretty cool, that will be my way to go.

:slight_smile:

Hi Elathan,

Since this behavior can be corrected with settings in the character BP I’m not sure if this will be regarded as a bug by the developers. I went ahead and made the bug report regardless. I wouldn’t be surprised if this gets labeled as won’t fix though. Still we can try :wink:

You can find the report here: Unreal Engine Issues and Bug Tracker (UE-38123)

,

Ed