DEV Community

Richard McHale
Richard McHale

Posted on

Godot - Animation Mixer Couldn't Resolve Track

*TLDR; The root node had defaulted to "../.." and changing it to "." and manually updating the references in .tscn file fixed it *

Background

I ran into this when adding a UI component packaged as a Scene. There were no issues until I renamed the node to something else. Which

AnimationMixer (at: timer_display.tscn): 'RESET', couldn't resolve track: 'TimerDisplay/MeterFilled:visible'. This warning can be disabled in Project Settings.

(Structure of the UI component)

(Added into the scene)

The cause

The root node of the AnimationPlayer being "../.." means it's including the name of the root node of the components scene in the path for the animated node.

E.g. tracks/0/path = NodePath("TimerDisplay/MeterFilled:visible")

Which works fine when the component is left as TimerDisplay, but is an invalid path as soon as it's renamed.

Resolving it

There might be a UI way to do this, but I opened the timer_display.tscn in a text editor and updated the paths manually.

[node name="NewRowAnimationPlayer" type="AnimationPlayer" parent="." unique_id=722651116]
root_node = NodePath("../..")
libraries/ = SubResource("AnimationLibrary_5wr58")
Enter fullscreen mode Exit fullscreen mode

Changes to

[node name="NewRowAnimationPlayer" type="AnimationPlayer" parent="." unique_id=722651116]
root_node = NodePath(".")
libraries/ = SubResource("AnimationLibrary_5wr58")
Enter fullscreen mode Exit fullscreen mode

And

tracks/0/path = NodePath("TimerDisplay/MeterFilled:visible")
Enter fullscreen mode Exit fullscreen mode

Changes to

tracks/0/path = NodePath("../MeterFilled:visible")
Enter fullscreen mode Exit fullscreen mode

Top comments (0)