"The value you are trying to edit is in a composition that doesn't seem to be open"

Hi. I’m a beginner/intermediate animator who is trying to migrate from Pencil2D to Synfig Studio. I’m rather new to the software, as I only discovered it a month prior.

I’m currently working with bitmap images (PNG), with every single part in its own layer and groups (I’m trying to stay organized), but I keep on getting this message:

I haven’t figured out what “compositions” are, and how to open them. Can anyone tell me how to open them so I can edit them? I’m gonna need some step-by-step instructions/images to work with, as I’m still new to the software, as I’ve said before.


Pencil2D and Synfig are too very different programs, so you may have some struggles.
The error that you’re getting tells you that you’re trying to modify external resource (canvas) that you imported into your main scene.

You do remember hitting this “Import” button?

If you chose another .sif file then this is what Synfig doesn’t like.
In order to edit one .sif file (what is referred as ‘composition’ in your error message) from another .sif file you need to have both files open in separate tabs.

So, if you have file named “Scene1.sif” and you imported a file named “Character1.sif” into it and want to modify “Character1.sif” from “Scene1.sif” you need to open “Character1.sif” also (Menu->File->Open).

And if you think “this is hella awkward”, I do agree. As a user I also have an issue with that.

  1. Do you suggest a better warning message?
  2. Should we automatically open/load the file (for editing) in case an user decides to change a value from this external file?
1 Like

This. Although, there are three quite big problems here.
First, how are we going to handle save button?
Second, how are we going to handle undo/redo history?
Third, if user opened the linked file in a separate tab, what now?

The first issue can be tackled in two ways:

  1. We save the main work and then ask user to either save or discard changes for every modified linked file.
  2. We save everything quietly.

I personally vote for the second option, because as a user I don’t care about files, I care about the project. And if I modified a linked character file then I obviously want it to be saved.

The second problem can only be handled by making undo/redo stack be aware of linked canvases. Otherwise, the user might hit CTRL+Z and it will cancel wrong action in the wrong canvas which will lead to a complete mess. I didn’t see the code but it might be tricky to implement.

The third problem doesn’t really need anything special, we just treat the opened project as if it was a separate canvas with all of its states (animation on/off, type of animation, future/past keyframes, etc.). Pretty much like it is treated now.

Lastly, a workaround can be made. If a canvas has linked files we automatically open them in new tabs. This won’t improve the creative workflow, but at least it won’t bug the user with strange warnings. Can be a temporary solution.

And of course, we’re talking about drastically changing the behaviour of the program so it should be put to a discussion/vote. Maybe someone will point out why we should keep things the way they are now.

It seems to me there is another way here, although I’m a new user and so perhaps I’m misunderstanding something. In most applications when doing an operation called “import” with something created externally, you aren’t linking to the original; you are pulling a copy of it into the containing document. When you then attempt to alter it, you’re thus not altering the original at all, but only the version embedded in the working document. So here I could envision two solutions. One would be to do a true import rather than a link. The other would be to adjust the interface terminology so it is clear that you’re linking to an external document. (This isn’t clear today, and the message surprised me when I first encountered it for exactly the same reason.) Maybe best of all, which some applications allow, is letting the user choose whether to link to an external file (which can be very useful in compositing) or to embed an imported copy of that external file (also very desirable in some circumstances, like where the external file is just a starting point, or where it may be changed later and you don’t want it affecting the compositions that depend on it).