Doc:How Do I
Feel free to add your own questions here. Or put them on the Wiki Wish List.
- 1 Apply a gradient to an object instead of the entire canvas?
- 2 Show or hide a layer, or fade the effect of a blur?
- 3 Fill an outline?
- 4 Dock windows together?
- 5 Use an external bitmap?
- 6 Close a bline?
- 7 How do I transform encapsulated objects?
- 8 Make objects go behind each other, without moving layers?
- 9 Copy a complex convert combination between parameters of different layers?
- 10 Make an existing animation run at half speed?
- 11 Draw a rectangle with a given width and height?
Apply a gradient to an object instead of the entire canvas?
- Create the region you want to fill with a gradient, and the gradient layer, if you haven't already.
- Make sure that the gradient layer is above the region layer in the Layers Panel.
- Select both layers, right click, and select Encapsulate.
- Expand the new Inline Canvas layer if it's not already, and select your gradient layer.
- In the Params Panel select the Blend Method parameter, and choose Onto from the drop-down menu.
The gradient will clip to the visible area of the region below it inside the Inline Canvas. (and any other layers in that section).
Show or hide a layer, or fade the effect of a blur?
In other words, for a typical layer, this will 'fade it out'. For a Blur Layer set to "Straight", this will fade between the blurred version and the unblurred version of the canvas. If you want it to become less blurry, adjust the Blur Layer's 'size' parameter.
Fill an outline?
(Requested by Karlb)
There are several options:
- The easiest way is to link a new region layer to the outline's shape.
- Select the outline you want to fill.
- In the Params Panel, right-click the Vertices parameter, select "Export", enter a name for the shape, and hit return. This will export the shape of the outline, making it visible in the Children dialog.
- In the Children dialog, open the ValueBase Nodes tree and select the name you just saved the shape as.
- Create a new region layer as above, and leave it selected.
- In the parameter dialog, right-click the Vertices parameter and click "Connect".
- Similar to the above, but using a different method:
- From the Layer Menu (either context-click on the Layers Panel or use the Canvas Menu Caret) create a new Region Layer
- Make sure that the Region Layer will be used in preference to the Outline Layer when linking - see the page on Linking for the somewhat complex rules about this. Usually just moving one of the vertices of the layer whose shape you *don't* want to keep will do the trick.
- Select both layers in the Layers Panel This will display only the parameters shared by both layers in the Params Panel.
- Context-click on the Vertices Parameter, and select Link.
- The Region Layer will snap to the shape of the Outline Layer.
- When you create an outline with the Bline Tool that you intend to be a filled area as well, make sure you select the Fill checkbox in the tool options dialog. Obviously, this doesn't help much if you realise later that you needed a fill here.
- If you are using the draw tool, there is a button at the bottom of the tool options dialog labeled "Fill Last Stroke", which creates a new Region Layer and links its shape to the previously drawn outline. Unfortunately, it doesn't work as of Synfig Studio v0.61.04. It has been fixed in the current SVN version of the code.
- Create a region with the same number of ducks, and manually link each duck. If you want a region that depends on multiple outline layers, this is really your only choice for now.
- Use the draw tool, select only the outline to fill, draw a stroke roughly following the outline and make sure you're holding the Control key when you left go of the mouse button at the end of the stroke. This doesn't work 100% right at the moment.
Dock windows together?
- To dock (join) separate windows into one you must drag the tab icons for each of the tools into another window.
- You can create subdivisions inside the windows by dragging the icons into the side tabs (located around the edges, the look like rectangles).
- Tool tabs inside the window can be arranged by dragging them on top of one another, therefore changing the order.
Use an external bitmap?
- In the image menu (>) choose file-->import. PNG with alpha channel works fine.
- To animate it without accidental stretching, right-click on the layer and choose encapsulate. You can then animate the position of the new "Inline Canvas" layer instead of the bbox.
Close a bline?
- Right click on the starting point and then click on loop bline.
Note: It doesn't work unless the initial point has a tangent - ie the first segment is curved. But you can hide tangent ducks (Alt+3, or "Caret Menu > View > Show/Hide Ducks > Show tangent ducks") and process as described. Don't forget to press (Alt+3) after that to show tangent ducks again.
How do I transform encapsulated objects?
- Right click on the Encapsulated object in the Layer dialog and choose "select all child layers". Then you select the ducks you want to transform (usually just all of them, like for rotating the object), and the rotate or scale tool and do the work.
Make objects go behind each other, without moving layers?
You'll notice each layer you make has a number in the z depth column in the Layers Panel. Say you have 3 layers, they will be numbered 2 (lowest, e.g. a square) 1 (eg a circle) 0 (highest, the default, e.g. a line). In order to make layer 1, the circle, pass behind layer 2, the square, change its z depth to be 3 or more. The z depth of the circle needs to be greater than 2 in order to be behind the square. To make the square on top of everything, you'd change its z depth to -1 or less.
Positive numbers on the z axis go into the screen, and negative numbers go out of the screen, towards the viewer.
It is possible to animate this effect, but each layer is discrete. They seem to go from 0 to 0.9999.
In addition, objects in encapsulated layers can only go behind other objects in the same encapsulated layer. However an encapsulated layer can go behind another encapsulated layer.
Copy a complex convert combination between parameters of different layers?
For example: you want to copy a complicated conversion type that you have in one parameter from a layer, to other parameter (maybe not a root parameter, but a sub-parameter) of other layer. If you export the complicated conversion type from the original layer and then go to the other layer and select Connect (right click and the exported and the parameter both selected) then you have the parameter form the second layer to be exactly the same than the original one. But there is a drawback: if you modify one of the sub-parameters in the complicated conversion type (e.g. you change the value of one of them) then automatically the same sub-parameter of the other layer is changed.
How can you copy the conversion but allow modify the sub-parameters independently on each layer?
Once you have achieved the complex conversion type in the original layer, don't export the root parameter! if you have done yet unexport it. (Why?). You will understand it later. Now duplicate the original layer. Then you should obtain the same layer with the same conversion type placed at the same parameter (but not exported). NOW export the parameter from the duplicated layer. Then go to the (sub) parameter of the layer where you want to copy the complex conversion type and Connect it to the just exported parameter form the duplicated layer. Now delete the duplicated layer (!). Then the exported ValueNode still undeleted and the layer where you wanted to copy the complex convert type have a (sub) parameter connected to it. You can unexport the ValueNode or not. It is up to you. But notice that the conversion type is already copied into other (sub) parameter of other layer and they are independent as well as you can change one of them (by modifying the sub-parameters) and the other remains untouched.
Make an existing animation run at half speed?
If you have an animation that runs from 0s to 10s and you want it to run at half speed from 0s to 20s, how can you do that?
- Either: encapsulate it, and use the 'time offset' parameter in the encapsulation layer to slow it down:
- Right-click 'time offset' in the encapsulation layer, convert>linear, rate -0.5 offset 0. That means offset the time by -0.5 seconds per second - or in other words, run at half speed
- Or, putting waypoints on the 'time offset' param would work too: 0 at 0s and -10 at 20s. (The choice between using a linear convert and valuenodes is entirely up to you. They both achieve the same result in this simple case).
- Or: use a Time Loop Layer. The first method seems better and more intuitive in this case, but there are ways of getting the same effect from the Time Loop layer. Perhaps the Time Loop layer is better if the animation doesn't run from 0s, but from some other time. Anyway: put a Time Loop layer over the layers you wish to slow down, and:
- Either: set duration to 0, local time to 0, convert->linear the link time and set rate to 0.5 - this slows the animation down *to* 50% of its original speed; use bigger rates to slow it down less
- Or: set duration to 1h (*), link time to 0, convert->linear the local time and set rate to 0.5 - this slows the animation down *by* 50%; use bigger rates to slow it down more
(*) if your animation is longer than 1h then set this parameter to EOT (End Of Time) what is the same as Infinite (INF) for a real number but for a time parameter.
Draw a rectangle with a given width and height?
I was asked on IRC how to specify the width and height of a rectangle, rather than having to specify the position of two opposite corners. Here's how:
- draw a rectangle
- go to the Params Panel
- right-click the 'point 1' parameter and Export
- give it a name, "p1" say
- right-click the 'point 2' parameter and Convert to Add
- (that's saying that rather than specifying the absolute position of the other point, you want synfig to calculate it for you)
- (it will make 2 new sub-parameters for 'point 2', and the value used for point 2 will be their sum so we want to tell it to use 'point 1' and your (width,height))
- open up the sub-parameters of 'point 2' by clicking the triangle to its left
- go to the Children Panel, open up the values and select the one you exported earlier (p1)
- right-click the "LHS" parameter in the parameters dialog and Connect it
- then enter the width and height you want in the 'RHS' parameter