Suppose you've made a few different scenes in separate .sif files and want to edit them together.
Of course, you could render each .sif file to a separate video file and use some kind of video editing software to edit it together. But what if we want to use Synfig itself to do the editing?
In this example I'm going to take 3 sifz files made by Zelig and mix them together:
- Sy-n-fig-s1-hi.sifz - a 3 second introduction scene (scene 1)
- Sy-n-fig-s2-ball.sifz - 28 seconds of animation (scene 2)
- Sy-n-fig-s3-boid.sifz - 6 seconds of a different scene that needs cutting into the middle of scene 2
Make a new document in Synfig and set its time to 47 seconds (3 seconds for scene 1 + 28 seconds for scene 2 + 6 seconds for scene 3 + 5 seconds each for opening and closing titles).
Using Caret>File>Import, import each of the three scenes one at a time.
Select each of the three scenes in turn in the layer dialog, and export its canvas in the parameters dialog by right-clicking the Canvas Parameter and selecting Export from the context menu. Call the exported canvases "scene1", "scene2", and "scene3". Now we can delete the three group layers from our document. We don't need them yet. Note: The Export context menu is not available for imported files in recent versions due to a previous bug already fixed. The external files can be referenced using the canvas parameter nomenclature so it doesn't need to be exported at all.
We don't have any opening or closing titles, so we're going to have to make those ourselves. Make a new text layer: Caret > Layer > New Layer > Text and edit the Text Parameter to say something appropriate for the opening titles.
Group the Text layer, and export the group layer's canvas parameter. Call it 'titles'.
Turn on Animate Editing Mode, and make a keyframe at frame 0, and set the default interpolation type to "Constant". This can be found in the main 'toolbox' window, right at the bottom. It defaults to TCB, but we want our edits to happen exactly when we specify them rather than taking the risk that TCB waypoints will somehow try to 'smooth' them.
Looking at the dialog now, we notice that we forgot to put a background behind the title text. Go to the Canvas Browser Panel Dialog, open up the tree and double-click 'titles' to open the titles sub-canvas in a new window. There we can modify it. Add a new Solid Color Layer, make it white, and put it below the Text layer. Then close the sub-canvas window.
We want the first scene to start displaying at 5s. Move the time slider to 5s, make sure the main workarea is selected, select its only layer, [titles], and edit its Canvas parameter to be the 1st scene. The menu displays the titles of the scenes. Scene 1's title is "Sy'n'Fig say hi".
If we play the animation now, we'll see the title frame for 5 seconds, and then it will jump to the 1st scene. But the first scene has already ended - they've already done their wave. We need to delay the first scene by 5 seconds, so it only starts to play when it's displayed. With the time slider at 5s, edit our only layer's "Time Offset' parameter to be -5s. Now when we preview the animation, we see the static title frame for 5 seconds, and then the scene 1 plays until 8s.
Move the time slider to 8s and edit the Canvas Parameter to select the 2nd scene. Again we'll need to delay the start of this scene, so set the "Time Offset" to -8s.
Now we want to cut scene 3 into the middle of scene 2. Playing with the time slider in the main workarea, we see that we want scene 3 to be cut in at around the 23s mark (15 seconds into scene 2, which started at 8s). Adjust the time slider to 23s and switch the canvas to scene 3. Adjust the Time Offset parameter to -23, so that scene 3 starts when we switch to it.
Scene 3 lasts for 6 seconds, so fast-forward to 29s and switch back to scene 2. We'll need to edit the Time Offset parameter there to make up for the 6 seconds that scene 3 played for. Previously, scene 2 was delayed by 8 seconds, so now it will be delayed a further 6 seconds, making a total of 14s. Change the Time Offset parameter to -14.
Scene 3 will end at 5+3+28+6 = 42s, so move the time pointer there, and switch back to the titles canvas. Change the Time Offset to 0.
Open the Canvas Browser Panel, double-click the titles canvas, move the time slider to 42s and edit the titles text to show the closing credits. Note that the titles are in a separate canvas from everything else, and so have their own set of keyframes. Currently they have no keyframes, so if we edit the title text, it will change for all time. To prevent this, make a keyframe at frame 0. Note also that Animate Editing Mode is a per-canvas setting. It's on in the main workarea, but off in the sub-canvases, so you'll need to enable it here before editing the titles.
Close the titles sub-canvas and we're done.
I ended up with this file: Media:Sy-n-fig-mixed.sifz
Note that using the 'Canvas' parameter to switch scenes will always cause an instant switch. If you want to fade from scene to scene, you can use 2 different layers, fading one out while the other fades in. Animate the Group Layer's "Amount" parameter from 1 down to 0 to fade the scene out.
Note also that we end up with a single huge file which includes copies of the three imported canvases. If we wanted to end up with a small file which referenced the imported files rather than copying them, then we could group the imported layers and export the canvases from the new group layers. I think that would leave the imported layers as file references. Please try it and update this tutorial with your findings... Also, if we went that route, we could give each scene its own Time Offset value, and not have to keep messing with the Time Offset in the master canvas.