Monday, May 25, 2015

Hitting the ground running

Today is officially the first day of coding for this year's Google Summer of Code. For the next three months I will be working on bringing animation to Krita. There's a lot of work ahead, but I have a solid plan to work with.

Timeline docker wireframes
In addition to the implementation plan from our sprint, we have been discussing the user interface design with some of the animators among our users. Scott Petrovic has made some very nice wireframes based on these. The discussion is still ongoing and constructive feedback is always welcome.

Even though coding officially starts today, I am not starting everything from scratch. As mentioned in my previous post, I have a partially working prototype to build upon. One can already add, move, delete and duplicate keyframes on a paint layer, as well as play the animation in real time. The animation can also be saved and loaded, albeit in an experimental file format.

However, the code is still in a rough state. There are a number of major issues with it, including crashes and even data loss. Due to a number of technical shortcuts taken for the sake of faster prototyping, it is cumbersome and unintuitive to use in places. For instance, in order to play the animation, one must have visited each frame in order to populate the playback cache. In short, it's a minefield of bugs and missing features.

I will start this week by finishing a refactoring of the prototype towards the final design and looking into some of the major issues, especially one relating to data loss with undo/redo operations. Hopefully in a couple of weeks I can get to implementing new features. I for one am looking forward to seeing fully functional animation playback and onion skinning in Krita.

9 comments:

  1. Great post. Thanks for keeping the community in the loop. If you get time for updates I'm sure people would love to hear them, even if they aren't big or detailed.

    ReplyDelete
  2. One great example of a well done timeline is the one in tvpaint :)

    ReplyDelete
  3. Layer grouping and Group animation?!

    ReplyDelete
  4. Is there the possibility to donate specifically to you? I really want to support specifically this animation feature :)
    And you for doing it!

    ReplyDelete
    Replies
    1. Thank you for the sentiment, but I don't take donations.

      You can always support Krita through the krita.org website, though. There's plenty of work ahead with animation even outside my GSoC project.

      Delete
  5. awesome! im currently working on sprite animations inside of krita, but the lack of proper tools makes the workflow much slower than it should be. can't wait!

    ReplyDelete
  6. will it be possible to animate non destructive layer effects, such as the transform filter?

    ReplyDelete
    Replies
    1. That is in the plans. It might take some time before we get to that point, though.

      Delete
    2. good to hear :)

      Will it be possible to instance a frame and reuse drawings that way. It would be useful for a walk cycle for example.

      In a walk you have 8 frames, you repeat them 3 times. You need to change one of the poses. Instead of changing it three times, you change it once and it's instanced frame updates on each of the three cycles.

      Delete