When we were dragging the sprite images around one by one, I thought “There must be an easier way to make breakfast”, and I found one I like better.
A case like ours, where we have a bunch of image files instead of a single sprite sheet image for an animation, seems to be better supported by the AnimatedSprite3D node. It takes sprite animations via a SpriteFrames resource. (In the other case, plain Sprite3D would offer features to split the sheet that we now cannot use.) In the SpriteFrames editor we can bulk-drag all the images for one animation into the Animation Frames panel at once. To play the animations, we would not need an AnimationPlayer then.
But since I expect we might add more animation tracks later (e.g., sound and particles for footsteps), the playback of the AnimatedSprite3D can still be controlled via an AnimationPlayer. I set mine up so that one track sets the animation to be played, another track just does linear interpolation over the frame property, from the first to the last frame number.
I think this approach might be less effort to set up and to maintain, but it depends on the situation.
(Concerns lecture Adding Player Animations from the Godot 4 C# Action Adventure course.)