I’m proposing making a few changes to the timeline. My goal is to not make the timeline any more complicated, make it more intuitive (at least in the perspective of coming from another animation program) , fix the ability to click and drag frames (which is broken in the current master), and impliment an easy interface to create simple tweens which would not complicate using the timeline.
I’d like to preface this proposal by stating that, I am aware that pencil2d is, and should remain, animation software focused on traditional animation. I would not propose turning this more into something akin to synfig or flash, which are built to allow the user to do most of their animation using tweens. What I am proposing is something that would allow certain common and importent effects to be easy to do, such as the scrolling of a background (which was the subject of another forum post that I noticed), or the rotation of a ball that might be thrown, or the shrinking of a car that might be driving away. Complicated scenes involving many tweened objects should perhaps remain the venue of other applications.
This is my proposal:
Keyframes should have a size. They should explicitly last a certain number of frames. Currently, you can create a keyframe and every frame after that uses the content of the last keyframe shown. I would propse that if a layer does not have any keyframe on it, then the content of that layer is blank. The user explictly expands a keyframe to fill space which should have content visible. To me, this is more intuitive behavior. It may seem like this is extra work for the animator, but I think with a proper interface it should be very easy and intuitive to do. In addition, thinking of keyframes in terms of a size of multiple frames has advantages for implemented the rest of the proposed improvements:
Keyframes have a position, rotation, and scale value. These could be changed via a docked dialog (called the “frame properties” dialog), probably to the right of the timeline. The user may right click on any frame within a keyframe to create a position, rotation, or scale key. The values in the dialog reflect the values associated with the last position, rotation, or scale key that had been created. Each keyframe automatically has at least one such key associated with it that applies to that keyframe’s very first frame. As you may guess, these values will affect the position, rotation, and scale of the drawing in that keyframe.
The user may choose these position, rotation, or scale keys to be tweened between. This should probably be done in the frame properties dialog as well.
This means keyframe properties are keyed and tweened, therefore to tween multiple objects, multiple layers must be used. But I think this makes a highly accessible and transparent system, which doesn’t make the current animation workflow any more complicated but it adds a lot of power.
Additionally the timeline should become more interactive. Right now users cannot select frames and move them, in the master branch. But more than that, it’d be nice to be able to cut, copy, and paste groups of frames.
What do you think? It sounds a bit ambitious but I think it’d be a huge improvement, especially over the current kind of broken timeline.