The animation is done through vertex shader flapping and smooth mesh swapping. The flap time is offset by vertical position, which makes them differ from each other and flap faster when going up. This thread by @matt_nava was very helpful:
The animation is done through vertex shader flapping and smooth mesh swapping. The flap time is offset by vertical position, which makes them differ from each other and flap faster when going up. This thread by @matt_nava was very helpful: