Repository: godotengine/godot (language: cpp)

Issue:
`current_animation_changed` doesn't emit when animation finishes
### Tested versions

- Reproducible in 4.4.1.stable
- Reproducible in 4.2.dev6
- Not reproducible in 4.1.4 and lower, because `current_animation_changed` signal doesn't exist there

### System information

Godot v4.4.1.stable - Arch Linux #1 SMP PREEMPT_DYNAMIC Sun, 23 Mar 2025 17:17:30 +0000 on Wayland - X11 display driver, Multi-window, 1 monitor - OpenGL 3 (Compatibility) - Mesa Intel(R) Graphics (ADL GT2) - 12th Gen Intel(R) Core(TM) i5-1235U (12 threads)

### Issue description

`current_animation_changed` signal is not emitted with empty string on AnimationPlayer when animation finished normally. This is not intended because when `stop()` is called, this signal emits with empty string normally.

### Steps to reproduce

1. Play an animation.
2. Wait until it finishes.
3. Notice `current_animation_changed` signal is not emitted with empty string.

### Minimal reproduction project (MRP)

[mrp.zip](https://github.com/user-attachments/files/19621006/mrp.zip)


Discussion / hints:

Fix patch:
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index 4ba0ef3f8aee..680fd5c3369f 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -345,6 +345,7 @@ void AnimationPlayer::_blend_post_process() {
 				_set_process(false);
 				if (end_notify) {
 					emit_signal(SceneStringName(animation_finished), playback.assigned);
+					emit_signal(SNAME("current_animation_changed"), "");
 					if (movie_quit_on_finish && OS::get_singleton()->has_feature("movie")) {
 						print_line(vformat("Movie Maker mode is enabled. Quitting on animation finish as requested by: %s", get_path()));
 						get_tree()->quit();


Test patch: