Hi Shiu - I'm moving the looping topic I started at CC2D to here - seems a more reasonable place to discuss...

You can still loop even if you don't set start/end, then it will just look at the amount of keys you have in your animations. Just enable looping without setting the range. Also you don't need to remove a frame if you want perfect looping, only if you export to a sequence of images will you have to remove the last frame after export.

So... we are definitely on the same page about the looping thing - I'm understanding what the program does at this point. And I still strongly suggest the user be able to set loop points per animation. Just as a workflow thing it makes much more sense. Even on the simple shots I posted, the loops were different lengths - every time I switched to an animation, I had to reset the in and out, and every time I restarted the app I had to reset the in and out. I'm not able to test the output until I get a code after kickstarter (congrats btw!) but exporting all keys might not always be what I want. I'm assuming I can change this programaticly (is that even a word???), but again much better for a visual person (such as myself) to define it in Spine. So a default of all key export (like you have now) would be great, with a way to set in/out per animation if I choose to... Your current loop in/loop out buttons are perfect, they just need to be made "sticky".

As for my rotation example - it works the same whether you're outputting keys or frames. Your first and last frames will always be the same - they run twice creating a subtle hiccup. So the way to create a perfect loop is to move the timeline end 1 frame back. This works whether your frame ends at 10, 34, 100, whatever... The walk loop on the beaver I made is incorrect for this reason http://vimeo.com/collidernyc/beaver. You could move the keys one frame out, then move back and key the previous frame, then delete the last keys, but that's a pretty kludgy way to do it, and makes it hard to retime animation (if I move my now end keys, the math is off).

One more quick question, while we're on the subject of retiming... is there a way to scale (retime) multiple keys? In AE you select keys and hold down option. In Maya, you use the scale tool etc...

Related Discussions
...

Those in/out buttons don't export too - I just tried it today (I bought full version recently). I'm not sure if it's intended or a bug.

It's intended. As it is now, it will export all keys.

I'll talk this over with Nate, thanks for the input. It should not give you a hickup though if you play the last frame, keep this in mind.
An animation that is 30 frames long
end is 29->30 since the time between 30-31 is never played
So it should be ok. Try testing it with a really slow animation, and you should be able to see it more clearly.

As for the retiming just drag a box around your keys in the dopesheet, then drag one of the sides.

Oh and btw. Welcome 😃

Great, thanks. Oh and thanks for the key scaling tip - works perfectly!

Love the key scaling... in most programs you hold shift to snap to frame (or snap to other features), but in frame based programs I think it makes more sense to hold down shift to do the sub-sampling. Nice job!

Thanks. 🙂 Also note you can hold ctrl to create multiple selection boxes in the dopesheet, then scale them all.

As Shiu mentioned, in the editor the looping should work correctly regarding the last frame. If your animation ends at frame 30, it should playback using 29->30 then 0->1. Since frame 0 and frame 30 should be the same to loop seamlessly, there are no extra frames. When you export to an image sequence you will get an image for frame 0 and one for frame 30, which may or may not be what you want.

I've always seen the loop start/end as a way to work on just a portion of an animation. I can sort of see switching between two animations and wanting the looping start/end stored per animation, though if looping is solely for convenience to focus on designing a portion of the animation, I wonder how common this is? For exporting, why would you design a whole animation but only want to export a portion of it? You seem to be using loop start/end differently than we had envisioned. It doesn't mean you're wrong, we'd just like to understand exactly why you are using it that way so we can think about what changes should be made.

There are many times where I'll lay out a sequence and only want to use a piece of the sequence. I'm used to AE/FCP where it's no problem to set I/O, so having the start and end buttons and not actually being able to set them is a bit disconcerting. It's not a huge deal in the big scheme of things, but it would be nice to keep the loop points sticky between animations... I like to quickly play back a loop while I'm working on the others, say walk into run or rest into walk, to make sure things are moving correctly.
Thanks for the playback breakdown - all makes sense now...

What would be nice to have one day is the ability to set loop and export it to runtime. Then in runtime be able to:

  • start animation from the beginning and make it loop according to the loop setting,
  • finish animation (easing) by showing the rest of the animation that is after the loop.
    And/or maybe some playlist for animations.

Right now I have problems making a smooth transitions between animations. I'll have to make some list acting as playlist I think and "whatIsCurrentlyPlaying" method. Playing animation backwards would also be useful to avoid doing in and out animations (for example "crouch" and "stand").

Magnesus, you can copy all the keys a timeline position from one animation to another. This should make it easy to have one animation begin exactly where another ended.

Magnesus, also keep in mind that if you want to make a reverse animation, you can duplicate the animation, drag a box around all keys in the dopesheet and then drag the start all the way past the end, effectively reversing the animation.