Idle Animation Playing Above Other Animations?

Godot Version

4.7.1 stable

Question

I can’t find a way to stop the idle animation from playing and the signal for it to stop isn’t being called… How can I fix it?

The code I’m using is from this tutorial:

All my changes are the fact that the animations are based on an is_action_pressed instead of is_action_just_pressed so that it is held instead of per-click and that the animations are looped instead of a single instance. I can’t figure out why the signals can’t transition…

Could you share us your code as well? Most people here will not bother watching an entire tutorial, and we especially cannot help you without seeing your specific code.

Even if there’s no issue with the tutorial it’s impossible to say if you followed it correctly, so please show what your project is like instead

Since you mentioned you set the animations to loop, that alone would stop the signal. animation_finished doesn’t fire on a looping animation, on AnimationPlayer or AnimatedSprite2D, because the animation never reaches an end. If you need something to fire each time it wraps, animation_looped is the one that does that.

The is_action_pressed change matters too, since that’s true every frame the key is held rather than once on the press, so the state may be re-entering and restarting the animation before it could ever get anywhere.