<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.wiki.synfig.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrewkay</id>
		<title>Synfig Studio :: Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.wiki.synfig.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrewkay"/>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/Special:Contributions/Andrewkay"/>
		<updated>2026-05-09T16:00:31Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Advanced_Outline_Layer&amp;diff=14194</id>
		<title>Advanced Outline Layer</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Advanced_Outline_Layer&amp;diff=14194"/>
				<updated>2011-06-19T16:08:44Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: /* Tips for creating and manipulating Advanced Outlines within the canvas window */ normal tool --&amp;gt; transform tool.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Page info --&amp;gt;&lt;br /&gt;
{{Title|Advanced Outline Layer}}&lt;br /&gt;
{{Category|Layers}}&lt;br /&gt;
&amp;lt;!-- Page info end --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Layer_geometry_advanced_outline_icon.png|64px}}&lt;br /&gt;
&lt;br /&gt;
== About Advanced Outline Layers==&lt;br /&gt;
&lt;br /&gt;
The new Advanced Outline Layer comes from the need to specify the width of the outline at a different place than the {{l|blinepoint}}. Usually the user don't want to have a blinepoint where he wants to have the width and vice versa. This Advanced Outline makes the width become independent of the blinepoint position. &lt;br /&gt;
&lt;br /&gt;
Advanced Outline goes further than just define the width with independence from the blinepoints. It adds some new features to the regular outline. They are listed with examples below:&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;New features&amp;quot; widths=&amp;quot;490px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
File:Variable-width-without-blinepoints.png | Variable width without blinepoints&lt;br /&gt;
File:Lots-of-blinepoints-width-just-two width-controls.png | Width controlled just by two points when the bline has many blinepoints&lt;br /&gt;
File:Different-types of tips.png | Different types of tips&lt;br /&gt;
File: Segments of outlines.png | Segments of outlines&lt;br /&gt;
File:Different cusps types.png | Three global cusps types&lt;br /&gt;
File:Smoothness control.png | Control of smoothness from linear (0.0) to smooth (1.0)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tips for creating and manipulating Advanced Outlines within the canvas window ==&lt;br /&gt;
&lt;br /&gt;
* Create Advanced Outlines in the same way that you make normal ones with the bline tool (Alt+B), but make sure the Advanced Outline box is ticked in the bline toolbox.&lt;br /&gt;
* To change the widths, you need the purple ducks (Alt+5) and the Transform tool (Alt+A) (NOT the width tool!).  It may help to hide the other ducks (Alt+2, Alt+3).&lt;br /&gt;
* Advanced width control ducks now come in two parts.  Drag the pale one to move the position of action of the width control, and the darker one to change the width.&lt;br /&gt;
* Right click on a purple duck to get the context menu.  Select &amp;quot;Add Item (smart)&amp;quot; here to create more width controls.&lt;br /&gt;
&lt;br /&gt;
==Parameters of Advanced Outline Layers==&lt;br /&gt;
&lt;br /&gt;
The parameters of the Advanced Outline Layers are:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;border-collapse&amp;quot;  cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|-style=&amp;quot;background:#silver&amp;quot;&lt;br /&gt;
|'''Name'''||'''Value'''||'''Type'''  &lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} {{l|Z Depth Parameter|Z Depth}}&lt;br /&gt;
||0.000000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} {{l|Amount Parameter|Amount}}&lt;br /&gt;
||1.000000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:type_integer_icon.png|16px}} {{l|Blend Method|Blend Method}}&lt;br /&gt;
||Composite&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_color_icon.png|16px}} {{l|Colors Dialog|Color}}&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:95%; height:16px; background:black; color:black&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||color&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#&amp;quot;&lt;br /&gt;
||{{l|Image:Type_vector_icon.png|16px}} Origin&lt;br /&gt;
||0.000000u,0.000000u&lt;br /&gt;
||vector&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_bool_icon.png|16px}} Invert&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:16px; height:16px&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||bool&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_bool_icon.png|16px}} Antialiasing&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:16px; height:16px&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||bool&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Feather&lt;br /&gt;
||0.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tyep of Feather&lt;br /&gt;
||Fast Gaussian Blur&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Winding Sytle&lt;br /&gt;
||Non Zero&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_list_icon.png|16px}} Vertices&lt;br /&gt;
||List&lt;br /&gt;
||list (BLine)&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Outline Width&lt;br /&gt;
||2.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Expand&lt;br /&gt;
||0.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tip Type at Start&lt;br /&gt;
||Rounded Stop&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tip Type at End&lt;br /&gt;
||Rounded Stop&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Cusps Type&lt;br /&gt;
||Sharp&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Smoothness&lt;br /&gt;
||0.500000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_list_icon.png|16px}} Width Point List&lt;br /&gt;
||List&lt;br /&gt;
||list(WPList)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific parameters for Advanced Outline Layer==&lt;br /&gt;
Notice that many of the parameters are the same than the regular Outline, so you can find the explanation of its usage just reading the wiki page of it. The new parameters are:&lt;br /&gt;
* Tip Type at start&lt;br /&gt;
* Tip Type at end&lt;br /&gt;
* Cusps type&lt;br /&gt;
* Smoothness&lt;br /&gt;
* Width Point List&lt;br /&gt;
&lt;br /&gt;
=== Width Point List ===&lt;br /&gt;
Each advanced Outline has a list of parameters that represents the information for each control of width item. They are called Width Points and consists on four sub-parameters:&lt;br /&gt;
&lt;br /&gt;
* Position (Real number): it represents the position of the width point along the bline. Although it is allowed to be any real number, its meaning is only from 0.0 to 1.0. 0.0 corresponds to the start of the bline (first blinepoint on the bline list) and 1.0 to the last blinepoint. In case of looped blines 0.0 and 1.0 are together. The position is represented by the light purple duck that always lies on the bline.&lt;br /&gt;
* Width (Real number): It is the width multiplicator of the width of the bline on the position given by the Position parameter. The final width is calculated multiplying the global Advanced Outline's Width by the Width of the widhtpoint and adding the Expand parameter.&lt;br /&gt;
* Tip Side Before/After: Those two sub-parameters controls how the width is interpolated before and after the current widthpoint. The sub-parameter can have four values: &lt;br /&gt;
** Interpolate: Between the previous/posterior width point, the width is calculated by interpolation based on smoothness value. When smoothness is zero interpolation is lineal, when smoothness is 1.0 interpolation is given by a 5th degree smooth spline.&lt;br /&gt;
** Rounded: There is a rounded tip that points to the width point before or after. If the previous/posterior width point is 'Interpolate' on its posterior/previous side it consider that the width of the width point in question is zero just before/after it. If the previous/posterior width point is other than 'Interpolate' then the segment between those two width points is empty. See examples to understand it fully.&lt;br /&gt;
** Squared: Same as Rounded but using square tip.&lt;br /&gt;
** Peak: Same as Rounded but using peak tip.&lt;br /&gt;
** Flat: Same as Rounded but using flat tip.&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Advanced_Outline_Layer&amp;diff=14193</id>
		<title>Advanced Outline Layer</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Advanced_Outline_Layer&amp;diff=14193"/>
				<updated>2011-06-19T15:53:54Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: fixed format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Page info --&amp;gt;&lt;br /&gt;
{{Title|Advanced Outline Layer}}&lt;br /&gt;
{{Category|Layers}}&lt;br /&gt;
&amp;lt;!-- Page info end --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Layer_geometry_advanced_outline_icon.png|64px}}&lt;br /&gt;
&lt;br /&gt;
== About Advanced Outline Layers==&lt;br /&gt;
&lt;br /&gt;
The new Advanced Outline Layer comes from the need to specify the width of the outline at a different place than the {{l|blinepoint}}. Usually the user don't want to have a blinepoint where he wants to have the width and vice versa. This Advanced Outline makes the width become independent of the blinepoint position. &lt;br /&gt;
&lt;br /&gt;
Advanced Outline goes further than just define the width with independence from the blinepoints. It adds some new features to the regular outline. They are listed with examples below:&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;New features&amp;quot; widths=&amp;quot;490px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
File:Variable-width-without-blinepoints.png | Variable width without blinepoints&lt;br /&gt;
File:Lots-of-blinepoints-width-just-two width-controls.png | Width controlled just by two points when the bline has many blinepoints&lt;br /&gt;
File:Different-types of tips.png | Different types of tips&lt;br /&gt;
File: Segments of outlines.png | Segments of outlines&lt;br /&gt;
File:Different cusps types.png | Three global cusps types&lt;br /&gt;
File:Smoothness control.png | Control of smoothness from linear (0.0) to smooth (1.0)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tips for creating and manipulating Advanced Outlines within the canvas window ==&lt;br /&gt;
&lt;br /&gt;
* Create Advanced Outlines in the same way that you make normal ones with the bline tool (Alt+B), but make sure the Advanced Outline box is ticked in the bline toolbox.&lt;br /&gt;
* To change the widths, you need the purple ducks (Alt+5) and the Normal tool (Alt+A) (NOT the width tool!).  It may help to hide the other ducks (Alt+2, Alt+3).&lt;br /&gt;
* Advanced width control ducks now come in two parts.  Drag the pale one to move the position of action of the width control, and the darker one to change the width.&lt;br /&gt;
* Right click on a purple duck to get the context menu.  Select &amp;quot;Add Item (smart)&amp;quot; here to create more width controls.&lt;br /&gt;
&lt;br /&gt;
==Parameters of Advanced Outline Layers==&lt;br /&gt;
&lt;br /&gt;
The parameters of the Advanced Outline Layers are:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;border-collapse&amp;quot;  cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|-style=&amp;quot;background:#silver&amp;quot;&lt;br /&gt;
|'''Name'''||'''Value'''||'''Type'''  &lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} {{l|Z Depth Parameter|Z Depth}}&lt;br /&gt;
||0.000000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} {{l|Amount Parameter|Amount}}&lt;br /&gt;
||1.000000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:type_integer_icon.png|16px}} {{l|Blend Method|Blend Method}}&lt;br /&gt;
||Composite&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_color_icon.png|16px}} {{l|Colors Dialog|Color}}&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:95%; height:16px; background:black; color:black&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||color&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#&amp;quot;&lt;br /&gt;
||{{l|Image:Type_vector_icon.png|16px}} Origin&lt;br /&gt;
||0.000000u,0.000000u&lt;br /&gt;
||vector&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_bool_icon.png|16px}} Invert&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:16px; height:16px&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||bool&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_bool_icon.png|16px}} Antialiasing&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:16px; height:16px&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||bool&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Feather&lt;br /&gt;
||0.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tyep of Feather&lt;br /&gt;
||Fast Gaussian Blur&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Winding Sytle&lt;br /&gt;
||Non Zero&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_list_icon.png|16px}} Vertices&lt;br /&gt;
||List&lt;br /&gt;
||list (BLine)&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Outline Width&lt;br /&gt;
||2.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Expand&lt;br /&gt;
||0.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tip Type at Start&lt;br /&gt;
||Rounded Stop&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tip Type at End&lt;br /&gt;
||Rounded Stop&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Cusps Type&lt;br /&gt;
||Sharp&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Smoothness&lt;br /&gt;
||0.500000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_list_icon.png|16px}} Width Point List&lt;br /&gt;
||List&lt;br /&gt;
||list(WPList)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific parameters for Advanced Outline Layer==&lt;br /&gt;
Notice that many of the parameters are the same than the regular Outline, so you can find the explanation of its usage just reading the wiki page of it. The new parameters are:&lt;br /&gt;
* Tip Type at start&lt;br /&gt;
* Tip Type at end&lt;br /&gt;
* Cusps type&lt;br /&gt;
* Smoothness&lt;br /&gt;
* Width Point List&lt;br /&gt;
&lt;br /&gt;
=== Width Point List ===&lt;br /&gt;
Each advanced Outline has a list of parameters that represents the information for each control of width item. They are called Width Points and consists on four sub-parameters:&lt;br /&gt;
&lt;br /&gt;
* Position (Real number): it represents the position of the width point along the bline. Although it is allowed to be any real number, its meaning is only from 0.0 to 1.0. 0.0 corresponds to the start of the bline (first blinepoint on the bline list) and 1.0 to the last blinepoint. In case of looped blines 0.0 and 1.0 are together. The position is represented by the light purple duck that always lies on the bline.&lt;br /&gt;
* Width (Real number): It is the width multiplicator of the width of the bline on the position given by the Position parameter. The final width is calculated multiplying the global Advanced Outline's Width by the Width of the widhtpoint and adding the Expand parameter.&lt;br /&gt;
* Tip Side Before/After: Those two sub-parameters controls how the width is interpolated before and after the current widthpoint. The sub-parameter can have four values: &lt;br /&gt;
** Interpolate: Between the previous/posterior width point, the width is calculated by interpolation based on smoothness value. When smoothness is zero interpolation is lineal, when smoothness is 1.0 interpolation is given by a 5th degree smooth spline.&lt;br /&gt;
** Rounded: There is a rounded tip that points to the width point before or after. If the previous/posterior width point is 'Interpolate' on its posterior/previous side it consider that the width of the width point in question is zero just before/after it. If the previous/posterior width point is other than 'Interpolate' then the segment between those two width points is empty. See examples to understand it fully.&lt;br /&gt;
** Squared: Same as Rounded but using square tip.&lt;br /&gt;
** Peak: Same as Rounded but using peak tip.&lt;br /&gt;
** Flat: Same as Rounded but using flat tip.&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Advanced_Outline_Layer&amp;diff=14192</id>
		<title>Advanced Outline Layer</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Advanced_Outline_Layer&amp;diff=14192"/>
				<updated>2011-06-19T15:51:56Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: /* About Advanced Outline Layers */  helpful tips for using advanced outlines with the ducks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Page info --&amp;gt;&lt;br /&gt;
{{Title|Advanced Outline Layer}}&lt;br /&gt;
{{Category|Layers}}&lt;br /&gt;
&amp;lt;!-- Page info end --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Layer_geometry_advanced_outline_icon.png|64px}}&lt;br /&gt;
&lt;br /&gt;
== About Advanced Outline Layers==&lt;br /&gt;
&lt;br /&gt;
The new Advanced Outline Layer comes from the need to specify the width of the outline at a different place than the {{l|blinepoint}}. Usually the user don't want to have a blinepoint where he wants to have the width and vice versa. This Advanced Outline makes the width become independent of the blinepoint position. &lt;br /&gt;
&lt;br /&gt;
Advanced Outline goes further than just define the width with independence from the blinepoints. It adds some new features to the regular outline. They are listed with examples below:&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;New features&amp;quot; widths=&amp;quot;490px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
File:Variable-width-without-blinepoints.png | Variable width without blinepoints&lt;br /&gt;
File:Lots-of-blinepoints-width-just-two width-controls.png | Width controlled just by two points when the bline has many blinepoints&lt;br /&gt;
File:Different-types of tips.png | Different types of tips&lt;br /&gt;
File: Segments of outlines.png | Segments of outlines&lt;br /&gt;
File:Different cusps types.png | Three global cusps types&lt;br /&gt;
File:Smoothness control.png | Control of smoothness from linear (0.0) to smooth (1.0)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tips for creating and manipulating Advanced Outlines within the canvas window ===&lt;br /&gt;
&lt;br /&gt;
* Create Advanced Outlines in the same way that you make normal ones with the bline tool (Alt+B), but make sure the Advanced Outline box is ticked in the bline toolbox.&lt;br /&gt;
* To change the widths, you need the purple ducks (Alt+5) and the Normal tool (Alt+A) (NOT the width tool!).  It may help to hide the other ducks (Alt+2, Alt+3).&lt;br /&gt;
* Advanced width control ducks now come in two parts.  Drag the pale one to move the position of action of the width control, and the darker one to change the width.&lt;br /&gt;
* Right click on a purple duck to get the context menu.  Select &amp;quot;Add Item (smart)&amp;quot; here to create more width controls.&lt;br /&gt;
&lt;br /&gt;
==Parameters of Advanced Outline Layers==&lt;br /&gt;
&lt;br /&gt;
The parameters of the Advanced Outline Layers are:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;border-collapse&amp;quot;  cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|-style=&amp;quot;background:#silver&amp;quot;&lt;br /&gt;
|'''Name'''||'''Value'''||'''Type'''  &lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} {{l|Z Depth Parameter|Z Depth}}&lt;br /&gt;
||0.000000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} {{l|Amount Parameter|Amount}}&lt;br /&gt;
||1.000000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:type_integer_icon.png|16px}} {{l|Blend Method|Blend Method}}&lt;br /&gt;
||Composite&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_color_icon.png|16px}} {{l|Colors Dialog|Color}}&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:95%; height:16px; background:black; color:black&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||color&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#&amp;quot;&lt;br /&gt;
||{{l|Image:Type_vector_icon.png|16px}} Origin&lt;br /&gt;
||0.000000u,0.000000u&lt;br /&gt;
||vector&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_bool_icon.png|16px}} Invert&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:16px; height:16px&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||bool&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_bool_icon.png|16px}} Antialiasing&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:16px; height:16px&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||bool&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Feather&lt;br /&gt;
||0.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tyep of Feather&lt;br /&gt;
||Fast Gaussian Blur&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Winding Sytle&lt;br /&gt;
||Non Zero&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_list_icon.png|16px}} Vertices&lt;br /&gt;
||List&lt;br /&gt;
||list (BLine)&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Outline Width&lt;br /&gt;
||2.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Expand&lt;br /&gt;
||0.000000pt&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tip Type at Start&lt;br /&gt;
||Rounded Stop&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Tip Type at End&lt;br /&gt;
||Rounded Stop&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_integer_icon.png|16px}} Cusps Type&lt;br /&gt;
||Sharp&lt;br /&gt;
||integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Type_real_icon.png|16px}} Smoothness&lt;br /&gt;
||0.500000&lt;br /&gt;
||real&lt;br /&gt;
&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Type_list_icon.png|16px}} Width Point List&lt;br /&gt;
||List&lt;br /&gt;
||list(WPList)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Specific parameters for Advanced Outline Layer==&lt;br /&gt;
Notice that many of the parameters are the same than the regular Outline, so you can find the explanation of its usage just reading the wiki page of it. The new parameters are:&lt;br /&gt;
* Tip Type at start&lt;br /&gt;
* Tip Type at end&lt;br /&gt;
* Cusps type&lt;br /&gt;
* Smoothness&lt;br /&gt;
* Width Point List&lt;br /&gt;
&lt;br /&gt;
=== Width Point List ===&lt;br /&gt;
Each advanced Outline has a list of parameters that represents the information for each control of width item. They are called Width Points and consists on four sub-parameters:&lt;br /&gt;
&lt;br /&gt;
* Position (Real number): it represents the position of the width point along the bline. Although it is allowed to be any real number, its meaning is only from 0.0 to 1.0. 0.0 corresponds to the start of the bline (first blinepoint on the bline list) and 1.0 to the last blinepoint. In case of looped blines 0.0 and 1.0 are together. The position is represented by the light purple duck that always lies on the bline.&lt;br /&gt;
* Width (Real number): It is the width multiplicator of the width of the bline on the position given by the Position parameter. The final width is calculated multiplying the global Advanced Outline's Width by the Width of the widhtpoint and adding the Expand parameter.&lt;br /&gt;
* Tip Side Before/After: Those two sub-parameters controls how the width is interpolated before and after the current widthpoint. The sub-parameter can have four values: &lt;br /&gt;
** Interpolate: Between the previous/posterior width point, the width is calculated by interpolation based on smoothness value. When smoothness is zero interpolation is lineal, when smoothness is 1.0 interpolation is given by a 5th degree smooth spline.&lt;br /&gt;
** Rounded: There is a rounded tip that points to the width point before or after. If the previous/posterior width point is 'Interpolate' on its posterior/previous side it consider that the width of the width point in question is zero just before/after it. If the previous/posterior width point is other than 'Interpolate' then the segment between those two width points is empty. See examples to understand it fully.&lt;br /&gt;
** Squared: Same as Rounded but using square tip.&lt;br /&gt;
** Peak: Same as Rounded but using peak tip.&lt;br /&gt;
** Flat: Same as Rounded but using flat tip.&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Duplicate_Layer&amp;diff=13997</id>
		<title>Duplicate Layer</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Duplicate_Layer&amp;diff=13997"/>
				<updated>2011-05-02T18:31:47Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: /* The Index Paramter */ explained order of duplicated layers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Page info --&amp;gt;&lt;br /&gt;
{{Title|Duplicate Layer}}&lt;br /&gt;
{{Category|Layers}}&lt;br /&gt;
&amp;lt;!-- Page info end --&amp;gt;&lt;br /&gt;
== About Duplicate Layer ==&lt;br /&gt;
{{l|Image:Layer_other_duplicate_icon.png|64px}}&lt;br /&gt;
&lt;br /&gt;
The 'Duplicate' layer makes multiple copies of the layers under it in real time.&lt;br /&gt;
&lt;br /&gt;
The Duplicate layer works like a loop over the content below it and provides a changing variable to that content. This variable (the exported Index) can now be used (Connected) within that content.&lt;br /&gt;
&lt;br /&gt;
== Parameters of Duplicate Layer ==&lt;br /&gt;
The parameters of the Duplicate Layers are:&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;border-collapse&amp;quot;  cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|-style=&amp;quot;background:#silver&amp;quot;&lt;br /&gt;
|'''Name'''||'''Value'''||'''Type'''  &lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Real_icon.png|16px}} {{l|Z Depth Parameter|Z Depth}}&lt;br /&gt;
||0.000000&lt;br /&gt;
||real&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Real_icon.png|16px}} {{l|Amount Parameter|Amount}}&lt;br /&gt;
||1.000000&lt;br /&gt;
||real&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Integer_icon.png|16px}} {{l|Blend Method|Blend Method}}&lt;br /&gt;
||Composite&lt;br /&gt;
||integer&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Real_icon.png|16px}} Index {{l|Image:Valuenode_icon.png|16px}}&lt;br /&gt;
||3.000000&lt;br /&gt;
||Duplicate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Index Paramter ===&lt;br /&gt;
The &amp;quot;Index&amp;quot; is automatically exported. This is the only ValueNode that will change from one copy to the next. This exported value can then be selected in the Children dialog and Connected to the parameter(s) in the layer under the duplicate dialog which should change in the copies.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Index&amp;quot; parameter has 3 sub-parameters, &amp;quot;From&amp;quot;, &amp;quot;To&amp;quot;, and &amp;quot;Step&amp;quot;.  The value of the exported &amp;quot;Index&amp;quot; parameter varies from the value of &amp;quot;From&amp;quot; to the value of &amp;quot;To&amp;quot; in steps of size &amp;quot;Step&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;From&amp;quot; can be higher or lower than &amp;quot;To&amp;quot;.  It doesn't matter whether &amp;quot;Step&amp;quot; is positive or negative.  The steps will be in the direction from &amp;quot;From&amp;quot; to &amp;quot;To&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The duplicated layers are placed in the layer stack in order, so that those corresponding to the &amp;quot;From&amp;quot; value will appear lower down (i.e. least visible with normal composite blend mode) than those corresponding to the &amp;quot;To&amp;quot; value (most visible).&lt;br /&gt;
&lt;br /&gt;
== Known Problems ==&lt;br /&gt;
&lt;br /&gt;
* The Duplicate Layer doesn't do anything about bounding boxes.  Doing so could help to speed up rendering when the duplicated layers are outside the visible area.  It's not clear how useful or possible this would be.  To calculate its bounding box, the duplicate layer would need to loop through all values of Index to get the underlying bounding boxes and union them together.  Maybe it's worth doing anyway.&lt;br /&gt;
&lt;br /&gt;
* Editing a Bline below a dup layer becomes very difficult while a recent edit is still being rendered, because the Bline ducks move around as the render runs (if the duplications are at different positions or scale).  I tried using the same mutex around the Duplicate ValueNode's operator() method as is used in the Duplicate Layer's code, but it lead to [http://dooglus.rincevent.net/random/deadlock.txt a deadlock].&lt;br /&gt;
&lt;br /&gt;
=== Recently Fixed Problems (please test) ===&lt;br /&gt;
&lt;br /&gt;
* Cloning a duplicate layer and having one above the other (rather than having them each inside a disjoint PasteCanvas) causes Synfig to hang, since the same ValueNode will be used for the Index parameter in each of them. [ fixed in r1277 ]&lt;br /&gt;
&lt;br /&gt;
* It shouldn't be possible to Disconnect the Index param in the duplicate layer, but it is. [ fixed in r1278 ]&lt;br /&gt;
&lt;br /&gt;
* It shouldn't be possible to Convert the Index param from Duplicate to any other type, but it is. [ fixed in r1279 ]&lt;br /&gt;
&lt;br /&gt;
* It shouldn't be possible to Disconnect a Duplicate ValueNode using the Children dialog, but it is. [ fixed in r1280 ]&lt;br /&gt;
&lt;br /&gt;
* It shouldn't be possible to Convert a Duplicate ValueNode to any other type using the Children dialog, but it is. [fixed in r1281 ]&lt;br /&gt;
&lt;br /&gt;
* It shouldn't be possible to Connect any ValueNode from the Children dialog to the Index param of a Duplicate layer, but it is. [ fixed in r1282 ]&lt;br /&gt;
&lt;br /&gt;
* Maybe it would be helpful to Auto-Export the Index parameter to give the user less work to do.  It can always be renamed to something memorable later. [ added in r1283 ]&lt;br /&gt;
&lt;br /&gt;
* Automatic export of the Index parameter works for new layers, but not for cloned layers (copy/paste or right-click &amp;gt; duplicate). [ fixed in r1286 ]&lt;br /&gt;
&lt;br /&gt;
* The Add and Subtract ValueNodes won't allow the linking of the Duplicate layer's Index to their LHS and RHS if they are converted from a Time parameter. [ fixed in r1299 (for add) and r1330 (for subtract) ]&lt;br /&gt;
&lt;br /&gt;
* The layer doesn't seem to work well with PasteCanvas' parameters.  Duplicating a PasteCanvas and linking the Index to its position or time offset doesn't have any effect. [ fixed in r1331 ]&lt;br /&gt;
&lt;br /&gt;
* Rendering the Duplicate layer modifies the Index parameter.  Studio renders the Navigator dialog's thumbnail and the main canvas at the same time.  These two renders can interfere with each other, since they don't use a mutex to protect the read/write of the Index parameter. [ fixed in r1358 ]&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Clamp_Layer&amp;diff=13986</id>
		<title>Clamp Layer</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Clamp_Layer&amp;diff=13986"/>
				<updated>2011-04-12T19:16:59Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: /* About Clamp Layer */  Tried to understand function from the source code...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Page info --&amp;gt;&lt;br /&gt;
{{Title|Clamp Layer}}&lt;br /&gt;
{{Category|Layers}}&lt;br /&gt;
&amp;lt;!-- Page info end --&amp;gt;&lt;br /&gt;
This page hasn't been finished yet.  Please help.&lt;br /&gt;
&lt;br /&gt;
== About Clamp Layer ==&lt;br /&gt;
{{l|Image:Layer_filter_clamp_icon.png‎|64px}}&lt;br /&gt;
&lt;br /&gt;
Clamp layer is used to limit colours to a certain range of component values.&lt;br /&gt;
&lt;br /&gt;
The R, G, B and A (alpha) components of each pixel are forced to lie within the range Floor...Ceiling.&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Clamp Ceiling&amp;quot; is off, then only the Floor is considered.&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Invert Negative&amp;quot; is on, then a pixel with a value of A less than Floor is first negated (-R, -G, -B, -A)&lt;br /&gt;
and then something funny happens to raise all the components to at least Floor.  Any ideas what this is for?&lt;br /&gt;
&lt;br /&gt;
== Parameters of Clamp Layer ==&lt;br /&gt;
The parameters of the Clamp Layers are:&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;border-collapse&amp;quot;  cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|'''Name'''||'''Value'''||'''Type'''  &lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Bool_icon.png|16px}} Invert Negative&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:16px; height:16px&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||bool&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Bool_icon.png|16px}} Clamp Ceiling&lt;br /&gt;
||&lt;br /&gt;
{| style=&amp;quot;width:16px; height:16px&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
||bool&lt;br /&gt;
|-&lt;br /&gt;
||{{l|Image:Real_icon.png|16px}} Ceiling&lt;br /&gt;
||1.000000&lt;br /&gt;
||real&lt;br /&gt;
|-style=&amp;quot;background:#eeeeee&amp;quot;&lt;br /&gt;
||{{l|Image:Real_icon.png|16px}} Floor&lt;br /&gt;
||0.000000&lt;br /&gt;
||real&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Following_a_BLine_(the_very_old_way)&amp;diff=13980</id>
		<title>Following a BLine (the very old way)</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Following_a_BLine_(the_very_old_way)&amp;diff=13980"/>
				<updated>2011-04-03T09:17:17Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: /* Introduction */  link to new tutorial, for those of us who got here by searching&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Page info --&amp;gt;&lt;br /&gt;
{{Title|Following a BLine (the old way)}}&lt;br /&gt;
{{Category|Tutorials}}&lt;br /&gt;
{{Category|Tutorials Advanced}}&lt;br /&gt;
&amp;lt;!-- Page info end --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
NOTE: you have synfig version 0.61.09 or newer (you probably do!) then you should follow the {{l|Doc:Following a BLine|new version}} of this tutorial.&lt;br /&gt;
&lt;br /&gt;
This is only a rough draft.  The content should be OK, but it needs tidying up and could really benefit from some screen shots.  If you follow the tutorial, please consider taking some shots as you do so and uploading them here...&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1781903&amp;amp;group_id=144022&amp;amp;atid=757419 This bug report] suggested a feature:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
I would like to be able to draw a bline with N vertices and have&lt;br /&gt;
a shape move along that bline (the whole shape or individual vertices).&lt;br /&gt;
Currently the only way I have found to do what I want is to draw a bline,&lt;br /&gt;
and then move a shape along that line manually at fairly small intervals&lt;br /&gt;
(very frustrating).&lt;br /&gt;
&lt;br /&gt;
Example: A triangle that should move along a sine curve always pointing in&lt;br /&gt;
the direction it is going to move next.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The feature has recently been added to Synfig (23rd September 2007) and will be in the next release.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
We're going to:&lt;br /&gt;
&lt;br /&gt;
* {{l|Following a BLine#Create the Layers|Draw a curve and an arrow}}&lt;br /&gt;
* {{l|Following a BLine#Make the Arrow Move|Link the arrow's Origin}} to the curve's Vertices' vector position so the arrow follows the curve&lt;br /&gt;
* {{l|Following a BLine#Make the Arrow Rotate|Link the arrow's Rotate layer}} to the curve's Vertices' tangent so the arrow rotates with the curve&lt;br /&gt;
&lt;br /&gt;
== Tutorial ==&lt;br /&gt;
&lt;br /&gt;
This is a brief tutorial giving an example of how to use it:&lt;br /&gt;
&lt;br /&gt;
=== Create the Animation ===&lt;br /&gt;
&lt;br /&gt;
File &amp;gt; New&lt;br /&gt;
&lt;br /&gt;
Time tab &amp;gt; End Time &amp;gt; 10s &amp;gt; OK&lt;br /&gt;
&lt;br /&gt;
=== Create the Layers ===&lt;br /&gt;
&lt;br /&gt;
select the BLine Tool&lt;br /&gt;
&lt;br /&gt;
enable just the Outline checkbox&lt;br /&gt;
&lt;br /&gt;
draw a bline that you want the arrow to move along&lt;br /&gt;
&lt;br /&gt;
select the new bline layer, go to its parameters&lt;br /&gt;
&lt;br /&gt;
right-click on the vertices parameter and &amp;quot;export&amp;quot; it&lt;br /&gt;
it will ask for a name.&lt;br /&gt;
&lt;br /&gt;
you can use whatever name you like but for this tutorial I'm calling it &amp;quot;path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(note that you could have checked the 'auto export' box in the draw tool, and set the name in the text box at the top of the tool options to save having to chose export from the menu - it doesn't matter which you use)&lt;br /&gt;
&lt;br /&gt;
switch back to the 'Normal' tool and look in the &amp;quot;Children&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
expand the ValueBase Nodes and you'll see all the things that have been exported.&lt;br /&gt;
&lt;br /&gt;
selecting them will allow us to re-use them elsewhere in the animation later&lt;br /&gt;
&lt;br /&gt;
back in the bline tool, enable Fill and Outline checkboxes in tool options&lt;br /&gt;
&lt;br /&gt;
draw an arrow or whatever, pointing to the right&lt;br /&gt;
&lt;br /&gt;
select the outline, hit control-a to select all its ducks except the green position duck&lt;br /&gt;
&lt;br /&gt;
drag the ducks so that the arrow is centred around the green position duck&lt;br /&gt;
&lt;br /&gt;
add a rotate layer above the outline and region&lt;br /&gt;
&lt;br /&gt;
encapsulate the rotate, outline, and region layers&lt;br /&gt;
&lt;br /&gt;
rename the encapsulation layer &amp;quot;arrow&amp;quot;&lt;br /&gt;
&lt;br /&gt;
so now you've got 2 top-level layers: a curved path, and an encapsulation containing an arrow and a rotate layer&lt;br /&gt;
&lt;br /&gt;
=== Make the Arrow Move ===&lt;br /&gt;
&lt;br /&gt;
select the &amp;quot;arrow&amp;quot; encapsulation layer&lt;br /&gt;
&lt;br /&gt;
we want this layer to move along the &amp;quot;path&amp;quot; bline.  the Origin parameter of an encapsulation layer can be used to move everything it contains&lt;br /&gt;
right-click the Origin parameter and select {{l|Convert#BLine_Vector|Convert &amp;gt; BLine Vertex}}&lt;br /&gt;
the Origin parameter will now be expandable - click the small triangle to its left to expand it&lt;br /&gt;
&lt;br /&gt;
the Origin of the &amp;quot;arrow&amp;quot; layer is now defined by 3 sub parameters: a BLine, the amount to travel along the BLine, and a checkbox that we'll ignore for now.&lt;br /&gt;
in the Children dialog, select the &amp;quot;path&amp;quot; ValueNode&lt;br /&gt;
&lt;br /&gt;
then in the Params dialog, right-click on the &amp;quot;arrow&amp;quot; layer's BLine sub-parameter and &amp;quot;Connect&amp;quot; it to the selected &amp;quot;path&amp;quot; value&lt;br /&gt;
&lt;br /&gt;
the arrow will move so that it is about half-way along the BLine path (because the Amount sub-parameter defaults to 0.5).&lt;br /&gt;
&lt;br /&gt;
edit the Amount sub parameter to 0 and to 1, and see the arrow moves to one end of the path and then the other.&lt;br /&gt;
&lt;br /&gt;
the &amp;quot;Loop&amp;quot; sub parameter determines what happens if you use a value outside the range 0-1 for the Amount.  If &amp;quot;Loop&amp;quot; isn't checked, values less than 0 count as 0 and values greater than 1 count as 1.  If &amp;quot;Loop&amp;quot; is checked, the value wraps around, so Amounts of 2.4, 1.4, 0.4, -0.6, -1.6, etc all act the same.&lt;br /&gt;
&lt;br /&gt;
So we've got the arrow moving along the line, but only if we manually edit the Amount parameter.  Let's get it to move automatically, by converting the constant Amount parameter into a linearly changing value.&lt;br /&gt;
&lt;br /&gt;
Right-click the Amount parameter, and Convert it to Linear.  This adds sub parameters Rate (how fast the value goes up, per second) and Offset (what value it has at time zero).&lt;br /&gt;
&lt;br /&gt;
Set Rate to 0.1 and Offset to 0.  That will make the value of Amount be 0 at time 0 and 1 at time 10s, so the arrow will move from one end of the line to the other throughout the course of the animation.&lt;br /&gt;
&lt;br /&gt;
This linearly changing value of the Amount parameter will be useful later on, so let's export it into the Children dialog so we can find it easily later.  Right-click the Amount parameter and Export it as &amp;quot;engine&amp;quot;.  I call it &amp;quot;engine&amp;quot; because this is the parameter that drives the animation.&lt;br /&gt;
&lt;br /&gt;
Try File &amp;gt; Preview or View &amp;gt; Play to watch the animation.  If you like, play with the sub-parameters - turn the Rate up to 0.25 and turn on the Loop checkbox and watch the preview again.  You'll see that the arrow moves 3 times faster than before, reaching the end of the line after 4 seconds.&lt;br /&gt;
&lt;br /&gt;
Turning Loop on means that it will then reappear at the start of the line, and keep moving.  Not having Loop on would make it stay at the end of the line until the animation stopped.&lt;br /&gt;
&lt;br /&gt;
Note that instead of using a Convert&amp;gt;Linear conversion to get the Amount sub-parameter to change over time, we could have used the more traditional method of turning on {{l|Animate Editing Mode}} and adjusting the parameter at different points in time.  Either way, we can still export the Amount parameter so that we can use it again in the next step.&lt;br /&gt;
&lt;br /&gt;
=== Make the Arrow Rotate ===&lt;br /&gt;
&lt;br /&gt;
You'll notice that although the arrow moves along the line, it doesn't rotate to face the direction of travel.  But that's what we're going to use the Rotate layer for.&lt;br /&gt;
&lt;br /&gt;
Open up the &amp;quot;arrow&amp;quot; encapsulation layer and select the Rotate layer inside.  &lt;br /&gt;
&lt;br /&gt;
Right-click the Amount parameter, which specifies the amount to rotate, and Convert it to type {{l|Convert#BLine Tangent|BLine Tangent}}.&lt;br /&gt;
&lt;br /&gt;
Open up the sub parameters, select the &amp;quot;path&amp;quot; value in the children dialog, and connect it to the rotate layer's BLine sub-parameter, and select the &amp;quot;engine&amp;quot; value in the children dialog and connect it to the rotate layer's Amount sub-parameter.&lt;br /&gt;
&lt;br /&gt;
Now watch the preview and you'll see that the arrow is moving along the line, rotating to face the way it's traveling.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
This is the animation I ended up with: {{l|Media:Arrow-follows-line-tut.sifz|arrow-follows-line-tut.sifz}}&lt;br /&gt;
&lt;br /&gt;
== Commentary on the Feature ==&lt;br /&gt;
&lt;br /&gt;
I've noticed that if Loop is on, and amount is 1.0, then it acts as if amount is 0.0, ie. the arrow jumps back to the beginning of the line in the last frame.&lt;br /&gt;
&lt;br /&gt;
Also, the arrow takes the same time to move along each segment of the bline.  So if there's a long straight part then a bendy complex part, the arrow will move much faster along the straight parts (since there will be less vertices in that part).&lt;br /&gt;
&lt;br /&gt;
It would be good to have the option of having the arrow move at constant speed along the length of the curve.&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Doc:Cut-out_Animation&amp;diff=13929</id>
		<title>Doc:Cut-out Animation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Doc:Cut-out_Animation&amp;diff=13929"/>
				<updated>2011-02-28T21:21:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: /* Add the Rotate Layers */ fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Page info --&amp;gt;&lt;br /&gt;
{{Title|Cut-out Animation}}&lt;br /&gt;
{{Category|Manual}}&lt;br /&gt;
{{Category|Tutorials}}&lt;br /&gt;
{{Category|Tutorials Intermediate}}&lt;br /&gt;
&amp;lt;!-- Page info end --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is brief tutorial to show how create cut-out style animations. Usually cut-out style animations use image art instead of vector art to create the animation. See South Park series. You should obtain some kind of animation like this one:&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Cutoutsample.gif}}&lt;br /&gt;
&lt;br /&gt;
== Preparing the material ==&lt;br /&gt;
&lt;br /&gt;
For a cut out animation you'll need some images that represent the moving parts of the animation. For this example I've prepared a Simpsons like boy. You can take the images from {{l|Media:Cutout-sample.zip|this file}}. It also has the final sifz animation result. &lt;br /&gt;
&lt;br /&gt;
{{l|Image:Boy-split.png|right|thumb|A character split into parts}}&lt;br /&gt;
&lt;br /&gt;
Each part of the body (head, arms, legs, etc.) is a single PNG file. (In the split image, the individual images are composited in a bigger one). I've set all the files to have the same horizontal and vertical dimensions so all the images can fit one over the other to create the character without the need to adjust their sizes or positions. It will help later to import each image into Synfig.&lt;br /&gt;
&lt;br /&gt;
== Importing the cut out images ==&lt;br /&gt;
&lt;br /&gt;
This is as simple as going to the Caret Menu and selecting File-&amp;gt;Import and the proper file for each part of the character. After repeating this process for each of the image files of your character you should obtain what is shown below:&lt;br /&gt;
&lt;br /&gt;
When you do the tutorial you'll notice that all the image layers have the same dimensions. The boundary of each image layer is the rectangle with the green ducks shown. The bounding boxes of all the layers coincide since I expressly created each image with those dimensions and properly placed. It will allow us to do the following: Select all the layers (CTRL + click each layer in the layer list) and go to the Top-Left and Bottom-Right parameters (they get greyed) in the parameter list. Make right-click -&amp;gt; Link on each one of the Top-Left, Bottom-Right parameter. It will link all the boundaries of the image layers to maintain them at the same relative position. This will prevent any accidental modification of the image edges and subsequently avoid any improper image deformation. &lt;br /&gt;
&lt;br /&gt;
{|align = &amp;quot;center&amp;quot;&lt;br /&gt;
|{{l|Image:Layers-Images.png}}||{{l|Image:Images-Composed.png}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Obviously the layer order is important to place each part of the character to compose it properly (in this case the left leg is behind the right one).&lt;br /&gt;
&lt;br /&gt;
== Encapsulate image layers ==&lt;br /&gt;
&lt;br /&gt;
As you can imagine we are going to use Rotate Layers to perform the cut out animation. But before apply the rotation for each part of the character, we need to encapsulate it so that the rotation only applies to the desired layers. After encapsulation and renaming the paste canvas layers it looks like this:&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Encapsulate-layers.png|right|thumb|Layers dialog after encapsulation}}&lt;br /&gt;
&lt;br /&gt;
== Add the Rotate Layers ==&lt;br /&gt;
&lt;br /&gt;
Before adding the Rotate Layers you should have analysed your character. You need to have figured out the mechanical framework which the character's movements are bound by, the mechanics of the character's ''skeleton''. For a simple humanoid character one considers the hip as the center of the rotation of the whole skeleton. Each limb rotates relative to the hip's rotation. Also each sub-limb should rotate relative to its parent and the parent relative to the hip (we use the hip as the root ''bone''). &lt;br /&gt;
&lt;br /&gt;
In our current example, the body will rotate relative to the hip and the head relative to the body. When the character's hip is rotated there needs to be an identical rotation of the body. The head needs to rotate with the torso and additionally with the hip. This cummulative effect of rotating limbs and sub-limbs is known as the limb hierarchy. The head also needs its own individual rotation which won't affect any other limb.&lt;br /&gt;
&lt;br /&gt;
Let's start by adding a Rotate Layer to the hip. Go to the hip paste canvas and select the hip image layer. Insert a new Rotate layer (File-&amp;gt;Layer-&amp;gt;New Layer-&amp;gt;Transform-&amp;gt;Rotate) just above the hip image layer. Rename the layer to 'Rotate hip'. Now go to the Rotate Layer parameters dialog and select the Amount parameter. This parameter governs the angle of rotation. Export that parameter (right click) and give a proper name (hip). &lt;br /&gt;
&lt;br /&gt;
Now to set up the rotation layer. You should have noticed that there is a Origin parameter in the Rotation Layer, this is the origin of the rotation. It is very important that you set the origin to the proper position, allowing proper rotation of the image layers, so in this case you need to place the origin of rotation at the center of the character's hips. As another important example, arms will rotate about the shoulder and not about the hand.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Before'''||'''After'''&lt;br /&gt;
|-&lt;br /&gt;
|{{l|Image:AddRotateLayer-before.png}} || {{l|Image:AddRotateLayer-after.png}} ||{{l|Image:AfterAddRotateHip.png|right|thumb|After copy the Rotate hip layer over all the image layers}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Now consider our reasoning: ''When the character's hip is rotated there needs to be an identical rotation of the body. The head needs to rotate the with the torso and additionally with the hip''. Another way to put this would be that each limb bears it's own rotation, plus the rotations of those limbs higher up the limb hierachy. To effect this you should add the same rotation layer to all the limbs that depend on the hip rotation. Copy and paste the ''Rotate hip'' layer to all the encapsulated image layers. Remember that the rotation parameter is exported, and so will the value shared between all the pasted rotation layers, giving our desired effect. All the limbs will now rotate in congruently with the hip. Magic! See the image.&lt;br /&gt;
&lt;br /&gt;
For each next level limbs we need an additional individual Rotation Layer. The next level limbs are: the legs and the body. We need to add a Rotation Layer for each next level limb. You should repeat the same process for each one: Add the Rotate Layer, rename it, export the Amount parameter (very important) and place Origin to the proper rotation place.&lt;br /&gt;
&lt;br /&gt;
After doing that for the legs and for the body you should obtain something like this:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|{{l|Image:AddRotates.png}} || {{l|Image:AddRotatesLayers.png}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice that fortunately you have exported the Amount parameter for each added rotation layer. So all the copies of the Rotate hip layer share the same rotation. The same applies to the other rotation layers (body and legs).&lt;br /&gt;
&lt;br /&gt;
Since the arms and the head are children limbs of the body they should suffer the same rotation as the body. Repeat the same for the body rotation layer and copy it over the arms and the head image layers.&lt;br /&gt;
&lt;br /&gt;
Now you can imagine how this works. You need now an additional rotation layer for the rest of the limbs to produce its individual rotation. So repeat the steps of Add a Rotate Layer, rename it, export the Amount parameter and center the Origin. You should obtain something like this:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|{{l|Image:AddRotationFinal.png}} || {{l|Image:AddRotationLayersFinal.png|thumb}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Now animate it! ==&lt;br /&gt;
&lt;br /&gt;
It is time to animate the character!. You can go to the Child Dialog and expand the ValueBase Nodes and select any of the already exported parameters (angles). Alternatively you can select the parameter itself from the proper layer. It will set the angle duck at the proper position showing the altered position and angle due to the nested rotations performed for each sub-limb. You can do use of the {{l|Groups Panel|Group feaure}} of Synfig to select multiple scattered layers with only one double click.&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Rotation-Setup2.png|center}}&lt;br /&gt;
&lt;br /&gt;
Don't move the origin of any layer!  If you do, you will break the composition.&lt;br /&gt;
&lt;br /&gt;
Notice that I've prepared the individual images with a rounded hidden area (look again at the split character image and see what I mean). This allows us to make rotations without revealing sharp corners.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For alternative set-ups and its pros and cons, see the {{l|Talk:Cut-out_Animation|talk page}}.&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Doc:Cut-out_Animation&amp;diff=13928</id>
		<title>Doc:Cut-out Animation</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Doc:Cut-out_Animation&amp;diff=13928"/>
				<updated>2011-02-28T21:18:36Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: /* Add the Rotate Layers */  fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Page info --&amp;gt;&lt;br /&gt;
{{Title|Cut-out Animation}}&lt;br /&gt;
{{Category|Manual}}&lt;br /&gt;
{{Category|Tutorials}}&lt;br /&gt;
{{Category|Tutorials Intermediate}}&lt;br /&gt;
&amp;lt;!-- Page info end --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is brief tutorial to show how create cut-out style animations. Usually cut-out style animations use image art instead of vector art to create the animation. See South Park series. You should obtain some kind of animation like this one:&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Cutoutsample.gif}}&lt;br /&gt;
&lt;br /&gt;
== Preparing the material ==&lt;br /&gt;
&lt;br /&gt;
For a cut out animation you'll need some images that represent the moving parts of the animation. For this example I've prepared a Simpsons like boy. You can take the images from {{l|Media:Cutout-sample.zip|this file}}. It also has the final sifz animation result. &lt;br /&gt;
&lt;br /&gt;
{{l|Image:Boy-split.png|right|thumb|A character split into parts}}&lt;br /&gt;
&lt;br /&gt;
Each part of the body (head, arms, legs, etc.) is a single PNG file. (In the split image, the individual images are composited in a bigger one). I've set all the files to have the same horizontal and vertical dimensions so all the images can fit one over the other to create the character without the need to adjust their sizes or positions. It will help later to import each image into Synfig.&lt;br /&gt;
&lt;br /&gt;
== Importing the cut out images ==&lt;br /&gt;
&lt;br /&gt;
This is as simple as going to the Caret Menu and selecting File-&amp;gt;Import and the proper file for each part of the character. After repeating this process for each of the image files of your character you should obtain what is shown below:&lt;br /&gt;
&lt;br /&gt;
When you do the tutorial you'll notice that all the image layers have the same dimensions. The boundary of each image layer is the rectangle with the green ducks shown. The bounding boxes of all the layers coincide since I expressly created each image with those dimensions and properly placed. It will allow us to do the following: Select all the layers (CTRL + click each layer in the layer list) and go to the Top-Left and Bottom-Right parameters (they get greyed) in the parameter list. Make right-click -&amp;gt; Link on each one of the Top-Left, Bottom-Right parameter. It will link all the boundaries of the image layers to maintain them at the same relative position. This will prevent any accidental modification of the image edges and subsequently avoid any improper image deformation. &lt;br /&gt;
&lt;br /&gt;
{|align = &amp;quot;center&amp;quot;&lt;br /&gt;
|{{l|Image:Layers-Images.png}}||{{l|Image:Images-Composed.png}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Obviously the layer order is important to place each part of the character to compose it properly (in this case the left leg is behind the right one).&lt;br /&gt;
&lt;br /&gt;
== Encapsulate image layers ==&lt;br /&gt;
&lt;br /&gt;
As you can imagine we are going to use Rotate Layers to perform the cut out animation. But before apply the rotation for each part of the character, we need to encapsulate it so that the rotation only applies to the desired layers. After encapsulation and renaming the paste canvas layers it looks like this:&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Encapsulate-layers.png|right|thumb|Layers dialog after encapsulation}}&lt;br /&gt;
&lt;br /&gt;
== Add the Rotate Layers ==&lt;br /&gt;
&lt;br /&gt;
Before adding the Rotate Layers you should have analysed your character. You need to have figured out the mechanical framework which the character's movements are bound by, the mechanics of the character's ''skeleton''. For a simple humanoid character one considers the hip as the center of the rotation of the whole skeleton. Each limb rotates relative to the hip's rotation. Also each sub-limb should rotate relative to its parent and the parent relative to the hip (we use the hip as the root ''bone''). &lt;br /&gt;
&lt;br /&gt;
In our current example, the body will rotate relative to the hip and the head relative to the body. When the character's hip is rotated there needs to be an identical rotation of the body. The head needs to rotate with the torso and additionally with the hip. This cummulative effect of rotating limbs and sub-limbs is known as the limb hierarchy. The head also needs its own individual rotation which won't affect any other limb.&lt;br /&gt;
&lt;br /&gt;
Let's start by adding a Rotate Layer to the hip. Go to the hip paste canvas and select the hip image layer. Insert a new Rotate layer (File-&amp;gt;Layer-&amp;gt;New Layer-&amp;gt;Transform-&amp;gt;Rotate) just above the hip image layer. Rename the layer to 'Rotate hip'. Now go to the Rotate Layer parameters dialog and select the Amount parameter. This parameter governs the angle of rotation. Export that parameter (right click) and give a proper name (hip). &lt;br /&gt;
&lt;br /&gt;
Now to set up the rotation layer. You should have noticed that there is a Origin parameter in the Rotation Layer, this is the origin of the rotation. It is very important that you set the origin to the proper position, allowing proper rotation of the image layers, so in this case you need to place the origin of rotation at the center of the character's hips. As another important example, arms will rotate about the shoulder and not about the hand.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Before'''||'''After'''&lt;br /&gt;
|-&lt;br /&gt;
|{{l|Image:AddRotateLayer-before.png}} || {{l|Image:AddRotateLayer-after.png}} ||{{l|Image:AfterAddRotateHip.png|right|thumb|After copy the Rotate hip layer over all the image layers}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Now consider our reasoning: ''When the character's hip is rotated there needs to be an identical rotation of the body. The head needs to rotate the with the torso and additionally with the hip''. Another way to put this would be that each limb bares it's own rotation, plus the rotations of those limbs higher up the limb hierachy. To effect this you should add the same rotation layer to all the limbs that depend on the hip rotation. Copy and paste the ''Rotate hip'' layer to all the encapsulated image layers. Remember that the rotation parameter is exported, and so will the value shared between all the pasted rotation layers, giving our desired effect. All the limbs will now rotate in congruently with the hip. Magic! See the image.&lt;br /&gt;
&lt;br /&gt;
For each next level limbs we need an additional individual Rotation Layer. The next level limbs are: the legs and the body. We need to add a Rotation Layer for each next level limb. You should repeat the same process for each one: Add the Rotate Layer, rename it, export the Amount parameter (very important) and place Origin to the proper rotation place.&lt;br /&gt;
&lt;br /&gt;
After doing that for the legs and for the body you should obtain something like this:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|{{l|Image:AddRotates.png}} || {{l|Image:AddRotatesLayers.png}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice that fortunately you have exported the Amount parameter for each added rotation layer. So all the copies of the Rotate hip layer share the same rotation. The same applies to the other rotation layers (body and legs).&lt;br /&gt;
&lt;br /&gt;
Since the arms and the head are children limbs of the body they should suffer the same rotation as the body. Repeat the same for the body rotation layer and copy it over the arms and the head image layers.&lt;br /&gt;
&lt;br /&gt;
Now you can imagine how this works. You need now an additional rotation layer for the rest of the limbs to produce its individual rotation. So repeat the steps of Add a Rotate Layer, rename it, export the Amount parameter and center the Origin. You should obtain something like this:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|{{l|Image:AddRotationFinal.png}} || {{l|Image:AddRotationLayersFinal.png|thumb}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Now animate it! ==&lt;br /&gt;
&lt;br /&gt;
It is time to animate the character!. You can go to the Child Dialog and expand the ValueBase Nodes and select any of the already exported parameters (angles). Alternatively you can select the parameter itself from the proper layer. It will set the angle duck at the proper position showing the altered position and angle due to the nested rotations performed for each sub-limb. You can do use of the {{l|Groups Panel|Group feaure}} of Synfig to select multiple scattered layers with only one double click.&lt;br /&gt;
&lt;br /&gt;
{{l|Image:Rotation-Setup2.png|center}}&lt;br /&gt;
&lt;br /&gt;
Don't move the origin of any layer!  If you do, you will break the composition.&lt;br /&gt;
&lt;br /&gt;
Notice that I've prepared the individual images with a rounded hidden area (look again at the split character image and see what I mean). This allows us to make rotations without revealing sharp corners.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For alternative set-ups and its pros and cons, see the {{l|Talk:Cut-out_Animation|talk page}}.&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=TCB&amp;diff=13927</id>
		<title>TCB</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=TCB&amp;diff=13927"/>
				<updated>2011-02-27T18:48:34Z</updated>
		
		<summary type="html">&lt;p&gt;Andrewkay: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An {{l|Waypoints#Interpolation|interpolation}} type, TCB is an acronym for Tension, Continuity, Bias, the three qualities which define the shape of the curve if you plot the value of the interpolated parameter against time.&lt;br /&gt;
 &lt;br /&gt;
Using the TCB interpolation type will fit a smooth curve between adjacent waypoints, much like the bline tool fits smooth curves between adjacent bline vertices. The interpolation can be controlled by four values. These are tension, continuity, bias and temporal tension. In simple words they control the following things:&lt;br /&gt;
&lt;br /&gt;
; Tension&lt;br /&gt;
: The tension defines how sharply the keyframe will be targeted (how much inverse effect the tangent has). Its very much comparable to the handles of a bezier curve, while this value will define in a reverse way how long the handles are.&lt;br /&gt;
:* A higher value will force more linear movement from waypoint to waypoint, since the handles getting shorter. Resulting in a hard direction change if it's set to 1.0. In this case it is equal to linear movement (Handles have length 0), if the the other parameters having the default 0 value. Setting it higher then 1.0 will result in a curved movement that will circle around this waypoint (handles are scaled in negative direction (swapped).&lt;br /&gt;
:* Lower values will force the the object to follow the tangent (handles) of the waypoint. For very low values most of the movement will be along the tangent, since the thought handles are very long.&lt;br /&gt;
&lt;br /&gt;
; Continuity&lt;br /&gt;
: This value defines how the tangent is computed. This is also comparable to the handles of a point on a bezier curve. A value of zero will lead to mirrored (merged) handles, resulting in a smooth transition.&lt;br /&gt;
:* Setting it to -1.0 will result in a simple cusp, giving linear interpolation with sharp corner.&lt;br /&gt;
:* Setting it even lower will form a sharper cusp, so that the movement inward an outward get more and more mirrored.&lt;br /&gt;
:* Setting it to higher values then 0 will have the same effect, but the handles will move in mirrored direction. So the interpolation will move from the outside into this waypoint.&lt;br /&gt;
&lt;br /&gt;
; Bias&lt;br /&gt;
: This value defines which side segment before and after the keyframe will have more influence on the computed tangent. If the Bias is lower then 0 then the tangent will be more oriented to along the incoming direction. If greater then 0 it will be more oriented to the outgoing direction.&lt;br /&gt;
&lt;br /&gt;
; Temporal Tension&lt;br /&gt;
: In default the speed for an object is constant while passing equally distanced waypoints with equal time between them. This value can be used to manipulate the speed of the movement.&lt;br /&gt;
:* Higher values then 0 will force the object to spend more time near that waypoint. Resulting in slow motion shortly before and after the waypoint. On the other hand speed will increase before reaching the next waypoint. &lt;br /&gt;
:::&amp;lt;small&amp;gt;As an illustrative example you can think of a ball sitting on a small hill ''(previous waypoint)'', running down a small valley and getting a bit faster, before it runs up a large hill and getting very slow as it reaches the top ''(modified waypoint)''. After that it will run downward until it finds itself with highest speed in a small valley again, running up the next small hill, losing some of its speed as it is reached the top ''(next waypoint)''.&amp;lt;/small&amp;gt;&lt;br /&gt;
:* Lower values then 0 will force the object to pass the waypoint faster. Resulting in slow motion near the previous and next waypoint. Comparable to an ball thats running down a valley. (opposite of the previous thought example)&lt;br /&gt;
&lt;br /&gt;
== Further Information ==&lt;br /&gt;
* There is some mathematical discussion of TCB [http://www.cubic.org/docs/hermite.htm here].&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Kochanek%E2%80%93Bartels_spline Kochanek–Bartels spline] (also known as TCB-Spline)&lt;/div&gt;</summary>
		<author><name>Andrewkay</name></author>	</entry>

	</feed>