Drawpile
Drawpile copied to clipboard
Animation Timeline - to manage keyframes and timing
I propose a new tool for drawpile in the form of a new Dock/window. The animation timeline. Here is how it works:
- The timeline window lets the user create a new data type: The animation layer. Inside the Animation layer, the user can create animation frames. Each frame can be moved by dragging on the timeline, allowing the user to adjust duration between frames. The user can also insert animation frames between animation frames. The user can assign a "drawing" to each "animation frame".
Now here is the beauty of this system. It uses drawpile's standard layers for "Drawings" .
- A "drawing"(animation timeline) is a "layer" (layers dock). It's just a variable that you can assign a layer to, in order to use as a frame. so in essense you use a single layer as a frame.
- An "Animation layer" (animation timeline) is a "layer group" (layers dock)
https://github.com/callaa/Drawpile/issues/261
Information about timing is stored and managed in the timeline. Actual drawings are stored as layers inside groups.
Inspiration: This is Clip Paint Studio EX - a japanese alternative to photoshop that is used by mangaka artists. They recently added animation features ported over from their other product - RETAS. It's in closed beta at the moment, but they gave me access to evaluate their software.
Basically they added a timeline, which stores all of the frames in layer folders. Each layer folder corresponds to the animation layer in the timeline editor. Each animation keyframe can be assigned to use any of the layers you have in that layer folder. You can see it here:
I have a "lines" layer folder where my lineart frames are stored. I also have a "color" layer folder where my color for the lines is stored.
The timeline contains meta information as to where frames are in the timeline and for how long it is held. That is really enough to create a complete animation system with layers.
Right now we can not control animation timing very well. In order to keep a drawing/pose for longer than one frame, we have to duplicate it many many times- wasting valuable resources
here is a video that illustrates it better: https://pbs.twimg.com/tweet_video/CSueTkSUcAAmTbx.mp4 :)
It is incredibly useful
I was going to put up a topic about Folders as well; for animation and otherwise, but this post covers some of it already.
A timeline would be helpful; but folders would be GREATLY. GREATLY. Appreciated. I can't animate during a group drawpile without overwhelming the group members with frames. And not only would it be helpful to have folders for animation frames; but also for the other drawpile room members to put their own layers.
Both a timeline and folders are a much needed feature. And very appreciated ones.
Krita devs now have added animation and multiple frames can be stored on a single layer. It is however somewhat behind drawpile - as we have ability to erase by color and colorize with a single command and they dont :P
It is also currently still THE ONLY GROUP animation session software on the planet!! :+1:
Kudos to @callaa for being ahead of all the others! One thing that could greatly help it though is a lazybrush bucket tool https://github.com/callaa/Drawpile/issues/178
now that we have sketching covered and inking covered - the biggest missing element is fast coloring. krita developers are adding a new lazybrush layertype. Krita already has lazybrush via a gmic filter and it works quite well on single images, but cant do much on an image sequence. For a lazybrush implementation that is beneficial to animation though - we really need to have either frames stored in layer folders, or frames stored inside layers. Layer folders can make a big difference.
another video demo of animation timeline using animation folders: https://www.youtube.com/watch?v=dKD5HthovhU
This feature will be great, since drawpile simple animation support is already good enough for simple animations it'll be great to have timing support as well with a timeline to being able to manage timing more easily, folders would work basically as a layer and the layers inside the folder would work as cells or frames, with that animation on drawpile will be really pretty much complete. I know this feature was submitted in 2015 but honestly i think with the support for animation it has now it'll be an quick way to just finish the animation support for drawpile.
It's been a while, but it's finally time for this feature. Here's a sketch of how the timeline UI could work:
This would work much like it does in Krita and in the Clip Paint Studio example above, although a bit simplified. (I've left out the opacity tweening feature. Or is this essential to have from the beginning?) This feature should be easy to understand, so I feel like simpler is better. I'm still not fully sure how to use Krita's timeline, even though I read the instructions.
Under the hood, this would require just one more command to be added to the protocol: something like SetTimelineFrame
which takes as parameters the frame number and a list of layers that are shown on that frame.
To keep the animation features easily approachable, the advanced timeline would not enabled by default.
This looks awesome :) I think following kritas well established design is a good idea. Its already liked by the community and is battle tested for sure. Drawpile's multiuser session combined with this will result in a truly interesting collaboration experience. I can already see this being used for putting together an animatic when typically a team of people collaborates and discusses the arrangement of shots, etc. It could help with teaching animation to students remotely.
Other exciting things like having people work together on things like animation shorts and even sprites for games comes into mind. This would enable much more polish and non destructive workflow than the current one, a timeline will make it so much better for adjusting timing too.
I am very excited about drawpiles collaborative power growing like this 😁
On Wed, 13 Oct 2021, 17:49 Calle Laakkonen, @.***> wrote:
It's been a while, but it's finally time for this feature. Here's a sketch of how the timeline UI could work:
[image: timeline-mockup] https://user-images.githubusercontent.com/464576/137154871-e071b8dd-ec37-4f09-b842-d407c6ea327e.png
This would work much like it does in Krita and in the Clip Paint Studio example above, although a bit simplified. (I've left out the opacity tweening feature. Or is this essential to have from the beginning?) This feature should be easy to understand, so I feel like simpler is better. I'm still not fully sure how to use Krita's timeline, even though I read the instructions.
Under the hood, this would require just one more command to be added to the protocol: something like SetTimelineFrame which takes as parameters the frame number and a list of layers that are shown on that frame.
To keep the animation features easily approachable, the advanced timeline would not enabled by default.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/drawpile/Drawpile/issues/275#issuecomment-942383277, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRRWVISHYUDZQNVDJXSTILUGWL5XANCNFSM4BQ3W2UA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
(I've taken over development on Drawpile, so I'm going through these tickets and organizing them.)
This has been implemented and will be coming with Drawpile 2.2, in the format Calle described.