Tuesday, July 21, 2015

Playback and export

In the past few weeks we have been working on providing real-time preview playback for animations in Krita.

In order to deliver smooth playback, we cannot simply render the frames on the fly - that would be far too slow, especially once the number of layers starts to build up. Instead, we prerender the animation frames into a cache before playback.

I have been working on implementing the management of the playback cache. Krita now automatically prerenders the frames when it is idle, and when something changes, the affected frames are removed from the cache. To reduce memory consumption, any subsequent frames with the same content (ie. a hold) share the same cache data. The status of the cache can be seen at the top of the timeline.

In the meanwhile, Dmitry has implemented OpenGL playback support and fixed a number of bugs. He is also working on the LOD feature in the same branch.

I have also added a basic support for exporting animations into image sequences. From File -> Export animation you can choose a base file name to which Krita will add frame numbers. The frames can be exported in any image file format already supported by Krita.

In terms of central features, the animation support starting to get quite usable. However, there is still a lot of work ahead to improve stability, performance and usablility.

22 comments:

The amount of progress you have made with this feature is incredible! Do you have any idea when Krita will get the animation update? I hope I don't sound impatient, I just want a date or timeframe to look forward to :D

We are planning to build the first testing Ubuntu packages by the end of the next week. It is going to be very unfinished and superunstable, but at least you will have a chance to try it and tell your opinion :)

There was a small issue with the initial release. A file defining the menu items has a version number which we forgot up increase.

If you manually remove the file %AppData%\Roaming\krita\share\app\krita.rc (on Windows) or ~/.kde/share/apps/krita/krita.rc (on Linux), it will force the menus to update and the export should be now available.

There's no krita.rc in the path you specify.However, I found it in (krita folder)/share/apps/krita I move it elsewhere then start krita, it gives error message then quit.

so I put the rc file back, this time it runs and the Export animation menu appear!

don't know what's going on, though. maybe it's because I also have the normal Krita installed?

quick feedback 1 : the onion skin workflow is not intuitive, it took me some time to figure out that I have to press the barely visible lamp icon to make it happen. it should be a simple big button in the animation docker to turn it on/off.

quick feedback 2: it would be better if we have an option to choose whether we want the Auto Frame Mode to create a new blank frame or a copy of the previous frame. I like it to auto-create a blank frame by default, though.

quick feedback 3: scrubbing area is too small to do quick scrub to check the animation. I always accidentally move the frames around trying to scrub the timeline.

quick feedback 4: the playback control in the animation docker is not very efficient way to work.It will interrupt your workflow when you're drawing and have to move your mouse to click somewhere else to play. In real working environment, I would assign a keyboard shortcut for playback control. so these buttons doesn't need to be as prominent as they are now, they are taking too much screen space.

I also found myself not having enough space when using the timeline but I managed to docked it right at the bottom of the canvas, meaning that you have to unlock the timeline default's position and dock it again at the bottom (not like the video "Overview of the Animation Toolset in Krita 2.9 Beta" made by GDquest in which there is a lot of empty free space at the bottom of the timeline)

Thank you for your work developers. I am learning animation with the help of Krita :)

I found an issue/bug that prevents me to work with Krita if I have selected full-screen-mode. Not always behaves like this: the bug doesn't allow me to click anywhere, no respond, to go back to normal-view. I have to close Krita using the Task Manager since the program doesn't respond to any command (it is like having another Krita's window opened that you have to close it first)