0 votes

I have a Skeleton2D node for my player, the animations are handled by the AnimationPlayer node with a AnimationNodeStateMachinePlayback resource type in a AnimationTree Node, to change animations I use eg: my_animation_state_machine.travel("run"). now the AnimationPlayer node has a built-in signal called animation_finished(anim_name) that should trigger when any of the animations are finished playing but when I connect this signal nothing happens what am I doing wrong? is that the way the signal is supposed to be used?

Godot version v3.3.1.stable.official
in Engine by (430 points)

1 Answer

+1 vote

hi.
maybe i could see your code? the way you describe your problem, everything seems to be right.

it should look something like this:

func _on_AnimationPlayer_animation_finished("walk"):
get_tree().change_scene("main.tscn")

pass # Replace with function body.

(thats just an example)

by (191 points)

it works when i use eg: AnimationPlayer.play("run") the animation_finished(anim_name) signal triggers but not when i use my_animation_state_machine.travel("run") to switch between animations.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.