[Godot 4] Help me wrap my head around the AnimationPlayer and the AnimationTree

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By MyNameIsMir

I have a very simple character set up wtih a CharacterBody2D, linked with a Sprite2D containing the sprite-sheet, a AnimationPlayer which features various WalkCycles for my character, both with a shield and without a shield.

I want my character’s walk animation to play when moving but stop when not moving (there’s no actual idle animation).
I also want to switch from my shieldless animations to switch directly to shielded animations when I press a button.

So far I was able to follow simple tutorials online on and get the character to face where it walks, but how exactly do I stop the looping animation of the walk cycle to stop… looping when I stop? I even have a is_moving() func made that returns true/false based on whether the character is moving, but, I’m not sure on how to use it exactly.
I know for a fact that pause() on the AnimationPlayer doesn’t work, so I think it’s something about the AnimationTree. Maybe I need the state to go from Start to “walk” when moving and then end it when it stops moving? How do connection nodes even work?

Would this work?
End starts my idle phase

Or do I need a specific Idle animation that somehow tells my other animations to stop looping or even playing?
Do I need this Idle node

Or does that actually not work and just need to “animate” a single frame of idleness for every state like this?
enter image description here