Yes, the amount of bend for a fish on the screen is determined by a percentage between an unbent model and a fully-bent-left model. When the program starts, both models are loaded into memory, but neither is ever actually shown on the screen. The visible fish model is generated moment-by-moment from the two models in memory depending on how bent the fish should be at that instant. To bend it left, the x coordinates are added, and to bend right, they are subtracted -- that way only a bend-left model is needed, not an additional one for bending right. It gets into some fairly difficult programming, which a traditional animator would find rather foreign.
The fish do not actually have multiple-bends (like sine-waves) going through their bodies, though that is the impression I try to give. The combination of a single bend, turning based upon the amount of bend, and lagging of the fins is enough to fool most people.
|