Replacement animation

Replacement animation is much used in cut-out animation where one piece of paper is switched for another, an open hand switched to a closed for example.
It is possible to do in Synfig by exporting canvases and then switching between theese in a paste canvas. There are however some quirks in this workflow, some things that can be improved and polished.

Here are some suggestions for making Synfig a bit easier to use in this aspect.

  • There are no indication in the timeline of when there is a switch in the canvas channel. This makes it very hard to see whats going on and to change durations etc.
    We would need some indication. Ordinary interpolation icons would no make sense. If not creating a new icon we could perhaps use the grey mixed interpolation icon?

  • In the canvas drop down menu we get all exported canvases which can be a lot sometimes.
    It would be great if we could filter this list. Perhaps by using suffixes. Naming the master paste canvas {LL}left_leg would display only exported canvases starting with LL. - LL_01-straight, LL_02-bent, etc.

  • Set canvas from canvas browser or children panel - If a paste canvas is selected in the layers panel, righ clicking a canvas in either gives an option to apply this to the canvas parameter in the selected layer. (could be useful for other exported values as well)

  • Oh, how I would love some kind of macro function in Synfig for those tedious repetitious tasks like setting up replacement animation parts. (select image layer>encapsulate>rename based on image file name>export canvas>name export with same name)

Does anyone else have any suggestions regarding this?

some kind of navigator with image preview of the exported canvases when user select “other” would be also a great help.

There is, but in replacement of the current behavior (show the sum of the children layers waypoints). If before run synfigstudio you export the environmental variable SYNFIG_SHOW_CANVAS_PARAM_WAYPOINTS to be true, then it shows the canvas parameter waypoints instead of the children ones.


Thank you! Exactly what I want!
Very well hidden I must say. Is there some way this could be made to be set with an option from within Synfig? Or does it need to be set before synfig starts?

It can be an option. But it is now the right definitive solution. There are some other -more complex- alternatives to show canvas parameter waypoints as well as children waypoints. I think the wish list has something about it from zelgadis.


Also, if you encapsulate the paste canvas that has the canvas parameter animated you can see its waypoints for canvas parameter switches.

Paste Canvas A << shows the waypoints of B
-Paste Canvas B << has the canvas parameter animated

Since the Paste Canvas Layer collects all its children layers animated parameters waypoints, the canvas parameter waypoints of its children Paste Canvas layers are collected too.


 How about using the Key frame panel to create our filter and using it as a Reuse Animation tool.


After creating Paste Layers creating all needed poses,each pose as a new Paste layer.Export Needed Paste layers to the Canvas Browser. Then Clean up exported Paste layers from the Layer panel.

Add new Paste Layer from Layer menu  

*1 select a Canvas from the Params panel at 0fs 0f add key Frame. In Description Name it.
*2 Increment by 1F select another Canvas from Params panel add Key Frame.In Description Name it.
*3 Repeat till all needed canvases are added and named.

*Repeat for all parts needing Reuse animation.

In Render Dialogues Time Tab set Start Time to 1S at 24 fps creating a Key Frame Buffer of 24 Key Frames. All Key Frames Before 1S will be hidden in Time Track but still Acesable from the Key Frame panel.

To animate Select Paste layer,In time Track place time cursor In Key Frame Panel select Key Frame hit Duplicate Button. Repeat To create animation.

So do you think this could work as a Reuse animation Process.

Yeah, this is the right way to do it. The interface to add/edit poses (stored keyframes not visible in the timeline is the most need thing to code.
This can be combined with any other kind of lipsync or pose import to share between aniamtions (walk cycles for example)

While working on a new figure I wanted to use a mouth with poses already created.
Imported the canvas and placed its layer in the proper position. Re sized Using zoom and tweaked
import canvas.png

Now I had an Imported pose library. Switch Character canvas to poses Using the Sifz Canvas selector on the vertical dock. In parameters Select Canvas to switch pose.

Return to Character using Sifz Canvas selector.

To create a pose sifz library Select and Copy the layers from your character Paste into a new canvas

Then Import canvas back to your character place layer where eyes would go. Now I’m ready to create eye poses.

Here are the files
mouthCOMP2.sifz (3.84 KB)

eyesanime.sifz (7.29 KB)

.girluniform for imports.sifz (45.9 KB)

Download all three then open

Can’t open girluniform blend.sifz, (Uncaught error BUG). Maybe the file is corrupted when zipped?

reloaded files not zipped after fixing . Was using cross compiled windows bone branch moved to mint and main 6.4 branch The imported layers could of been the problem?

Sure it is.