@Donation:
Funny you mention that. I actually felt really guilty that I wasn’t able to contribute to the updates for the animation like I promised a year ago, so I joined the gold member and am happily donating I think $27 or something a month. Y’all deserve it more than anyone else and I’m more than happy to support cause unlike the other software, with Krita I know for a fact that I’m getting what I’m looking for out of my money. I’ve drawn so many images and even made a few animations I never thought I would dream of doing with just Krita alone. It’s MY pleasure to support you all!
@Forum Praise or Critique:
This is more a realization. When I first used the forum, I wasn’t sure if the developers were actively involved in the discussions or just reading them idly. After entering the Git repo and the IRC though I realized that the forum is the best place to discuss ideas before/while they’re developed and ask questions about the development process. I’m kind of used to developer channels being more “private” like the IRC, but joining the IRC kind of felt intimidating unless you were specifically stuck on a problem and not really the place for discussing the merits of ideas. I guess this forum really is kind of the best “ideas board” and anyone who sets up a branch can make a personal To-Do list, but I always prefer to run it by veterans to make sure the idea is programatically sound. Sure the Merge Requests will cover that as well, but sometimes it could be a matter of “Well We’re rebuilding this system under the hood, so you may want to work off of this branch or wait until it’s done before doing any changes.” That’s more or less how I found Emmet and Eoin’s branch.
@Cycles vs Clones
Yeah, I do remember when talking to Emmet and Eoin that they needed to rework the animation system because before, it would’ve been very memory heavy (every cell was it’s own image and I did run into that issue as each new frame would use exponential memory). So by changing it to a pointer system and having the frames be pointers rather than individual image objects, this was necessary to prevent Krita from destroying the RAM if you added too many clones in the cycle, since the cycle frames are literally clones (though yeah, it could just be a flag that loops the frame pointer between 2 frames over and over so you’re right, they don’t need clones for that.). They did say that cycles might not fully work on the beta but will likely come very soon after the foundation is reworked. It’s possible they did finish the Cycles, but it’s not ready for prod yet because of that new system. Or if I understood what they were telling me. It makes sense to me though.(Krita does feel a LOT faster on my surface, I compare it to RoughAnimator’s system and use that as a baseline for what to expect). I would love to catch up on what all was added and is working though. I’m itching to see if I can have some fun with adding a keyframe system similar to Blender for the Vector layers so you could have shapes dynamically change form in an animation. Fortunately since Krita is 2D, managing each node’s parameters in a vector would be a lot less intense than the vertices of blender. That and Krita does kind of have a mesh warping system with the “Transform mask” and that grid warp, While adding bones and interpolation would be a big ask, at least there are ways to kind of do some non-destructive distortion based animation in theory.
I personally understand that you want Krita for hand-drawn animations, but I have trouble with maintaining proportions when I hand-draw, and I don’t like the ruler. I had the head getting bigger and the fingers/hand getting longer. I made a basic “rig”(?) of simple shapes (rectangles and circles, mostly) but it takes so many layers. I thought that I could get around it with a vector layer, but it doesn’t support keyframes.
Just my reasoning for wanting the feature, though. I don’t want to have so many layers, it’s very hard to navigate and I can’t really afford to have multiple shapes on a layer because I can’t easily move the shapes seperately. This is my first time trying to do this, anyways, and I was just a little disappointed that I couldn’t use a vector layer. Oh well.
Krita 5 can do transformation animations just an fyi. Just add a transformation mask, the animation curve docker and you can do transformations for each keyframe.
As a primarily frame-by-frame animator who’s dabbled in both 2d and 3d puppet rigging, SPFX, keyframing, and animation in general, both as freelance and professionally with a half dozen programs from studio-owned proprietary software, custom commissioned plugins for rigging in things like flash or toonboom, down to paper and pencil itself, this sounds like a decision made by a programmer.
Frame by frame animation does not mean you must draw each frame by hand over and over, especially in the earlier stages of nailing down your keys, curves and timings. And it definitely does not mean the computer cannot help you in some way. I get what you’re ‘going for’, but this isn’t it.
Full character rigging, more complicated puppets, bones, while cool, sure I get why you don’t want to add those. But this message honestly sounds like you’re just making paper and pencil but for expensive drawing tablets, I have no idea what animators you’re targeting with it.
I just discovered today that I can’t even key-frame vector layers. This is surprising to me, as I adore Krita for raster work, and this is an essential reason to use vectors.
It seems I’m going to have to export the sequence and cover it again with Blender’s grease pencil, or Toonz. Theoretically even InkScape, but it’s been a while.
Personally I haven’t even gone near Krita’s C++ yet, but I’m technically capable and have been meaning to go digging one of these days. I’m assuming it’s a lack of contributor interest in creating it, and not a policy decision; or maybe somebody is working on it and just hasn’t finished yet. Forgive my ignorance but how much of a jump would it be to be able to interpolate between stroke and drawing properties from one key to another?
I have to admit that most of my interest in Krita is because it’s open-source (and thus source available), and I happen to be an engineer too. Is there a quick start resource for understanding Krita’s code, or is it a jump-in-the-drink-and-hope-for-the-best kind of thing?
Manageable either way, I’m just a bit surprised and disappointed here.
There is a contributors manual, not sure if you’ve read this:
You would probably have better luck asking questions on the mailing list or #krita on libera.chat IRC network. That is where the devs mostly hang around, they sometimes come here, but not often enough to make effective conversation with them.
@vikinghelmet99 I’m just going to ping you, sorry for the ping if you saw a notification of my reply, but I’m curious to know more information about how you’re doing this and what more specifically you’re trying to do.
@jointri@vikinghelmet99
You both also have the option of voting for this feature. Although votes do not guarantee a feature will get worked on, it does serve as a measure of interest for the dev team. This feature request has only one vote so far.
I do a lot of animation, as a hobbyist turned professional. When I’m using another free tool like OpenToonz or Blender, it’s often possible to take a pair of vector drawings and interpolate between them—it takes some foresight and you have to keep your stroke order the same, but it saves an enormous amount of time. However, for raster work, I almost always use Krita.
I’m still getting accustomed to Krita’s animation feature. It’s a bit heavy on the RAM, but I have plenty of that and it works wonderfully. However, to my surprise, I can’t animate anything that isn’t a raster layer; so if I’m on a deadline with a project I’ll need to switch to something like Toonz—decent software, but way behind Krita when it comes to brush work and raster tools—and import everything into it. Then, if I want to touch up in Krita, I have to move back to it and reimport everything.
I think the ideal would be to be able to take a vector object and interpolate its properties between two key frames, perhaps even along a curve. So, taking a basic example like a quadratic curve, frame A might have such-and-such point locations and control vectors, and frame B might have so-and-so point locations and control vectors. If these are two key frames on the same object, half way between frame A and frame B we would have each point appear 50% of the way to point A’s location and direction, and 50% of the way to point B’s, if that makes sense to you.
There’s one trick I’ve figured out which feels worthy of mentioning here, though it doesn’t solve every issue here.
The biggest problem with raster animations is the sheer amount of RAM they take up. (Every frame of every layer times the number of bytes per layer, which gets out of hand really quickly, especially if you’re working in 4K to boot.)
I think vector layers are popular, partially, because they don’t take much RAM at all; they just describe how to draw the picture. That prevents excessive memory usage and removes pixel artifacts, at the cost of a little more processing time, which is no big deal these days.
When I’m doing flats, I now create a vector layer, and cover it with a box that is the color of my flat. I then add a transparency mask and clear it to black; then I draw in my flat on the transparency mask. In the worst case, it seems to take a quarter of the RAM, and works really fast. Kind of a nice hybrid between the vector and raster.
To be clear, this is very similar to what we get from fill layers; but I’ve experienced an issue in the past in which an animation will fail to save the transparency mask for fill layers. I’m still not sure of the full equivalency.
I love Krita, but I miss ability to animate vector layers and object shapes by moving their points around. It would be nice to have this feature. But for now… What software can u suggest for this purpose? I wanna do just 2D vector keyframe based animations on Linux (more specifically, Ubuntu based distros).
It’s not exactly convenient, but for the time being until the freehand brush tool can be used on vector layers you have the option to use freehand paths on vector layers. YMMV.
I’m definitely not a Blender expert, just barely literate, but as far as I understand, you can basically do anything in Blender! It’s the tool for 3D modelling and animation, so if you can do 3D you can do 2D just fine, too (just keep one plane flat, right ).
I would say it depends on what type of effect/animation you want to achieve and then you could see if getting that done in Blender would be “natural” or if some other software would be better suited. But you can totally create flat meshes (like vector shapes), texture/paint them, and then animate by moving vertices, adjusting scale/position/rotation with interpolations, curves, etc. over time. So yeah, it’s rather powerful.