Blendspace not responding for climbing mechanic

Hello everyone! I have finished setting up a simple and fully functional climbing mechanic for a 2.5D platformer. However, when I add the animations, as you can see in the video, the character adheres to the walls without any problems and can navigate only on the designated axes, but it doesn’t execute any directional animations, only the idle one.

I created a blendspace with 5 animations—four directional and one idle. I connected everything in the state machine, but honestly, I can’t figure out where the missing connection is. I suppose it’s something at the EG level of the ABP.

How it looks


image

How it works

Hey @Naithsabes! Welcome to the forums!

It looks like your “Climb Left And Right” and “Climb Up And Down” aren’t getting set? I see that you’re GETTING them, multiplying them by 100, and then setting the new value. Normally this would mean a crazy acceleration, but the number is starting at 0. Where are you setting them originally?

Show us that and I think we will be able to dig deeper! :slight_smile:

1 Like

Hi @Mind-Brain! Ty for the response and sorry for the late reply!

The BP capture above it’s connected to the Then 4 slot in the Sequence: maybe here is the problem? It shouldn’t in the Sequence?

Well, I am not really sure what you’re doing with that get node.

If you are trying to cast it to the BP_ThirdPersonCharacter, you need to add it to the execution line (the white line with the arrows). Anything that has those will do nothing if they are not part of the execution.

If you want your “Character” variable to behave as the BP_ThirdPersonCharacter, you need to set it- if you are doing that on BeginPlay or elsewhere in the blueprint that would happen before this event, you don’t need to do so here. The first thing I can tell you you absolutely should do, is attach a “PrintString” node to the “Is Not Valid” path to find out if it’s not valid- because that would prevent the sequence from activating!

Regardless, I can’t tell you it has anything to do with the sequence- because we can’t see what the sequence is doing. :slight_smile: You can show us what’s going on after this node but I somewhat doubt it is happening.

Ok, excellent, this has help me understand some problems with this.

So i’ll go over in full detail over every step in this case:
As show above, the climbing is functional, it moves up and down, so all good.
As far animations, i have this blend space created with 5 animations, in which i don’t see any problem so far:


image

Then in the ABP for the Manny (which i understand goes also to Quinn) i have this monster in the Event Graph:


Then in the AnimGraph, in Locomotion:

The Blendespace inside Climbing (state) looks fine as the transition


but i noted that i replicated the same setting (climbing+2 transitions) in Main States…

Could this be the problem? I don’t think i´ll need to reference the Blendespace outside the ABP…
Btw, thank you very much for every response!

Well, it COULD be a problem, I would only use one, and it would be on your “Main States” graph.

But a big thing I’m seeing here is this:
image

“Character” is not valid, so it’s not doing any of the sequence.

You need to set it on begin play, using “Try Get Owner” → Cast To BP_ThirdPersonCharacter → As BP_ThirdPersonCharacter > Set “Character”.

That should make it valid and allow your sequence to activate. :slight_smile:

But what about Then3 and Then4? Is that where the climbing variables are gathered?

Then3 sets the crouch animation and mechanic (which works perfectly) and Then4 gets to the climbing. I think i messed up things here because i don´t have any reference to the blendespace itself but can get it here too.

Okay, so here’s where we go back to my original reply!

You’re multiplying the same variable by itself, leading to a loop- the variables marked with an X in this picture need to be variables you get from the player character. For this you SHOULD be able to use “GroundSpeed”, I think. The variable you already got from the player character that you can use was MovementComponent > Velocity.

What you have right now is: (If variable Climb Left and Right = X)

Zx100 on tick 1
(Zx100)x100 on tick 2
((Zx100)x100)x100 on tick 3
For infinity. It’s only not going fast because climb left/right and climb up/down were never set so it sits at 0. So we need to fix that :stuck_out_tongue:

Okeey, so i clean it up with Ground Speed in each set and i’m really thinking in doing all the ABP all over again.


This is the result right now:


This is how the blendspace should behave

Oh, duh. Ground speed wouldn’t work because it’s using X and Y, but you need Z and… whatever your camera forward axis is (because you’re working with 2.5D). So you need to do this part again, with some caveats:


Instead of “Set Ground Speed” you’ll get your velocity (you don’t have to do the movement component part again, just get Velocity as long as it’s after Then 0) and use “Vector Length Z” instead of “XY”. From that you SET your Climb Up and Down. For “Climb Left and Right” use either “Vector Length X” OR “Vector Length Y”. I can’t tell you which one will be the one that works, but you won’t be able to tell unless you climb left/right.

Now you’re getting your Z velocity to show up/down movement!

HOLY AXISS! IT’S WORKING


… there´s some minor tweaks to work like the legs and invert the climb down, but it’s workin!!

I’ll leave the final settup for any one who look up for this in the future!
Thank you @Mind-Brain !!

1 Like