Change the starting point for width points on a closed advanced outline

Questions and answers about animation with Synfig. We encourage you to document your findings on the tips page of the website
Bobo the King
Posts: 19
Joined: Thu Nov 26, 2015 1:18 pm

Change the starting point for width points on a closed advanced outline

Postby Bobo the King » Thu Jul 21, 2016 5:27 am

Draw a closed curve with the Advanced Outline tool (I happened to create mine using the circle tool). Now suppose you'd like to animate it being drawn. Piece of cake: all you have to do is set your width point positions to 0, then animate one of them increasing from 0 to 1. (You also need to change the "Side Type Before" and "Side Type After" parameters on the width points, but I assume whoever is reading this is at least an intermediate-level user.)

Ah, but there's a problem. The curve always starts and ends at the same spot. For my circle, it begins and ends at -90 degrees (if we're plotting it on the Cartesian plane). What if I want it to start and finish drawing at a specific point? For the rest of this post, I'll pretend I want my circle to start on the x-axis.

One common-sense solution would be to start both width points at .25, then animate one of them increasing to 1.25. Alas, Synfig doesn't like it when you exceed the bounds of the width point positions and merely caps out at 1 (or whatever you set the upper bound to). One possible workaround is to subtract 1 when the width point position exceeds 1, but that's inelegant and can be difficult to edit if it needs to be changed.

It would be nice if Synfig internally handled width points like so:
  1. Are the width points set to the same position? If so, display nothing. (This could also include situations where width point 2's position is less than width point 1's, though I don't think that's necessary. Perhaps one or two options could be added that alter whether something or nothing is displayed when the width point positions are not in strictly increasing order. Anyway, none of this is all that relevant because I've done it manually using a constant waypoint for the Amount parameter.)
  2. If the width points are not set to the same position but within interval of each other, add or subtract interval from their positions until they are both between the lower and upper bounds. Here, interval is the upper bound minus the lower bound. Once between the bounds, draw the spline from the lower valued width point position to the higher valued one (or not, depending on the options I outlined above).
  3. If the width points are not within interval of each other, draw the complete spline.

If I'm not mistaken, this would all be pretty consistent and intuitive and allow for nice, continuous editing of parameters.

A simpler but less user-friendly way of changing the outline's start point is to add a parameter that defines in absolute terms the spline's starting point. This is what I thought the "Lower Bound" and "Upper Bound" parameters did, but all they do is change what values the start/end points map to, not physically where those points are.

Am I missing something? Is there a simple way to alter where the line begins drawing such that I can smoothly animate it going from start to finish?

As for my project, well, I have a pretty simple workaround. I'm working with circles, so I just rotated the circles by the amount I needed to. I'd still prefer a way to change this in the Advanced Outline parameters if and when I'm working with non-circular outlines.

Advertisement

User avatar
d.j.a.y
Site Admin
Posts: 1356
Joined: Fri Apr 27, 2012 4:35 am
Contact:

Re: Change the starting point for width points on a closed advanced outline

Postby d.j.a.y » Thu Jul 28, 2016 3:53 am

Bobo the King wrote:Am I missing something? Is there a simple way to alter where the line begins drawing such that I can smoothly animate it going from start to finish?
You can adjust the position of the width handles (http://wiki.synfig.org/Handle)
circle_widthhandles.gif
circle_widthhandles.gif (12.09 KiB) Viewed 1488 times

On this example, i have added two width handle (right click on a with handle and select "insert item") , first handle from right is 0 width), i select both with point and move them.
If that solved, please edit initial title adding [SOLVED]

Code: Select all

for each doc in [wiki] ;; if not doc.lang.your ;; then translate(doc, lang.your) ;;

-< Synfig documentation Getting started >-

Bobo the King
Posts: 19
Joined: Thu Nov 26, 2015 1:18 pm

Re: Change the starting point for width points on a closed advanced outline

Postby Bobo the King » Thu Jul 28, 2016 6:14 am

d.j.a.y wrote:
Bobo the King wrote:Am I missing something? Is there a simple way to alter where the line begins drawing such that I can smoothly animate it going from start to finish?
You can adjust the position of the width handles (http://wiki.synfig.org/Handle)
circle_widthhandles.gif
On this example, i have added two width handle (right click on a with handle and select "insert item") , first handle from right is 0 width), i select both with point and move them.


I'm not quite sure that's what I was looking for. I don't quite see how that changes where on the spline the animation begins or ends. That's okay, though, because I found my own solution to this problem.

  1. Draw your spline.
  2. Set the "Side Type Before" parameter of the first width point to "Rounded Stop" (or whatever you want). Correspondingly, change the "Side Type After" parameter of the second width point. Set the "Position" parameter of both to 0.
  3. Animate the width points as desired. (This can be done last, though I think it helps to do it first so that you know how your edits affect the animation.)
  4. Right-click the spline where you want the animation to start/end. Select "Insert Item & Keep Shape" to create a vertex handle without altering the spline's shape.
  5. Right-click a vertex handle and select "Rotate Order". This is the key step. It specifies which vertex acts as the start/end point of the spline. I found that it matters which vertex handle you choose. It would make sense if the start/end point were changed to the vertex handle you right-clicked, but in the quick example I drew, it was offset by one. It may take some experimenting on the part of the user to get it right.


Return to “Animation related help”

Who is online

Users browsing this forum: Google [Bot] and 2 guests