Semi 3d head movements

Based on the idea of the almighty Svarov, da Synfig Masta!, I created this little example that allows 3d like movements of the head using a translate layer and some exported values. Not for a full headturn, but for little movements like when a character is talking or nodding etc. It’s just a basic setup and can be improved.
Head.sifz (16.5 KB)

wow! good :smiley:

Haha, lol! Almighty, yeah sure… :slight_smile:
Well, thank you. I checked out your work and it’s impressive. I was actually using this same technique when I was working on all of my ‘Wolf’s head’ tests.

Currently, I am trying to improve this technique significantly so it can be used with full animal body. And I can tell you I am a bit stuck. I am not sure how to deal with body parts after you rotate them (especially arms and legs). As soon as I solve it I will have a nice template to help me animate a complex living thing so I can move forward.

You guys will always impress me twisting your brain doing 3D with a 2D software :laughing:

“The mind, at times, takes masochistic delight in suffering.”
― Saurbh Katyal, Seduced by Murder :smiling_imp:

oh God…how do i do this?..this is really useful…any tutorial how to rig this stuff?


Short step by step version of a cyclops eye that moves around on a face.

  • Draw a shape. Group the shape and name the group face.
  • Draw a new shape on top of the face group. Group the new shape and name the group eye.
  • Group the group eye into a new group and call the new group face_onto
  • Put the blend method of the group face_onto on ONTO.
  • Group the groups face_onto and face and name the new group whole_face
  • create a translate layer above the whole_face group and name it move_head.
  • Convert the origin of the translate layer to composite.
  • Export the x-axis and y-axis values of the converted origin and name them shift_x and shift_y
  • In the eye group folder create a new translate layer and call it correction or whatever you want.
  • Convert the origin of that translate layer to composite.
  • Convert x-axis and y-axis to add.
  • In x-axis link the LHS to the shift_x exported value
  • In y-axis link the LHS to the shift_y exported value.
  • The amount of the scalar values under x-axis and y-axis determine the amount of movement of the eye.
  • To add some form of perspective when moving around with the first translate layer move_head, create a stretch layer in the eye group folder under the translate layer and name it perspective.
  • Convert the amount parameter of the stretch layer to composite.
  • Open the amount parameter and convert the x-axis to add.
  • Open the x-axis and convert the RHS to add.
  • Open the RHS and link the LHS to the shift_x exported value.
  • Convert the scalar to switch.
  • Open the scalar and change link on to -0.5 and link off to 0.5 (those are the amounts the determine the perspective)
  • Convert the switch to compare
  • Open the switch and link the LHS to the shift_x exported value and tick on greater then.

When you select the move_head translate layer you can move the green handle on the canvas to move the eye around. When the move_head layer is active the head will move too. When it is inactive only the eye will move. I will attach the sif file as a reference. If time I will make a quick video performing the same actions as described above as a second reference.
If you want to add hair for example then you create a new folder, name it hair and put it under the whole_face folder. You can copy the correction and perspective layers of the eye. If you want to let the hair move slower then you have to adjust the scalar values of the x-axis and y-axis of the translate (correction) layer of the hair. In the original sif file with the girl I put several folders above and under the whole_face folder and gave them all a different speed to mimic 3d movement.
Good luck and have fun! My apologies in advance for eventual mistakes. It’s late and I am tired. :slight_smile:
headtutorial_simple.sifz (2.49 KB)

Don’t forget to add it as tutorial in the wiki :wink: