Difference between revisions of "Doc:Following a Spline"
m (started with a copy of "Following a BLine (the old way)") |
m (updated to use the newer way of linking things up) |
||
Line 26: | Line 26: | ||
* [[Following a BLine#Create the Layers|Draw a curve and an arrow]] | * [[Following a BLine#Create the Layers|Draw a curve and an arrow]] | ||
− | * [[Following a BLine#Make the Arrow Move|Link the arrow's Origin]] to the | + | * [[Following a BLine#Make the Arrow Move and Rotate|Link the arrow's Origin and Rotation]] to the bline so the arrow follows the curve |
− | + | ||
== Tutorial == | == Tutorial == | ||
Line 36: | Line 35: | ||
File > New | File > New | ||
− | |||
− | |||
=== Create the Layers === | === Create the Layers === | ||
Line 47: | Line 44: | ||
draw a bline that you want the arrow to move along | draw a bline that you want the arrow to move along | ||
− | + | click the "Make BLine" icon in the bottom left of the "Tool Options" panel to create the bline. | |
− | + | still in the bline tool, enable Fill and Outline checkboxes in tool options | |
− | + | ||
− | + | draw an arrow or whatever, pointing to the right | |
− | + | switch to the "Normal" tool | |
− | + | ||
− | switch | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
select the outline, hit control-a to select all its ducks except the green position duck | select the outline, hit control-a to select all its ducks except the green position duck | ||
Line 73: | Line 59: | ||
encapsulate the rotate, outline, and region layers | encapsulate the rotate, outline, and region layers | ||
− | |||
− | |||
so now you've got 2 top-level layers: a curved path, and an encapsulation containing an arrow and a rotate layer | so now you've got 2 top-level layers: a curved path, and an encapsulation containing an arrow and a rotate layer | ||
− | === Make the Arrow Move === | + | === Make the Arrow Move and Rotate === |
− | select the "arrow" encapsulation layer | + | select the "arrow" encapsulation layer by clicking it in the Layers panel |
− | + | select its green position duck by clicking on it in the canvas window | |
− | + | ||
− | + | ||
− | the | + | additionally select the Rotate layer by holding Control and clicking it in the Layers panel |
− | in the | + | |
− | + | additionally select the blue "rotation amount" duck by holding Control and clicking on it in the canvas window | |
− | + | so now we should have 2 layers selected, and one duck from each of those 2 layers selected | |
− | + | now additionally select the curved bline layer (it should be the last layer in the Layer panel's list) by holding Control and clicking on it | |
− | + | right-click on the dotted line that indicates the position of the curved bline - not on any duck, but on the dotted link between ducks | |
− | + | from the context menu that pops up, select "Link to BLine" | |
− | + | the encapsulated arrow should move so that its green position duck is on the bline, and it should rotate so that the arrow points along the bline at that point | |
− | + | select just the encapsulation layer, and drag its green duck around. you'll see that the duck is constrained now to lie on the bline, and that dragging it also affects the rotation of the arrow as expected | |
− | + | we can now animate the arrow. turn on "animate edit mode" by clicking the icon in the bottom right of the canvas window. | |
− | + | at time 0f, drag the encapsulation layer's green position duck to one end of the bline | |
− | + | at time 5s, drag the same position duck to the other end of the bline | |
− | + | Try File > Preview or View > Play to watch the animation. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Results == | == Results == | ||
Line 128: | Line 97: | ||
== Commentary on the Feature == | == Commentary on the Feature == | ||
− | |||
− | |||
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). | 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). | ||
It would be good to have the option of having the arrow move at constant speed along the length of the curve. | It would be good to have the option of having the arrow move at constant speed along the length of the curve. |
Revision as of 21:18, 30 March 2008
Contents
Introduction
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...
This bug report suggested a feature:
I would like to be able to draw a bline with N vertices and have a shape move along that bline (the whole shape or individual vertices). Currently the only way I have found to do what I want is to draw a bline, and then move a shape along that line manually at fairly small intervals (very frustrating).
Example: A triangle that should move along a sine curve always pointing in the direction it is going to move next.
The feature has recently been added to Synfig (23rd September 2007) and will be in the next release.
Summary
We're going to:
- Draw a curve and an arrow
- Link the arrow's Origin and Rotation to the bline so the arrow follows the curve
Tutorial
This is a brief tutorial giving an example of how to use it:
Create the Animation
File > New
Create the Layers
select the BLine Tool
enable just the Outline checkbox
draw a bline that you want the arrow to move along
click the "Make BLine" icon in the bottom left of the "Tool Options" panel to create the bline.
still in the bline tool, enable Fill and Outline checkboxes in tool options
draw an arrow or whatever, pointing to the right
switch to the "Normal" tool
select the outline, hit control-a to select all its ducks except the green position duck
drag the ducks so that the arrow is centred around the green position duck
add a rotate layer above the outline and region
encapsulate the rotate, outline, and region layers
so now you've got 2 top-level layers: a curved path, and an encapsulation containing an arrow and a rotate layer
Make the Arrow Move and Rotate
select the "arrow" encapsulation layer by clicking it in the Layers panel
select its green position duck by clicking on it in the canvas window
additionally select the Rotate layer by holding Control and clicking it in the Layers panel
additionally select the blue "rotation amount" duck by holding Control and clicking on it in the canvas window
so now we should have 2 layers selected, and one duck from each of those 2 layers selected
now additionally select the curved bline layer (it should be the last layer in the Layer panel's list) by holding Control and clicking on it
right-click on the dotted line that indicates the position of the curved bline - not on any duck, but on the dotted link between ducks
from the context menu that pops up, select "Link to BLine"
the encapsulated arrow should move so that its green position duck is on the bline, and it should rotate so that the arrow points along the bline at that point
select just the encapsulation layer, and drag its green duck around. you'll see that the duck is constrained now to lie on the bline, and that dragging it also affects the rotation of the arrow as expected
we can now animate the arrow. turn on "animate edit mode" by clicking the icon in the bottom right of the canvas window.
at time 0f, drag the encapsulation layer's green position duck to one end of the bline
at time 5s, drag the same position duck to the other end of the bline
Try File > Preview or View > Play to watch the animation.
Results
This is the animation I ended up with: arrow-follows-line-tut.sifz
Commentary on the Feature
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).
It would be good to have the option of having the arrow move at constant speed along the length of the curve.