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.
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!
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. 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:
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
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.