2D waypoints

Yes, it’s a crazy idea but let me explain it a bit further :slight_smile:. It’s certainly not something that may be implemented any time soon, but it has lots of potential.

Synfig works by animating its canvas as time progresses, at some amount of frames per second. But there is no reason why the animation parameter should be stuck being time. We could simply use time as where rotation.

For example, it would be possible to animate an object that rotates an object a full 360º in one second (on a 3D axis for example). Encapsulate it, and set the time ofset parameter to a Linear convert with rate -1s. The object inside will then be frozen in time. To that time we can add an offset, which will indirectly control the rotation of the object inside.

But why? why not just animate the object normally?
Several people have asked for ways to repeat a section of animation on several places and there is a tutorial that explains a way. But what about if you want the animation to be slower, faster, or (even if sounds wacky) move forwad/backards controled by a sine wave?

Having a paste canvas set-up like I explained allows just that. You can plug-in any valuenode into the offset into the paste canvas, and it will control the rotation of the object inside.

So now we have rotation along, say, the X-axis; the rotate layer allows rotation along the Z-axis (the one going into/out of the screen plane). If we had rotation along the Y-axis too we could freely rotate the object 3D!!

The idea then is to add Y-axis rotation in the same way X-axis was, by using waypoints. But waypoints only interpolate along a single parameter.
They’re 1D waypoints.

2D waypoints will have a 2D position, say b[/b]. The real problem becomes on how to interpolate between them in two dimensions. The easiest method would be to assign the parameter the value of the nearest waypoint. Voronoi Diagrams do just that. There are other interpolation techniques based on these diagrams which could also be used.

So now with 2D waypoints it would be posible to define the object using waypoints for any X-axis/Y-axis rotation combination. Combine that with the already existing Z-axis rotation and any 3D object could be DRAWN.

The artist would just draw the object a couple of times, with different X and Y rotations, defining waypoints along the way. Then adjust the parts that don’t look right, adding more waypoints. When all its done, the object would be able to rotate freely in 3D.

Several such objects could then be joined together using a sort of skeleton. Making it posible to create DRAWN 3D animatable characters.

3D modeling techniques, eat your heart out! :stuck_out_tongue:

Interesting feature request Yoyobuae.

I think it is not really a problem. in fact you can have the same interpolation method like in 1D but with more parameters.

Current interpolation method for 1D waypoints are:
TBC
Ease in/out
Constant
Linear
Manual

The first four methods are particularities of the last one. The last one (I don’t understand it fully) lies on four parameters: Tension, Continuity, Bias, Temporal Tension. So you’ll have then eight parameters (four for each coordinate).

Makes sense?