It took me almost 4 days to animate these five stages. I learned a few things during the animation of birds:

1 Bird animations are distinguished from other animals’ animations by the point that a bird’s head is static compared to its body.
2 After practice, separating the wings, claws, and bird heads is better when keyframing birds.

3 And I used a tag to name the content of each keyframe; for example, the first red keyframe is the flying loop.
Here I skip the jumping stage because it seems that this stage is not used.
At this point, I have basically completed the animation of the pigeon. But here the is in place animation. In other words, the pigeon does not move.

So here I parented the two Ik of the pigeons to a locator. This makes it possible to move the pigeon by moving the locator. The next step is to add keyframes to the locator.