Anatomy of a Synfig Animation
An animation is a sequence of images or "frames" that are displayed to the viewer in quick succession to create the illusion of smooth motion. Synfig Studio allows us to specify how all of the frames should be drawn without requiring us to manually draw each individual frame. Within Synfig, this animation specification is called a canvas. A canvas specifies when the animation starts and ends, how many frames should be drawn each second (i.e the framerate), the width and height of the frames, which frames we want to most directly control (called keyframes), and most importantly how to draw a frame.
We specify how to draw a frame using a list of steps called layers. A frame starts as a transparent image. Each layer/step changes the frame's image in some way. It might add a shape to the image, rotate or blur the entire image, or even combine it with a frame from some other animation. How the image is changed by a layer is controlled by the values of the layer's parameters. Each type of layer has it's own set of parameters. Layers which draw shapes have parameters such as the center and radius of a circle or the position of the list of control points of a curve. A layer which rotates the image has a parameter for the angle of rotation. A layer which blurs the image has a parameter for the amount to blur it.
One of the most powerful types of layers, the Pasted Canvas or Inline Canvas layer, creates a frame from another animation and uses it to modify the existing image in the current animation. There are parameters for which animation specification (i.e. canvas) to use and how to determine which frame to draw. Since each canvas has it's own list of layers, these kinds of layers can be used to build more complex animations from simpler ones.
Many types of layers modify the existing image by first creating a new separate image. This new image is then "blended" with the existing image to create the modified image. The "blend method" parameter value controls how each pixel in the existing image will be changed based on the color and transparency of that pixel and the pixel at the same location in the new image. There are many blending methods to choose from but the most commonly used is the composite blending method. It effectively places the new image on top of the existing image, letting the existing image show through only where the new image is transparent. The amount parameter value controls the amount of blending to do. For example, when using the composite blend method the amount parameter controls how much the existing image should show through the new image.
When drawing a particular frame, Synfig needs to determine the values of all of the parameters for all of the layers at the frame's time within the animation. If we want we can set the value directly for a particular frame. This establishes a waypoint for the value at that frame's time. The waypoint ensures that the parameter will have the specified value at the specified time. Of course, directly specifying the value for each frame is not practical. To avoid this, we can let Synfig interpolate the value based on the surrounding waypoints. There are a variety of interpolation methods from which to choose. The default interpolation method causes the parameter value to pass smoothly through the waypoints.
Parameter values can also be specified in more advanced ways. We can indicate that a parameter value should always be the same as some other parameter value. The most common example of this is linked control points. For example, when we draw a shape with the Bline tool, it can create an outline layer and a region layer and link the control points for the outline to the control points for the region so that changing one will also change the other. We can achieve a similar effect with other parameters through a process called Exporting and Connecting. For even more advanced control over parameter values, we can convert a parameter to be one of many types of computed parameters. This will cause Synfig to compute the parameter value based on one or more other parameter values.
To summarize, an animation is controlled by time-varying parameter values which are interpolated between waypoints or computed from other parameter values. The values of the parameters for a particular frame determine the ways that the layers create the image for that frame, one step at a time. There are many kinds of layers, including layers that draw shapes on the image, rotate the image, or blur the image, and parameter values control things like the position and colors of shapes, and the amount an image is rotated or blurred. There are also layers called Inline Canvas or Pasted Canvas layers which can create a frame in a different animation and use it when creating the current frame. A list of layers with their time-varying parameter values, along with information such as frame size, framerate, and the times of keyframes, specifies an animation. In Synfig, this animation specification is called a canvas.