The image above is a frame capture from an abstract procedural animation generated by a MSG preset. The movement in the animation is built from a combination of attaching temporal generators to some MSG editable parameters along with the use of keyframe animation to interpolate between 2 different color palettes over the course of the animation. We’ll discuss how to build the animation to generate a seamless loop.
Note that i’m using 2 different instances of the SuperEllipseGen processor, which are composited together into a single image stream, and then mapped through a color gradient to generate the full color output.
The first gallery image above shows how I setup a series of temporal generators to build automatic procedural animation into my MSG preset. Most of the procedural animation movement is associated with the Ramp temporal generator attached to the Angle processor. The other 2 parameters with attached temporal generators lead to more subtle oscillations of the spine shapes. Both of the SuperEllipseGen processors have similar attached temporal generators.
The rest of the gallery images above show the IO (input-outpt) routing connections associated with the different processors in the preset. Note that the output of the 2 SuperEllipseGen processors are routed to the ROut and GOut image streams respectively. Those 2 image streams are then used as input for the 1C_Composite processor, which outputs to the ROut image stream. The final 1to3Gradmap processor that takes the black and white ROut image stream and uses it to index through a color gradient, generating a full color output that is routed to the 3 color (ROut,GOut,BOut) image streams for the MSG preset.
As mentioned above, the temporal generators attached to adjustable parameters create procedural animation over time. The temporal generator acts to automatically adjust the associated parameter based on the time based oscillator attached to the parameter. The time based oscillator maps the parameter between the Min_Tg and Max_TG values over the Inc_TG frame cycle time. The 200 frame Ramp oscillator attached to the Angle parameter is what predominates in the procedural animation. Since it’s Inc_TG parameter is set to 200 frames, using a 200 frame length for the animation output leads to a seamless loop animation.
The paint animation sequence (PASeq) shown below was used to generate the animation.