Animations do not loop seamlessly

Godot Version

Godot 4.3

Question

I have a model in Blender that has a few animations and some of them loop, I made sure to move the final keyframe to the right by 1 for the looping animations. When I import the model into Godot 4.3 the animations do not loop seamlessly, I can fix this by shifting all keyframes to the right but it isn’t perfect and if I reimport the model I have to re shift all keyframes, is there either a fast way to make the animations properly loop in Godot or a way to make it loop fine on import from Blender?

^ Video to help show what I mean

Any help is appreciated, thanks!

I’m having the same issue here in January 2025 and I have seen concerns about this issue going back a couple of years. Did you ever find a fix for this? I am curious what you mean by shifting everything to the right. Did you do that in Godot or in Blender?

Unfortunately I didn’t find a good fix for looping when importing directly as a .blend file without editing the animations in Godot. The shifting to the right was in Blender where you take the last keyframes of an animation and shift them to the right by one just outside of the animation length to create a seamless loop, but this looping does not carry over to Godot. My current workaround is by making all animations at 60fps and importing to Godot at 30fps. There are some things you need to do to make them loop inside Godot, however I’m on my phone at the moment so when I am on PC I will record how I do this.

1 Like

You can try adjusting the type of loop interpolation for the animation. The change location is located in the Animation panel, next to the track’s delete icon.
However, according to the description. It seems that the default duration of the animation is not sufficient. Increasing the duration of the animation may solve this problem.

This video shows how I fix the issue, the model is imported how I said previously. You can see that the last frames are not spaced the same as the rest, so I delete them. I then increase the animation length and copy the first frames to the position the cursor snaps to when sliding to the keys we deleted. Then set the animation length to where you pasted those frames. I know I explained that strangely but the video should provide the necessary context.

I appreciate you taking the time to post the video, I will give this a try. I’m new to Godot, I didn’t even realize I could edit the animation like this in Godot directly.

I am working on it now, it is fixing the stuttering problem for me, thank you for that :smiley: I am very disappointed that I have go through this tedious process in order to get a clean looping walk cycle in Godot though :frowning: