Synfig slowing down as animation length increases. (Follow up.)


Previously, there has been a post on fixing an issue relating to Synfig; the longer you attempt to make an animation, the laggier Synfig gets. The solution to this problem, according to the post, is to set unused scenes’ “amounts” to 0. I have tried this solution, but it has little to no effect on Synfig’s speed.

So far, the only way I can reduce lag in Synfig is to do as the author of the post did; uncheck unused scenes through the “layers panel.”

This is why I’m reaching out to you, Synfig! Do ya’ll suppose you can allow for adding waypoints to represent when a layer is checked/unchecked in the “layers panel,” or just make Synfig not render objects that are invisible or not in the canvas?


~ HipsterTypist (Mark Dyson)

Length is not the case. It’s something else.

OK, don’t panic man. You stepped on a dangerous land of making a complex animation in Synfig which can be very frustrating. To help you or, at least, clarify some things I need answers to the following questions:

  1. What version of Synfig are you using? Each one have its own flaws.
  2. Analyze your work. Do you have a lot of blur/distortion layers? Or maybe your project consists of a lot of vector shapes (outlines, regions)?
  3. What’s your project’s resolution (640x480, 1280x720, …)?
  4. Do you have any big raster images (external .png for example) in you work?

Hey! I know it’s not length. I know it’s the number of LAYERS present in the project that slows it down. The issue is that Synfig still renders the layers unnecessarily despite having 0% opacity. The program speeds up when I uncheck the layers in the layers menu.

The issue is that when the time comes for Synfig to render the animation, I need to check all of the boxes in the layers menu, slowing down the program and making rendering take ages.

It would be useful if you could animate those check-boxes in the layers panel to activate/deactivate as time goes on.

Here’s the finished animation:

Or synfig core should just ignore layers that have 0% opacity.

@HipsterTypist could you please answer to Svarov questions?

Aha, I see now. Your animation doesn’t have any heavy blurs or distortions so yeah, it’s just Synfig rendering all the off-screen layers for you. Opacity is not the way to deactivate the layer if we both think about the same opacity (alpha channel in color menu).

You can go two ways about this:

  1. Separate your work to several sif files depending on scenes and switch off not needed layers the usual way (unchecking boxes) in each file. Then you render the files separately and put them together in video editor.
  2. The way you want it. Hide currently inactive layers by setting ‘Amount’ parameter of a layer/group to 0. It’s better to use constant interpolation for this. When time for a certain group arrives, you set it back to 1 in animated mode.

If second option is not clear enough, I can make an example I guess.

I really like #1. As for #2, I did that for the animation. It appears Synfig still renders things that have 0% opacity.