Krita Animation workflow notes when I animated

I know this is gonna be ignored because of the negativity but I will report it either way.

Introduction

Krita is still not way prepared for animation work is plain and simple. Despite the focus on traditional hand drawn animation it falls short even on this smaller goal. Animation wise Krita is becoming increasingly disjointed or is suffering a big transition phase of some kind either way it is not pretty at the moment.

Some of these shortcomings are UI other are lacking features. Some problems are okay to live with while other not so much. I have seen people complaining about animation before many times and I just verified it myself I guess. However I did notice more things around that people usually do not report on the forum hence me doing this. I assume the popular things to complain about are mostly shared a million times I am more here trying to shed light on other things and some of them are very low hanging fruit in comparisson.

I should say that my animation was only 18 frames long ( minuscule ) and still managed to be a horrible experience to a point I rather learn a new application and redo the work. I cannot praise my experience in OpenToonz enough.

These notes I made while animating will be separate by docker and their interaction with animation in mind.

Animation Timeline

  • Cache - Unable to handle its own cache properly. it will lock itself into certain cache if the display changes it does not update even if you move the time location. there is simply points in code that are missing a update check. This is something I never seen a timeline ever do in my life and manually cleaning cache every 10 minutes manually is not a workflow. It is literally a soft-lock unless you press the hidden button. By the way hidden menus with such important options like that should exist in the top on the application with ā€œAnimationā€ entry not on as a context menu on something that you would never thing would have context to begin with.
  • Scrubbing - No space to do it. it must be like 5 to 10 pixels high the area to scrub so odds are you will miss the target when clicking for it and to make it more interesting it is adjacent to the docker bar that also has the buttons for you to press. Needless to say it is recipe for disaster and undocking and pressing buttons by chance. and the coolest part on this is that the animation timeline does not have a lock still. I have been waiting for this lock but it is still not around not that it would actually fix scrubbing but at least it would fix the undocking the docker problem. my suggestion if your lazy make a modifier key to click anywhere on the timeline to scrub freely.
  • Copy Paste - copy paste favors copy and pasting an entire layer than a single frame in the animation. Someone did ask me for a odd plugin once to do this and I did it but did not understand why they wanted it but it was because of this.
  • Paste to Active Frame - would be cool to exist as the main option of copy paste on layers with animation active
  • Layers pinned to Timeline - By default layers should have NO animation frames ( only 1 frame at frame zero ) when pinning to the timeline that layers should receive the timelines size after. have 100 frames by default is crazy because the focus of Krita is hand drawn animation. no one drawns 100 frames on their first drawing. Even with the existence of animation curves and using the transform mask to interpolate who says it is 100 frames that you need? it needs to adapt to the timeline range not some random number that needs to always be edited. this range should not be a blender cube to delete when you start. Also I think a layer with animation should not drop in and out from the timeline so easily when selecting. it makes animation really wonky as the selection has influence instead of it being pinned to the timeline or not and stay as you plan to work with.
  • Vectors - mild annoying that vectors do not react to the transformation mask in order to move the nodes inside. But it would be better to just be able to move the nodes over time like others do but everything seems to hinge on transform masks here.
  • Mute Frame - Make a frame not render able. should start with off.
  • Transform Mask - Ability to apply transform to all frames of the animation. This would help to not having to recalculate the transform every time if you were happy with the transform. Also transform masks seem very heavy to calculate and sometimes update when nothing has happen to require it so not sure what is up with that must be some check with something else.

Animation Curves

  • Sync - The ā€œanimation curvesā€ docker time does not match with the ā€œanimation timelineā€ docker time. Needs to be updated manually to match. This makes keyframing to the wrong time a possibility.
  • Vector - Sadly has no animation keys for vector shapes.

Onion Skin + Timeline

  • Changes does not update - changing the state of display of the onion skin does not update the canvas or cache but mostly the cache.
  • Highlight a Frame - Make a frame always appear on the Onion skin highlight. Default start as off.

Layer Stack

  • Merge with the layer below - This should have two sub-options. ā€œMerge to Active Frameā€ and ā€œMerge to all Framesā€. This would stop doing nonsense to the rest of the animation.
  • Create New Group - Multi select layers and pressing the make new group with the mouse does not create the new group and place the selection inside. only with the shortcut does this happen. ( not an animation problem )

Tool Options

  • Select Shapes Tool Options - Link chain between Width and Height becomes always active when selecting a new shape. this is quite stressfull as it does not remember your current settings and reset very quickly with a miss click or clicking out for a moment.

Big Features Missing

  • Vector Animation and Brush Engine - I have requested this before but OpenToonz does this so right I think probably better than Blender does. I had said it was useful and with it I was able to make the animation super clean and calibrate the colors of the entire animation without having to repaint the layers by hand just because I wanted another tone. Besides the fact that the brush itself is amazing to draw with for lineart and has the ability of editing post drawn which helps adjusting the animation movement to be more suitable. This makes drawing animation tweens a much easier job. Also this is used as a brush not a classical pen tool like in Inkscape. Also these vector lines come bundled with a width tool and eraser so you can edit things to be a bit more dynamic and artistic.

I had two more notes but I cant read these. either way it was this. Either way most of my notes are not ground breaking features that take months and months to complete because they are so out of the box. It is basically UI and performance and a slightly different behavior when handling layers with animation.

I might be taking a look into krita in the future but for now it is this.

16 Likes

Hi, if by ā€œignoredā€ you mean ā€œnot implementedā€, then you are probably right :laughing: Not that the criticism is not valid, actually it’s on point IMO, but as usual, who’s gonna implement it and at the expense of what other features? That’s the problem.

Personally, I’m a bit torn on animation support in Krita. It’s good that it’s there, but I don’t know how much effort should go into it. I would rather see other things improved and completed before, which means animation will always be in the backlog. Unless maybe someone steps in and starts contributing, because they care about it specifically.

I don’t have much animation experience, but I would also choose OpenToonz, especially for cleanup, in-betweening, etc. Krita should still be pretty good for first key, and of course for layouts, painted backgrounds, and so on. I hear the main issue though is that OpenToonz crashes a lot :stuck_out_tongue:

Not sure why the joker attitude but sure.

Is this really an attempt of a provocation ? like really …

Sure. Make fun of me all you want … but the problems still stand regardless.

And to respond to your ā€œremarksā€ I rather have a crash and be able to work than not be able to work at all. Also do not expect responses from my part from here on out.

Hey, sorry if that sounded dismissive. To me it’s obvious that all the feedback is being heard, but it’s just not possible to act on all of it. It’s been said so many times – the core team has their hands full with various issues. They would love to do even more, but it’s just not humanly possible.

I just like to use emoticons on the forums, I guess. I’m not making fun of OpenToonz, after all I said it myself that I would pick it as well for ā€œseriousā€ work.

It’s good that you posted your comments. Now there’s a chance someone sees it and does something about it.

4 Likes

I would recommend to try Tahoma2D too, it is a fork that is more updated than OpenToonz and brings interesting options.

3 Likes

I pretty much agree with all of these. I personally find the featureset good enough for the type of frame by frame animation I do, but I agree the UI needs a heavy overhaul. Not heavy in difficulty, just a bunch of tiny things like you mentioned.

The only ā€˜major’ feature I think would make the animation tool great would be the vector based brushes. Not even node animation or tweening, just something I can keep transforming and liquefying over and over without losing so much detail would be a major boost to animation.

I’ll probably write up my own thoughts as well and maybe we could start a convo on what exactly the UI needs with the animation docker.

4 Likes

@emmetpdx should see this post. But, for example, he spent lots of time recently finally fixing the audio system in Krita, which was known to be broken for quite some time (and it was considered essential for many). There is progress, it’s just very, very slow. Especially since we have like half the team we had in 2020.

But, posts like this are pretty important. They just can’t always be addressed immediately.

8 Likes

Thank you for taking your time on writing your thoughts on this. :+1:

I did not interpret the reply of @YRH as negative as you did. He was just having a good time.

We will have to wait for QT6 to be implemented for any other big changes. But I’m looking forward to it, because of your detailed notes, there can be issues generated from it. That will speed up the progress.

4 Likes

May i ask something about the Brush Engine you mentioned. Because i dont understand if you like the Opentoonz Brush Engine.
One the main issues about the Opentoonz its the brush engine i say this because i am in the discord server and this topic was very discussed a dozens of times.
They prefer Krita brush engine than the Opentoonz.
Because they got a lot of features for example.
This kind of work i can do in Krita with the brush engine for Key animation.

This is a sample for what i can do in Krita with the brush engine in raster. Its a sample.
Of course the brush engine its not perfect in Krita but in Opentoonz lacks a tons of features.
Its one the main issues i dont use Opentoonz for drawing raster because lacks a lot of brushes and the brush engine its a nightmare. I will only dream someday Krita would be better than the Procreate Animation app and drawing App too.
Wich its the case why Opentoonz have good features for camera movement and Timelines for frames. Even the X Time sheet export they added its a good idea if that would be merged as feature request but thats only my own opinion and point of view.
This last features i mentioned they got in Opentoonz for animation it doesnt have Krita sadly.
Now the Vector you mentioned, its that the idea of the vector line they got in clip studio for lineart? Or Blender animation? That topic was put on the table before i remember someone posted.
Anyways i will put the examples maybe we need like the Timeline for example.



And sample for the camera movement that have been request a lot of time ago.

I got more examples for features like the ones you mentioned before and the Opentoonz they need to add for Krita.
Of course its only my humble opinion at the moment nothing more.

3 Likes

For some minor context I am actually a 3d rigger and animator. So for me animation resembles more something abstract like this. So my mind set is a bit different from other animators around here.

But I still animate in 2d sometimes for some cases like the one I had.

But even if I was doing vector art that has rig options on OpenToonz it was animated frame by frame like normal traditional animation. And the cool thing is I had ā€œhand drawnā€ vectors and vectors with ā€œmoveā€ and ā€œrotationsā€ transformations interpolated using curves. Both ways operated so harmoniously and I think I could have pushed it much more than I did.

I did not test their pixel brushes with actual animation drawings but they seemed pretty okay.

But yeah timeline orientation … I am sold on the vertical timeline it is like way better. more compact easier to scrub and it can be next to your main hand instead of being forcefully on the opposite side of your main hand as a right handed person. Never noticed how far I need to travel to adjust the timeline. But it is still one of those things that might not be for everyone.

Yeah CSP is all up there for illustrators because it uses vectors making it super clean with it. Even though most artists just see them as just ā€œbetter brushesā€.

Krita brushes are really good and I do prefer them over most applications I know. Krita is already a master in the pixel department like some apps. But I don’t think there is much more space to grow with it beyond optimizations or quality of life, and filters seem too much of a time sink to solve pixel issues. Considering krita is one of the few apps that has both vector and pixel layers and does not hide it. The improvement on vector would help animation the most but still have effects on stuff like inking and filling for illustration because that is what you mostly do for animation.

I know Qt6 will take a really long time when it happens ( was 3 years on the last transition ) but my timeline is not Krita’s timeline. Krita developers are better judges of their time usage. What I did was try it on a real animation and found out what was happening to me with it. And see if it was suitable for bigger projects. Even if the timing was not right for a fair assessment because it is work in progress the best i can do is help map stuff out.

1 Like

About that moving from qt5 to qt6 is easier according to the words of one of the KDE developers, it took him about 4 nights to port some programs so in that sense it may take much less time than we think (I hope).

In the same thread you linked Krita lead dev Halla also mentions that it’s not that easy for Krita.

I don’t want to state the obvious but the KDE developer told her that he would take a look at it to see what was causing the bugs, I’m not saying that everything is going to be peaches and cream, but hopefully it will be easier than in the past, let’s not be so negative.

I’ve added this for a feature request, even though it seems like a weird UI thing or bug.
After coming from apps such as Maya, Blender, After Effects, etc I noticed that the Y (up and down) translation curve is displayed upside down in the Animation Curves section of Krita. This is very confusing when animating. The Y curve should represent the direction of the object in which it is traveling. I understand this would create frustration for other users with their older projects if this were to change.
Perhaps there could be an option to reverse the direction of the Y curve?
Do some of you agree with this odd way of working in Krita with the Y curve upside down?

MAYA


BLENDER

KRITA

1 Like

I do agree that is strange, and I assume it has something to do with the fact that the origin (0,0) of the canvas is in the upper left of the screen.

It would be nice if the actual animation curve values had a bit of math to correct for this, even if it saves the position from the origin in the background out of sight.

1 Like

I hope they look into it. The weighted tangents on the control points are easy to control the speed so fixing the curve for position will make it a better experience.

For clarification, what would you expect the values in the curve editor to represent? Position in pixels from bottom of canvas?
And these values would change if you were to resize the canvas?

I’m not really sure but the key frame may not need to show the exact pixel position on the canvas and in the editor, there’s no option to type that in at present.
It just needs to roughly represent the position on the canvas with the curve in the editor.
The origin could always be at the centre of the canvas even after scaling.

Reviewing the software of Opentoonz i find something interesting, according with your experience, and knowlegde of the use of this software.
They have been added a tons of usefuls features they could be implemented into Krita animation feature, just i was spending time of listing or naming.
Maybe with this picture resume all the features they need ported or implemented into Krita.

**The source of the image came from the Official X Twitter account of Opentoonz: x.com
Author of the drawing: Shun Iwasawa
Of course some features are already added, just like the raster, vector, or mypaint brushes software, but the rest of them, its just the part of the route they need to be focusing into the animation workflow.
This image of course its something that i forget to added to my previous coment. But i cant find it. I hope you can understand me as well, because its my humble point of view and opinion.
And i still waiting to try the next Opentoonz 1.8 for making a proper comparisson into the next Krita 5.3 update.

2 Likes

Hey @EyeOdin, it sucks to hear that you think your feedback is being ignored related to animation (or anything else). Admittedly I’m not present on KA as much as I should be (though it’s not really part of my day-to-day job), but please don’t mistake a lack of engagement with a lack of caring what animators think.

Right now I’m the only paid developer focused mainly on working on Krita’s animation and storyboard systems (among many other things, including general debugging, managing Steam, etc). And over the last 6 months or so I’ve been almost entirely occupied with testing and solving our large backlog of bug reports–many of which pertain to improving the stability, performance and usability of the animation/storyboarding systems in some way or another.

The first part of solving these problems is making them known to the Krita team, not just as a post on the unofficial KA forum, but as a concrete and specific bug report on bugs.kde.org that we (you, I, and anyone else) can use as a foundation for collaboration.

I use Krita somewhat frequently in my free time, but there are limits to how much I can personally test and report bugs for Krita, let alone solve them before other people run into them.

Of course I understand that it’s not the user’s job/duty to report bugs. But frankly, odds are that the community will find bugs before I personally do, and so I really need people to help make my job easier by reporting the bugs and telling us what needs to be fixed. (For example, if the cache doesn’t update in a specific circumstance, or whatever.)

Scrubbing and GUI control in general is something that can be improved, sure.

This is more complicated to solve. It might be possible, but generally Krita has a very hard time interpreting the focus/context of actions/hotkeys. (For example, changing the nature of what the cut and paste actions do when the timeline docker is in focus.)

Do you mean that the ā€œpasteā€ action will, by default, use the ā€œpaste in active layerā€ functionality when an animated layer is selected?

If so, I think like that idea too. So please do me a big favor and submit it as a wishlist bug report and I will look into it.

I don’t agree with this point.

100 frames @ 24 fps is just over 4 seconds of animation, and animators have the ability to time their animation however they want (in 1s, 2s, 3s, or even animatic/storyboard style with single keyframes spread out here and there).

That is fair. In fact I think I just wrote a patch to do some of that a few weeks ago, though there is probably more to do.

Vectors, Transform Masks, Curves, etc.

This stuff is kind of a complicated topic.

I really don’t want to disparage any of the work that’s been done on Krita’s vector stuff by anyone, and I do think we’ve made various key improvements here, but I still feel that vector-heavy art and animation are not Krita’s strong points. As I understand it, Krita was not really conceived with that stuff in mind, after all…

I personally don’t do a lot of vector-based art or animation, but if I did I don’t know if I would choose Krita to do it with. I’d probably go with something like Inkscape or Blender instead. (Maybe OpenToonz is good for that too, I don’t know.)

I would love to see vector stuff improved in the future, but outside of the great work that Wolthera has being doing on improving the text tools, this is just not something that anyone on the core Krita team has had the chance to dedicate a lot of time to.

File a bug report if there isn’t one for this already, and if there is feel free to bump it by just writing a new comment. This kind of stuff can be fixed, it’s just a matter of prioritizing it.

Some of these are great ideas and very useful. Please file wishlist bug reports for each of these too, adding a little bit more detail about how you think they should work if you can.

I’m not sure what this is exactly. Something like Blender’s grease pencil?

One thing I’ve found over multiple years of professional software development is that sometimes ideas that seem quick and easy to implement in concept end up being more complicated and time consuming than I’d have expected. It’s one thing to think ā€œX should do Yā€, but it’s another thing to navigate >20 years of legacy code written by other people, as well as limitations and quirks of the various parts of Krita’s technology stack.

If you’re occasionally frustrated with the pace of Krita’s improvements, then join the club because I am too. I can’t blame you for that.

But I also can’t blame myself for that, because I’m just one person who has the privilege of getting paid (and not much, compared to other people in the global software industry, to be quite honest) to work on Krita. I’m really doing my best here, but try to understand that as Krita is a FOSS (free and open source software) project, my job/goal isn’t to personally implement every possible feature request and solve every bug in a timely fashion. That’s just not possible.

The way I see it, my job as a general Krita developer and maintainer of Krita’s open source animation/storyboard systems is to work on improving them as much as possible in collaboration with the community of users and developers. I’m not here to work for the community, I’m here to work with the community. (Whether I’m doing a good job of that is for you to decide… :woozy_face: )

That’s all a long-winded way of saying ā€œwe need your helpā€:

  • We need people to use Krita and test out the various features that the program provides, because many of you may actually use Krita more than we devs have time to during our free time.
  • We need people to file/bump bug reports for crashes, for performance issues, for feature requests, UI/UX papercuts, and everything else. For better or for worse, Krita’s bug tracker is probably the number one persistent to-do list for the entire project. We spend more time trying to solve our backlog of bugs than just about anything else, I think is fair to say…
  • We need people to continue to be engaged here on KA and to share their experiences, gripes, or whatever. I probably do need to dedicate more time to personally checking discussions on KA, but that doesn’t mean it’s not valuable to share your opinions here.
  • We need people in the community to continue to help collaborate with us. Krita, like Linux, Blender and Godot, is and always will be fundamentally an open source project. We didn’t build this in a vacuum, and we can’t continue to improve it in a vacuum. We need people to join us, download and compile the source code and hopefully open merge requests.
  • We also need people (who can afford it) to chip some cash into the development fund so that we have the resources to not only continue developing at the current pace, but ideally pick up the pace. We have less people working full-time on Krita today than we had just a few years ago, and we’re still struggling to keep up with the costs of inflation and the standards of the industry.

Anyway, I know that isn’t all totally satisfying as an answer to your issues with Krita’s animation systems, but I hope it at least makes sense and you can see where I’m coming from.

Finally, I also want to end this by saying that there’s no shame in ditching Krita in favor of another problem if you feel that it serves your purposes and workflow better at the moment. Krita doesn’t try to lock people in, nor would we benefit in any way from doing so. There are many times where I’ve picked other tools over using Krita (for example, making pixel art tilesets in Aseprite) when I think they are better for the task at hand–and that’s coming from someone who has the source code ready to change at any time. In other words, if OpenToonz is better right now for what you want/need to do, then by all means use it and make the art that’s inside you–it’s the art and expression that’s most important to me, not the tool.

Krita undoubtedly has a lot of room for improvement, and we can make it happen, but we have to work together.

11 Likes