Weird bug (delete key) and questions about storing poses


First up, if I’m editing a value for a parameter and het DEL it will delete the selected layer instead of the character in the input widget. It should be easy enough to test if the current focus is on an editable widget or not with GTK. This bug has been the cause of cursing and having to remember that only backspace works when editing values.

Second, I have an eyeball with 5 different keyframes with poses stored in them. Is there any way I can reference these poses from another animation without having to change the eyeball animation itself. I don’t want to use the animation timeline in my eyeball.sifz, but rather control which pose to use from my animate_eyeball_in_face.sifz.

Maybe this is unclear what I mean, but basically, it’s about reusing poses, the keyframe workaround just isn’t working for me.

This bug is solved in the latest release. Can’t do more than release 0.62.0 ASAP. :wink:

You can always create a backup of the eye.sifz file and use the copy to be imported in the new project. Then the eye from the copied file will have its own timeline and you can erase its current animation because you keep a copy of the original one.

Once you update to the last version you’ll have a way to move keyframes with the mouse, which is great to sync animations.


Hm, I see what you mean. I have a left eye and import it, is there a way to flip (transform) that layer without editing the children, like I would be able to do with rotate layer but flip/mirror instead? And how can I delete/unexport exported canvases easily? I have no way of knowing where the source of an export comes from so i can click the parameter and unexport.

I think a tutorial on how to do regular animation would be much apreciated. I’ve seen flower and particle animations, but how about a stickman walking using already defined poses? A lot of people used to onionskin animation might find the Synfig timeline editing a bit confusing. Or maybe it’s just me, hehe. :slight_smile:

You can use the Stretch layer. Set the Amount parameter to be (-60,60) for a X mirror and (60,-60) for a Y mirror.

You cannot. It is a bug that we don’t know how to solve at the moment.

Yes it would be a good tutorial. When peaced times come around I might think on one tutorial of that. Meanwhile you can look to some of the files of the stickman challenge or to the stickman template from the morevna project.


Hi again!

Do you think there’s a possbility to get the “pose” feature into the wishlist?

Here’s how I see it working:

I have one animation called mouth.sif in which I have 10 different keyframes defined (along with descriptive names), each keyframe is only one frame long. Each named keyframe contains a pose for the mouth depending on vowel/consonant spoken.
My second animation is called head.sif in which I have imported mouth.sif and display it using a paste canvas.

The canvas parameter for my paste canvas could have epxanding options as follows:

  • Offset
  • Duration

This would make sure that the pasted canvas is using the way mouth.sif looks at the specified offset and for the specified duration. The duration and offset is completely disconnected from the head.sif timeline.

if I set the canvas subparameters to offset 5f and duration to 0f that means I will use frame 5 from mouth.sif and only frame 5 until the canvas parameter is altered once more on the timeline. If I set offset 3f and duration 3f it will start at the 3rd frame in mouth.sif and iterate 3 frames evenly until next canvas parameter alteration or end of animation.
If it’s too hard to implement duration I’ll be happy with just having one frame rendered in the paste canvas until next canvas parameter change.

So, what are the benefits? Well, without changing too much or breaking compatibility we can add poses to one animation and reuse them a we please in another. We can refer freely between poses and reuse them.

Another example might be stickfigure.sif that hold all walking and jumping poses, then I have animation walkinthepark.sif in which I can use my stick figure animation and very easily change the canvas parameter to render and animation towards specific offsets in stickfigure.sif. To walk I would change the canvas parameter on my main animation (walkinthepark.sif) between (as an example) frame 0 and 1 and then when jumping I change the canvas parameter animate stick figure from frame 2 to 5, given that the poses for walking are in frame 0 and 1 and jumping is between 2 and 5.

This might sound unclear, I’m not sure if I can draw a small illustration to show what I mean. Does this make any sense at all? Any chance for whishlist item?

I’ve thought on that approaching several times and I found this:

You want a pair of subparameters for the canvas parameter. You have one of them already Time Off Set parameter of the paste canvas layer is a parameter that modifies the time of the paste canvas in relation to the canvas that hold the paste canvas layer.
Say we have a document (head) with a mouth canvas imported from file (or exported internally, it doens’t matter) lying in a paste canvas layer.
If you have a document time of 4s and a Off Set time of -1s you see a time of 4-1=3s in the paste canvas layer. You can make very cool things with the Off Set time parameter. You can convert to a linear variation and make the imported canvas (mouth) go slower, faster or freeze. You can modify it even with constant waypoints to make jumps beetween different position of the timeline in the mouth canvas. See here for example. In the mentioned example the animation is reversed.

But where is the problem? For me the problem is this:

  1. You store your phoneme poses in the mouth file: AI, E, O, U, FV, L, MPB, WQ, rest.
  2. Imagine that you store each phoneme keyframe with a separation of 10 frames between them.
  3. Let’s say you use the Offset and Duration subparameters or the conversion type with the rate and offset. it is similar.
  4. Imagine that you have the O phoneme keyed at a certain time and you want to make a transition to a ‘rest’ phoneme. Considering the order that the phonemes are stored you cannot make a normal transition form one keyframe to other because there are other keyframes in the middle. So you end going to the ‘rest’ phoneme in a constant jump. So where is the benefit?? there is not smooth transition!

I think that the good approaching is
-Insert phoneme keyframes in the timeline of the exported canvas and make the document time to follow the time of the child canvas. Unfortunately update the timeline of the root document based on the children timeline cause problems. I don’t remember exactly what where but I think that is related to time propagation from child to root and then from root to child in a endless loop

I wish to dig on this one of these days :slight_smile: