In a way, synthesizing procedural animation is a lot like synthesizing music: you create signals, and then you run those signals through filters to give them character. This is how we will animate our little eyeball friend — I guess we might as well call him iGor. 🙂
To make iGor look around, we need to synthesize a signal that will create a sort of unpredictable yet purposeful movement — as though he is looking at various things around him. To do this, we will need two tools: noise and gain.
The noise signal is the same noise I created to make procedural textures, except that we will vary this signal just over one dimension (time), rather than three dimensions (space). Noise by itself is rather flavorless — it just creates a signal that goes up and down over time smoothly but unpredictably:
But you can then shape this flavorless signal in different ways to get what you want. In our case, we want iGor to appear purposeful, so we will add gain to the noise to make it move more decisively: When the noise signal goes up, it will go up faster, and when it goes down, it will also go down faster. The more gain we add to a character’s movement, the more decisive that movement will seem.
You can see how this works by clicking on the image below to run a Java applet:
As you play with the applet, try varying the value of gain. You will see that after the gain filter is applied, the range of values stays the same. But the high gain noise signal spends more time near its lowest and highest values, and less time near the boring middle values.