[COMMUNITY PROJECT] Dynamic Climbing System (DCS)

Hi there! I’m currently working on a dynamic climbing system (DCS), based on the third person template.

By *Dynamic *I mean that the character should be able to climb on anything that is climbable. No trigger placement, no static geometry precomputation, no actor BP.
The goal is to dynamically detect reachable grips, and climbable surfaces, out of static meshes placed in the world.

I’m working with IK animations for the hands and foot to animate the character while he’s moving along the surface he’s climbing onto.

I’ve also thought of a mechanic for the climbing. I didn’t just make the character ascend the surface by pressing the Move Forward button.
I thought that it can be cool to have like a dangerous and challenging climbing mechanic, where the character can fall, slide, be tired, can’t find any grip ahead, etc… All those things that can add immersion and realism.
Of course, I also planned to make an automatic climb mode so that it can be adaptable to multiple kind of gameplays.

Video Demo :
[UE4 Community Project] Dynamic Climbing System (DCS) - YouTube

Current State :

  • Trace to find a reachable grip
  • Press E and Q to place the right and left hand on the grips
  • Press W while hanging to ascend, S to descend
  • Early Working IK for the arms and foot
  • Limited movement while hanging so the IKs stay on the grips
  • Orient character towards the climbing surface
  • I use complex collision as simple to be able to trace and place the hands directly onto the static mesh surface

Know Major bugs :

  • No collision with the surface
  • No possibility to go sideways
  • Limited movement too limited or not working always as expected
  • Foot not placed correctly on the surface

What I’m currently working on :

Features :

  • Add flexibility to the pose with CCDIK or FABRIK to make the spine bending
  • Upgrade the hanging pose in general with IKs and anim assets
  • Get up when we reach a plateau at the top of the surface

Fixes :

  • Fix the movement limitations
  • Foot placement (legs IK?)
  • Sideways movement

What feature can be very cool to add :

  • possibility to jump to reach out unreachable grips
  • fatigue system
  • balance system
  • hazardous surfaces (based on the normal, randomly generated, or others?)
  • physical collisions with the surface
  • automatic climbing mode
  • when auto-climbing mode, make the character more prone to fall (can be switched off)
  • semi automatic mode (just place the hands and the character ascend/descend automatically)
  • First Person Mode

I post the project here so everybody is able to download it, use it in their games, customize it and of course share upgrades with the community.
The blueprints are annotated and commented, I tried to keep things clean and readable.
Note that the project is really in its early phase, I’ve just started to work on it the last week end, I don’t advice using it as it is in your project.

Those are the blueprints used in the climbing logic :

  • ThirdPersonCharacter
  • ThirdPerson_AnimBP
  • BPI_Animation (BP interface used as a bridge between the BP character and the BP animation)

You can reach me on discord (@MaxParata#0892), twitter(@Mask974), by mail(crimson97430@gmail.com), or here on the forum of course, I’d be glad to hear your ideas and feedback!

I hope to talk to you soon, and enjoy ue4 as always.

Link to the Project Files](MEGA)*** - ***Link to the Demo](MEGA)

Congratz !
Amazing job !

Looks amazing!!! :slight_smile:

You should take a look at ikinema

I have Ikinema plugin, but the goal here is to make something everybody can use without buying any third party tools or plugin :wink:

the link to the project files is down

Thanks for the warning, the links has been updated :wink:

Thank you for the project! Looks promising.
Character is going trough the rocks like there is no collision.

Some parts of the character currently don’t have collisions (the legs, arms and head), the collisions are just handled by a simple box in the character that have a sweep test when setting the new character position. This box is no bigger than the chest of the character.

To improve that, i think we can blend the animation with some physical animations.

I had a better version than this one, but it was too messy and not really working. So I preferred not to share it. When I’ll come back to this project, I’ll fix it and share it.

I can’t see the yellow box, green box and any box else(4.24.3,4.25)

When I in wireframe View Modes, I can see only a yellow box at zero point. And when I click q or e anywhere, even there is no rock nearby, The hand show a climb pose on the air, and the whole body face to the zero point. Can you help me?

4.25.1 Totally broken… Thanks for sharing mate.