godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.23k stars 21.22k forks source link

Animation call method track not being called in inherited scene #87403

Open nagasawamaki opened 10 months ago

nagasawamaki commented 10 months ago

Tested versions

v4.2.1.stable.official [b09f793f5]

System information

Godot v4.2.stable - Windows 10.0.19045 - Vulkan (Forward+)

Issue description

When inherited gltf animated model to a scene, the call function in animation player not called.

Steps to reproduce

Inherit an animated gltf/glb format to a scene. Edit the animation player and add a function call track in one animation

play the animation. the function can not be called.

Minimal reproduction project (MRP)

call_func_in_anim.zip

chryslenne commented 8 months ago

Good day,

You need to reimport the asset with the animation "idle" set to these properties:

image

Any path will do.

Writing down any custom tracks to an animation belonging to an inherited scene will not be saved as stated here when you view the animation before adding a new track to call a method:

image

And reload the project just in case however and it will call the method just fine: 87403_call_func_in_anim.zip

So I believe this is working as expected.

januarydev commented 3 months ago

Bumping as I'm also seeing this issue. It seems to work fine in a simple scene, but upon changing some parameters / moving nodes around, moving a branch into its own scene and instantiating it as a child scene, etc., call method tracks seem to completely stop working. Tested in stable 4.3, attaching a reproduction project.

call_method_track_test.zip

Play this project, click to activate the "jump" animation which has a call method track to print "1 2 3 4" to the terminal as the animation plays. This worked on first creation of the project, but after making some changes and trying again it all of a sudden no longer works. I'm seeing this behavior on a large project that I'm working on as well. On that project (which has many layers of child scenes as my animation controller is a component used inside both my player and enemy scenes), the call methods tracks on my animations completely refuse to work.