Breath of the Wild style climbing system

I’m a novice learning Unreal for fun, and I’ve been slowly working my way through a wide variety of tutorials and resources that have helped me greatly (I can’t *believe *how many tutorials and downloads showing how to do pretty much anything are just hanging out here for free). One thing I haven’t been able to find yet is information on a climbing system that doesn’t depend on ledges. It seemed like a relatively simple concept in theory, which means of course that I have no idea how to implement it. I did see someone who did a whole Spider-Man movement system that included wall and ceiling climbing somehow, and it was free to download, but when I tried to figure it out, it would only open in C++, which unfortunately I don’t understand at all.

My thought process is that I’d have to find the angle of the surface the player is on, and once that passes a certain value, I’d have to switch animation sets and speed constraints. Then it’d have to work in reverse to stop climbing. One complication I’ve found from my brief dive into this is that you can’t set the walkable surface angle any higher than 89.999, which sounds like it would be fine in a natural environment, but would present problems for regular building walls. Does anyone have any tips on implementing a system like this?

There are many ways to do the same thing.

One way is to

  • use a trace or collision sphere to detect the wall,
  • check if it’s angle is more than 45 degrees
  • change the movement system to flying so that gravity is off
  • use W to go up and down instead of forward and back

That may not be the best method, but it’s one you can use without having to use vector math.

I would work something similar, but drive the animation via IK and mesh vertex points / maybe, I’d even hook up into the vertex colors to drive which points on the mesh Can be used as hand/foot holds…

You can take all the parts you learn from the edge climb tutorials.
The slope angle doesn’t matter. Any and all systems will set the movement mode to something Other then walking, so the slope won’t be checked and the capsule won’t be trying to find the floor at all.

You need to know C++ to detect the vertices. A viable alternative would be to place meshes with the Foliage tool. You could then cycle through the results of a an overlap used specifically to detect them in order to find the furthest in range to grab, and move the hand to it.

Animating it properly with IK is probably the hardest part about the whole thing.