Importing / copying objects

I’ve been doing some experimenting with importing and copying objects and found that there is no way in Synfig to make a clean copy, completely independent from it’s source if this contains exported values.

In this experiment I’ve used 2 scenes: A - the source & B - the new scene into which I’m pasting/importing.

Copying from A to B. select layer in A, copy, paste in B.

  • Exported values are linked to A from B, editing an exported value in B is actually done in A.
    saving B after editing exported value in B. after reopening B (exported value) changes is lost.
    saving A after editing values in B, closing B without saving then reopening B changes is there. Changes is exported values is saved only in exported values home canvas.
  • No exported values is displayed under “Value Base Nodes” in B but are noted as (linked values) in params window.

Import A into B
*A is referenced in B, any changes made in B is actually taking place in A.

Intermediate copy-file

  • save A as A2, copy from this to B.
  • A and B is now independent from each others.
    However, exported values is still saved in A2 so this always have to be saved after animation work in B.
    There is no exported values under “Value Base Nodes” in B to be used for linking etc.

There is currently no way in Synfig (correct me if I’m wrong, it would be great if I was) to get a clean copy of an element that is completely independent if this contains exported values.

Also I think “Import” is named a bit off. What in many other programs is called import is making a copy of files or elements in files in current file. In Synfig import is making a link to another file.

In Blender there are two options for importing/copying called “Link” or “Append” -
"In the File Browser window header, use Append (button enabled by default) if you want to make a local independent copy of the object inside your file. Select Link if you want a dynamic link made to the source file; if anyone changes the object in the source file, your current file will be updated the next time you open it. "

I think there needs to be a way in Synfig to make a clean copy of objects without having to worry about exported values and other files.
Exported values should in these copies be made local so their parent is the current canvas.

Any suggestion to fix duplicated value nodes? (i.e. B.sif:value is defined and A.sif:value too)

It’s could perhaps be solved in a few different ways:

  1. Do a comparison of exported values existing in scene and exported values in imported material. If duplicates are found rename imported values with a appendix.
  2. If duplication check should be avoided always apply an appendix on imported exported values.
  3. Make imported values subordinated by the current canvas values and have values linked to imported values be linked to canvas values instead. Might lead to some very strange results, even serious breakage (?).
  4. Refuse to append if duplicated values are found, link instead.

For me 1. or 2. is preferred. Perhaps even 4. 3. seems like a bad choice.

I understand the problem. But “Import” is very good word to handle placing external data.
I would prefer to have two menu items:

  • Import (Link)
  • Import (Append)

Yes, two ways of importing would be very, very useful.

is there a way to unlink them ?
some way of doing it in a text editor ?
or using the test editor to copy them ?

i really like synfig but i cant remake a character anytime i need to reuse them in a different project
and i would find it supper awesome if i could do things like make a basic bone structure and reuse it for new characters

i have some experience programming, html, java script, css, ruby.
i have also edited svg’s manually before.

I don’t think so.

You can copy layers in text editor from one file to another. If you use “exported” values, you’ll have to take care of them as well). Bones should be copied as well (they are in different section than layers).

Amen to that! I have been waiting for that feature since I started to use Synfig. About more or less 5 years now… :frowning:

1 Like


I am a noob with Synfig. I was making an animation and created one character with its bones in order to maintain it without modifications, and tried to import to my main file to animate it, but all it says is: “The value you are trying to edit is in a composition which doesn’t seems to be open. Open that composition and you should be able to edit this value as normal”.

So I started searching of an option called “Open composition” or alike to edit my object. It seems what it means is that you must have both files open at the same time, so every modification gets done on the original file, as everyone comments in this thread.
I understand that this behavior would be suitable to just use some blobs in your animations while the ilustrator/characterDesigner polishes the objects, so it gets rippled automatically to all your animations, but doesn’t work even for this since the bones and any transformation to single inner layers are linked too.

In fact, I used diff and found that Import just adds a layer with:

<layer type="group"...> ... <param name="canvas" use="TheImportedFileName.sif#"/> .... </layer>

What is the functionality for “Import”? I really don’t see it. I am not an animator nor illustrator, so I assume there is something I don’t see :slight_smile:

What @Genete tells here seems to be wrong. I created a canvas with a circle and a square and still ask me to “open the composition” if I want to modify anything once imported. Maybe I am doing something wrong.

So I am sticking to the solution told by @rylleman here, but it is more challenging since I have bones with GUID to copy too, not only canvas tag.

By the way, in the meantime I found out that there are issues when writing .sif files if in the path route are spaces :stuck_out_tongue: That gave me a good headache.

The “import (copy)” feature would be great :slight_smile:

Synfig 1.3.6


Since this feature is missing for more than 5 years, I created a tool to import layers :stuck_out_tongue: I did not implemented it in Synfig’s sourcecode because I don’t have plenty time to get involved in the project (I am already in other open source projects), so I did with the fasteste and best I could, sorry :frowning:

You can check it at:

I would be happy if someone wants to translate it to russian (.po files with not much texts, just PM me).

And if anyone knows much about .sif files, I would like to comment some details I have seen while doing the tool. Please PM me!