# Difference between revisions of "Waypoint"

m (typos) |
|||

Line 17: | Line 17: | ||

* the tangent changed ('Tangent 1') | * the tangent changed ('Tangent 1') | ||

* the vertex changed ('Vertex 001') | * the vertex changed ('Vertex 001') | ||

− | * the vertices changes (' | + | * the vertices changes ('Vertices') |

Only the first 2 of these are 'leaf waypoints' - the rest are parents (and grandparents, etc) of these 2 waypoints. | Only the first 2 of these are 'leaf waypoints' - the rest are parents (and grandparents, etc) of these 2 waypoints. | ||

Line 69: | Line 69: | ||

'in interpolation' and the right half indicates its 'out | 'in interpolation' and the right half indicates its 'out | ||

interpolation', so many different combinations are possible. The | interpolation', so many different combinations are possible. The | ||

− | following waypoints are from 5 | + | following waypoints are from 5 vertices of a single bline: |

http://dooglus.rincevent.net/synfig/waypoints-all.png | http://dooglus.rincevent.net/synfig/waypoints-all.png | ||

Line 89: | Line 89: | ||

The 'undefined' (grey) symbol is used when the row in the timetrack | The 'undefined' (grey) symbol is used when the row in the timetrack | ||

− | dialog represents multiple waypoints. For example, the ' | + | dialog represents multiple waypoints. For example, the 'vertices' |

− | row represents all the | + | row represents all the vertices making up a bline. Each of those |

− | + | vertices can have multiple waypoints, each with different | |

interpolations. If all the interpolations are the same, that | interpolations. If all the interpolations are the same, that | ||

interpolation's symbol will be used. Otherwise, the grey 'undefined' | interpolation's symbol will be used. Otherwise, the grey 'undefined' | ||

symbol is used. | symbol is used. | ||

− | The following waypoints are from the ' | + | The following waypoints are from the 'vertices' row of the same bline |

as before. Notice that since the left side of each of the waypoints | as before. Notice that since the left side of each of the waypoints | ||

− | is colored, indicating that the 'in' interpolation of the | + | is colored, indicating that the 'in' interpolation of the vertices |

− | are the same for all | + | are the same for all vertices, whereas the right side is grey, |

indicating that there is more than one 'out' interpolation in each | indicating that there is more than one 'out' interpolation in each | ||

column. | column. |

## Revision as of 13:07, 3 February 2008

## Introduction

Waypoints are the graphical symbols that show up on the timetrack dialog. Each time the value of a parameter is edited in animate editing mode, a waypoint will be created. For example, when you adjust a tangent duck of a vertex in a bline, a waypoint will be created to note the change. However, you didn't really adjust the tangent, you adjusted the two parameters which define the tangent: its angle ('Theta'), and its length ('Radius'). Opening up the 'tangent' node in the params dialog will show that waypoints have been created against each of these 2 parameters.

As a result of adjusting a single tangent duck, waypoints have been created as follows:

- the length of the tangent changed ('Radius')
- the angle of the tangent changed ('Theta')
- the tangent changed ('Tangent 1')
- the vertex changed ('Vertex 001')
- the vertices changes ('Vertices')

Only the first 2 of these are 'leaf waypoints' - the rest are parents (and grandparents, etc) of these 2 waypoints.

As things currently stand, it is only possible to delete one leaf waypoint at a time. If, for example, you want to delete the change made to the tangent duck above, you'll need to open up the tangent and delete both the 'Theta' and 'Radius' waypoints. The ability to delete whole trees of waypoints with a single click would be useful, as would the ability to select multiple waypoints at once, and operate upon them en masse.

## Editing Waypoints

Waypoints can be dragged left or right with the left mouse button to change the time at which they act upon their parameter(s). If you drag a parent's waypoint, all its child waypoints will move with it.

Right-clicking on waypoint shows a context menu, containing:

- Jump to: Set the current time to be the time of the waypoint.
- Edit waypoint: Only appears for single-leaf waypoints. TODO: writeme (brings up a dialog allowing various parameters to be set).
- Duplicate: Only appears for single-leaf waypoints. creates a copy of the current waypoint at the currently selected time.
- Delete: Only appears for single-leaf waypoints. deletes the waypoint.
- Change in/out interp.: Only appears for multi-leaf waypoints, and allows you to change the in (or out) interpolation setting for the waypoint and all its children. The choice of 'in' or 'out' is dependent upon which half of the waypoint you clicked on.

## Interpolation

Each waypoint has an 'In' and an 'Out' interpolation setting, which determines the manner in which its parameter changes - whether it changes linearly over time, or follows a curve.

The 'In' interpolation defines how the parameter changes in the moments before the waypoint is reached, and 'Out' defines how it changes in the moments after the waypoint. Available interpolation types are as follows:

- TCB Smooth: If you imagine a graph of the parameter's value against time, 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.
- Constant: Stops the animation.
- Linear: The graph of parameter value against time is a straight line.
- Ease In/Out: The graph is horizontal as it leaves the waypoint.
- Manual: TODO (allows manual adjustment of TCB variables?)
- Undefined: This is only shown for multi-leaf waypoints, where there is more than one different interpolation type amongst its leaf waypoints.

### Graphical Representation

The color and shape of the waypoint as displayed in the timetrack indicates its interpolation type:

Each waypoint is split into two halves. The left half indicates its 'in interpolation' and the right half indicates its 'out interpolation', so many different combinations are possible. The following waypoints are from 5 vertices of a single bline:

Note: the .sif file used to generate these screenshots is available. [1]

Here is an [http://dooglus.rincevent.net/synfig/interpolation.sif experimental .sif file] showing 25 different blobs, and how they move with different combinations of waypoints. It renders to a [http://dooglus.rincevent.net/synfig/interpolation.avi 634K .avi file], and is available in lower resolution on YouTube. Notice how:

- the blobs with any red (constant) on them don't move at all
- the yellow (linear) sides of blobs 'bounce' off the walls
- the cyan (ease) sides slow gracefully to a halt at the walls
- the green (TCB smooth) sides bounce at the top (the animation is a single down-and-up animation, looped, so there's no 'context' at the top for the TCB to fit the curve to) but act smoothly at the bottom
- the purple (manual) sides act strangely (TODO!)

The 'undefined' (grey) symbol is used when the row in the timetrack dialog represents multiple waypoints. For example, the 'vertices' row represents all the vertices making up a bline. Each of those vertices can have multiple waypoints, each with different interpolations. If all the interpolations are the same, that interpolation's symbol will be used. Otherwise, the grey 'undefined' symbol is used.

The following waypoints are from the 'vertices' row of the same bline as before. Notice that since the left side of each of the waypoints is colored, indicating that the 'in' interpolation of the vertices are the same for all vertices, whereas the right side is grey, indicating that there is more than one 'out' interpolation in each column.

TODO: rewrite the above so it doesn't hurt the brain so much.