I am coming over from UDK, and I am amazed to see that UE4 is in the same exact boat - it has no online search-ability whatsoever, there is hardly any information about anything. Why is it that other engines have endless online questions/answers, tutorials, and so on, and Unreal ones have nothing?
Now with the rant done: I want to implement basic parkour functionality, much like Mirror’s Edge and the like. This means wall running, grabbing ledges, running up walls to grab ledges, sliding, and rolling if the player drops from a high enough location.
What I am planning to do, is to create a collision sphere for my character, which will detect wall collisions.
From there, if the wall angle is in some threshold compared to that of the player, he can wall run it (say when the angle is 45 > X < 75, so that the player is partially facing the wall, but not too much).
If the angle is in a lower threshold (say 0 >= X < 40, so that the player mostly faces the wall), he can run up the wall, or grab a ledge if he jumps.
Sliding I believe just means setting up the animation (which again I have no idea how to do through code, or if it’s even possible), and changing the bounding shape to match the animation.
Rolling, like sliding, is probably just an animation and a bounding shape match.
To know if the player can reach a ledge (if by jumping or running up a wall), the technique shown in Overgrowth can be used. That is, sweeping a shape downwards once a wall collision is detected, and checking the difference in heights between the sweep result and the character.
So my first question, am I right with my assumptions? is there something I missed?
And the second and harder question…how do I do any of this?
I can’t even manage to get wall collisions - I tried using GetOverlappingComponents in my character’s Tick function, which causes a crash for whatever reason, and I tried using the OnComponentBeginOverlap/OnComponentHit events, neither of them actually producing any collisions.
I am not asking for you to walk me through this, of course, but I am asking for hints or relevant guides/tutorials, because the API documentation gives no examples whatsoever, and hardly gives any information to begin with.