Character gets stuck (With Video)

Hello, i’m currently working on an top/down adventure game and I’m having some trouble getting the Jump to work properly.

The issue right now is that the character gets stuck on one of the platforms. As shown in the video these platforms are initially underground and have to be activated through a series of levers.
When I try to jump the character gets stuck and i’m not sure why since he doesn’t do that on the previous two platforms.
I should also mention that if I place the platforms already at their final position in the editor and then play i CAN jump on that platform without issues. So it seems to be an issue caused when the object is animated.
Any Ideas how I could solve this?

Thanks.

Heres a screenshot of the Nav Mesh when the platforms are already raised.

I believe I found the error but I’m not sure how to fix I’ve been playing around with the Nav Mesh settings cant seem to find a solution. Some help would be greatly appreciated.

Is this an AI character? A player controlled character shouldn’t need the NavMesh, unless you’re using path finding.

You could design volumes for areas to ignore navmesh, and give character direct directional input when inside.

Be Sure to set your nav mesh to be able to updated dynamically at runtime:

  • Project Settings
  • Engine - Navigation Mesh
  • Runtime
    - Runtime Generation = Dynamic

Thank you, that solved the issue. Im also having an issue with the character having trouble jumping onto platforms sometimes and im not exactly sure whats causing it.

heres a video I posted in order to show what happens. Basically its like theres an invisible collision that blocks the player, I think the issue is with how the simple move to location works but im not exactly sure. Any ideas?
Also this is the main character, its a top/down game so it uses the same movement system as found in the top/down template.

SimpleMoveToLocation isn’t designed to utilize jumping.

I think the problem you’re seeing, is the timing of when you hit jump.
The jump continues in the direction the character was heading before they jumped. They can’t jump forward if they weren’t already moving forward.

You should probably avoid using SimpleMoveToLocation for close set waypoints, and instead use character AddMovementInput.

Also when you press jump, you might want to set the character direction facing towards the waypoint instead of current direction from the MoveTo navigation.

Thanks a lot for your help i’ve been stuck with this issue for a few days now.
Ive implemented what you suggested. Now it checks the distance between the player and the mouse position, if its more than 800 it will use the SimpleMoveToLocation and if its is less then is uses AddMovementInput.
Ive also created a function within the player controller to modify the players direction when he jumps. It seems to be working quite a lot better now although there are still a few issues.
1 - The AddMovementInput only works if I hold the Left Mouse Button, if i simply click once he will move but for one frame only it seems.
2 - Also sometimes when I suddenly change the direction of the character he will start moving backwards (so in the direction he was previously moving) , this only happens sometimes.

In any case Thank You soooo much my dude. You are The Man!

I found the reason why the character was slowing down. It was simply that was clicking far away so it was registering the MoveToLocation when I then tried to move in another direction it was still trying to go to the previous MoveToLocation. Thats fixed now, the only issue is getting the player to move to the position when I click and not only having to hold the key.

I figured I should post the screenshots, someone else might be having the same problem.

1 - The event graph determines whether to move or to jump
2- Jump Function determines the direction of the jump when player clicks (The actual jump is done through the player character, using a Jump Node, (Launch Character node can also work.))
3 - MoveToLocation simply moves the players to the location of the mouse click. If the distance is more than MinClickDistance then moves using Simple Move To Location node if not then uses AddMovementInput.

Glad to hear those things helped!

To get the player to continue moving forward, you’ll need to apply the movement input on tick for a duration. You can use Function Timers or Delay/RetriggerableDelay to get the timing you need.