35.7 C
New York
Wednesday, July 30, 2025

second – What am I lacking to get my animation working


I exploit Godot 4.4 and gdscript. I’ve a 2D isometric character with a whole bunch of sprite sheets for various angles and weapon standing. Its not possible to do that within the editor so I have to do it programmatically.

If I save the animation library as a tres file that is whats in there

[gd_resource type="AnimationLibrary" load_steps=2 format=3 uid="uid://dcmm5oh2n8xnt"]

[sub_resource type="Animation" id="Animation_rwyx4"]
size = 2.0
loop_mode = 1
tracks/0/sort = "worth"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:body")
tracks/0/interp = 0
tracks/0/loop_wrap = true
tracks/0/keys = {
"occasions": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"replace": 0,
"values": [0, 1]
}

[resource]
_data = {
&"Idle_Unarmed_Body_090": SubResource("Animation_rwyx4")
}

Right here is without doubt one of the sprite sheets for 90 levels.

The code. I get an error stating animation not discovered once I play the animation.

var sprite_texture: Texture2D = load("res://characters/gamers/spritesheets/Idle_Unarmed/Idle_Unarmed_Body_090.png")
collision.add_collision(self, sprite_texture.get_width(), sprite_texture.get_height())

$Sprite2D.texture = sprite_texture
$Sprite2D.hframes = 4
$Sprite2D.vframes = 4
$Sprite2D.body = 0

var animation_library: AnimationLibrary = AnimationLibrary.new()
$AnimationPlayer.add_animation_library("Idle_Unarmed_Body_090", animation_library)

var animation: Animation = Animation.new()
var index: int = animation.add_track(Animation.TYPE_VALUE)
animation.track_set_path(index, "Sprite2D:body")
animation.track_set_enabled(index, true)
animation.track_set_interpolation_loop_wrap(index, true)
animation.track_insert_key(index, 0, 0)
animation.track_insert_key(index, 2, 1)
animation.value_track_set_update_mode(index, Animation.UPDATE_CONTINUOUS)
animation.size = 2
animation.loop_mode = Animation.LOOP_LINEAR

animation_library.add_animation("Idle_Unarmed_Body_090", animation)

#$AnimationPlayer.root_node = "Sprite2D"
#$AnimationPlayer.assigned_animation = "Idle_Unarmed_Body_090"
$AnimationPlayer.play("Idle_Unarmed_Body_090")

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles