This doesn't seem like a problem for Godot to solve. What are the dimensions of each of the animation frames? If you equalize them all using negative space, this shouldn't be a problem anymore. I don't know how that works with meshes though, I haven't gotten into them at all.
Another option if you wanted to fix it in Godot alone would be to figure out the proper positional adjustment that needed to be done for each frame, and then connect your AnimatedSprite to its own frame_changed()
signal. Each time it receives the signal, you have it check what the current animation and current frame is using get_animation()
and get_frame()
, then modify the AnimatedSprite's position based on each individual frame's needs.