Limited Animation in Krita

Hello everybody! I did this animation experiment in Krita in June/2021. My program is in Brazilian Portuguese… but I don’t think it will (much) harm the understanding. Here it is:

The animation process is usually labor intensive and requires a lot of drawings. By default, for one second movement on the screen, 24 drawings are needed! Of course, certain movements are possible to animate with 12 drawings, even less depending on what it is… still, it’s not an easy task.

That’s why the concept of limited animation was born. In this type of animation, the character does not move all the time on the screen, sometimes only part of it moves (like the head and arms). Certain moves are repeated several times, from one episode to another…or even in the same episode. Limited animation, as far as I know, was introduced by Hanna Barbera. To know what it’s like, just watch any episode of “The Flintstones”, “The Jetsons” or other animation produced by the studio.

One of the advantages of this style of animation is that it makes it cheaper: the fewer drawings, the lower the costs and time spent to make them. Other studios soon began to do the same.

In animes this technique is also used, usually in smaller and short scenes, with a few seconds in duration. The Doki Doki Drawing channel brings an interesting limited animation tutorial of a small scene, in which a character walks along a corridor.

I practiced this experience in Krita, with an old character of mine:


I managed to reasonably animate the arms, something that the tutorial didn’t cover (it seemed strange to me that the character walks with his arms still). I could have gone further, added more details, but I preferred not to overcomplicate the experience. Although I only took screenshots of a small part of the process I will post them here as they may be useful to those who decide to try the experiment.

Below we have the character with the outlines already finished, as well as the basic scenario. The dark blue borders (A) are margins, I leave them to give myself space to work safely. In the final step, the image will be cut to a white area, whose natural size is 640 x 480 pixels. Organizing and separating everything into layers and groups is essential! In the group called F_01 (1) are all the parts of the character. Here you decide which layer goes up, which goes down: the character’s arm is closest to the camera, the “East_Arm” (2) is on top, above the Torso layer. We also have a separate group for Scenario (3).

This arrangement of layers and groups is not rigid, and can be changed later… however, doing the organization, right at the beginning of the work, will make the task easier. To make this separation of character parts more evident, I’ve hidden some layers. The arms are each in its layer (B), as well as the head and torso (C).

With everything traced, I moved on to colorization (D). Usually this is left for the end, when all the animation has been traced and done, but this animation allowed me to colorize. I created a sub-group for the head (1) and a sub-group for the torso (2), which goes below. I reduced the opacity of the head just to demonstrate the organization of the elements:

Completed the main colorization (E), I apply the shading. For this, it is necessary to decide and keep in mind which direction the light comes from in the scene. I considered the light as coming from the wall next to the camera, it would make everything simpler, eliminating the need to draw lamps on the ceiling…

I like to colorize the contours, because it makes them lighter. Here I colored the outline of the arm (F) with a darker brown tone than the shading tone. Compare with the other outlines, still in black:

This other screenshot was taken much later. The lines drawn at the top of the character’s head (blue arrow) are called the “Timing Chart”. They served as a basis for positioning the character in each frame. At this stage, out of necessity, some of the layers were merged, such as the arms and head layers (G), in order to prevent the file from ending up too heavy.

The following images show the frames. In image H we have visible frames 1 to 3 and in image I all frames. We have eight frames, the basics. At this point I still hadn’t animated the character’s arms…

I exported the eight frames as png images and closed Krita. In Gimp, I went to File > Open as Layers and imported the images. Then I went to Filters > Animation > Play… and ran the animation (J). This serves me as a first test, showing what needs to be corrected or improved.

Below right is an animated gif of this first test.


Then I went back to Krita to work out some details. In the character, I added the animation of the arms and corrected small errors. I redrawn the corridor lines as the old lines were in a difficult position to animate. I exported the eight frames as png images, the definitive ones. I opened a new file in Krita and changed the Workspace to Animation mode and imported the png files. From there, it was only necessary to arrange the layers (K) in the correct order and establish the exposure time of the frames, in the timeline (1):

Exposure time means how long each image will remain on the screen before being switched to the next one. In the case of this animation, the exposure time is four frames per image. As an example we have the second image (L), in the timeline it starts to be displayed in frame 4 (1): frames 5 to 7 are just repetitions of this image (2). The image is switched at frame 8 (3), which in turn will remain until frame 11 (4)… and so on, until the cycle is complete.

Arranging the animation in this way gave a total of 31 frames: that’s just over a second of screen display. To increase the time I copied these frames and pasted them a few times: with that the final animation was 95 frames, that is, practically four seconds long.


Thank you for a very interesting and useful tutorial :slight_smile:

1 Like

It is very difficult for me to understand why complicate the organization of frames in Krita by separating images into different layers, in the form of a ladder, it is inconvenient if for editing, when switching to a neighboring frame, it is necessary to additionally switch the selected layer. The whole power of the animation layer of Krita lies in the fact that it stores many different frames in one line, (and in the new versions there are also links to frames for organizing cycles)
To consider a frame as an ordinary layer that you display and hide for a while, in my opinion, is extremely wasteful, and after dividing the line through the “blank frame”, frames on the same line will no longer be interconnected (if it is not a link), that is, making changes to the first frame will be displayed only for “hold frames” but will not step over “blank” frame if, for example, an early copy of the first frame is repeated there, it will not receive changes (if it is not a link) In place of all this, you can use several independent animated layers for color animation with the overlay of these layers.
it turns out that to create an animation, instead of moving parallel to the time line, you move diagonally, while affecting the system created for the image overlay hierarchy

1 Like

It is true. I only did it this way because there were few frames and also because I still don’t understand the animation process in Krita well.

I usually use two programs for my tasks: I use Krita for character design and scenery. Then I export everything as png images and edit in Blender.

I do it in Blender because it allows me to add, among other things, camera movements. I don’t know if Krita does this (I don’t think so). In the past I used Synfig for camera movement… I stopped using Synfig because the process was too slow and the final file was too heavy.

I believe that the Blender is suitable for assembling videos from elements created in Krita, since the Blender has a wide functionality.
In Krita, not so long ago, it became possible to use a transformation mask in combination with animation curves, which allows you to simulate some camera effects, such as sliding, zooming, and if you try hard, then parallax from several layers (but I’m sure it’s easier to make it in 3D) In principle, the transformation mask allows you to make the character wiggle in the frame for any fps value. But this is a different direction of animation, your tutorial is independent as it demonstrates the classic manual method.

I need to take the time to try out these Krita features. Something I’ve already tried is animating hair using the mesh tool… the result came out regular: I got an animation, but the movement was still not natural.

I also tried to separate the hair in some areas, to make it easier to control the animation. This helped, I need to carry out more experiments for me to master it better.

I think a rig with deformers would help a lot with hair and other elements but yeah. We’re stuck without rigging tools for animation.

In the future it may be possible to implement this in Krita. Synfig had a very simple bone system: each bone was a straight line with three points. The green dot served as the axis, the blue dot for rotation, and the brown dot for distortion. This fish shows what it was:

I don’t know about bones in krita. Even if it’s possible in the future i think this kinda clashes with the dev team vision of what they want the animation in krita to be. I can be wrong but it’s what i get from the devs answers on topics about bones and virtual camera. if you need bones i would suggest you taking a look into opentoonz instead

It´s true, it would be very difficult to implement this in the program. I think that for short or medium duration animations it is feasible to do in Krita. For something more complex, I find it more practical to do in Blender.

From what I’ve seen of OpenToonz I wouldn’t do well using that program. In my case, Blender serves me well when it comes to creating bones…

Oh I know. I have read their comments too.

But I do think it is possible and most transform tools are already made and you have an animation curves docker too. Like everything is In place waiting for it to happen.

But either way that is another topic all together.

1 Like