The Gimp Animation Package, or GAP, is a plugin that lets you do video or animation in Gimp. Like most plugins in Gimp, it is both very powerful and very unfriendly. If you have done animation in a program like Flash, you are used to having frames laid out along a visual timeline. The timeline in Flash has a bracket to show the onionskin range, which is the frames you will see overlaid on the current frame to help create a smooth animation.
None of this is readily apparent in GAP. Each frame is a separate Gimp file, and GAP sees that they’re part of the same animation because the file names end with successive numbers. There is an onion skinning item in the GAP menu (cleverly disguised as Video), but it doesn’t seem to do anything until you configure it correctly.
To configure onion skinning in GAP, go to Video » Onionskin » Configuration…. The onionskin configuration in GAP is exquisitely flexible and confusing. Here is how to configure onion skinning in GAP for a couple of common scenarios. Note that I’m using Gimp 2.8.2.
Overlay the previous frame
With onion skinning configured this way GAP will put the previous frame on top of the current frame, but with lowered opacity, and it will wrap around at the first frame. This can be useful to draw keyframes as you’re building an animation cycle.
- Reference Mode Tells GAP how to select frames for the onion skin. This parameter doesn’t matter when we’re only using one frame. With more than one frame, it works with the Frame Reference parameter to make the list of frames that become onionskin layers.
- Onionskin Layers How many frames to use in the onionskin stack. Here we want to use one.
- Ascending Opacity If this is checked, the frame that is farthest from the current frame will be most opaque.
- Frame Reference This number multiplied by the sequence in Reference Mode gives the offsets to the frames in the onionskin layers. For example, using bidirectional double mode with a frame reference of -1, the first onionskin layer is the previous frame, the second onionskin layer would be the next frame, the third would be -2 (the second previous frame, etc.).
- Cyclic If this is checked the onionskin layers wrap around at the ends of the frame stack.
- Stackposition This is where to put the onionskin layers. We’re telling GAP to put the onionskin layers at the very top. Changing this might be useful if you’re animating a layer in the middle of your stack.
- Opacity The first number is the opacity of the first onionskin layer. The second number is multiplied into the opacity for each successive onionskin layer. So with our settings the second onionskin layer would have opacity
0.70 * 0.50 = 0.35, the third would have opacity
0.70 * 0.50 * 0.50 = 0.175, and so on.
- Layer Selection This can be used to only use certain layers in each frame for onion skinning. The settings shown will use the entire frame.
- Auto create/delete Check these so that the onionskin layers don’t show up in thumbnails. This is useful when using the GAP animation preview tools, but remember that you still have to delete the onion skin layers before exporting the animation or saving a frame.
Overlay the previous and following frames
This onion skinning configuration will let you see the current frame through the two surrounding frames. This is useful for drawing in-between frames to make a smooth animation. You can see that the only change required from the previous settings are to use two onionskin layers. This gets the previous frame and the next frame. If you need more frames to draw your tween, just use more onionskin layers.
When I’m drawing tween frames, I often need to adjust the opacity on the onionskin layers. You can directly change the opacity on these layers as you would with normal Gimp layers. The next time you change frames, the new onionskin layers will be created with the opacity from the onionskin configuration.
I hope this helps explain how to configure onion skinning in GAP, and makes some of these options less confusing. I’d love to see some of the animations you make with this, so share in the comments or hit me on twitter!