Sif Format

From Synfig Studio :: Documentation
Revision as of 17:47, 5 January 2016 by Rsg167 (Talk | contribs) (Refined the Concepts section)

Jump to: navigation, search
Languages Language: 

English


A .sif file is the XML representation of a canvas. It holds the canvas's metadata, such as width and height, as well as information about its layers. Typically, a Synfig production comprises many .sif files joined in a sequence or nested within each other.

The .sif format is formidably complex and evolving. It is implementation-defined rather than spec-defined. Therefore, you should take everything on this page with a grain of salt. Indeed, the implementation can change at any point.

There are no plans to freeze the format.

Source code

The .sif format is implemented by the following file:

https://github.com/synfig/synfig/blob/master/synfig-core/src/synfig/loadcanvas.cpp

The format as of January 2016

Concepts

.sif files aren't always self-contained. They can import (read: link to) other .sif files, which creates a dependency of one on the other. This may seem strange to animators who use Flash because, in Flash, importing something causes it to be embedded in the current animation.

One drawback of Synfig's approach is that .sif dependencies can be hard to track. A tool called Remake solves this problem.

Recursion of .sif files is prohibited.

XML

<canvas>

The top element of a .sif file is always a <canvas>.

<?xml version="1.0"?>
<canvas version="0.1" width="300" height="350" xres="2952.7559"
        yres="2952.7559" view-box="-1.5 2.5 1.5 -1" antialias="2"
        fps="12" begin-time="0f" end-time="0f" bgcolor="0.5 0.5 0.5 1">
    ...
</canvas>
Attribute Required? Value
version yes 0.1, always
width no the width of the canvas in pixels
height no the height of the canvas in pixels
xres no the width of the canvas in Synfig's own units (?)
yres no the height of the canvas in Synfig's own units (?)
view-box no the bounding coordinates of the canvas (Xmin Ymin Xmax Ymax)
antialias no how hard Synfig should try to antialias the image
fps no frames per second
begin-time no what frame rendering should start at
end-time no what frame rendering should end at
bgcolor no the color of the background
<canvas> Children

Inside a <canvas> you can find the following elements:

  • <defs>
  • <meta>
  • <name>
  • <desc>
  • <author>
  • <layer>
  • <bones>
  • <keyframe>


Languages Language: 

English