Skeleton Layer

From Synfig Studio :: Documentation
Jump to: navigation, search
m (Start by adding a Skeleton layer)
m (copy from talk)
Line 7: Line 7:
 
<!-- {{l|Image:Layer_other_skeleton_icon.png|64px}} -->
 
<!-- {{l|Image:Layer_other_skeleton_icon.png|64px}} -->
  
== About Skeleton Layers==
+
  I'm a Draft please help me to be efficient ...  
 
+
  {{Note|Warning, experimental feature|This feature is still at experimental stage (experimental feature must be actived in {{l|Setup Dialog}}). There is a high probability that the Skeleton layer will go away and will be replaced by Bone layer. This can produce no compatible animation project. Though, we can't give any estimation when this will happen.}}
+
  
 
==Parameters of Skeleton Layers==
 
==Parameters of Skeleton Layers==
Line 15: Line 13:
 
The parameters of the skeleton layers are:
 
The parameters of the skeleton layers are:
  
{|border="0" align="left" style="border-collapse"  cellpadding="3" cellspacing="0"  
+
{|border="0" align="none" style="border-collapse"  cellpadding="3" cellspacing="0"  
 
|-style="background:#C0C0C0"
 
|-style="background:#C0C0C0"
 
|'''Name'''||'''Value'''||'''Type'''   
 
|'''Name'''||'''Value'''||'''Type'''   
Line 24: Line 22:
  
 
|-style="background:#eeeeee"
 
|-style="background:#eeeeee"
 +
||{{l|Image:Type_real_icon.png|16px}} {{l|Amount Parameter|Amount}}
 +
||0.500000
 +
||real
 +
 +
|-style="background:#"
 
||{{l|Image:Type_string_icon.png|16px}} Name
 
||{{l|Image:Type_string_icon.png|16px}} Name
 
||skeleton
 
||skeleton
 
||string
 
||string
  
|-style="background:#"
+
|-style="background:#eeeeee"
 
||{{l|Image:type_list_icon.png|16px}} {{l|Bones|Bones}}
 
||{{l|Image:type_list_icon.png|16px}} {{l|Bones|Bones}}
 
||list (Static List)
 
||list (Static List)
Line 35: Line 38:
 
|}
 
|}
  
 +
== Summary ==
  
 +
In the skeleton layer, each vertex is influenced by a weighted average combination of bones ''maybe from different skeletons?''.
  
 +
There are two ways to make a vector be influenced by bone(s). First is the {{l|Skeleton_Layer#Link to Bone}} action that would give a 100% of influence of one bone to one vector. Second is the {{l|Skeleton_Layer#Link to Skeleton}} that is a semiautomatic way to give weighted influence to a vector from all the bones that overlaps its influence area over the vector position. The more covered the vector is by the influence area, the higher is the influence weight. In any case you can manually specify the bone and the influence that you want by editing the values in the vector (sub)parameters. We need to modify the bone(s) with handles to perform the indirect movement to the vectors that are influenced by it(them)
  
 +
== Skeleton construction ==
  
 +
Add a {{Literal|Skeleton layer}}, if your {{l|Canvas}} is empty you can do that from the {{l|Global Menu|global}} or {{L|Caret|caret}} menus {{c|<Layer>|<New Layer>|<Other>|Skeleton|}}. If your canvas is not empty, right clicking inside the {{l|Layers_Panel}}. You have create the first bone of your Skeleton, this is your first parent bone.
  
 +
Once you have a {{Literal|Skeleton layer}}, the first bone appears. Each bones have few {{l|Handle|handles}} to control them : Origin, Angle, Length, Bone Wight and Tip Width. Take a look inside the {{l|Parameters Panel}} of the {{Literal|Skeleton layer}}, those handles are relative to some of those values (with some advanced parameters). So with the Bones {{l|Handle|handles}} you can easily move and adjust part of your Skeleton.
  
 +
Now, you can had child bone. Right click on any {{l|Handle|handles}} of the parent bone you want and select {{Literal|Create Child Bone}}.
  
== Start by adding a Skeleton layer ==
+
{{Literal|Skeleton layer}} when created, are {{l|Canvas Layer Menu|Disabled from rendering}}.
  
* Bones names are automatically created. Bones can't be deleted from canvas. You can unreference them in a skeleton layer but they will still available in canvas.
+
==Parameters of a Bone==
  
* You only can add more bones by right clicking on the bones list and selecting "Insert Item Smart". Once added you can modify it and use in other places.
+
The parameters of a bone are:
  
* Bones have two sets of parameters (you can expand it to see them). The default handles bones parameters are the used for make the influence on points. The other set is called the setup values. You can toggle from one set of handles to the other by pressing {{Shortcut|Alt|7}} (setup)
+
{|border="0" align="none" style="border-collapse"  cellpadding="3" cellspacing="0"
 +
|-style="background:#C0C0C0"
 +
|'''Name'''||'''Value'''||'''Type''' 
 +
|-style="background:#"
 +
||{{l|Image:Type_string_icon.png|16px}} Name
 +
||Bone 1
 +
||string
  
* Bones have two kinds of scales: normal (for the bone itself) and recursive for the children of the bone. The recursive scales the bone and passes down to the children the same scale value, that is recursively passed down. You can toggle recursive by {{Shortcut|Alt|8}}.
+
|-style="background:#eeeeee"
 +
|| {{l|Parent Parameter|Parent}}
 +
||No Parent
 +
||bone_valuenode
  
* Also {{Shortcut|Alt|9}} changes between setup->normal->recursive->setup by consecutive key pressings.
+
|-style="background:#"
 +
||{{l|Image:Type_vector_icon.png|16px}} {{l|Origin Parameter|Origin}}
 +
||0.00000, 0.00000
 +
||vector
  
* All parameters are animatable but I strongly recommend to only animate the normal parameters for the first time. So the setup values has to be modified in non animation mode.
+
|-style="background:#eeeeee"
 +
||{{l|Image:Type_angle_icon.png|16px}} {{l|Angle Parameter|Angle}}
 +
||0.00°
 +
||angle
  
* You can also animate parent bones. See example.
+
|-style="background:#"
 +
||{{l|Image:Type_real_icon.png|16px}} {{l|Local Length Scale Parameter|Local Length Scale}}
 +
||1.00000
 +
||real
  
* Once you have created your skeleton you can forget even deactivate the skeleton layer.  
+
|-style="background:#eeeeee"
The bones are available everywhere even if the skeleton layer doesn't exists.
+
||{{l|Image:Type_real_icon.png|16px}} {{l|Bone Width Parameter|Bone Width}}
 +
||0.10000
 +
||real
  
== Now let's go with the points ==
+
|-style="background:#"
 +
||{{l|Image:Type_real_icon.png|16px}} {{l|Recursive Length Scale Parameter|Recursive Length Scale}}
 +
||1.00000
 +
||real
  
* A vector or a spline point can be converted to Bone Influence type. Once you convert it two parameters are shown: Bone Weight Pair list and Link. Link is the original value of the point and Bone Weight Pair List
+
|-style="background:#eeeeee"
 +
||{{l|Image:Type_real_icon.png|16px}} {{l|Tip Width Parameter|Tip Width}}
 +
||0.10000
 +
||real
  
* The first time a Vertex or Spline Point is converted to a Bone Influence type it would create a bone for that Bone Weight Pair list. Unfortunately this makes the number of bones grow a lot and possibly many of them are useless.
+
|-style="background:#"
 +
||{{l|Image:Type_real_icon.png|16px}} {{l|Length Setup Parameter|Length Setup}}
 +
||1.00000
 +
||real
  
* Once you have it converted to Bone Influence you can add more bones weight pairs to the bone weight pair list as like in any list (Insert Item smart). Later you can modify the bone that is affecting that vertex or spline point. To select a new bone in the parent parameter or the bone parameter of the bone weight pair, just click on the value column of the parameter. A drop down menu with all the existing bones will be offered. Each bone on the list affects weighted by the weight value, so you can make one vertex to be more influenced by a bone than other. If only one bone is in the list, it acts as 100% regardless the weight value.
+
|}
  
* Repeat the convert of each vertex and associate it to each bone of the skeleton. Possibly it is better to have a small skeleton (only the root one) and use the convert to bone influence to add more bones when needed.
+
== Link to Bone ==
  
* Notice that the bone setup position is used to grab the vertex/spline point setup position so each later modification of the non setup value of the bones are relative to that initial position of the vertex, relative to the setup position.
+
Select a single or multiple handles from your artwork, right click on a bone and from the contextual menu, select {{Literal|Link to Bone}}. Now when you move the Bone, the selected handles also move.
  
* Of course, you can animate the vertex position along the time and it would be the relative position to the bone setup position. This helps to fix gaps when bone transforms the vertexes in a non desirable way.
+
== Link to Skeleton ==
  
== More informations about Skeleton Layers ==
+
Select one or more handles from your artwork, select the {{Literal|Skeleton layer}} right click on it and from the contextual menu, select {{Literal|Link to Skeleton}}. All the handles covered by the bone shape will be automatically linked.
  
http://www.synfig.org/forums/viewtopic.php?t=4328
+
== See Also ==
  
{{l|Dev:Bones}} , {{l|Dev:Bone_Layer}}
+
{{l|Skeleton_Deformation_Layer}}

Revision as of 19:36, 8 February 2015

Languages Language: 

English



  I'm a Draft please help me to be efficient ... 

Parameters of Skeleton Layers

The parameters of the skeleton layers are:

Name Value Type
Type real icon.png Z Depth 0.000000 real
Type real icon.png Amount 0.500000 real
Type string icon.png Name skeleton string
Type list icon.png Bones list (Static List) list

Summary

In the skeleton layer, each vertex is influenced by a weighted average combination of bones maybe from different skeletons?.

There are two ways to make a vector be influenced by bone(s). First is the Skeleton Layer action that would give a 100% of influence of one bone to one vector. Second is the Skeleton Layer that is a semiautomatic way to give weighted influence to a vector from all the bones that overlaps its influence area over the vector position. The more covered the vector is by the influence area, the higher is the influence weight. In any case you can manually specify the bone and the influence that you want by editing the values in the vector (sub)parameters. We need to modify the bone(s) with handles to perform the indirect movement to the vectors that are influenced by it(them)

Skeleton construction

Add a "Skeleton layer", if your Canvas is empty you can do that from the global or caret menus "<Layer> → <New Layer> → <Other> → Skeleton". If your canvas is not empty, right clicking inside the Layers Panel. You have create the first bone of your Skeleton, this is your first parent bone.

Once you have a "Skeleton layer", the first bone appears. Each bones have few handles to control them : Origin, Angle, Length, Bone Wight and Tip Width. Take a look inside the Parameters Panel of the "Skeleton layer", those handles are relative to some of those values (with some advanced parameters). So with the Bones handles you can easily move and adjust part of your Skeleton.

Now, you can had child bone. Right click on any handles of the parent bone you want and select "Create Child Bone".

"Skeleton layer" when created, are Disabled from rendering.

Parameters of a Bone

The parameters of a bone are:

Name Value Type
Type string icon.png Name Bone 1 string
Parent No Parent bone_valuenode
Type vector icon.png Origin 0.00000, 0.00000 vector
Type angle icon.png Angle 0.00° angle
Type real icon.png Local Length Scale 1.00000 real
Type real icon.png Bone Width 0.10000 real
Type real icon.png Recursive Length Scale 1.00000 real
Type real icon.png Tip Width 0.10000 real
Type real icon.png Length Setup 1.00000 real

Link to Bone

Select a single or multiple handles from your artwork, right click on a bone and from the contextual menu, select "Link to Bone". Now when you move the Bone, the selected handles also move.

Link to Skeleton

Select one or more handles from your artwork, select the "Skeleton layer" right click on it and from the contextual menu, select "Link to Skeleton". All the handles covered by the bone shape will be automatically linked.

See Also

Skeleton Deformation Layer


Languages Language: 

English