Transition from a walking blendspace to a crouching blendspace using a bool?

What do I do with AnimNotify? Perhaps skipping this part when it came to jumping in the third person tutorial was a mistake. I don’t really plan in implementing jump much and so I didn’t see the point.

Is it possible that an AnimNotify is what I’m missing?

noy really, even without anim notify you can totally do crouch no problem. anim notify is for you to emit event back to animation blueprint while it played to specific frame. so you can then pass back to pawn and drive other things(like dust kicking particle effects, eject bullets, etc.)

so stay focus on states blending and communication between your pawn and animation BP.

After further testing, if I make crouching true as default the character plays the crouch start just fine, however just with the normal walking hitting the crouch button only affects the speed of movement, and has nothing to do with the animations or the transition.

Therefore I believe that the AnimGraph is now solid, my Blend-states are solid, and what is still in question is either the EventGraph for the animations or the character. They are still basically the same as above, I’ve also included IsInAir? just to make sure to have that cleared up.

My question this time is whether or not my bool is getting called correctly or if it is getting hung up somewhere.

should have noticed that earlier. yes the way you wire “isCrouching?” is wrong.(probably wanted you to discover that from stock character)
Basically your animation graph shouldn’t have anything that’s replicated(or rep notify).
you should have a mirrored bool in your pawn, and your animation bp’s event graph should get it from pawn owner and set local variable for other graph(like blend space, anim graph, state change rule graph).

I think this is probably the most annoying part, but once you understand that you can have 2 characters but one animation blueprint, then it will make sense.
one character could still be walking, but another will be crouch idle, when your isCrouching? local var is replicated from a specific pawn, you’d have one animation bp for each character isn’t it?
Animation bp is like a function call, you pass in variables, and they return vertices position for your skeleton mesh. they do have their local states that was hidden from view, like which frame played for each character.(maybe hidden in skeleton mesh, who knows)
pretty much all your animation bp’s graph should wired in a way that you only assume who ever use it, have the required variable for it to query, what ever event you want to pass over, the pawn owner will understand what to do.

check this 2 screenshot from ASP_Character, first from pawn blueprint, take note of var naming on the side and how it was used in graph


and second from ASP_HeroTPP_AnimBlueprint, also take note of var naming at the bottom, and how it was fetched from casted pawn owner’s graph.

See, they have totally different naming of bool vars, but it is crouchButtonDown(in Pawn BP) that sets the value of crouching(in anim BP) which ultimately drives the state machine.

I see, one thing I haven’t been able to figure out is how to get that “cast to character” to appear. Seems like it’s used in lots of places, could be useful, is there a specific way to get this working?

the name of CastTo XXXX is dynamically generated, usually when you drag off a object pin(light blue), you can type in the blueprint name you have and it should show up in context sensitive menu.
If you can’t see the cast to node you wanted, make sure that your blueprint is compiled without problem.

Edit: CastTo node should usually be avoided unless you only have 1 character pawn that links to this BP.(because they cause dependency problem and are not friendly when you want to scale up later)
If you plan to have multiple character pawn BP that reuse this animation blueprint, make sure you implement blueprint interface and use that instead to return value of pawn’s variable.