I have created a third person parkour system in Unreal Engine and C++. It allows the player to move at different speeds, jump in different ways and climb in any direction, all while the camera keeps the target in focus. In a short while there will be an obstacle course available for download in the style of Getting Over It, where you can try out all these features on your own.
Basic movement
The camera rotates around the character on the yaw and pitch axes.
Field of view
The FOV (Field Of View) is changed depending on movement input.
Offset camera
The camera is offset on the right vector in relation to the character depending on where the player is heading and looking.
Climbing
When climbing, the camera offset also works on the up-vector.
Idle
When there has been no input for a while, the camera starts rotating around the player, zooms out and decreases FOV.
Wall behind the character
The camera zooms out when the player can perform a wall jump.
Floor angle
The player changes speed depending on the floor angle.
Speed over time
The character's movement speed is changed over time instead of instantly.
Run up a wall
When running into a wall, the player starts running up on it.
Sliding down wall
When the character is mid-air facing a wall it starts sliding down instead of free falling.
Aiming
Time is slowed down and camera zooms in to let the player aim better.
Using the hookshot
Looking for something to hook to in the direction the player is aiming.
Shooting a line trace in the direction the player is aiming to find something to hook to.
Leave aiming
Resets all the settings to how they were before aiming.
Drain energy
Energy is drained when running up a rising floor and performing certain actions. When depleted, the player's actions are limited.
Restore energy
Regular jump
An impulse on the character's up-vector that can be performed while on the floor.
Wall jumping
Jump in the direction of the wall surface normal.
Climb jumping
Jump in the direction that the player is moving.
Initiate climbing
If the player gets up to a climbing wall, it automatically starts climbing.
Change how movement works
The player climbs in relation to the character's forward vector instead of the camera's.
Follow the wall
When climbing a curved or tilted surface, the character's rotation follows.
Find ledge
If the player finds a ledge, it climbs on top of it.
Coding practices
Abstraction
The project is seperated into several scripts that each have a specific task.