Link spline to single axis

I’m new to Synfig so I’m sorry if this has been asked before. I’ve tried searching this forum and Google without success.

I’m working on a head turn animation. I created the face and the face parts and animated it using a mask to hide the eyes as they go around behind the head.

Head Turn Test No easing.gif

As you can see it doesn’t look so good when the eyes go around behind the head. I’m assuming it needs to ease the eyes at different speeds to accomplish a better head turn. I tried doing this manually but it’s not so good because they aren’t perfectly animated.

Head Turn Test Easing.gif

So I did the “Link to Spline” tutorial and I think that if I can create an oval, link each eye individually to it and have it be non-“homogenous” then I will be able to achieve what I want to achieve. So I’m looking for a way to link the eyes to the spline but have it only link to the x-axis. Is this possible? I’d also like to be able to link the Y-axis to a separate spline to make a quasi 3D affect. Is this possible? Or is is there a better way to accomplish what I’m trying to do? Thanks!

Hi and welcome here,

Not a very good method, better use ‘Onto’ blend method because eyes aren’t sticking out of the face.

Yes, that’s correct. Synfig is 2D software so it doesn’t have a depth (Z axis) so we have to work around it somehow and that won’t be an elegant solution.

I am not sure what is the best way to do it in Synfig, but I personally use method based on translation. Say we have two states: front view (value=0.0) and side view (value=1.0). We then create a translation layer, convert its origin to composite type and export X. After that we can attach other translation layers that locate in separate groups for eyes, nose and other face parts according to main layer, but with different multipliers.

I’ll add an example showing this technique when I come home from my work.

This being said with all respect:
More than looking for the best configuration in synfig, please notice that the turning head movement has to follow and arc, instead of following a straight line. The arc can be looking to the top or to the bottom, depending of what you prefer.
I’ve found this: … -cms-26487

Also, when turning the head, the eyes, ears, and mouth does also deforms too, because the head is almost an sphere
Googling again and related to a sphere. … notes.html

Or perhaps I misunderstood something, because I’ve read your post quickly, have to say.
Mea culpa:
Long time ago I also did a turning head movement with synfig, which DIDN’T follow my own advice :blush: : … -208120778

See You

I’ve attached an example. It just illustrates the basic principle, nothing more.
When you open the example, take a look at:
‘SWITCH’ layer. It doesn’t do actual translation, just exporting value X. Parameter is animated. X=0 - front view, X=-1 - side view (left), X=1 - side view (right).
‘FACE-ONTO’ group. Contains all face part that can be blended onto main face contour.
‘FACE’ group. Basic contour (circle).
‘Stretch’ layers inside is just a weak attempt to add some depth to the animation and can be disabled.

Inside of ‘FACE-ONTO’ group you will find ‘EYES’ and ‘MOUTH’ groups which holds ‘CORR’ translation layer. It’s a layer that actually do translation according to main ‘SHIFT’ layer. Look in ‘CORR’ layer’s parameters: Origin -> X-Axis, notice that LHS is connected to ‘SHIFT-X’ value that is exported by ‘SHIFT’ layer and scalar value (multiplier) is set to 1.0 for ‘MOUTH’ and to 1.5 for ‘EYES’.
To peak a correct multiplier for a certain face part you just have to experiment with it in non-animation mode.

Check those links for better understanding: (look for ‘Add’ conversion)
This should be enough to understand how to apply the same method to Y axis.
Head.sifz (3.18 KB)

Thank you everyone for your replies. I have plenty to go on now!

How were you able to get Synfig to convert the origin of the translation layer from -60pt, 0pt, 60pt to the SHIFT-X value of -1, 0, 1?

It’s easy, there’re several measurement systems in Synfig: millimeters, pixels, units, etc. I use units. 1 unit = 60 px. Units were the default choice in earlier Synfig versions and I feel comfortable with it, but then developer guys changed it to px.

To change measurement system go to: Edit -> Preferences -> Misc. -> Unit system.
Although, it doesn’t really matter, If you’re comfortable with pixels then left it as it is, just determine what value should be for the side view (1u/60px is OK for me).

Very nice work!! I added the Y-axis as a test and with some squash and stretch you can easily make a head turn that is within the boundaries of acceptable 2d animation that hulf2012 presented. As a vector program in its core this technique in Synfig should be easily accessible without a degree in geometry.