diff --git a/user_manual/animation.rst b/user_manual/animation.rst index 4894ac017..e9dec4c63 100644 --- a/user_manual/animation.rst +++ b/user_manual/animation.rst @@ -1,303 +1,303 @@ .. meta:: :description: Detailed guide on the animation workflow in Krita. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath - Scott Petrovic - Lundin :license: GNU free documentation license 1.3 or later. .. index:: Animation .. _animation: ==================== Animation with Krita ==================== Thanks to the 2015 Kickstarter, :program:`Krita 3.0` now has animation. In specific, :program:`Krita` has frame-by-frame raster animation. There's still a lot of elements missing from it, like tweening, but the basic workflow is there. To access the animation features, the easiest way is to change your workspace to Animation. This will make the animation dockers and workflow appear. Animation curves ---------------- To create an animation curve (currently only for opacity) expand the :guilabel:`New Frame` button in the :guilabel:`Animation` dock and click :guilabel:`Add Opacity Keyframe`. You can now edit the keyframed value for opacity directly in the “Layers” dock, adding more keyframes will by default fade from the last to the next upcoming keyframe in the timeline over the frames -between them. See :ref:`animation curves ` for details +between them. See :ref:`animation curves ` for details. Workflow --------- In traditional animation workflow, what you do is that you make *key frames*, which contain the important poses, and then draw frames in between (\ *tweening* in highly sophisticated animator's jargon). For this workflow, there are three important dockers: #. The :ref:`timeline_docker`. View and control all of the frames in your animation. The timeline docker also contains functions to manage your layers. The layer that are created in the timeline docker also appear on the normal Layer docker. #. The :ref:`animation_docker`. This docker contains the play buttons as the ability to change the frame-rate, playback speed and useful little options like :guilabel:`auto-key framing`. #. The :ref:`onion_skin_docker`. This docker controls the look of the onion skin, which in turn is useful for seeing the previous frame. Introduction to animation: How to make a walkcycle -------------------------------------------------- The best way to get to understand all these different parts is to actually use them. Walk cycles are considered the most basic form of a full animation, because of all the different parts involved with them. Therefore, going over how one makes a walkcycle should serve as a good introduction. Setup ~~~~~ First, we make a new file: .. image:: /images/en/Introduction_to_animation_01.png On the first tab, we type in a nice ratio like 1280x1024, set the dpi to 72 (we're making this for screens after all) and title the document 'walkcycle'. In the second tab, we choose a nice background color, and set the background to canvas-color. This means that Krita will automatically fill in any transparent bits with the background color. You can change this in :menuselection:`Image --> Image Properties`. This seems to be most useful to people doing animation, as the layer you do animation on MUST be semi-transparent to get onion skinning working. .. note:: Krita has a bunch of functionality for meta-data, starting at the :guilabel:`Create Document` screen. The title will be automatically used as a suggestion for saving and the description can be used by databases, or for you to leave comments behind. Not many people use it individually, but it can be useful for working in larger groups. Then hit :guilabel:`Create`! Then, to get all the necessary tools for animation, select the workspace switcher: .. figure:: /images/en/Introduction_to_animation_02.png The red arrow points at the workspace switcher. And select the animation workspace. Which should result in this: .. image:: /images/en/Introduction_to_animation_03.png The animation workspace adds the timeline, animation and onion skin dockers at the bottom. Animating ~~~~~~~~~ We have two transparent layers set up. Let's name the bottom one 'environment' and the top 'walkcycle' by double clicking their names in the layer docker. .. image:: /images/en/Introduction_to_animation_04.png Use the straight line tool to draw a single horizontal line. This is the ground. .. image:: /images/en/Introduction_to_animation_05.png Then, select the 'walkcycle' layer and draw a head and torso (you can use any brush for this). Now, selecting a new frame will not make a new frame automatically. Krita doesn't actually see the 'walkcycle' layer as an animated layer at all! .. image:: /images/en/Introduction_to_animation_06.png We can make it animatable by adding a frame to the timeline. |mouseright| a frame in the timeline to get a context menu. Choose :guilabel:`New Frame`. .. image:: /images/en/Introduction_to_animation_07.png You can see it has become an animated layer because of the onion skin icon showing up in the timeline docker. .. image:: /images/en/Introduction_to_animation_08.png Use the :guilabel:`Copy Frame` button to copy the first frame onto the second. Then, use the with :kbd:`Shift + ↑` to move the frame contents up. We can see the difference by turning on the onionskinning: .. image:: /images/en/Introduction_to_animation_09.png Now, you should see the previous frame as red. .. warning:: Krita sees white as a color, not as transparent, so make sure the animation layer you are working on is transparent in the bits where there's no drawing. You can fix the situation by use the :ref:`filter_color_to_alpha` filter, but prevention is best. .. image:: /images/en/Introduction_to_animation_10.png Future frames are drawn in green, and both colors can be configured in the onion skin docker. .. image:: /images/en/Introduction_to_animation_11.png Now, we're gonna draw the two extremes of the walkcycle. These are the pose where both legs are as far apart as possible, and the pose where one leg is full stretched and the other pulled in, ready to take the next step. Now, let's copy these two... We could do that with :kbd:`Ctrl + drag`, but here comes a tricky bit: .. image:: /images/en/Introduction_to_animation_12.png :kbd:`Ctrl +` |mouseleft| also selects and deselects frames, so to copy... - :kbd:`Ctrl +` |mouseleft| to select all the frames you want to select. - :kbd:`Ctrl + drag`. You need to make sure the first frame is 'orange', otherwise it won't be copied along. Now then... .. figure:: /images/en/Introduction_to_animation_13.png :width: 580 squashed the timeline docker a bit to save space -#. Copy frame 0 to frame 2 -#. Copy frame 1 to frame 3 -#. In the animation docker, set the frame-rate to 4 -#. select all frames in the timeline docker by dragging-selecting them. -#. press play in the animation docker. +#. Copy frame 0 to frame 2. +#. Copy frame 1 to frame 3. +#. In the animation docker, set the frame-rate to 4. +#. Select all frames in the timeline docker by dragging-selecting them. +#. Press play in the animation docker. #. Enjoy your first animation! Expanding upon your rough walkcycle ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. image:: /images/en/Introduction_to_animation_14.png You can quickly make some space by :kbd:`Alt+dragging` any frame. This'll move that frame and all others after it in one go. -Then draw inbetweens on each frame that you add +Then draw inbetweens on each frame that you add. .. image:: /images/en/Introduction_to_animation_16.png You'll find that the more frames you add, the more difficult it becomes to keep track of the onion skins. You can modify the onion skin by using the onion skin docker, where you can change how many frames are visible at once, by toggling them on the top row. The bottom row is for controlling transparency, while below there you can modify the colors and extremity of the coloring. .. image:: /images/en/Introduction_to_animation_15.png Animating with multiple layers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Okay, our walkcycle is missing some hands, let's add them on a separate layer. So we make a new layer, and name it hands and... .. image:: /images/en/Introduction_to_animation_17.png Our walkcycle is gone from the timeline docker! This is a feature actually. A full animation can have so many little parts that an animator might want to remove the layers they're not working on from the timeline docker. So you manually have to add them. .. image:: /images/en/Introduction_to_animation_18.png You can show any given layer in the timeline by doing |mouseright| on the layer in the layer docker, and toggling :guilabel:`Show in Timeline`. .. image:: /images/en/Introduction_to_animation_19.png Exporting ~~~~~~~~~ -When you are done, select :menuselection:`File --> Render Animation` +When you are done, select :menuselection:`File --> Render Animation`. .. image:: /images/en/Introduction_to_animation_20.png It's recommended to save out your file as a png, and preferably in its own folder. Krita can currently only export png sequences. .. image:: /images/en/Introduction_to_animation_21.png When pressing done, you can see the status of the export in the status bar below. .. image:: /images/en/Introduction_to_animation_22.png The images should be saved out as filenameXXX.png, giving their frame number. Then use something like Gimp (Linux, OSX, Windows), ImageMagick (Linux, OSX, Windows), or any other gif creator to make a gif out of your image sequence: .. image:: /images/en/Introduction_to_animation_walkcycle_02.gif For example, you can use `VirtualDub `__\ (Windows) and open all the frames and then go to :menuselection:`File --> Export --> GIF`. Enjoy your walkcycle! .. note:: Krita 3.1 has a render animation feature. If you're using the 3.1 beta, check out the :ref:`render_animation` page for more information! Importing animation frames -------------------------- You can import animation frames in Krita 3.0. First let us take a sprite sheet from Open Game Art. (This is the Libre Pixel Cup male walkcycle) And we'll use :menuselection:`Image --> Split Image` to split up the sprite sheet. .. image:: /images/en/Animation_split_spritesheet.png The slices are even, so for a sprite sheet of 9 sprites, use 8 vertical slices and 0 horizontal slices. Give it a proper name and save it as png. Then, make a new canvas, and select :menuselection:`File --> Import Animation Frames`. This will give you a little window. Select :guilabel:`Add images`. This should get you a file browser where you can select your images. .. image:: /images/en/Animation_import_sprites.png You can select multiple images at once. .. image:: /images/en/Animation_set_everything.png The frames are currently automatically ordered. You can set the ordering with the top-left two drop-down boxes. Start Indicates at which point the animation should be imported. Step Indicates the difference between the imported animation and the document frame rate. This animation is 8 frames big, and the fps of the document is 24 frames, so there should be a step of 3 to keep it even. As you can see, the window gives feedback on how much fps the imported animation would be with the currently given step. Press :guilabel:`OK`, and your animation should be imported as a new layer. .. image:: /images/en/Animation_import_done.png Reference --------- - https://community.kde.org/Krita/Docs/AnimationGuiFeaturesList -- `The source for the libre pixel cup male walkmediawiki cycle `_ +- `The source for the libre pixel cup male walkmediawiki cycle `_ diff --git a/user_manual/getting_started/basic_concepts.rst b/user_manual/getting_started/basic_concepts.rst index e52167574..8b5bca046 100644 --- a/user_manual/getting_started/basic_concepts.rst +++ b/user_manual/getting_started/basic_concepts.rst @@ -1,381 +1,381 @@ .. meta:: :description lang=en: An overview of the basic concepts of Krita. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath - Irina Rempt - Tokiedian - AnetK - JakeD :license: GNU free documentation license 1.3 or later. .. index:: Basic Concepts, Color, Tools, View, Window, Filters, Transform, Grid, Guides, Layers, Masks, Vector .. _basic_concepts: ============== Basic Concepts ============== If this is your first foray into digital painting, this page should give you a brief introduction to the basic but important concepts required for getting started with digital painting in Krita. This page is very, very long because it tries to cover all the important things you should know Krita is capable of, and Krita is really powerful. So this page can also be considered a guide through Krita's most important functionality. Hopefully, it will help you grasp what buttons are for, even if you don't know the exact purpose of them. .. contents:: Raster and Vector ----------------- Even though Krita is primarily a raster based application, it has some vector editing capabilities as well. If you are new to Digital painting medium, it is necessary that you know the concepts of raster and Vector. -In digital imaging, a pixel (Picture Element) is a basic and lowest element of an Image. It is basically a grid of points each displaying specific color. Raster editing is manipulating and editing these pixels. For example when you take a 1-pixel brush which is colored black and painting on the white canvas in Krita you are actually changing the color of the pixel beneath your brush from white to black. When you zoom in and see a brush stroke you can notice many small squares with colors, these are pixels +In digital imaging, a pixel (Picture Element) is a basic and lowest element of an Image. It is basically a grid of points each displaying specific color. Raster editing is manipulating and editing these pixels. For example when you take a 1-pixel brush which is colored black and painting on the white canvas in Krita you are actually changing the color of the pixel beneath your brush from white to black. When you zoom in and see a brush stroke you can notice many small squares with colors, these are pixels: .. image:: /images/en/Pixels-brushstroke.png :align: center In contrast, vector graphic work is based on mathematical expressions. They are independent of the pixel. For example, when you draw a rectangle on a vector layer in Krita you are actually drawing paths passing through points called nodes which are located on specific coordinates on the 'x' and 'y' axes. When you re-size or move these points the computer calculates and redraws the path and displays the newly formed shape to you. Hence you can re-size the vector shape to any extent without any loss in quality. In Krita, everything which is not on a vector layer is raster based. Images, Views and Windows ------------------------- In a painting program, there are three major containers that make up your work-space. Image ~~~~~ The most important one is the **Image**. This is an individual copy of the image you opened or made via the file dialog, and where you edit your file. Krita can allow you to open the file as a new copy via the :guilabel:`File` menu, or to save it as a new file, or make an incremental save. An image contains layers, a color space, a canvas size and metadata such as creator, data created, and DPI. Krita can open multiple images at once, you can switch between them via the :guilabel:`Window` menu. Because the image is a working copy of the image on the hard drive, you can do a lot of little saving tricks with it: New Makes a new image. When you press :menuselection:`Save`, you make a new file on the hard drive. Open Makes an internal copy of an existing image. When you press :menuselection:`Save`, you will overwrite the original existing image with your working copy. Open existing Document as Untitled Document Similar to :menuselection:`Open`, however, :menuselection:`Save` will request you to specify a saving location: you're making a new copy. This is similar to :menuselection:`Import` in other programs. Create Copy From Current Image Similar to :menuselection:`Open existing Document as Untitled Document` but with the currently selected image. Save incremental Allows you to quickly make a snapshot of the current image by making a new file with a version number added to it. These options are great for people doing production work, who need to switch between files quickly or have backup files in case they do something extreme. Krita also has a file backup system in the form of auto-saves and back files and crash recovery. You can configure these in the general settings. You view the image via a **View**. View ~~~~ A view is a window onto your image. Krita allows you to have multiple views, and you can manipulate the view to zoom, rotate and mirror and modify the color of the way you see an image without editing the image itself. This is very useful for artists, as changing the way they view the image is a common way to diagnose mistakes, like skewing to one side. Mirroring with :kbd:`M` makes such skewing easy to identify. If you have trouble drawing certain curves you will enjoy using rotation for drawing, and of course, there is zooming in and out for precision and rough work. .. figure:: /images/en/Krita_multiple_views.png :align: center Multiple views of the same image in Krita Multiple views are possible in Krita via :menuselection:`Window --> New view --> image name`. You can switch between them via the :guilabel:`Window` menu, or :kbd:`Ctrl + Tab`, or keep them in the same area when **subwindow** mode is active in the :ref:`settings `, via :menuselection:`Window --> Tile`. Dockers ~~~~~~~ Dockers are little subwindows in :ref:`Krita's interface `. They contain useful tools, like the color selector, layer stack, tool options etc. .. image:: /images/en/Dockers.png :align: center -The image above shows some of the dockers in Krita +The image above shows some of the dockers in Krita. -All the views and the dockers are held inside **Windows** +All the views and the dockers are held inside **Windows**. Window ~~~~~~ If you've used a computer before, you know what windows are: They are big containers for your computer programs. Krita allows you to have multiple windows via :menuselection:`Window --> New Window`. You can then drag this to another monitor for multi-monitor use. The image below shows an example of multiple windows in Krita. .. image:: /images/en/Multi-window.png :align: center Canvas in Krita --------------- When you create a new document in Krita for the first time you will see a rectangular white area. This is called a canvas. You can see it in the image below. The area marked by a red rectangle is a canvas. .. image:: /images/en/Canvas-krita.png :align: center When you save the painting as jpg, png etc or take a print out of the painting, only the content inside this area is taken into consideration. Anything beyond it is ignored. Krita does store information beyond this area, you just won't be able to see it. This data is stored in the **Layers**. Layers and Compositing ---------------------- Like a landscape painter will first paint the sky and then the furthest away elements before slowly working his way to the foreground elements, computers will do the same with all the things you tell them to draw. So, if you tell them to draw a circle after a square on the same spot, the circle will always be drawn later. This is called the **Drawing Order**. The layer stack is a way for you to separate elements of a drawing and manipulate the drawing order by showing you which layers are drawn when, and allowing you to change the order they are drawn in, and all sorts of other effects. This is called **Compositing**. This allows you to have line art above the colors, or trees before the mountains, and edit each without affecting the other. Krita has many layer-types, each doing a slightly different thing: :ref:`paint_layers` Also known as raster layers, and the most common layer type, you will be painting on these. :ref:`vector_layers` This is a layer type on which you draw vector graphics. Vector graphics are typically more simple than raster graphics and with the benefit that you can deform them with less blurriness. :ref:`group_layers` These allow you to group several layers via drag and drop, so you can organize, move, apply masks and perform other actions on them together. :ref:`clone_layers` These are copies of the layer you selected when making them. They get updated automatically when changing the original. :ref:`file_layers` These refer to an outside existing image, and update as soon as the outside image updates. Useful for logos and emblems that change a lot. :ref:`fill_layers` These layers are filled with something that Krita can make up on the fly, like colors or patterns. :ref:`filter_layers` Adding a filter in the layer-stack. We discuss these later on. You can manipulate the content of the layers with **Tools**. Tools ----- Tools help you manipulate the image data. The most common one is of course, the freehand brush, which is the default when you open Krita. There are roughly five types of tools in Krita: Paint Tools These are tools for painting on paint layers. They describe shapes, like rectangles, circles and straight lines, but also freehand paths. These shapes then get used by the Brush engines to make shapes and drawing effects. Vector Tools This is the upper row of tools, which are used to edit vectors. Interestingly enough, all paint tools except the freehand brush allow you to draw shapes on the vector layers. These don't get a brush engine effect applied to them, though. Selection Tools Selections allow you to edit a very specific area of the layer you are working on without affecting the others. The selection tools allow you modify the current selection. This is not unlike using masking-fluids in traditional painting, but whereas using masking fluids and film is often messy and delicate, selections are far easier to use. Guide Tools These are tools like grids and assistants. Transform Tools These are tools that allow you to transform your image. More on that later. All tools can be found in the toolbox, and information can be found in the tools section of the manual. Brush Engines ------------- Brush engines, like mentioned before, take a path and tablet information and add effects to it, making a stroke. Engine is a term programmers use to describe a complex interacting set of code that is the core for a certain functionality, and is highly configurable. In short, like the engine of your car drives your car, and the type of engine and its configuration affects how you use your car, the brush engine drives the look and feel of the brush, and different brush engines have different results. Krita has :ref:`a LOT of different brush engines `, all with different effects. .. figure:: /images/en/Krita_example_differentbrushengines.png :align: center **Left:** pixel brush, **Center:** color smudge brush, **Right:** sketch brush For example, the pixel-brush engine is simple and allows you to do most of your basic work, but if you do a lot of painting, the color smudge brush engine might be more useful. Even though it's slower to use than the Pixel Brush engine, its mixing of colors allows you to work faster. If you want something totally different from that, the sketch brush engine helps with making messy lines, and the shape brush engine allows you to make big flats quickly. There are a lot of cool effects inside Krita's brush engines, so try them all out, and be sure to check the chapters on each. You can configure these effects via the Brush Settings drop-down, which can be quickly accessed via :kbd:`F5`. These configurations can then be saved into presets, which you can quickly access with :kbd:`F6` or the Brush Presets docker. Brushes draw with colors, but how do computers understand colors? Colors ------ Humans can see a few million colors, which are combinations of electromagnetic waves (light) bouncing off a surface, where the surface absorbs some of it. .. figure:: /images/en/Krita_basics_primaries.png :align: center Subtractive CMY colors on the left and additive RGB colors on the right. This difference means that printers benefit from color conversion before printing When painting traditionally, we use pigments which also absorb the right light-waves for the color we want it to have, but the more pigments you combine, the more light is absorbed, leading to a kind of murky black. This is why we call the mixing of paints **subtractive**, as it subtracts light the more pigments you put together. Because of that, in traditional pigment mixing, our most efficient primaries are three fairly light colors: Cyan blue and Magenta red and Yellow (CMY). A computer also uses three primaries and uses a specific amount of each primary in a color as the way it stores color. However, a computer is a screen that emits light. So it makes more light, which means it needs to do **additive** mixing, where adding more and more colored lights result in white. This is why the three most efficient primaries, as used by computers are Red, Green and Blue (RGB). Per pixel, a computer then stores the value of each of these primaries, with the maximum depending on the bit-depth. These are called the **components** or **channels** depending on who you talk to. .. figure:: /images/en/Krita_basic_channel_rose.png :align: left This is the red-channel of an image of a red rose. As you can see, the petals are white here, indicating that those areas contain full red. The leaves are much darker, indicating a lack of red, which is to be expected, as they are green. Though by default computers use RGB, they can also convert to CMYK (the subtractive model), or a perceptual model like LAB. In all cases this is just a different way of indicating how the colors relate to each other, and each time it usually has 3 components. The exception here is grayscale, because the computer only needs to remember how white a color is. This is why grayscale is more efficient memory-wise. In fact, if you look at each channel separately, they also look like grayscale images, but instead white just means how much Red, Green or Blue there is. Krita has a very complex color management system, which you can read more about :ref:`here `. Transparency ~~~~~~~~~~~~ Just like Red, Green and Blue, the computer can also store how transparent a pixel is. This is important for **compositing** as mentioned before. After all, there's no point in having multiple layers if you can't have transparency. Transparency is stored in the same way as colors, meaning that it's also a channel. We usually call this channel the **alpha channel** or **alpha** for short. The reason behind this is that the letter 'α' is used to represent it in programming. Some older programs don't always have transparency by default. Krita is the opposite: it doesn't understand images that don't track transparency, and will always add a transparency channel to images. When a given pixel is completely transparent on all layers, Krita will instead show a checkerboard pattern, like the rose image to the left. Blending modes ~~~~~~~~~~~~~~ Because colors are stored as numbers you can do maths with them. We call this **Blending Modes** or **Compositing Modes**. Blending modes can be done per layer or per brush stroke, and thus are also part of the compositing of layers. Multiply A commonly used blending mode is for example :menuselection:`Multiply` which multiplies the components, leading to darker colors. This allows you to simulate the subtractive mixing, and thus makes painting shadows much easier. Addition Another common one is :menuselection:`Addition`, which adds one layer's components to the other, making it perfect for special glow effects. Erasing :menuselection:`Erasing` is a blending mode in Krita. There is no eraser tool, but you can toggle on the brush quickly with :kbd:`E` to become an eraser. You can also use it on layers. Unlike the other blending modes, this one only affects the alpha channel, making things more transparent. Normal The :menuselection:`Normal` blend mode just averages between colors depending on how transparent the topmost color is. Krita has 76 blending modes, each doing slightly different things. Head over to the :ref:`blending_modes` to learn more. Because we can see channels as grayscale images, we can convert grayscale images into channels. Like for example, we can use a grayscale image for the transparency. We call these **Masks**. Masks ----- Masks are a type of sub-effect applied to a layer, usually driven by a grayscale image. The primary types of mask are :ref:`transparency_masks`, which allow you to use a grayscale image to determine the transparency, where black makes everything transparent and white makes the pixel fully opaque. You can paint on masks with any of the brushes, or convert a normal paint-layer to a mask. The big benefit of masks is that you can make things transparent without removing the underlying pixels. Furthermore, you can use masks to reveal or hide a whole group layer at once! For example, we have a white ghost lady here: .. image:: /images/en/Krita_ghostlady_1.png :align: center But you can't really tell whether she's a ghost lady or just really really white. If only we could give the idea that she floats... We right-click the layer and add a transparency mask. Then, we select that mask and draw with a black and white linear gradient so that the black is below. .. image:: /images/en/Krita_ghostlady_2.png :align: center Wherever the black is, there the lady now becomes transparent, turning her into a real ghost! The name mask comes from traditional masking fluid and film. You may recall the earlier comparison of selections to traditional masking fluid. Selections too are stored internally as grayscale images, and you can save them as a local selection which is kind of like a mask, or convert them to a transparency mask. Filters ------- We mentioned earlier that you can do maths with colors. But you can also do maths with pixels, or groups of pixels or whole layers. In fact, you can make Krita do all sorts of little operations on layers. We call these operations **Filters**. Examples of such operations are: Desaturate This makes all the pixels turn gray. Blur This averages the pixels with their neighbors, which removes sharp contrasts and makes the whole image look blurry. Sharpen This increases the contrast between pixels that had a pretty high contrast to begin with. Color to Alpha A popular filter which makes all of the chosen color transparent. .. figure:: /images/en/Krita_basic_filter_brush.png :align: right Different filter brushes being used on different parts of the image. Krita has many more filters available: read about them :ref:`here `. :ref:`filter_brush_engine` ~~~~~~~~~~~~~~~~~~~~~~~~~~ Because many of these operations are per pixel, Krita allows you to use the filter as part of the :ref:`filter_brush_engine`. In most image manipulation software, these are separate tools, but Krita has it as a brush engine, allowing much more customization than usual. This means you can make a brush that desaturates pixels, or a brush that changes the hue of the pixels underneath. Filter Layers, Filter Masks and Layer Styles ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Krita also allows you to let the Filters be part of the layer stack, via :ref:`filter_layers` and :ref:`filter_masks`. Filter Layers affect all the layers underneath it in the same hierarchy. Transparency and transparency masks on Filter Layers affect where the layer is applied. Masks, on the other hand, can affect one single layer and are driven by a grayscale image. They will also affect all layers in a group, much like a transparency mask. We can use these filters to make our ghost lady look even more ethereal, by selecting the ghost lady's layer, and then creating a clone layer. We then right click and add a filter mask and use gaussian blur set to 10 or so pixels. The clone layer is then put behind the original layer, and set to the blending mode '**Color Dodge**', giving her a definite spooky glow. You can keep on painting on the original layer and everything will get updated automatically! .. image:: /images/en/Krita_ghostlady_3.png :align: center Layer Effects or Layer Styles are :program:`Photoshop's` unique brand of Filter Masks that are a little faster than regular masks, but not as versatile. They are available by right clicking a layer and selecting 'layer style'. Transformations --------------- **Transformations** are kind of like filters, in that these are operations done on the pixels of an image. We have a regular image and layer wide transformations in the image and layer top menus, so that you may resize, flip and rotate the whole image. We also have the :ref:`crop_tool`, which only affects the canvas size, and the :ref:`move_tool` which only moves a given layer. However, if you want more control, Krita offers a :ref:`transform_tool`. .. image:: /images/en/Krita_transforms_free.png :align: center With this tool you can rotate and resize on the canvas, or put it in perspective. Or you can use advanced transform tools, like the warp, cage and liquify, which allow you to transform by drawing custom points or even by pretending it's a transforming brush. :ref:`deform_brush_engine` ~~~~~~~~~~~~~~~~~~~~~~~~~~ Like the filter brush engine, Krita also has a Deform Brush Engine, which allows you to transform with a brush. The deform is like a much faster version of the Liquify transform tool mode, but in exchange, its results are of much lower quality. .. figure:: /images/en/Krita_transforms_deformvsliquefy.png :align: center Apple transformed into a pear with liquify on the left and deform brush on the right. Furthermore, you can't apply the deform brush as a non-destructive mask. :ref:`transformation_masks` ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Like filters, transforms can be applied as a non-destructive operation that is part of the layer stack. Unlike filter and transparency masks however, transform masks can't be driven by a grayscale image, for technical reasons. You can use transform masks to deform clone and file layers as well. :ref:`animation` ---------------- .. image:: /images/en/Introduction_to_animation_walkcycle_02.gif :align: center In 3.0, Krita got raster animation support. You can use the timeline, animation and onionskin dockers, plus Krita's amazing variety of brushes to do raster based animations, export those, and then turn them into movies or gifs. Assistants, Grids and Guides ---------------------------- With all this technical stuff, you might forget that Krita is a painting program. Like how an illustrator in real life can have all sorts of equipment to make drawing easier, Krita also offers a variety of tools: .. figure:: /images/en/Krita_basic_assistants.png :align: center Krita's vanishing point assistants in action :ref:`grids_and_guides_docker` Very straightforward guiding tool which shows grids or guiding lines that can be configured. :ref:`snapping` You can snap to all sorts of things. Grids, guides, extensions, orthogonals, image centers and bounding boxes. :ref:`painting_with_assistants` Because you can hardly put a ruler against your tablet to help you draw, the assistants are there to help you draw concentric circles, perspectives, parallel lines and other easily forgotten but tricky to draw details. Krita allows you to snap to these via the tool options as well. These guides are saved into Krita's native format, which means you can pick up your work easily afterwards. Customization ------------- This leads to the final concept: customization. In addition to rearranging the dockers according to your preferences, Krita provides and saves your configurations as :ref:`resource_workspaces`. This is the button at the top right. You can also configure the toolbar via :menuselection:`Settings --> Configure Toolbars`, as well as the shortcuts under both :menuselection:`Settings --> Configure Krita --> Configure Shortcuts` and :menuselection:`Settings --> Configure Krita --> Canvas Input Settings`. diff --git a/user_manual/getting_started/installation.rst b/user_manual/getting_started/installation.rst index cc76a2001..9cc07e0ae 100644 --- a/user_manual/getting_started/installation.rst +++ b/user_manual/getting_started/installation.rst @@ -1,179 +1,179 @@ .. meta:: :description: Detailed steps on how to install Krita .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath - Scott Petrovic - Boudewijn Rempt - Dmitry Kazakov :license: GNU free documentation license 1.3 or later. .. index:: Installation .. _installation: Installation ============ Windows ------- Windows users can download the latest releases from our `website. `_ Click on 64bit or 32bit according to the architecture of your OS. Go to the -`KDE `__ download directory to +`KDE `__ download directory to get the portable zip-file version of Krita instead of the setup.exe installer. .. warning:: Krita requires Windows Vista or newer. INTEL GRAPHICS CARD USERS: IF YOU SEE A BLACK OR BLANK WINDOW: UPDATE YOUR DRIVERS! Linux ----- Many Linux distributions package the latest version of Krita. Sometimes you will have to enable an extra repository. Krita runs fine under on desktop: KDE, Gnome, LXDE -- even though it is a KDE application and needs the KDE libraries. You might also want to install the KDE system settings module and tweak the gui theme and fonts used, depending -on your distributions +on your distributions. Nautilus/Nemo file extensions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Put here at the beginning, before we start on the many distro specific ways to get the program itself. Since April 2016, KDE's Dolphin shows kra and ora thumbnails by default, but Nautilus and it's derivatives need an extension. `We recommend Moritz Molch's extensions for XCF, KRA, ORA and PSD -thumbnails `__. +thumbnails `__. Appimages ~~~~~~~~~ For Krita 3.0 and later, first try out the appimage from the website first. **90% of the time this is by far the easiest way to get the latest Krita.** Just download the appimage, and then use the file properties or the bash command chmod to make the appimage executable. Double click it, and enjoy Krita. (Or run it in the terminal with ./appimagename.appimage) - Open the terminal into the folder you have the appimage. -- Make it executable +- Make it executable: :: chmod a+x krita-3.0-x86_64.appimage - Run Krita! :: ./krita-3.0-x86_64.appimage Appimages are ISOs with all the necessary libraries inside, meaning no fiddling with repositories and dependencies, at the cost of a slight bit more diskspace taken up (And this size would only be bigger if you were using Plasma to begin with). Ubuntu and Kubuntu ~~~~~~~~~~~~~~~~~~ It does not matter which version of Ubuntu you use, Krita will run just fine. However, by default, only a very old version of Krita is available. You should either use the appimage, or the snap available from Ubuntu's app store. OpenSUSE ~~~~~~~~ The latest stable builds are available from KDE:Extra repo: -- http://download.opensuse.org/repositories/KDE:/Extra/ +- https://download.opensuse.org/repositories/KDE:/Extra/ .. note:: Krita is also in the official repos, you can install it from Yast. Fedora ~~~~~~ -Krita is in the official repos as **calligra-krita**, you can install it by using packagekit (Add/Remove Software) or by writing the following command in terminal. +Krita is in the official repos as **calligra-krita**, you can install it by using packagekit (Add/Remove Software) or by writing the following command in terminal: ``dnf install krita`` -You can also use the software center such as gnome software center or Discover to install Krita +You can also use the software center such as gnome software center or Discover to install Krita. Debian ~~~~~~ The latest version of Krita available in Debian is 3.1.1. -To install Krita type the following line in terminal +To install Krita type the following line in terminal: ``apt install krita`` Arch ~~~~ Arch Linux provides krita package in the Extra repository. You can -install Krita by using the following command +install Krita by using the following command: ``pacman -S krita`` You can install the most recent build of Krita using an aur helper such as aurman. For example ``aurman -S krita-beta`` OS X ---- .. warning:: - Mac OSX is very experimental right now and unstable, don't use it for production purpose + Mac OSX is very experimental right now and unstable, don't use it for production purpose. You can download the latest binary if you want from our `website `__. It has only been reported to work with Mac OSX 10.9. Source ------ While it is certainly more difficult to compile Krita from source than it is to install from prebuilt packages, there are certain advantages that might make the effort worth it: - You can follow the development of Krita on the foot. If you compile Krita regularly from the development repository, you will be able to play with all the new features that the developers are working on. - You can compile optimized for your processor. Most pre-built packages are built for the lowest-common denominator. - You will be getting all the bug fixes as soon as possible as well. - You can help the developers by giving us your feedback on features as they are being developed and you can test bug fixes for us. This is hugely important, which is why our regular testers get their name in the about box just like developers. Of course, there are also disadvantages: when building from the current development source repository you also get all the unfinished features. It might mean less stability for a while, or things shown in the user interface that don't work. But in practice, there is seldom really bad instability, and if it is, it's easy for you to go back to a revision that does work. So... If you want to start compiling from source, begin with the latest build instructions from the excellent illustrated -`guide `__ +`guide `__ by David Revoy. There is more information and troubleshooting help on the `Calligra `__ wiki. If you encounter any problems, or if you are new to compiling software, don't hesitate to contact the Krita developers. There are three main communication channels: - irc: irc.freenode.net, channel #krita - `mailing list `__ -- `forums `__ +- `forums `__ diff --git a/user_manual/getting_started/navigation.rst b/user_manual/getting_started/navigation.rst index 64a54e762..abcae05cf 100644 --- a/user_manual/getting_started/navigation.rst +++ b/user_manual/getting_started/navigation.rst @@ -1,113 +1,113 @@ .. meta:: :description: Overview of Krita navigation. .. metadata-placeholder :authors: - Scott Petrovic - Wolthera van Hövell tot Westerflier - Raghavendra Kamath - Boudewijn Rempt :license: GNU free documentation license 1.3 or later. .. index:: Navigation, Zoom, Rotate, Pan, Workspace, Pop-up Palette .. _navigation: ========== Navigation ========== Interface --------- Krita provides an ample choice for the artists to arrange the workspace. An artist can snap and arrange the elements of the workspace, much like snapping together Lego blocks. Krita provides a set of construction kit parts in the form of Dockers and Toolbars. Every set of elements can be shown, hidden, moved and rearranged that let the artist easily customize their own user interface experience. A Tour of the Krita Interface ----------------------------- As we've said before, the Krita interface is very malleable and the way that you choose to configure the work surface may not resemble those above but, at least this we can use these as a starting point. .. image:: /images/en/Interface-tour.png :width: 1000 :align: center -- **A** -- Traditional :guilabel:`File` or action menu found in most windowed applications +- **A** -- Traditional :guilabel:`File` or action menu found in most windowed applications. - **B** -- Toolbar - This is where you can choose your brushes, set parameters such as opacity and size and other settings. - **C** -- Sidebars for the Movable Panels/Dockers. In some applications, these are known as Dockable areas. Krita also allows you to dock panels at the top and/or bottom as well. - **D** -- Status Bar - This space shows you preferred mode for showing selection i.e. marching ants or mask mode, your selected brush preset, :ref:`Color Space `, image size and provides a convenient zoom control. -- **E** -- Floating Panel/Docker - These can be "popped" in and out of their docks at any time in order to see a greater range of options. A good example of this would be the :ref:`brush_preset_docker` or the :ref:`palette_docker` +- **E** -- Floating Panel/Docker - These can be "popped" in and out of their docks at any time in order to see a greater range of options. A good example of this would be the :ref:`brush_preset_docker` or the :ref:`palette_docker`. Your canvas sits in the middle and unlike traditional paper or even most digital painting apps, Krita provides the artist with a scrolling canvas of infinite size (not that you'll need it of course!). The standard navigation tools are as follows: Navigation ---------- Many of the canvas navigation actions, like rotation, mirroring and zooming have default keys attached to them: Panning This can be done through |mousemiddle|, :kbd:`Space +` |mouseleft| and :kbd:`the directional keys`. Zooming Discrete zooming can be done through :kbd:`+`, and :kbd:`-`. Using :kbd:`Ctrl + Space` or :kbd:`Ctrl +` |mousemiddle| can allow for direct zooming with the stylus. Mirroring You can mirror the view can be quickly done via :kbd:`M`. Mirroring is a great technique that seasoned digital artists use to quickly review the composition of their work to ensure that it "reads" well, even when flipped horizontally. Rotating You can rotate the canvas without transforming. It can be done with :kbd:`Ctrl + [` or :kbd:`4` and the other way with :kbd:`Ctrl + ]` or :kbd:`6`. Quick mouse based rotation is :kbd:`Shift + Space` and :kbd:`Shift +` |mousemiddle|. To reset rotation use :kbd:`5` . -You can also find these under :menuselection:`View --> Canvas` +You can also find these under :menuselection:`View --> Canvas`. Dockers ------- Krita subdivides many of its options into functional panels called Dockers (aka Docks). Dockers are small windows that can contain, for example, things like the layer stack, Color Palette or Brush Presets. Think of them as the painter's palette, or his water, or his brushkit. They can be activated by choosing the :guilabel:`Settings` menu and the :guilabel:`Dockers` sub-menu. There you will find a long list of available options. Dockers can be removed by clicking the **x** in the upper-right of the docker-window. Dockers, as the name implied, can be docked into the main interface. You can do this by dragging the docker to the sides of the canvas (or top or bottom if you prefer). Dockers contain many of the "hidden", and powerful, aspects of **Krita** that you will want to explore as you start delving deeper into the application. You can arrange the dockers in almost any permutation and combination according to the needs of your workflow, and then save these arrangements as Workspaces. Dockers can be prevented from docking by pressing :kbd:`Ctrl` before starting to drag the docker. Sliders ------- Krita uses these to control values like brush size, opacity, flow, Hue, Saturation, etc... Below is an example of a Krita slider. .. image:: /images/en/Krita_Opacity_Slider.png The total range is represented from left to right and blue bar gives an indication of where in the possible range the current value is. Clicking anywhere, left or right, of that slider will change the current number to something lower (to the left) or higher (to the right). To input a specific number, |mouseright| the slider. A number can now be entered directly for even greater precision. Pressing :kbd:`Shift` while dragging the slider changes the values at a smaller increment, and pressing :kbd:`Ctrl` while dragging the slider changes the value in whole numbers or multiples of 5. Toolbars -------- .. image:: /images/en/Krita_Toolbar.png Toolbars are where some of the important actions and menus are placed so that they are readily and quickly available for the artist while painting. You can learn more about the Krita Toolbars and how to configure them in over in the :ref:`Toolbars section ` of the manual. Putting these to effective use can really speed up the Artist's workflow, especially for users of Tablet-Monitors and Tablet-PCs. Workspace Chooser ~~~~~~~~~~~~~~~~~ The button on the very right of the toolbar is the workspace chooser. This allows you to load and save common configurations of the user interface in Krita. There are a few common workspaces that come with Krita. Pop-up Palette -------------- .. image:: /images/en/Krita-popuppalette.png :align: center Pop-up Palette is a unique feature in Krita designed to increase productivity of the artist. It is a circular menu for quickly choosing brushes, foreground and background colors, recent colors while painting. To access the palette you have to just |mouseright| on the canvas. The palette will spawn at the place of the brush tip or cursor. By tagging your brush presets you can add particular sets of brushes to this palette. For example, if you add some inking brush presets to inking tag you can change the tags to inking in the pop-up palette and you'll get all the inking brushes in the palette. You can :ref:`tag ` brush presets via the :ref:`brush_preset_docker`, check out the resource overview page to know more about tagging in general. If you call up the pop-up palette again, you can click the wrench icon, and select the tag. In fact, you can make multiple tags and switch between them. When you need more than ten presets, go into :menuselection:`Settings --> Configure Krita --> General --> Favorite presets` and change the number of presets from 10 to something you feel comfortable. diff --git a/user_manual/introduction_from_other_software/introduction_from_photoshop.rst b/user_manual/introduction_from_other_software/introduction_from_photoshop.rst index e650ed54a..cd3302dd6 100644 --- a/user_manual/introduction_from_other_software/introduction_from_photoshop.rst +++ b/user_manual/introduction_from_other_software/introduction_from_photoshop.rst @@ -1,392 +1,392 @@ .. meta:: :description: This is a introduction to Krita for users coming from Photoshop. .. metadata-placeholder :authors: - David Revoy, davidrevoy@gmail.com - Inge Wallin, inge.wallin@kogmbh.com - Wolthera van Hövell tot Westerflier, griffinvalley@gmail.com - AnetK - JakeD - Radianart - Raghavendra Kamath :license: GNU free documentation license 1.3 or later. .. index:: Photoshop .. _introduction_from_photoshop: =========================================== Introduction to Krita coming from Photoshop =========================================== Introduction ------------ This document gives an introduction to Krita for users who have been using Photoshop. The intention is to make you productive in Krita as fast as possible and ease the conversion of old habits into new ones. This introduction is written with Krita version 2.9 and Photoshop CS2 and CS3 in mind. But even though things may change in the future, the basics will most likely remain the same. The first thing to remember is that Krita is a 2D paint application while Photoshop (PS) is an image manipulation program. This means that PS has more features than Krita in general, but Krita has the tools that are relevant to digital painting. When you get used to Krita, you will find that Krita has some features that are not part of PS. Krita Basics ------------ This chapter covers how you use Krita in the basic operations compared to PS. View and Display ~~~~~~~~~~~~~~~~ Navigation ^^^^^^^^^^ In Krita you can navigate your document using all these methods: #. '*Mouse wheel*': |mousescroll| down and up for zoom, and press |mousemiddle| down to pan your document. -#. '*Keyboard*': with :kbd:`+` and :kbd:`-` on your numpad keyboard +#. '*Keyboard*': with :kbd:`+` and :kbd:`-` on your numpad keyboard. #. As in Photoshop, Painter, Manga Studio: :kbd:`Ctrl + Space` to zoom, and :kbd:`Space` to pan. .. note:: If you add :kbd:`Alt` and so do a :kbd:`Ctrl + Alt + Space` you’ll have a discrete zoom. Rotation ^^^^^^^^ Rotate the canvas with :kbd:`Shift + Space`, or :kbd:`Ctrl + [` and :kbd:`Ctrl + ]` or with 4 or 6. Reset the rotation with 5. Mirror ^^^^^^ Press :kbd:`M` to see your drawing or painting mirrored in the viewport. Move and Transform ^^^^^^^^^^^^^^^^^^ Moving and Transformation of contents is done using tools in Krita. You can then find them in the toolbar. If you are familiar with the way to move layers in PS by holding down :kbd:`Ctrl`, you can do the same in Krita by pressing the :kbd:`T` key for the move tool (think ‘T’ranslate) or :kbd:`Ctrl + T` for transform tool. Press :kbd:`B` to go back to the brush tool when the transformation or translation is done. To find how to make advanced deformations using the :guilabel:`Transform` tool, do not right-click on the on-canvas widget: all the option are in the :guilabel:`Tool Options` docker. Changes can be applied with :kbd:`Enter` for the Transform tool. .. note:: Move tool changes are auto-applied. Selections ~~~~~~~~~~ Like in PS, you can use :kbd:`Alt` or :kbd:`Shift` during a selection to remove or add selection to the active selection. Krita also offers sub tools for this, and you can select them in the :guilabel:`Tool Options` if a select tool is active. These sub tools are represented as icons. You can switch to those sub modes by pressing: * :kbd:`R` to replace selection * :kbd:`T` to intersect * :kbd:`A` to add to the selection (this is the one you will want to use often) * :kbd:`S` to subtract from the selection (the other one popular) Or hold: * :kbd:`Alt` to subtract from the selection * :kbd:`Shift` to add to the selection * :kbd:`Alt + Shift` to intersect .. note:: You cannot press :kbd:`Ctrl` to move the content of the selection (you have to press :kbd:`T` or select the :guilabel:`Move Tool`). Some other tips: * If you want to convert a layer to a selection (to select the visible pixels), right-click on the layer docker, and choose :guilabel:`Select Opaque`. * If you use a polygonal selection tool, or a selection which needs to be ‘closed’, you will be able to do it or by using a double-click, or by using a :kbd:`Shift` - |mouseleft| . You can scale selection. To do this, choose :menuselection:`Select --> Scale`. .. note:: Also, in the :guilabel:`Select` menu there are more classical options to grow, shrink, feather, border, etc. If you enable :guilabel:`Show Global Selection Mask` (:guilabel:`Select` menu) you can scale/rotate/transform/move or paint on selection like on regular greyscale layer. * :kbd:`Ctrl + H`: Show / Hide selection (same shortcut) * :kbd:`Ctrl + A`: Select All * :kbd:`Ctrl + Shift + A`: deselect All (and not :kbd:`Ctrl + D` as in PS) Note for Gimp user: Krita auto-expands and auto defloats new layers created from a selection after a :kbd:`Ctrl + C`, :kbd:`Ctrl + V` so you do not have to worry about not being able to paint outside the pasted element. .. note:: This doesn't work as intended right now. Intersect is a selection mode which uses :kbd:`T` as the shortcut. However :kbd:`T` is also used to switch to the :guilabel:`Move tool` so this shortcut is not functional right now. You have to use the button on the :guilabel:`Tool Options`. Layer Handling ~~~~~~~~~~~~~~ The most common shortcuts are very similar in PS and Krita: * :kbd:`Ctrl + J`: duplicate * :kbd:`Ctrl + E`: merge down * :kbd:`Ctrl + Shift + E`: flattens all (not :kbd:`Ctrl + Shift + M` as in PS) * :kbd:`Ins`: insert a new paint layer * :kbd:`Ctrl + G`: create new layer group and move selected layers to this group Groups and Blending Mode (Composite Mode): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The group blending mode in Krita has priority over child layers and overrides it. This can be surprising for Photoshop users. On Photoshop you can use groups to just clean your layer stack and keep blending mode of your layer compositing through all the stack. In Krita the compositing will happen at first level inside the group, then taking into account the blending mode of the group itself. Both systems have pros and cons. Krita’s way is more predictable according to some artists, compositing-wise. The PS way leads to a cleaner and better ordered layer stack visually wise. Multi Layer Transform or Move ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You can select multiple layers on the stack by holding down :kbd:`Shift` as in PS, and if you move the layer inside a group you can move or transform the whole group - including doing selection on the group and cut all the sub layers inside on the fly. You can not apply filters to group to affect multiple layers. Clipping Masks ^^^^^^^^^^^^^^ Krita has no clipping mask, but there is a workaround involving layer groups and :guilabel:`Inherit alpha` (see the alpha icon). Place a layer with the shape you want to clip the other with at the bottom of a group and layers above with the :guilabel:`Inherit alpha` option. This will create the same effect as the “clipping mask” PS feature. This process of arranging groups for inherit alpha can be done automatically by :kbd:`Ctrl + Shift + G` shortcut. It creates a group with base layer and a layer above it with inherit alpha option checked by default. Pass-through mode ^^^^^^^^^^^^^^^^^ This is available in Krita, but not implemented as a blending mode. Rather, it is an option next to ‘inherit alpha’ on group layers. Smart Layers ^^^^^^^^^^^^ Instead of having smart layers that you can do non-destructive transforms on, Krita has the following set of functionality: File Layers These are layers which point to an outside file, and will get automatically updated if the outside file changes. Clone Layers These are layers that are an ‘instance’ of the layer you had selected when creating them. They get updated automatically when the original layer updates. Transform Masks These can be used to non-destructive transform all layer types, including the file and clone layers. Filter Masks Like adjustment layers, these can apply filters non-destructively to all layer types, including file and clone layers. Layer styles ^^^^^^^^^^^^ You can apply Photoshop layerstyles in Krita by right clicking any given layer type and selecting ‘layer style’ from the context menu. Krita can open and save ASL files, but not all layer style functionality is there yet. Other ^^^^^ Layers and groups can be exported. See the :guilabel:`Layer` top menu for this and many other options. .. note:: Krita has at least 5 times more blending modes than PS. They are sorted by categories in the drop-down menu. You can use the checkbox to add your most used to the Favorite categories. Paint tools ~~~~~~~~~~~ This is Krita's strong point. There are many paint tools and they have a lot of options. Tools ^^^^^ In Krita, there is a totally different paradigm for defining what ‘tools’ are compared to PS. Unlike in PS, you will not find the brush, eraser, clone, blur tool, etc. Instead, you will find a *way to trace* your strokes on the canvas: freehand, line, rectangle, circle, multiple brush, etc. When you have selected the ‘way to trace’ you can choose the *way to paint*: erasing / cloning / blurring, etc are all part of *way it paint* managed by the brush-engines options. These brush engine options are saved into so-called *presets*, which you can find on :guilabel:`Brush presets`. You can fine tune, and build your own presets using the :guilabel:`Edit Brush Settings` icon on the top tool bar. Erasing ^^^^^^^ In Krita, the eraser is not a tool, it is a Blending mode (or Composite mode). You can change each brush you have to erase by pressing :kbd:`E`. By pressing :kbd:`E` again you’ll be back to the last blending mode you had selected before pressing :kbd:`E` the first time. Useful shortcuts ^^^^^^^^^^^^^^^^ * :kbd:`Shift`: Grow or Shrink the brush size (or :kbd:`[` and :kbd:`]`). * :kbd:`/`: Switch last preset selected and current (ex: a pencil preset, and an eraser preset). -* :kbd:`K` and :kbd:`L`: increment Darker and Lighter value of the active color -* :kbd:`I` and :kbd:`O`: increment opacity plus or minus. -* :kbd:`D`: Reset color to black/foreground and white/background -* :kbd:`X`: Switch background and foreground colors -* :kbd:`Shift + I` / :kbd:`Shift + N` / :kbd:`Shift + M`: a set of default keyboard shortcuts for accessing the on-canvas color selector. +* :kbd:`K` and :kbd:`L`: Increment Darker and Lighter value of the active color. +* :kbd:`I` and :kbd:`O`: Increment opacity plus or minus. +* :kbd:`D`: Reset color to black/foreground and white/background. +* :kbd:`X`: Switch background and foreground colors. +* :kbd:`Shift + I` / :kbd:`Shift + N` / :kbd:`Shift + M`: A set of default keyboard shortcuts for accessing the on-canvas color selector. .. note:: Some people regard these shortcuts as somewhat unfortunate. The reason is that they are meant to be used during painting and left-:kbd:`Shift` is at the opposite end of the keyboard from :kbd:`I`, :kbd:`M` and :kbd:`N`. So for a right-handed painter, this is very difficult to do while using the stylus with a right hand. Note that you can reassign any shortcut by using the shortcut configuration in :menuselection:`Settings --> Configure Shortcuts`. Stabilization / Path Smoothing ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Using the freehand ‘paint with brush’ tool that you can find on the Tool Options, more settings for smoothing the path and stabilization of your brush strokes are available. Global pressure curve ^^^^^^^^^^^^^^^^^^^^^ If you find the feeling of Krita too hard or too soft regarding the pressure when you paint, you can set a softer or harder curve here: :menuselection:`Settings --> Configure Krita --> Tablet settings` Adjustment ^^^^^^^^^^ Like in PS, you can use the classic filters to adjust many things while painting: * :kbd:`Ctrl + L` : Levels * :kbd:`Ctrl + U`: HSV adjustment * :kbd:`Ctrl + I`: Invert Dodge / Burn / Blur Tools ^^^^^^^^^^^^^^^^^^^^^^^^^ Unlike Photoshop, where these are separate tools, in Krita, they are available via the Filter Brush Engine, which allows you to apply the majority of Krita's filters in brush form. Themes ^^^^^^ If you don’t like the dark default theme of Krita go to: :menuselection:`Settings --> Themes`, and choose a brighter or darker theme. If you don’t like the color outside your viewport go to: :menuselection:`Settings --> Configure Krita --> Display`, and change the Canvas border color. What Krita Has Over Photoshop ----------------------------- As mentioned in the introduction, Krita is a specialized paint application. Thus, it also has specialized tools for painting. Similar tools are not found in more generalized image manipulation applications such as PS. Here is a short list of the most important ones. Brush Engines ~~~~~~~~~~~~~ Krita has a lot of different so-called brush engines. These brush engines define various methods on how the pixels end up on your canvas. Brush engines with names like Grid, Particles, Sketch and others will bring you new experiences on how the brushes work and a new landscape of possible results. You can start customizing brushes by using the brush-settings editor, which is accessible via the toolbar, but it's much easier to just press :kbd:`F5`. Tags for brush presets ~~~~~~~~~~~~~~~~~~~~~~ This is a very useful way to configure brush presets. Each brush can have any amount of tags and be in any group. You can make tag for blending brushes, for texture brushes, for effect brushes, favorites etc. Settings curves ~~~~~~~~~~~~~~~ You can set setting to pressure (speed/distance/tilt/random/etc.) relation for each brush setting. .. image:: /images/en/Settings-curves.jpg :align: center The Pop-up Palette ~~~~~~~~~~~~~~~~~~ .. image:: /images/en/Krita-popuppalette.png :align: center Easily to be found on |mouseright|, the pop-up palette allows you to quickly access brushes, color history and a color selector within arm's reach. The brushes are determined by tag, and pressing the lower-right configure button calls a drop-down to change tags. This allows you to tag brushes in the preset docker by workflow, and quickly access the right brushes for the workflow you need for your image. Transformations ~~~~~~~~~~~~~~~ The Krita transformation tool can perform transformations on a group and affect child layers. There are several modes, like free, perspective, warp, the powerful cage and even liquify. Furthermore, you can use transformation masks to apply transforms non-destructively to any layer type, raster, vector group, you name it. .. figure:: /images/en/Krita-transform-mask.png :align: center :figwidth: 800 Transform masks allows non-destructive transforms Incremental Save ~~~~~~~~~~~~~~~~ You can save your artwork with the pattern : myartworksname_001.kra , myartworksname_002.kra, myartworksname_003.kra etc, by pressing a single key on the keyboard. Krita will increment the final number if the pattern "_XXX" is recognized at the end of the file's name. .. image:: /images/en/Krita-incremental-saves.png :align: center This feature allows you to avoid overwriting your files, and keep track to your older version and work in progress steps. Color to alpha Filter ~~~~~~~~~~~~~~~~~~~~~ If you want to delete the white of the paper from a scanned artwork, you can use this filter. It takes a color and turns it into pure transparency. .. image:: /images/en/Krita-color-to-alpha.png :align: center Many Blending Modes ~~~~~~~~~~~~~~~~~~~ If you like using blending modes, Krita has many of them -- over 70! You have plenty of room for experimentation. A special system of favorite blending modes has been created to let you have fast access to the ones you use the most. Painting Assistants ~~~~~~~~~~~~~~~~~~~ Krita has many painting assistants. This is a special type vector shapes with a magnetic influence on your brush strokes. You can use them as rulers, but with other shapes than just straight. .. figure:: /images/en/Krita_basic_assistants.png :align: center :figwidth: 800 Krita's vanishing point assistants in action Multibrushes: Symmetry / Parallel / Mirrored / Snowflake ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Krita's Multibrush tool allows you to paint with multiple brushes at the same time. Movements of the brushes other than the main brush is created by mirroring what you paint, or duplicating it by any number around any axis. They can also be used in parallel mode. .. image:: /images/en/Krita-multibrush.png :align: center A Wide Variety of Color Selectors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The :guilabel:`Advanced Color Selector` docker offer you a wide choice of color selectors. .. image:: /images/en/Krita_Color_Selector_Types.png :align: center View dependent color filters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Using the LUT docker, Krita allows you to have a separate color correction filter per view. While this is certainly useful to people who do color correction in daily life, to the artist this allows for seeing a copy of the image in luminance grayscale, so that they instantly know the values of the image. .. figure:: /images/en/Krita-view-dependant-lut-management.png :align: center :figwidth: 800 Using the LUT docker to change the colors per view HDR color painting ~~~~~~~~~~~~~~~~~~ This same LUT docker is the controller for painting with HDR colors. Using the LUT docker to change the exposure on the view, Krita allows you to paint with HDR colors, and has native open exr support! .. figure:: /images/en/Krita-hdr-painting.png :align: center :figwidth: 800 Painting with HDR colors What Krita Does Not Have ------------------------ Again, Krita is a digital paint application and Photoshop is an image manipulation program with some painting features. This means that there are things you can do in PS that you cannot do in Krita. This section gives a short list of these features. Filters ~~~~~~~ Krita has a pretty impressive pack of filters available, but you will probably miss one or two of the special filters or color adjustment tools you often use in Photoshop. For example, there is no possibility to tweak a specific color in HSV adjustment. Automatic healing tool ~~~~~~~~~~~~~~~~~~~~~~ Krita does not have an automatic healing tool. It does, however, have a so-called clone tool which can be used to do a healing correction, although not automatically. Macro Recording ~~~~~~~~~~~~~~~ Macro recording and playback exists in Krita, but it is not working well at this time. Text Tool ~~~~~~~~~ The text tool in Krita is less advanced than the similar tool in Photoshop. Blending Modes While Transforming ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When you transform a layer or a selection in Krita, the transformation appears on the top of your layer stack ignoring the layer blending mode. Other ~~~~~ -Also, you cannot ‘Export for web’, ‘Image Ready’ for Gif frame or slicing web image, etc +Also, you cannot ‘Export for web’, ‘Image Ready’ for Gif frame or slicing web image, etc. Conclusion ---------- Using these tips you will probably be up to speed with Krita in a short time. If you find other things worth mentioning in this document we, the authors, would be interested in hearing about them. Krita develops fast, so we believe that the list of things possible in Photoshop but not in Krita will become shorter in time. We will maintain this document as this happens. diff --git a/user_manual/introduction_from_other_software/introduction_from_sai.rst b/user_manual/introduction_from_other_software/introduction_from_sai.rst index 68d3acab0..8adf902af 100644 --- a/user_manual/introduction_from_other_software/introduction_from_sai.rst +++ b/user_manual/introduction_from_other_software/introduction_from_sai.rst @@ -1,216 +1,216 @@ .. meta:: :description: This is a introduction to Krita for users coming from Paint Tool Sai. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - AnetK - Boudewijn Rempt :license: GNU free documentation license 1.3 or later. .. index:: Sai, Painttool Sai .. _introduction_from_sai: ================================================ Introduction to Krita coming from Paint Tool Sai ================================================ How do you do that in Krita? ---------------------------- This section goes over the functionalities that Krita and Paint Tool Sai share, but shows how they slightly differ. Canvas navigation ~~~~~~~~~~~~~~~~~ Krita, just like Sai, allows you to flip, rotate and duplicate the view. Unlike Sai, these are tied to keyboard keys. Mirror This is tied to :kbd:`M` to flip. Rotate There's a couple of possibilities here: either :kbd:`4` and :kbd:`6`, or :kbd:`Ctrl + [` and :kbd:`Ctrl + ]` for basic 15 degrees rotation left and right. But you can also have more sophisticated rotation with :kbd:`Shift + Space` + drag or :kbd:`Shift` + |mousemiddle| + drag. To reset the rotation, press :kbd:`5`. Zoom You can use :kbd:`+` and :kbd:`-` to zoom out and in, or use :kbd:`Ctrl` + |mousemiddle|. Use 1, 2 or 3 to reset the zoom, fit the zoom to page or fit the zoom to page width. You can use the Overview docker in :menuselection:`Settings --> Dockers` to quickly navigate over your image. You can also put these commands on the toolbar, so it'll feel a little like Sai. Go to :menuselection:`Settings --> Configure Toolbars`. There are two toolbars, but we'll add to the file toolbar. Then, you can type in something in the left column to search for it. So, for example, 'undo'. Then select the action 'undo freehand stroke' and drag it to the right. Select the action to the right, and click :menuselection:`Change text`. There, toggle :menuselection:`Hide text when toolbar shows action alongside icon` to prevent the action from showing the text. Then press :guilabel:`OK`. When done right, the :guilabel:`Undo` should now be sandwiched between the save and the gradient icon. You can do the same for :guilabel:`Redo`, :guilabel:`Deselect`, :guilabel:`Invert Selection`, :guilabel:`Zoom out`, :guilabel:`Zoom in`, :guilabel:`Reset zoom`, :guilabel:`Rotate left`, :guilabel:`Rotate right`, :guilabel:`Mirror view` and perhaps :guilabel:`Smoothing: basic` and :guilabel:`Smoothing: stabilizer` to get nearly all the functionality of Sai's top bar in Krita's top bar. (Though, on smaller screens this will cause all the things in the brushes toolbar to hide inside a drop-down to the right, so you need to experiment a little). :guilabel:`Hide Selection`, :guilabel:`Reset Rotation` are currently not available via the Toolbar configuration, you'll need to use the shortcuts :kbd:`Ctrl + H` and :kbd:`5` to toggle these. .. note:: Krita 3.0 currently doesn't allow changing the text in the toolbar, we're working on it. Right click color picker ~~~~~~~~~~~~~~~~~~~~~~~~ You can actually set this in :menuselection:`Settings --> Configure Krita --> Canvas input settings --> Alternate invocation`. Just double-click the entry that says :kbd:`Ctrl` + |mouseleft| before :guilabel:`Pick foreground color from image` to get a window to set it to |mouseright|. .. note:: Krita 3.0 actually has a Paint-tool Sai-compatible input sheet shipped by default. Combine these with the shortcut sheet for Paint tool Sai to get most of the functionality on familiar hotkeys. Stabilizer ~~~~~~~~~~ This is in the tool options docker of the freehand brush. Use Basic Smoothing for more advanced tablets, and Stabilizer is much like Paint Tool Sai's. Just turn off :guilabel:`Delay` so that the dead-zone disappears. Transparency ~~~~~~~~~~~~~ So one of the things that throw a lot of Paint Tool Sai users off is that Krita uses checkers to display transparency, which is actually not that uncommon. Still, if you want to have the canvas background to be white, this is possible. Just choose :guilabel:`Background: As Canvas Color` in the new image dialogue and the image background will be white. You can turn it back to transparent via :menuselection:`Image --> Change image background color`. If you export a PNG or JPG, make sure to uncheck :guilabel:`Save transparency` and to make the background color white (it's black by default). .. image:: /images/en/Krita-color-to-alpha.png :align: center -Like Sai, you can quickly turn a black and white image to black and transparent with the :menuselection:`Color to Alpha Filter` under :menuselection:`Filters --> Colors --> Color to Alpha` +Like Sai, you can quickly turn a black and white image to black and transparent with the :menuselection:`Color to Alpha Filter` under :menuselection:`Filters --> Colors --> Color to Alpha`. Brush Settings ~~~~~~~~~~~~~~ Another, somewhat amusing misconception is that Krita's brush engine is not very complex. After all, you can only change the Size, Flow and Opacity from the top bar. This is not quite true. It's rather that we don't have our brush settings in a docker but a drop-down on the toolbar. The easiest way to access this is with :kbd:`F5`. As you can see, it's actually quite complex. We have more than a dozen brush engines, which are a type of brush you can make. The ones you are used to from Paint Tool Sai are the Pixel Brush (ink), The Color Smudge Brush (brush) and the filter brush (dodge, burn). A simple inking brush recipe for example is to take a pixel brush, uncheck the :guilabel:`Enable Pen Settings` on opacity and flow, and uncheck everything but size from the option list. Then, go into brush-tip, pick :ref:`auto_brush_tip` from the tabs, and set the size to 25 (right-click a blue bar if you want to input numbers), turn on anti-aliasing under the brush icon, and set fade to 0.9. Then, as a final touch, set spacing to 'auto' and the spacing number to 0.8. You can configure the brushes in a lot of detail, and share the packs with others. Importing of packs and brushes can be done via the :menuselection:`Settings --> Manage Resources`, where you can import .bundle files or .kpp files. Erasing ~~~~~~~ Erasing is a blending mode in Krita, much like the transparency mode of Paint Tool Sai. It's activated with :kbd:`E` or you can select it from the Blending Mode drop-down... Blending Modes ~~~~~~~~~~~~~~ Krita has a lot of Blending modes, and thankfully all of Paint Tool Sai's are amongst them except binary. To manage the blending modes, each of them has a little check-box that you can tick to add them to the favorites. Multiple, Screen, Overlay and Normal are amongst the favorites. Krita's Luminosity is actually slightly different from Paint Tool Sai's and it replaces the relative brightness of color with the relative brightness of the color of the layer. Sai's Luminosity mode is actually the same as Krita's *Addition* or *linear dodge* mode. The Shade mode is the same as *Color Burn* and *Hard Mix* is the same as the lumi and shade mode. Layers ~~~~~~ Lock Alpha This is the checker box icon next to every layer. Clipping group - For Clipping masks in Krita you'll need to put all your images in a single layer, and then press the 'a' icon, or press :kbd:`Ctrl + Shift + G` + For Clipping masks in Krita you'll need to put all your images in a single layer, and then press the 'a' icon, or press :kbd:`Ctrl + Shift + G`. Ink layer This is a vector layer in Krita, and also holds the text. Masks These grayscale layers that allow you to affect the transparency are called transparency masks in Krita, and like Paint Tool Sai, they can be applied to groups as well as layers. If you have a selection and make a transparency mask, it will use the selection as a base. Clearing a layer This is under :menuselection:`Edit --> Clear`, but you can also just press :kbd:`Del`. Mixing between two colors ~~~~~~~~~~~~~~~~~~~~~~~~~ If you liked this docker in Paint Tool Sai, Krita's Digital Color Selector docker will be able to help you. Dragging the sliders will change how much of a color is mixed in. What do you get extra when using Krita? --------------------------------------- More brush customization ~~~~~~~~~~~~~~~~~~~~~~~~ You already met the brush settings editor. Sketch brushes, grid brushes, deform brushes, clone brushes, brushes that are textures, brushes that respond to tilt, rotation, speed, brushes that draw hatches and brushes that deform the colors. Krita's variety is quite big. More color selectors ~~~~~~~~~~~~~~~~~~~~ You can have HSV sliders, RGB sliders, triangle in a hue ring. But you can also have HSI, HSL or HSY' sliders, CMYK sliders, palettes, round selectors, square selectors, tiny selectors, big selectors, color history and shade selectors. Just go into :menuselection:`Settings --> Configure Krita --> Advanced Color Selector Settings` to change the shape and type of the main big color selector. .. image:: /images/en/Krita_Color_Selector_Types.png :align: center You can call the color history with :kbd:`H`, common colors with :kbd:`U` and the two shade selectors with :kbd:`Shift + N` and :kbd:`Shift + M`. The big selector can be called with :kbd:`Shift + I` on canvas. Geometric Tools ~~~~~~~~~~~~~~~ Circles, rectangles, paths, Krita allows you to draw these easily. Multibrush, Mirror Symmetry and Wrap Around ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ These tools allow you to quickly paint a mirrored image, mandala or tiled texture in no time. Useful for backgrounds and abstract vignettes. .. image:: /images/en/Krita-multibrush.png :align: center Assistants ~~~~~~~~~~ The painting assistants can help you to set up a perspective, or a concentric circle and snap to them with the brush. .. figure:: /images/en/Krita_basic_assistants.png :alt: Krita's vanishing point assistants in action :width: 800 Krita's vanishing point assistants in action Locking the Layer ~~~~~~~~~~~~~~~~~ Lock the layer with the padlock so you don't draw on it. Quick Layer select ~~~~~~~~~~~~~~~~~~ If you hold :kbd:`R` and press a spot on your drawing, Krita will select the layer underneath the cursor. Really useful when dealing with a large number of layers. Color Management ~~~~~~~~~~~~~~~~ This allows you to prepare your work for print, or to do tricks with the LUT docker so you can diagnose your image better. For example, using the LUT docker to turn the colors grayscale in a separate view, so you can see the values instantly. .. image:: /images/en/Krita-view-dependant-lut-management.png :align: center Advanced Transform Tools ~~~~~~~~~~~~~~~~~~~~~~~~ Not just rotate and scale, but also cage, wrap, liquify and non-destructive transforms with the transform tool and masks. .. image:: /images/en/Krita_transforms_recursive.png :align: center More Filters and non-destructive filter layers and masks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ With filters like color balance and curves you can make easy shadow layers. In fact, with the filter layers and layer masks you can make them apply on the fly as you draw underneath. .. image:: /images/en/Krita_ghostlady_3.png :align: center Pop-up palette ~~~~~~~~~~~~~~~ This is the little circular thing that is by default on the right click. You can organize your brushes in tags, and use those tags to fill up the pop-up palette. It also keeps a little color selector and color history, so you can switch brushes on the fly. .. image:: /images/en/Krita-popuppalette.png :align: center What does Krita lack compared to Paint Tool Sai? ------------------------------------------------ * Variable width vector lines * The selection source option for layers * Dynamic hard-edges for strokes (the fringe effect) -* No mix-docker. -* No Preset-tied stabilizer. -* No per-preset hotkeys. +* No mix-docker +* No Preset-tied stabilizer +* No per-preset hotkeys Conclusion ---------- I hope this introduction got you a little more excited to use Krita, if not feel a little more at home. diff --git a/user_manual/japanese_animation_template.rst b/user_manual/japanese_animation_template.rst index 155c8b02d..47a115dbc 100644 --- a/user_manual/japanese_animation_template.rst +++ b/user_manual/japanese_animation_template.rst @@ -1,95 +1,95 @@ .. meta:: :description: Detailed explanation on how to use the animation template. .. metadata-placeholder :authors: - Saisho Kazuki - Tokiedian - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Animation, Template .. _japanese_animation_template: =========================== Japanese Animation Template =========================== This template is used to make Japanese-style animation. It is designed on the assumption that it was used in co-production, so please customize its things like layer folders according to scale and details of your works. Basic structure of its layers ============================= Layers are organized so that your work will start from lower layers go to higher layers, except for coloring layers. .. image:: /images/en/Layer_Organization.png Its layer contents ================== from the bottom Layout Paper These layers are a form of layout paper. Anime tap holes are prepared on separate layers in case you have to print it out and continue your drawing traditionally. Layout (Background) These layers will contain background scenery or layouts which are scanned from a traditional drawing. If you don't use them, you can remove them. Key drafts These layers are used to draw layouts digitally. Keys Where you add some details to the layouts and arrange them to draw "keys" of animation. Inbetweening - Where you add inbetweens to keys for the process of coloring, and remove unnecessary details to finalize keys (To be accurate, I finish finalization of keys before beginning to add inbetweens) + Where you add inbetweens to keys for the process of coloring, and remove unnecessary details to finalize keys (To be accurate, I finish finalization of keys before beginning to add inbetweens). Coloring (under Inbetweening) Where you fill areas with colors according to specification of inbetweens. Time Sheet and Composition sheet This contains a time sheet and composition sheet. Please rotate them before using. Color set This contains colors used to draw main and auxiliary line art and fill highlight or shadows. You can add them to your palette. Basic steps to make animation ============================= Key draft --> assign them into Time sheet (or adjust them on Timeline, then assign them into Time sheet) --> adjust them on Timeline --> add frames to draw drafts for inbetweening if you need them --> Start drawing Keys .. image:: /images/en/Keys_drafts.png You can add layers and add them to timeline. .. image:: /images/en/Add_Timeline_1.png .. image:: /images/en/Add_Timeline_2.png This is due difference between 24 drawing per second, which is used in Full Animation, and 12 drawing per second and 8 drawings per second, which are used in Limited Animation, on the Timeline docker. .. image:: /images/en/24_12_and_8_drawing_per_sec.png This is correspondence between Timeline and Time sheet. "Black" layer is to draw main line art which are used ordinary line art, "Red" layer is to draw red auxiliary linearts which are used to specify highlights, "Blue" layer is to draw blue auxiliary linearts which are used to specify shadows, and "Shadow" layer is to draw light green auxiliary line art which are used to specify darker shadows. However, probably you have to increase or decrease these layers according to your work. .. image:: /images/en/Time_sheet_1.png Finished keys, you will begin to draw the inbetweens. If you feel Krita is becoming slow, I recommend you to merge key drafts and keys, as well as to remove any unnecessary layers. After finalizing keys and cleaning up unnecessary layers, add inbetweenings, using Time sheet and inbetweening drafts as reference. This is its correspondence with Time sheet. .. image:: /images/en/Inbetweening.png Once the vector functionality of Krita becomes better, I recommend you to use vector to finalize inbetweening. If you do the colors in Krita, please use Coloring group layer. If you do colors in other software, I recommend to export frames as .TGA files. Resolution ---------- I made this template in 300 dpi because we have to print them to use them in traditional works which still fill an important role in Japanese Anime Studio. However, if you stick to digital, 150-120 dpi is enough to make animation. So you can decrease its resolution according to your need. Originally written by Saisho Kazuki, Japanese professional animator, and translated by Tokiedian, KDE contributor. diff --git a/user_manual/layers_and_masks.rst b/user_manual/layers_and_masks.rst index f1c5ba7c4..a0f105c17 100644 --- a/user_manual/layers_and_masks.rst +++ b/user_manual/layers_and_masks.rst @@ -1,182 +1,182 @@ .. meta:: :description: An introduction guide to how layers and masks work inside Krita. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath - Scott Petrovic - AnetK - Bugsbane - Alan - Lundin :license: GNU free documentation license 1.3 or later. .. index:: Layers, Masks .. _layers_and_masks: ================================ Introduction to Layers and Masks ================================ Krita supports layers which help to better control parts and elements of your painting. Think of an artwork or collage made with various stacks of papers with some paper cut such that they show the paper beneath them while some hide what's beneath them. If you want to replace an element in the artwork, you replace that piece of paper instead of drawing the entire thing. In Krita instead of papers we use **Layers**. Layers are part of the document which may or may not be transparent, they may be smaller or bigger than the document itself, they can arrange one above other, named and grouped. Layers can give better control over your artwork for example you can re-color an entire artwork just by working on the separate color layer and thereby not destroying the line art which will reside above this color layer. You can edit individual layers, you can even add special effects to them, like Layer styles, blending modes, transparency, filters and transforms. Krita takes all these layers in its layer stack, including the special effects and combines or composites together a final image. This is just one of the many digital image manipulation tricks that :program:`Krita` has up its sleeve! Usually, when you put one paint layer on top of another, the upper paint layer will be fully visible, while the layer behind it will either be obscured, occluded or only partially visible. Managing layers --------------- Some artists draw with limited number of layers but some prefer to have different elements of the artwork on separate layer. Krita has some good layer management features which make the layer management task easy. You can :ref:`group layers ` and organise the elements of your artwork. The layer order can be changed or layers can be moved in and out of a group in the layer stack by simply holding them and dragging and dropping. Layers can also be copied across documents while in the :ref:`subwindow mode `, by dragging and dropping from one document to another. These features save time and also help artists in maintaining the file with a layer stack which will be easy to understand for others who work on the same file. In addition to these layers and groups can both be labeled and filtered by colors, thus helping the artists to visually differentiate them. To assign a color label to your layer or layer group you have to right click on the layer and choose one of the given colors from the context menu. To remove an already existing color label you can click on the 'x' marked box in the context menu. .. image:: /images/en/Layer-color-filters.png :width: 400 Once you assign color labels to your layers, you can then filter layers having similar color label by clicking on one or more colors in the list -from the drop-down situated at the top-right corner of the layer docker +from the drop-down situated at the top-right corner of the layer docker. .. image:: /images/en/Layer-color-filters-menu.png :width: 500 Types of Layers --------------- .. image:: /images/en/500px-Krita-types-of-layers.png The image above shows the various types of layers in :ref:`layer_docker`. Each layer type has a different purpose for example all the vector elements can be only placed on a vector layer and similarly normal raster elements are mostly on the paint layer, :ref:`cat_layers_and_masks` page contains more information about these types layers. Now Let us see how these layers are composited in Krita. How are layers composited in Krita ? ------------------------------------ In Krita, the visible layers form a composite image which is shown on the canvas. The order in which Krita composites the layers is from bottom to top, much like the stack of papers we discussed above. As we continue adding layers, the image we see changes, according to the properties of the newly added layers on top. Group Layers composite separately from the other layers in the stack, except when pass through mode is activated. The layers inside a group form a composite image first and then this composite is taken into consideration while the layer stack is composited to form a whole image. If the pass through mode is activated by pressing the icon similar to bricked wall, the layers within the group are considered as if they are outside of that particular group in the layer stack, however, the visibility of the layers in a group depends on the visibility of the group. .. image:: /images/en/Passthrough-mode_.png .. image:: /images/en/Layer-composite.png The groups in a PSD file saved from Photoshop have pass-through mode on by default unless they are specifically set with other blending modes. .. index:: Alpha Inheritance, Clipping Masks Inherit Alpha or Clipping layers -------------------------------- There is a clipping feature in Krita called inherit alpha. It is denoted by an alpha icon in the layer stack. .. image:: /images/en/Inherit-alpha-02.png It can be somewhat hard to figure out how the inherit alpha feature works in Krita for the first time. Once you click on the inherit alpha icon on the layer stack, the pixels of the layer you are painting on are confined to the combined pixel area of all the layers below it. That means if you have the default white background layer as first layer, clicking on the inherit alpha icon and painting on any layer above will seem to have no effect as the entire canvas is filled with white. Hence, it is advised to put the base layer that you want the pixels to clip in a group layer. As mentioned above, group layers are composited separately, hence the layer which is the lowest layer in a group becomes the bounding layer and the content of the layers above this layer clips to it if inherit alpha is enabled. .. image:: /images/en/Inherit-alpha-krita.jpg .. image:: /images/en/Krita-tutorial2-I.1-2.png You can also enable alpha inheritance to a group layer. Masks and Filters ----------------- Krita supports non-destructive editing of the content of the layer. Non-destructive editing means editing or changing a layer or image without actually changing the original source image permanently, the changes are just added as filters or masks over the original image while keeping it intact, this helps a lot when your workflow requires constant back and forth. You can go back to original image with a click of a button. Just hide the filter or mask you have your initial image. You can add various filters to a layer with Filter mask, or add Filter layer which will affect the whole image. Layers can also be transformed non-destructively with the transformation masks, and even have portions temporarily hidden with a Transparent Mask. Non-destructive effects like these are very useful when you change your mind later, or need to make a set of variations of a given image. .. note:: You can merge all visible layers by selecting everything first :menuselection:`Layer --> Select --> Visible Layers`. Then Combine them all by merging :menuselection:`Layer --> Merge with Layer Below`. These filters and masks are accessible through the right click menu (as shown in the image below) and the Plus icon on the layer docker. .. image:: /images/en/Layer-right-click.png You can also add a filter as a mask from filter dialog itself, by clicking on the :guilabel:`Create Filter Mask` button. .. image:: /images/en/Filtermask-button.png All the filters and masks can also be applied over a group too, thus making it easy to non-destructively edit multiple layers at once. In the :ref:`category Layers and masks ` you can read more about the individual types of layers and masks. :ref:`Layer Docker ` has more information about the shortcuts and other layer management workflows. diff --git a/user_manual/loading_saving_brushes.rst b/user_manual/loading_saving_brushes.rst index ced85280d..c295cada2 100644 --- a/user_manual/loading_saving_brushes.rst +++ b/user_manual/loading_saving_brushes.rst @@ -1,485 +1,485 @@ .. meta:: :description: Detailed guide on the brush settings dialog in Krita as well as how to make your own brushes and how to share them. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Brush Settings .. _loading_saving_brushes: ========================== Loading and Saving Brushes ========================== In the real world, when painting or drawing, you don't just use one tool. You use pencils, erasers, paintbrushes, different types of paint, inks, crayons, etc. All these have different ways of making marks. In a digital program like Krita you have something similar. We call this a brush engine. And much like how cars have different engines that give different feels when driving, or how pencils make distinctly different marks than rollerball pens, different brush engines have totally different feels. The brush engines have a lot of different settings as well. So, you can save those settings into presets. Unlike Photoshop, Krita makes a difference between brush-tips and brush-presets. Tips are only a stamp of sorts, while the preset uses a tip and many other settings to create the full brush. The Brush settings drop-down ---------------------------- To start, the Brush Settings Editor panel can be accessed in the toolbar, between the :guilabel:`Blending Modes` button on the right and the :guilabel:`Patterns` button on the left. Alternately, you can use the function key :kbd:`F5` to open it. When you open Brush Settings Editor panel you will see something like this: Tour of the brush settings drop-down ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. image:: /images/en/Krita_4_0_Brush_Settings_Layout.svg :width: 800 The brush settings drop-down is divided into six areas, Section A - General Information ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This contains the **Preset Icon**, **Live Brush Preview**, the **Preset Name**, the **Engine** name, and several buttons for saving, renaming, and reloading. Krita's brush settings are stored into the metadata of a 200x200 png (the KPP file), where the image in the png file becomes the preset icon. This icon is used everywhere in Krita, and is useful for differentiating brushes in ways that the live preview cannot. The live preview shows a stroke of the current brush as a little s-curve wiggle, with the pressure being non-existent on the left, and increasing to full pressure as it goes to the right. It can thus show the effect of the Pressure, Drawing Angle, Distance, Fade and Fuzzy Dab sensors, but none of the others. For some brush engines it cannot show anything. For the color smudge, filter brush and clone tool, it shows an alternating line pattern because these brush engines use the pixels already on canvas to change their effect. After the preset name, there's a button for **renaming** the brush. This will save the brush as a new brush and blacklist the previous name. Engine '''''' The engine of a brush is the underlying programming that generates the stroke from a brush. What that means is that different brush engines have different options and different results. You can see this as the difference between using crayons, pencils and inks, but because computers are maths devices, most of our brush engines produce different things in a more mathematical way. For most artists the mathematical nature doesn't matter as much as the different textures and marks each brush engine, and each brush engine has its own distinct flavor and use, and can be further customized by modifying the options. Reloading ''''''''' If you change a preset, an icon will appear behind the engine name. This is the :guilabel:`reload` button. You can use it to revert to the original brush settings. Saving a preset '''''''''''''''' On the right, there's :guilabel:`Save New Brush Preset` and :guilabel:`Overwrite Brush`. Overwrite Brush This will only enable if there are any changes. Pressing this will override the current preset with the new settings, keeping the name and the icon intact. It will always make a timestamped back up in the resources folder. Save New Brush Preset Will take the current preset and all its changes and save it as a new preset. If no change was made, you will be making a copy of the current preset. Save new preset will call up the following window, with a mini scratch pad, and all sorts of options to change the preset icon: .. image:: /images/en/Krita_4_0_Save_New_Brush_Preset_Dialog.png The image on the left is a mini scratchpad, you can draw on it with the current brush, allowing small modifications on the fly. Brush Name The Name of your brush. This is also used for the KPP file. If there's already a brush with that name, it will effectively overwrite it. Load Existing Thumbnail This will load the existing thumbnail inside the preset. Load scratch pad thumbnail This will load the dashed area from the big scratch pad (Section C) into the thumbnail area. Load Image With this you can choose an image from disk to load as a thumbnail. Load from Icon Library This opens up the icon library. Clear Thumbnail This will make the mini scratch pad white. The Icon Library '''''''''''''''' To make making presets icons faster, Krita got an icon library. .. image:: /images/en/Krita_4_0_Preset_Icon_Library_Dialog.png It allows you to select tool icons, and an optional small emblem. When you press :guilabel:`OK` it will load the resulting combination into the mini scratch pad and you can draw in the stroke. If you go to your resources folder, there's a folder there called "preset\_icons", and in this folder there are "tool\_icons" and "emblem\_icons". You can add semi-transparent pngs here and Krita will load those into the icon library as well so you can customize your icons even more! At the top right of the icon library, there are three sliders. They allow you to adjust the tool icon. The top two are the same Hue and Saturation as in HSL adjustment, and the lowest slider is a super simple levels filter. This is done this way because the levels filter allows maintaining the darkest shadows and brightest highlights on a tool icon, making it much better for quick adjustments. If you're done with everything, you can press :guilabel:`Save` in the :guilabel:`Save New Preset` dialog and Krita will save the new brush. Section B - The Preset Chooser ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The preset chooser is much the same as the preset docker and the preset drop-down on :kbd:`F6`. It's unique in that it allows you to filter by engine and this is also where you can create brushes for an engine from scratch. It is by default collapsed, so you will need to press the arrow at the top left of the brush engine to show it. The top drop-down is set to “all” by default, which means it shows all engines. It then shows a tag section where you can select the tags, the preset list and the search bar. Underneath that there's a plus icon, which when pressed gives you the full list of Krita's engines. Selecting an engine from the list will show the brushes for that engine. The trashcan icon does the same as it does in the preset docker: delete, or rather, blacklist a preset so it won't show up in the list. Section C - The Scratch pad ^^^^^^^^^^^^^^^^^^^^^^^^^^^ When you tweak your brushes, you want to be able to check what each setting does. That's why, to the right of the settings drop-down, there is a scratch pad. It is by default collapsed, so you will have to press the arrow at the top right of the brush settings to show it. When saving a new preset, you can choose to get the icon from the scratch pad, this will load the dash area into the mini scratch pad of the Save New Preset dialog. The scratch pad has five buttons underneath it. These are in order for: #. Showing the current brush image #. Adding a gradient to the scratch pad (useful for smudge brushes) #. Filling with the background color -#. Clearing everything on the scratch pad. +#. Clearing everything on the scratch pad Section D - The Options List ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The options, as stated above, are different per brush engine. These represent the different parameters, toggles and knobs that you can turn to make a brush preset unique. For a couple of options, the main things to change are sliders and check boxes, but for a lot of them, they use curves instead. Some options can be toggled, as noted by the little check boxes next to them, but others, like flow and opacity are so fundamental to how the brush works, that they are always on. The little padlock icon next to the options is for locking the brush. This has its own page. Section E - Option Configuration Widget ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Where section D is the list of options, section E is the widget where you can change things. Using sensor curves ''''''''''''''''''' One of the big important things that make art unique to the artist who created it is the style of the strokes. Strokes are different because they differ in speed, rotation, direction, and the amount of pressure put onto the stylus. Because these are so important, we would want to customize how these values are understood in detail. The best way to do this is to use curves. Curves show up with the size widget for example. With an inking brush, we want to have size mapped to pressure. Just toggling the size option in the option list will do that. However, different people have different wrists and thus will press differently on their stylus. Someone who presses softly tends to find it easy to make thin strokes, but very difficult to make thick strokes. Conversely, someone who presses hard on their stylus naturally will have a hard time making thin strokes, but easily makes thick ones. Such a situation can be improved by using the curves to map pressure to output thinner lines or thicker ones. The brush settings curves even have quick curve buttons for these at the top. Someone who has a hard time making small strokes should try the second to last concave button, while someone who has a hard time making thick strokes should try the third button, the S shape. Underneath the curve widget there are two more options: Share Curves across all settings This is for the list of sensors. Toggling this will make all the sensors use the same curve. Unchecked, all checked sensors will have separate curves. Curves Calculation Mode This indicates how the multiple values of the sensor curves are used. The curves always go from 0 to 1.0, so if one curve outputs 0.5 and the other 0.7, then... Multiply - Will multiply the two values, 0.5\*0.7 = 0.35 + Will multiply the two values, 0.5\*0.7 = 0.35. Addition Will add the two to a maximum of 1.0, so 0.5+0.7 = 1.2, which is then capped at 1.0. Maximum Will compare the two and pick the largest. So in the case of 0.5 and 0.7, the result is 0.7. Minimum Will compare the two and pick the smallest. So in the case of 0.5 and 0.7, the result is 0.5. Difference Will subtract the smallest value from the largest, so 0.7-0.5 = - 0.2 + 0.2. It's maybe better to see with the following example: .. image:: /images/en/Krita_4_0_brush_curve_calculation_mode.png The first two are regular, the rest with different multiplication types. #. Is a brush with size set to the distance sensor. #. Is a brush with the size set to the fade sensor. #. The size is calculated from the fade and distance sensors multiplied. #. The size is calculated from the fade and distance sensors added to each other. Notice how thick it is. #. The size takes the maximum value from the values of the fade and distance sensors. #. The size takes the minimum value from the values of the fade and distance sensors. #. The size is calculated by having the largest of the values subtracted with the smallest of the values. Section F - Miscellaneous options ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Temporarily Save Tweaks to Preset (Dirty Presets) This enables dirty presets. Dirty presets store the tweaks you make as long as this session of Krita is active. After that, they revert to default. Dirtied presets can be recognized by the icon in the top-left of the preset. .. figure:: /images/en/Krita_4_0_dirty_preset_icon.png :figwidth: 450 The icon in the top left of the first two presets indicate it is “Dirty”, meaning there are tweaks made to the preset. Eraser Switch Size This switches the brush to a separately stored size when using the :kbd:`E` key. Eraser Switch Opacity Same as above, but then with Eraser opacity. Instant Preview This allows you to toggle instant preview on the brush. The Instant Preview has a super-secret feature: when you press the instant preview label, and then right click it, it will show a threshold slider. This slider determines at what brush size instant preview is activated for the brush. This is useful because small brushes can be slower with instant preview, so the threshold ensures it only activates when necessary. The On-canvas brush settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are on-canvas brush settings. If you open up the pop-up palette, there should be an icon on the bottom-right. Press that to show the on-canvas brush settings. You will see several sliders here, to quickly make small changes. At the top it shows the currently active preset. Next to that is a settings button, click that to get a list of settings that can be shown and organized for the given brush engine. You can use the up and down arrows to order their position, and then left and right arrows to add or remove from the list. You can also drag and drop. Making a Brush Preset --------------------- Now, let's make a simple brush to test the waters with: Getting a default for the brush engine. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ First, open the settings with :kbd:`F5`. Then, press the arrow on the upper left to open the preset chooser. There, press the “+” icon to get a list of engines. For this brush we're gonna make a pixel brush. Example: Making an inking brush ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. Draw on the scratch pad to see what the current brush looks like. If done correctly, you should have a 5px wide brush that has pressure set to opacity. #. Let us turn off the opacity first. Click on the :ref:`opacity ` option in the right-hand list. The settings should now be changed to a big curve. This is the sensor curve. #. Uncheck the :guilabel:`Enable Pen Settings` checkbox. #. Test on the scratch pad... there still seems to be something affecting opacity. This is due to the :ref:`flow ` option. #. Select the Flow option from the list on the right hand. Flow is like Opacity, except that Flow is per dab, and opacity is per stroke. #. Uncheck the :guilabel:`Enable Pen Settings` checkbox here as well. Test again. #. Now you should be getting somewhere towards an inking brush. It is still too small however, and kinda grainy looking. Click :ref:`Brush Tip ` in the brush engine options. #. Here, the diameter is the size of the brush-tip. You can touch the slider change the size, or right-click it and type in a value. Set it to 25 and test again. It should be much better. #. Now to make the brush feel a bit softer, turn down the fade parameter to about 0.9. This'll give the *brush mask* a softer edge. #. If you test again, you'll notice the fade doesn't seem to have much effect. This has to do with the spacing of the dabs: The closer they are together, the harder the line is. By default, this is 0.1, which is a bit low. If you set it to 10 and test, you'll see what kind of effect spacing has. The :ref:`Auto ` checkbox changes the way the spacing is calculated, and Auto Spacing with a value of 0.8 is the best value for inking brushes. Don't forget that you can use right-click to type in a value. #. Now, when you test, the fade seems to have a normal effect... except on the really small sizes, which look pixelly. To get rid of that, check the anti-aliasing check box. If you test again, the lines should be much nicer now. Saving the new Brush ~~~~~~~~~~~~~~~~~~~~ When you're satisfied, go to the upper left and select :guilabel::`Save new preset`. You will get the save preset dialog. Name the brush something like “My Preset”. Then, select :guilabel:`Load from Icon Library` to get the icon library. Choose a nice tool icon and press :guilabel:`OK`. The icon will be loaded into the mini scratch pad on the left. Now doodle a nice stroke next to it. If you feel you messed up, just go back to the icon library to load a new icon. Finally press :guilabel:`Save`, and your brush should be done. You can further modify your inking brush by... Changing the amount of pressure you need to put on a brush to make it full size. To do this, select the :ref:`size ` option, and press the pressure sensor from the list next to the curve. The curve should look like a straight line. Now if you want a brush that gets big with little pressure, tick on the curve to make a point, and drag the point to the upper-left. The more the point is to the upper-left, the more extreme the effect. If you want instead a brush that you have to press really hard on to get to full size, drag the dot to the lower-right. Such a brush is useful for fine details. Don't forget to save the changes to your brush when done. Making the fine lines look even softer by using the flow option. To do this, select the flow option, and turn back on the :guilabel:`Enable Pen Settings` check box. Now if you test this, it is indeed a bit softer, but maybe a bit too much. Click on the curve to make a dot, and drag that dot to the top-left, half-way the horizontal of the first square of the grid. Now, if you test, the thin lines are much softer, but the hard your press, the harder the brush becomes. Sharing Brushes --------------- Okay, so you've made a new brush and want to share it. There are several ways to share a brush preset. The recommended way to share brushes and presets is by using the resource bundle system. We have detailed instructions on how to use them on the :ref:`resource management page `. However, there are various old-fashioned ways of sharing brushes that can be useful when importing and loading very old packs: Sharing a single preset ~~~~~~~~~~~~~~~~~~~~~~~ There are three types of resources a single preset can take: #. A Paintoppreset file: This is the preset proper, with the icon and the curves stored inside. #. A Brush file: This is the brush tip. When using masked brushes, there's two of these. #. A Pattern file: this is when you are using textures. So when you have a brush that uses unique predefined tips for either brush tip or masked brush, or unique textures you will need to share those resources as well with the other person. To find those resources, go to :menuselection:`Settings --> Manage Resources --> Open Resource Folder`. There, the preset file will be inside paintoppresets, the brush tips inside brushes and the texture inside patterns. Importing a single KPP file. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Now, if you want to use the single preset, you should go to the preset chooser on :kbd:`F6` and press the folder icon there. This will give a file dialog. Navigate to the kpp file and open it to import it. If there are brush tips and patterns coming with the file, do the same with pattern via the pattern docker, and for the brush-tip go to the settings drop-down (:kbd:`F5`) and then go to the “brush-tip” option. There, select predefined brush, and then the “import” button to call up the file dialog. Sharing via ZIP (old-fashioned) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sharing via ZIP should be replaced with resource bundles, but older brush packs are stored in zip files. Using a ZIP with the relevant files. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #. Go to :menuselection:`Settings --> Manage Resources --> Open Resource Folder` to open the resource folder. #. Then, open up the zip file. #. Copy the brushes, paintoppresets and patterns folders from the zip file to the resource folder. You should get a prompt to merge the folders, agree to this. -#. Restart Krita +#. Restart Krita. #. Enjoy your brushes! diff --git a/user_manual/mirror_tools.rst b/user_manual/mirror_tools.rst index c7bbf253c..f8933bd32 100644 --- a/user_manual/mirror_tools.rst +++ b/user_manual/mirror_tools.rst @@ -1,45 +1,45 @@ .. meta:: :description: How to use the canvas mirroring tools in Krita. .. metadata-placeholder :authors: - Scott Petrovic - Nmagfurusman :license: GNU free documentation license 1.3 or later. .. index:: Mirror, Symmetry .. _mirror_tools: ============ Mirror Tools ============ Draw on one side of a mirror line while the Mirror Tool copies the results to the other side. The Mirror Tools are accessed along the toolbar. You can move the location of the mirror line by grabbing the handle. .. image:: /images/en/Mirror-tool.png Mirror Tools give a similar result to the :ref:`multibrush_tool`, but unlike the Multibrush which only traces brush strokes like the :ref:`freehand_brush_tool`, the Mirror Tools can be used with any other tool that traces strokes, such as the :ref:`line_tool` and the :ref:`path_tool`, and even with the Multibrush Tool. **Horizontal Mirror Tool** - Mirror the results along the horizontal axis. **Vertical Mirror Tool** - Mirror the results along the vertical axis. There are additional options for each tool. You can access these by the clicking the drop-down arrow located on the right of each tool. - Hide Mirror Line (toggle) -- Locks the mirror axis and hides the axis - line + line. - Lock (toggle) - hides the move icon on the axis line. - Move to Canvas Center - Moves the axis line to the center of the - canvas + canvas. Mirroring along a rotated line ------------------------------ The Mirror Tool can only mirror along a perfectly vertical or horizontal line. To mirror along a line that is at a rotated angle, use the :ref:`multibrush_tool` and its various parameters, it has more advanced options besides basic symmetry. diff --git a/user_manual/python_scripting/introduction_to_python_scripting.rst b/user_manual/python_scripting/introduction_to_python_scripting.rst index a3a22c93b..67598f2d8 100644 --- a/user_manual/python_scripting/introduction_to_python_scripting.rst +++ b/user_manual/python_scripting/introduction_to_python_scripting.rst @@ -1,188 +1,188 @@ .. meta:: :description: Introduction to using Krita's python plugin API. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Alvin Wong - Scott Petrovic - Micheal Abrahams :license: GNU free documentation license 1.3 or later. .. index:: Python, Python Scripting, Scripting, Plugin, Debug .. _introduction_to_python_scripting: ================================ Introduction to Python Scripting ================================ .. versionadded:: 4.0 When we offered python scripting as one of Kickstarter Stretchgoals we could implement next to vectors and text, it won the backer vote by a landslide. Some people even only picked python and nothing else. So what exactly is python scripting? What is Python Scripting? ------------------------- Python is a scripting language, that can be used to automate tasks. What python scripting in Krita means is that we added an API to krita, which is a bit of programming that allows python to access to parts of Krita. With this we can make dockers, perform menial tasks on a lot of different files and even write our own exporters. People who work with computer graphics, like VFX and video game artists use python a lot to make things like sprite sheets, automate parts of export and more. It is outside the scope of this manual to teach you python itself. However, as python is an extremely popular programming language and great for beginners, there's tons of learning material around that can be quickly found with a simple 'learn python' internet search. This manual will instead focus on how to use python to automate and extend Krita. For that we'll first start with the basics: How to run Python commands in the scripter. How to Enable the Scripter Plugin ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The scripter plugin is not necessary to use python, but it is very useful for testing and playing around with python. It is a python console, written in python, which can be used to write small scripts and execute them on the fly. To open the scripter, navigate to :menuselection:`Tools --> Scripts --> Scripter`. If you don't see it listed, go to :menuselection:`Settings --> Configure Krita --> Python Plugin Manager` and toggle "Scripter" in the list to enable it. If you don't see the scripter plugin, make sure you are using an up-to-date version of Krita. The scripter will pop up with a text editor window on top and an output window below. Input the following in the text area: .. code:: python print("hello world") Press the big play button or press :kbd:`Ctrl + R` to run the script. Then, below, in the output area the following should show up:: ==== Warning: Script not saved! ==== hello world Now we have a console that can run functions like print() from the Python environment - but how do we use it to manage Krita? Running basic Krita commands ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To allow Python to communicate with Krita, we will use the Krita module. At the top of every script, we will write: ``from krita import *`` This allows us to talk to Krita through ``Krita.instance()``. Let's try to double our coding abilities with Python. .. code:: python from krita import * Krita.instance().action('python_scripter').trigger() You should see a second scripter window open. Pretty neat! Here is a slightly more advanced example. .. code:: python from krita import * d = Krita.instance().createDocument(512, 512, "Python test document", "RGBA", "U8", "", 120.0) Krita.instance().activeWindow().addView(d) This will open up a new document. Clearly Python gives you quite a lot of control to automate Krita. Over time we expect the community to write all kinds of scripts that you can use simply by pasting them in the scripter. But what if you want to write new commands for yourself? The best place to start is very simple: search for examples written by other people! You can save a lot of time if someone else has written code that you can base your work on. It's also worth looking through the python plugins, which are located in /share/krita/pykrita. There's also a step by step guide for :ref:`krita_python_plugin_howto` here in the manual. But it's likely that you need more information. For that, we will need see what's hidden behind the asterisk when you ``import * from Krita``. To learn what Krita functions that are available and how to use them, you will want to go for Krita API reference documentation. Krita's API ~~~~~~~~~~~ - `LibKis API Overview `_ - `Krita class documentation `_ Those pages may look like a lot of jargon at first. This is because Krita's API documentation comes from the underlying C++ language that Krita is written in. The magic happens because of a Python tool called SIP, which makes it possible for python speak in C++ and talk to Krita. The end result is that when we ``import krita`` and call functions, we're actually using the C++ methods listed in that documentation. Let's see how this stuff works in more detail. Let's take a look at the second link, the `Krita class reference `_. There we can see all the functions available to the Krita instance. If you type dir(Krita.instance()) in Python, it should match this page very closely - you can view the documentation of the functions createDocument(), activeWindow(), and action() which we used above. One of the more confusing things is seeing all the C++ classes that Krita uses, including the Qt classes that start with Q. But here is the beauty of SIP: it tries to make the translation from these classes into Python as simple and straightforward as possible. For example, you can see that the function filters() returns a QStringList. However, SIP converts those QStringLists into regular python list of strings! .. code:: python from krita import * print(Krita.instance().filters()) -Outputs as :: +Outputs as: :: ['asc-cdl', 'autocontrast', 'blur', 'burn', 'colorbalance', 'colortoalpha', 'colortransfer', 'desaturate', 'dodge', 'edge detection', 'emboss', 'emboss all directions', 'emboss horizontal and vertical', 'emboss horizontal only', 'emboss laplascian', 'emboss vertical only', 'gaussian blur', 'gaussiannoisereducer', 'gradientmap', 'halftone', 'height to normal', 'hsvadjustment', 'indexcolors', 'invert', 'lens blur', 'levels', 'maximize', 'mean removal', 'minimize', 'motion blur', 'noise', 'normalize', 'oilpaint', 'perchannel', 'phongbumpmap', 'pixelize', 'posterize', 'raindrops', 'randompick', 'roundcorners', 'sharpen', 'smalltiles', 'threshold', 'unsharp', 'wave', 'waveletnoisereducer'] However, sometimes the conversion doesn't go quite as smoothly. .. code:: python from krita import * print(Krita.instance().documents()) gives something like this:: [, , ] It is a list of something, sure, but how to use it? If we go back to the Krita apidocs page and look at the function, documents() we'll see there's actually a clickable link on the 'Document' class. `If you follow that link `_, you'll see that the document has a function called name() which returns the name of the document, and functions width() and height() which return the dimensions. So if we wanted to generate an info report about the documents in Krita, we could write a script like this: .. code:: python from krita import * for doc in Krita.instance().documents(): print(doc.name()) print(" "+str(doc.width())+"x"+str(doc.height())) -we get an output like:: +We get an output like:: ==== Warning: Script not saved! ==== Unnamed 2480x3508 sketch21 3508x2480 Blue morning 1600x900 Hopefully this will give you an idea of how to navigate the API docs now. Krita's API has many more classes, you can get to them by going to the top-left class list, or just clicking their names to get to their API docs. The functions print() or dir() are your friends here as well. This line will print out a list of all the actions in Krita - you could swap in one of these commands instead of 'python_scripter' in the example above. .. code:: python [print([a.objectName(), a.text()]) for a in Krita.instance().actions()] The Python module ``inspect`` was designed for this sort of task. Here's a useful function to print info about a class to the console. .. code:: python import inspect def getInfo(target): [print(item) for item in inspect.getmembers(target) if not item[0].startswith('_')] getInfo(Krita.instance()) -Finally, in addition to the LibKis documentation, the Qt documentation, since Krita uses PyQt to expose nearly all of the Qt API to Python. You can build entire windows with buttons and forms this way, using the very same tools that Krita is using! You can read the `Qt documentation `_ and the `PyQt documentation `_ for more info about this, and also definitely study the included plugins as well to see how they work. +Finally, in addition to the LibKis documentation, the Qt documentation, since Krita uses PyQt to expose nearly all of the Qt API to Python. You can build entire windows with buttons and forms this way, using the very same tools that Krita is using! You can read the `Qt documentation `_ and the `PyQt documentation `_ for more info about this, and also definitely study the included plugins as well to see how they work. Technical Details ----------------- .. Which version of python do we use, how to trouble shoot, etc. Python Scripting on Windows ~~~~~~~~~~~~~~~~~~~~~~~~~~~ To get Python scripting working on Windows 7/8/8.1, you will need to install the `Universal C Runtime from Microsoft's website `_. (Windows 10 already comes with it.) Python 2 and 3 ~~~~~~~~~~~~~~ By default Krita is compiled for python 3. However, it is possible to compile it with python 2. To do so, you will need to add the following to the cmake configuration line:: -DENABLE_PYTHON_2=ON diff --git a/user_manual/python_scripting/krita_python_plugin_howto.rst b/user_manual/python_scripting/krita_python_plugin_howto.rst index e5dd03189..b4ca5dcb6 100644 --- a/user_manual/python_scripting/krita_python_plugin_howto.rst +++ b/user_manual/python_scripting/krita_python_plugin_howto.rst @@ -1,355 +1,355 @@ .. meta:: :description: Guide on all the specifics of creating Krita python plugins. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - BrendanD - Scott Petrovic - Boudewijn Rempt - TPaulssen :license: GNU free documentation license 1.3 or later. .. index:: Python, Python Scripting, Scripting, Plugin .. _krita_python_plugin_howto: ================================= How to make a Krita Python plugin ================================= You might have some neat scripts you have written in the Scripter Python runner, but maybe you want to do more with it and run it automatically for instance. Wrapping your script in a plugin can give you much more flexibility and power than running scripts from the Scripter editor. Okay, so even if you know python really well, there are some little details to getting Krita to recognize a python plugin. So this page will give an overview how to create the various types of python script unique to Krita. These mini-tutorials are written for people with a basic understanding of python, and in such a way to encourage experimentation instead of plainly copy and pasting code, so read the text carefully. Getting Krita to recognize your plugin -------------------------------------- A script in Krita has two components - the script directory (holding your script's Python files) and a ".desktop" file that Krita uses to load and register your script. For Krita to load your script both of these must put be in the pykrita subdirectory of your Krita resources folder (on Linux ~/.local/share/krita/pykrita). To find your resources folder start Krita and click the :menuselection:`Settings --> Manage Resources` menu item. This will open a dialog box. Click the :guilabel:`Open Resources Folder` button. This should open a file manager on your system at your Krita resources folder. See the `API `_ docs under "Auto starting scripts". If there is no pykrita subfolder in the Krita resources directory use your file manager to create one. Scripts are identified by a file that ends in a .desktop extension that contain information about the script itself. Therefore, for each proper plugin you will need to create a folder, and a desktop file. The desktop file should look as follows:: [Desktop Entry] Type=Service ServiceTypes=Krita/PythonPlugin X-KDE-Library=myplugin X-Python-2-Compatible=false X-Krita-Manual=myPluginManual.html Name=My Own Plugin Comment=Our very own plugin. Type This should always be service. ServiceTypes This should always be Krita/PythonPlugin for python plugins. X-KDE-Library This should be the name of the plugin folder you just created. X-Python-2-Compatible Whether it is python 2 compatible. If Krita was built with python 2 instead of 3 (``-DENABLE_PYTHON_2=ON`` in the cmake configuration), then this plugin will not show up in the list. X-Krita-Manual An Optional Value that will point to the manual item. This is shown in the Python Plugin manager. If it's `an HTML file it'll be shown as rich text `_, if not, it'll be shown as plain text. Name - The name that will show up in the Python Plugin Manager + The name that will show up in the Python Plugin Manager. Comment The description that will show up in the Python Plugin Manager. Krita python plugins need to be python modules, so make sure there's an __init__.py script, containing something like... .. code:: python from .myplugin import * Where .myplugin is the name of the main file of your plugin. If you restart Krita, it now should show this in the Python Plugin Manager in the settings, but it will be grayed out, because there's no myplugin.py. If you hover over disabled plugins, you can see the error with them. Summary ^^^^^^^ In summary, if you want to create a script called *myplugin*: - in your Krita *resources/pykrita* directory create - a folder called *myplugin* - a file called *myplugin.desktop* - in the *myplugin* folder create - a file called *__init__.py* - a file called *myplugin.py* - in the *__init__.py* file put this code: .. code:: python from .myplugin import * - in the desktop file put this code:: [Desktop Entry] Type=Service ServiceTypes=Krita/PythonPlugin X-KDE-Library=myplugin X-Python-2-Compatible=false Name=My Own Plugin Comment=Our very own plugin. - write your script in the ''myplugin/myplugin.py'' file. Creating an extension --------------------- `Extensions `_ are relatively simple python scripts that run on Krita start. They are made by extending the Extension class, and the most barebones extension looks like this: .. code:: python from krita import * class MyExtension(Extension): def __init__(self, parent): #This is initialising the parent, always important when subclassing. super().__init__(parent) def setup(self): pass def createActions(self, window): pass # And add the extension to Krita's list of extensions: Krita.instance().addExtension(MyExtension(Krita.instance())) This code of course doesn't do anything. Typically, in createActions we add actions to Krita, so we can access our script from the :guilabel:`Tools` menu. First, let's create an `action `_. We can do that easily with `Window.createAction() `_. Krita will call createActions for every Window that is created and pass the right window object that we have to use. So... .. code:: python def createActions(self, window): action = window.createAction("myAction", "My Script", "tools/scripts") "myAction" This should be replaced with a unique id that Krita will use to find the action. "My Script" This is what will be visible in the tools menu. -if you now restart Krita, you will have an action called "My Script". It still doesn't do anything, because we haven't connected it to a script. +If you now restart Krita, you will have an action called "My Script". It still doesn't do anything, because we haven't connected it to a script. So, let's make a simple export document script. Add the following to the extension class, make sure it is above where you add the extension to Krita: .. code:: python def exportDocument(self): # Get the document: doc = Krita.instance().activeDocument() # Saving a non-existent document causes crashes, so lets check for that first. if doc is not None: # This calls up the save dialog. The save dialog returns a tuple. fileName = QFileDialog.getSaveFileName()[0] # And export the document to the fileName location. # InfoObject is a dictionary with specific export options, but when we make an empty one Krita will use the export defaults. doc.exportImage(fileName, InfoObject()) And add the import for QFileDialog above with the imports: .. code:: python from krita import * from PyQt5.QtWidgets import QFileDialog Then, to connect the action to the new export document: .. code:: python def createActions(self, window): action = window.createAction("myAction", "My Script") action.triggered.connect(self.exportDocument) -This is an example of a `signal/slot connection `_, which Qt applications like Krita use a lot. We'll go over how to make our own signals and slots a bit later. +This is an example of a `signal/slot connection `_, which Qt applications like Krita use a lot. We'll go over how to make our own signals and slots a bit later. Restart Krita and your new action ought to now export the document. Creating configurable keyboard shortcuts ---------------------------------------- Now, your new action doesn't show up in :menuselection:`Settings --> Configure Krita --> Keyboard Shortcuts`. Krita, for various reasons, only adds actions to the shortcuts menu when they are present in an .action file. The action file to get our action to be added to shortcuts should look like this: .. code:: xml My Scripts My Script 10000 0 ctrl+alt+shift+p false My Scripts This will create a sub-category under scripts called "My Scripts" to add your shortcuts to. name This should be the unique id you made for your action when creating it in the setup of the extension. icon the name of a possible icon. These will only show up on KDE plasma, because Gnome and Windows users complained they look ugly. text The text that it will show in the shortcut editor. whatsThis The text it will show when a Qt application specifically calls for 'what is this', which is a help action. toolTip The tool tip, this will show up on hover-over. iconText The text it will show when displayed in a toolbar. So for example, "Resize Image to New Size" could be shortened to "Resize Image" to save space, so we'd put that in here. activationFlags This determines when an action is disabled or not. activationConditions This determines activation conditions (e.g. activate only when selection is editable). See `the code `_ for examples. shortcut Default shortcut. isCheckable Whether it is a checkbox or not. statusTip The status tip that is displayed on a status bar. Save this file as "myplugin.action" where myplugin is the name of your plugin. The action file should be saved, not in the pykrita resources folder, but rather in a resources folder named "actions". (So, share/pykrita is where the python plugins and desktop files go, and share/actions is where the action files go) Restart Krita. The shortcut should now show up in the shortcut action list. Creating a docker ----------------- Creating a custom `docker `_ is much like creating an extension. Dockers are in some ways a little easier, but they also require more use of widgets. This is the barebones docker code: .. code:: python from PyQt5.QtWidgets import * from krita import * class MyDocker(DockWidget): def __init__(self): super().__init__() self.setWindowTitle("My Docker") def canvasChanged(self, canvas): pass Krita.instance().addDockWidgetFactory(DockWidgetFactory("myDocker", DockWidgetFactoryBase.DockRight, MyDocker)) The window title is how it will appear in the docker list in Krita. canvasChanged always needs to be present, but you don't have to do anything with it, so hence just 'pass'. For the addDockWidgetFactory... "myDocker" Replace this with an unique ID for your docker that Krita uses to keep track of it. DockWidgetFactoryBase.DockRight The location. These can be DockTornOff, DockTop, DockBottom, DockRight, DockLeft, or DockMinimized MyDocker Replace this with the class name of the docker you want to add. So, if we add our export document function we created in the extension section to this docker code, how do we allow the user to activate it? First, we'll need to do some Qt GUI coding: Let's add a button! -By default, Krita uses PyQt, but its documentation is pretty bad, mostly because the regular Qt documentation is really good, and you'll often find that the PyQT documentation of a class, say, `QWidget `_ is like a weird copy of the regular `Qt documentation `_ for that class. +By default, Krita uses PyQt, but its documentation is pretty bad, mostly because the regular Qt documentation is really good, and you'll often find that the PyQT documentation of a class, say, `QWidget `_ is like a weird copy of the regular `Qt documentation `_ for that class. Anyway, what we need to do first is that we need to create a QWidget, it's not very complicated, under setWindowTitle, add: .. code:: python mainWidget = QWidget(self) self.setWidget(mainWidget) Then, we create a button: .. code:: python buttonExportDocument = QPushButton("Export Document", mainWidget) -Now, to connect the button to our function, we'll need to look at the signals in the documentation. `QPushButton `_ has no unique signals of its own, but it does say it inherits 4 signals from `QAbstractButton `_, which means that we can use those too. In our case, we want clicked. +Now, to connect the button to our function, we'll need to look at the signals in the documentation. `QPushButton `_ has no unique signals of its own, but it does say it inherits 4 signals from `QAbstractButton `_, which means that we can use those too. In our case, we want clicked. .. code:: python buttonExportDocument.clicked.connect(self.exportDocument) If we now restart Krita, we'll have a new docker and in that docker there's a button. Clicking on the button will call up the export function. However, the button looks aligned a bit oddly. That's because our mainWidget has no layout. Let's quickly do that: .. code:: python mainWidget.setLayout(QVBoxLayout()) mainWidget.layout().addWidget(buttonExportDocument) -Qt has several `layouts `_, but the `QHBoxLayout and the QVBoxLayout `_ are the easiest to use, they just arrange widgets horizontally or vertically. +Qt has several `layouts `_, but the `QHBoxLayout and the QVBoxLayout `_ are the easiest to use, they just arrange widgets horizontally or vertically. Restart Krita and the button should now be laid out nicely. PyQt Signals and Slots ---------------------- We've already been using PyQt signals and slots already, but there are times where you want to create your own signals and slots. -`As pyQt's documentation is pretty difficult to understand `_, and the way how signals and slots are created is very different from C++ Qt, we're explaining it here: +`As pyQt's documentation is pretty difficult to understand `_, and the way how signals and slots are created is very different from C++ Qt, we're explaining it here: All python functions you make in PyQt can be understood as slots, meaning that they can be connected to signals like Action.triggered or QPushButton.clicked. However, QCheckBox has a signal for toggled, which sends a boolean. How do we get our function to accept that boolean? First, make sure you have the right import for making custom slots: ``from PyQt5.QtCore import pyqtSlot`` -(If there's from ``PyQt5.QtCore import *`` already in the list of imports, then you won't have to do this, of course) +(If there's from ``PyQt5.QtCore import *`` already in the list of imports, then you won't have to do this, of course.) Then, you need to add a PyQt slot definition before your function: .. code:: python @pyqtSlot(bool) def myFunction(self, enabled): enabledString = "disabled" if (enabled == True): enabledString = "enabled" print("The checkbox is"+enabledString) Then, when you have created your checkbox, you can do something like myCheckbox.toggled.connect(self.myFunction) Similarly, to make your own PyQt signals, you do the following: .. code:: python # signal name is added to the member variables of the class signal_name = pyqtSignal(bool, name='signalName') def emitMySignal(self): # And this is how you trigger the signal to be emitted. self.signal_name.emit(True) -and use the right import: +And use the right import: ``from PyQt5.QtCore import pyqtSignal`` To emit or create slots for objects that aren't standard python objects, you only have to put their names between quotation marks. Conclusion ---------- Okay, so that covers all the Krita specific details for creating python plugins. It doesn't handle how to parse the pixel data, or best practices with documents, but if you have a little bit of experience with python you should be able to start creating your own plugins. As always, read the code carefully and read the API docs for python, Krita and Qt carefully to see what is possible, and you'll get pretty far. diff --git a/user_manual/selections.rst b/user_manual/selections.rst index e78d631f8..920143761 100644 --- a/user_manual/selections.rst +++ b/user_manual/selections.rst @@ -1,130 +1,130 @@ .. meta:: :description: How selections work in Krita. .. metadata-placeholder :authors: - Scott Petrovic - Wolthera van Hövell tot Westerflier - Hulmanen :license: GNU free documentation license 1.3 or later. .. index:: Selection .. _selections_basics: ========== Selections ========== Selections allow you to pick a specific area of your artwork to change. There are many selection tools available that select in different ways. Once an area is selected, most tools will stay inside that area. On that area you can draw or use gradients to quickly get colored and/or shaded shapes with hard edges. Creating Selections ------------------- The most common selection tools all exist at the bottom of the toolbox. Each tool selects things slightly differently. The links for each tool go into a more detailed description of how to use it. .. csv-table:: :ref:`rectangle_selection_tool` , |toolselectrect|, Select the shape of a square. :ref:`ellipse_selection_tool` , |toolselectellipse|, Select the shape of a circle. :ref:`polygonal_selection_tool` , |toolselectpolygon|, Click where you want each point of the Polygon to be. Double click to end your polygon and finalize your selection area. Use :kbd:`Shift + Z` to undo last point. :ref:`outline_selection_tool` , |toolselectoutline|, Outline/Lasso tool is used for a rough selection by drawing the outline. - :ref:`similar_selection_tool` , |toolselectsimilar|, Similar Color Selection Tool + :ref:`similar_selection_tool` , |toolselectsimilar|, Similar Color Selection Tool. :ref:`contiguous_selection_tool` , |toolselectcontiguous|, "Contiguous or “Magic Wand” selects a field of color. Adjust the :guilabel:`Fuzziness` to allow more changes in the field of color, by default limited to the current layer." :ref:`path_selection_tool` , |toolselectpath|, "Path select an area based on a vector path, click to get sharp corners or drag to get flowing lines and close the path with :kbd:`Enter` or connecting back to the first point." .. note:: You can also use the transform tools on your selection, a great way to try different proportions on parts of your image. Editing Selections ------------------ The tool options for each selection tool gives you the ability to modify your selection. +-------------+---------------+------------+ | Action | Modifier | Shortcut | +-------------+---------------+------------+ | Replace | Ctrl | R | +-------------+---------------+------------+ | Intersect | Shift + Alt | -- | +-------------+---------------+------------+ | Add | Shift | A | +-------------+---------------+------------+ | Subtract | Alt | S | +-------------+---------------+------------+ Removing Selections ------------------- If you want to delete the entire selection, the easiest way is to deselect everything. :menuselection:`Select --> Deselect`. Shortcut :kbd:`Ctrl + Shift + A`. Display Modes ------------- In the bottom left-hand corner of the status bar there is a button to toggle how the selection is displayed. The two display modes are the following: (Marching) Ants and Mask. The red color with Mask can be changed in the preferences. You can edit the color under :menuselection:`Settings --> Configure Krita --> Display --> Selection Overlay`. If there is no selection, this button will not do anything. .. image:: /images/en/Ants-displayMode.jpg Ants display mode (default) is best if you want to see the areas that are not selected. .. image:: /images/en/Mask-displayMode.jpg Mask display mode is good if you are interested in seeing the various transparency levels for your selection. For example, you can create a selection with a gradient. Global Selection Mask (Painting a Selection) -------------------------------------------- The global Selection Mask is your selection that appears on the layers docker. By default, this is hidden, so you will need to make it visible via :menuselection:`Select --> Show Global Selection Mask`. .. image:: /images/en/Global-selection-mask.jpg Once the global Selection Mask is shown, you will need to create a selection. The benefit of using this is that you can paint your selection using any of the normal painting tools. The information is saved as grayscale. You might want to switch to the Mask display mode if it is difficult to see the results. Selection from layer transparency --------------------------------- You can create a selection based on a layer's transparency by right-clicking on the layer in the layer docker and selecting :guilabel:`Select Opaque` from the context menu. Pixel and Vector Selection Types -------------------------------- Vector selections allow you to modify your selection with vector anchor tools. Pixel selections allow you to modify selections with pixel information. They both have their benefits and disadvantages. You can convert one type of selection to another. .. image:: /images/en/Vector-pixel-selections.jpg When creating a selection, you can select what type of selection you want from the Mode in the selection tool options: Pixel or Vector. Vector selections can modify as any other vector shape with the “Shape Handle” tool, if you try to paint on a vector selection it will be converted into a pixel selection. Pixel selections can be painted with any tool. You can also convert vector shapes to selection. In turn, vector selections can be made from vector shapes, and vector shapes can be converted to vector selections using the options in the :guilabel:`Selection` menu. Krita will add a new vector layer for this shape. One of the most common reasons to use vector selections is that they give you the ability to move and transform a selection. Moving the selection with a pixel selection will move the content on the layer. Moving the selection on a vector selection will only move the selection. You can also use the path editing tool to change the anchor points in the selection If you started with a pixel selection, you can still convert it to a vector selection to get these benefits. Go to :menuselection:`Select --> Convert to Vector Selection`. .. note:: If you have multiple levels of transparency when you convert a selection to vector, you will lose the gray values. Common Shortcuts while Using Selections --------------------------------------- - Copy -- :kbd:`Ctrl + C` or :kbd:`Ctrl + Ins` - Paste -- :kbd:`Ctrl + V` or :kbd:`Shift + Ins` - Cut -- :kbd:`Ctrl + X`, :kbd:`Shift + Del` - Copy From All Layers -- :kbd:`Ctrl + Shift + C` - Copy Selection to New Layer -- :kbd:`Ctrl + Alt + J` - Cut Selection to New Layer -- :kbd:`Ctrl + Shift + J` - Display or hide selection with :kbd:`Ctrl + H` diff --git a/user_manual/snapping.rst b/user_manual/snapping.rst index 00469d6a1..ec8b5ad52 100644 --- a/user_manual/snapping.rst +++ b/user_manual/snapping.rst @@ -1,101 +1,101 @@ .. meta:: :description: How to use the snapping functionality in Krita. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier :license: GNU free documentation license 1.3 or later. .. index:: Snap, Vector, Guides .. _snapping: ======== Snapping ======== In Krita 3.0, we now have functionality for Grids and Guides, but of course, this functionality is by itself not that interesting without snapping. Snapping is the ability to have Krita automatically align a selection or shape to the grids and guides, document center and document edges. For Vector layers, this goes even a step further, and we can let you snap to bounding boxes, intersections, extrapolated lines and more. All of these can be toggled using the snap pop-up menu which is assigned to :kbd:`Shift+S`. Now, let us go over what each option means: Grids This will snap the cursor to the current grid, as configured in the grid docker. This doesn’t need the grid to be visible. Grids are saved per document, making this useful for aligning your art work to grids, as is the case for game sprites and grid-based designs. Guides This allows you to snap to guides, which can be dragged out from the ruler. Guides do not need to be visible for this, and are saved per document. This is useful for comic panels and similar print-layouts, though we recommend Scribus for more intensive work. .. image:: /images/en/Snap-orthogonal.png Orthogonal (Vector Only) This allows you to snap to a horizontal or vertical line from existing vector objects’s nodes (Unless dealing with resizing the height or width only, in which case you can drag the cursor over the path). This is useful for aligning object horizontally or vertically, like with comic panels. .. image:: /images/en/Snap-node.png Node (Vector Only) This snaps a vector node or an object to the nodes of another path. .. image:: /images/en/Snap-extension.png Extension (Vector Only) When we draw an open path, the last nodes on either side can be mathematically extended. This option allows you to snap to that. The direction of the node depends on its side handles in path editing mode. .. image:: /images/en/Snap-intersection.png Intersection (Vector Only) This allows you to snap to an intersection of two vectors. Bounding box (Vector Only) This allows you to snap to the bounding box of a vector shape. Image bounds Allows you to snap to the vertical and horizontal borders of an image. Image center Allows you to snap to the horizontal and vertical center of an image. The snap works for the following tools: #. Straight line #. Rectangle #. Ellipse #. Polyline #. Path #. Freehand path #. Polygon #. Gradient #. Shape Handling tool #. The Text-tool #. Assistant editing tools #. The move tool (note that it snaps to the cursor position and not the bounding box of the layer, selection or whatever you are trying to move) #. The Transform tool #. Rectangle select #. Elliptical select #. Polygonal select #. Path select -#. Guides themselves can be snapped to grids and vectors. +#. Guides themselves can be snapped to grids and vectors Snapping doesn’t have a sensitivity yet, and by default is set to 10 screen pixels. diff --git a/user_manual/soft_proofing.rst b/user_manual/soft_proofing.rst index 1c192d9b8..c87baa948 100644 --- a/user_manual/soft_proofing.rst +++ b/user_manual/soft_proofing.rst @@ -1,80 +1,80 @@ .. meta:: :description: How to use softproofing in Krita. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Color, Softproofing .. _soft_proofing: ============= Soft Proofing ============= When we make an image in Krita, and print that out with a printer, the image tends to look different. The colors are darker, or less dark than expected, maybe the reds are more aggressive, maybe contrast is lost. For simple documents, this isn’t much of a problem, but for professional prints, this can be very sad, as it can change the look and feel of an image drastically. The reason this happens is simply because the printer uses a different color model (CMYK) and it has often access to a lower range of colors (called a gamut). A naive person would suggest the following solution: do your work within the CMYK color model! But there are three problems with that: * Painting in a CMYK space doesn’t guarantee that the colors will be the same on your printer. For each combination of Ink, Paper and Printing device, the resulting gamut of colors you can use is different. Which means that each of these could have a different profile associated with them. * Furthermore, even if you have the profile and are working in the exact color space that your printer can output, the CMYK color space is very irregular, meaning that the color maths isn’t as nice as in other spaces. Blending modes are different in CMYK as well. * Finally, working in that specific CMYK space means that the image is stuck to that space. If you are preparing your work for different a CMYK profile, due to the paper, printer or ink being different, you might have a bigger gamut with more bright colors that you would like to take advantage of. So ideally, you would do the image in RGB, and use all your favorite RGB tools, and let the computer do a conversion to a given CMYK space on the fly, just for preview. This is possible, and is what we call ''Soft Proofing''. .. figure:: /images/en/Softproofing_regularsoftproof.png :align: center :figwidth: 800 On the left, the original, on the right, a view where soft proofing is turned on. The difference is subtle due to the lack of really bright colors, but the soft proofed version is slightly less blueish in the whites of the flowers and slightly less saturated in the greens of the leaves. You can toggle soft proofing on any image using :kbd:`Ctrl + Y`. Unlike other programs, this is per-view, so that you can look at your image non-proofed and proofed, side by side. The settings are also per image, and saved into the .kra file. You can set the proofing options in :menuselection:`Image --> Image Properties --> Soft Proofing`. There you can set the following options: Profile, Depth, Space Of these, only the profile is really important. This will serve as the profile you are proofing to. In a professional print workflow, this profile should be determined by the printing house. Intent Set the proofing Intent. It uses the same intents as the intents mentioned in the :ref:`color managed workflow `. .. figure:: /images/en/Softproofing_adaptationstate.png :align: center :figwidth: 800 Left: Soft proofed image with Adaptation state slider set to max. Right: Soft proofed image with Adaptation State set to minimum Adaptation State A feature which allows you to set whether :guilabel:`Absolute Colorimetric` will make the white in the image screen-white during proofing (the slider set to max), or whether it will use the white point of the profile (the slider set to minimum). Often CMYK profiles have a different white as the screen, or amongst one another due to the paper color being different. Black Point Compensation Set the black point compensation. Turning this off will crunch the shadow values to the minimum the screen and the proofing profile can handle, while turning this on will scale the black to the screen-range, showing you the full range of grays in the image. Gamut Warning Set the color of the out-of-gamut warning. -You can set the defaults that Krita uses in :menuselection:`Settings --> Configure Krita --> Color Management` +You can set the defaults that Krita uses in :menuselection:`Settings --> Configure Krita --> Color Management`. To configure this properly, it's recommended to make a test image to print (and that is printed by a properly set-up printer) and compare against, and then approximate in the proofing options how the image looks compared to the real-life copy you have made. Out of Gamut Warning -------------------- The out of gamut warning, or gamut alarm, is an extra option on top of Soft-Proofing: It allows you to see which colors are being clipped, by replacing the resulting color with the set alarm color. This can be useful to determine where certain contrasts are being lost, and to allow you to change it slowly to a less contrasted image. .. figure:: /images/en/Softproofing_gamutwarnings.png :align: center :figwidth: 800 Left: View with original image, Right: View with soft proofing and gamut warnings turned on. Krita will save the gamut warning color alongside the proofing options into the Kra file, so pick a color that you think will stand out for your current image. You can activate Gamut Warnings with :kbd:`Ctrl + Shift + Y`, but it needs soft proofing activated to work fully. .. note:: Soft Proofing doesn’t work properly in floating-point spaces, and attempting to force it will cause incorrect gamut alarms. It is therefore disabled. .. warning:: Gamut Warnings sometimes give odd warnings for linear profiles in the shadows. This is a bug in LCMS, see `here `_ for more info. diff --git a/user_manual/templates.rst b/user_manual/templates.rst index a20195bf5..4d4117ce7 100644 --- a/user_manual/templates.rst +++ b/user_manual/templates.rst @@ -1,68 +1,68 @@ .. meta:: :description: How to use document templates in Krita. .. metadata-placeholder :authors: - Scott Petrovic - Wolthera van Hövell tot Westerflier - AndreyGolovkin :license: GNU free documentation license 1.3 or later. .. index:: ! Template .. _templates: ========= Templates ========= .. image:: /images/en/Krita_New_File_Template_A.png Templates are just .kra files which are saved in a special location so it can be pulled up by Krita quickly. This is like the :guilabel:`Open Existing Document and Untitled Document` but then with a nicer place in the UI. You can make your own template file from any .kra file, by using :guilabel:`create template from image` in the file menu. This will add your current document as a new template, including all its properties along with the layers and layer contents. We have the following defaults: Comic Templates ~~~~~~~~~~~~~~~ These templates are specifically designed for you to just get started with drawing comics. The comic template relies on a system of vectors and clones of those vector layers which automatically reflect any changes made to the vector layers. In between these two, you can draw your picture, and not fear them drawing over the panel. Use :guilabel:`Inherit Alpha` to clip the drawing by the panel. European Bande Desinée Template. This one is reminiscent of the system used by for example TinTin or Spirou et Fantasio. These panels focus on wide images, and horizontal cuts. US-style comics Template. This one is reminiscent of old DC and Marvel comics, such as Batman or Captain America. Nine images for quick story progression. Manga Template. This one is based on Japanese comics, and focuses on a thin vertical gutter and a thick horizontal gutter, ensuring that the reader finished the previous row before heading to the next. Waffle Iron Grid 12 little panels at your disposal. Design Templates ~~~~~~~~~~~~~~~~ These are templates for design and have various defaults with proper ppi at your disposal: * Cinema 16:10 * Cinema 2.93:1 * Presentation A3-landscape -* Presentation A4 portrait. +* Presentation A4 portrait * Screen 4:3 * Web Design DSLR templates ~~~~~~~~~~~~~~ These have some default size for photos * Canon 55D * Canon 5DMK3 * Nikon D3000 * Nikon D5000 * Nikon D7000 Texture Templates ~~~~~~~~~~~~~~~~~ These are for making 3D textures, and are between 1024, to 4092. diff --git a/user_manual/working_with_images.rst b/user_manual/working_with_images.rst index 51f7191d0..38d1ef04a 100644 --- a/user_manual/working_with_images.rst +++ b/user_manual/working_with_images.rst @@ -1,279 +1,279 @@ .. meta:: :description: Detailed steps on how images work in Krita .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Raghavendra Kamath - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Image, Document, Raster, Vector, Metadata .. _working_with_images: =================== Working with Images =================== Computers work with files and as a painting program, Krita works with images as the type of file it creates and manipulates. What do Images Contain? ----------------------- If you have a text document, it of course contains letters, strung in the right order, so the computer loads them as coherent sentences. Raster Data ~~~~~~~~~~~ This is the main data on the paint layers you make. So these are the strokes with the paint brush and look pixely up close. A multi-layer file will contain several of such layers, that get overlaid on top of each other so make the final image. A single layer file will usually only contain raster data. Vector Data ~~~~~~~~~~~ These are mathematical operations that tell the computer to draw pixels on a spot. This makes them much more scalable, because you just tell the operation to make the coordinates 4 times bigger to scale it up. Due to this vector data is much more editable, lighter, but at the same time it's also much more CPU intensive. Operation Data ~~~~~~~~~~~~~~ Stuff like the filter layers, that tells Krita to change the colors of a layer, but also transparency masks, group layer and transformation masks are saved to multi-layer files. Being able to load these depend on the software that initially made the file. So Krita can load and save groups, transparency masks and layer effects from PSD, but not load or save transform masks. Metadata -------- Metadata is information like the creation date, author, description and also information like DPI. Image size ---------- The image size is the dimension and resolution of the canvas. Image size has direct effect file size of the Krita document. The more pixels that need to be remembered and the higher the bit depth of the color, the heavier the resulting file will be. DPI/PPI ~~~~~~~ **DPI** stands for *Dots per Inch*, **PPI** stands for *Pixels per Inch*. In printing industry, suppose if your printer prints at 300 **DPI**. It means it is actually putting 300 dots of colors in an area equal to an Inch. This means the number of pixels your artwork has in a relative area of an inch. **DPI** is the concern of the printer, and artists while creating artwork should keep **PPI** in mind. According to the **PPI** you have set, the printers can decide how large your image should be on a piece of paper. Some standards: 72 PPI This is the default PPI of monitors as assumed by all programs. It is not fully correct, as most monitors these days have 125 PPI or even 300 PPI for the retina devices. None the less, when making an image for computer consumption, this is the default. 120 PPI This is often used as a standard for low-quality posters. 300 PPI This is the minimum you should use for quality prints. 600 PPI The quality used for line art for comics. Color depth ~~~~~~~~~~~ We went over color depth in the :ref:`Color Management page `. What you need to understand is that Krita has image color spaces, and layer color spaces, the latter which can save memory if used right. For example, having a line art layer in grayscale can half the memory costs. Image color space vs layer color space vs conversion. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Because there's a difference between image color space and layer color space, you can change only the image color space in :menuselection:`Image --> Properties` which will leave the layers alone. But if you want to change the color space of the file including all the layers you can do it by going to :menuselection:`Image --> Convert Image Color Space` this will convert all the layers color space as well. Author and Description ---------------------- .. image:: /images/en/document_information_screen.png Krita will automatically save who created the image into your image's metadata. Along with the other data such as time and date of creation and modification, Krita also shows editing time of a document in the document information dialog, useful for professional illustrators, speed-painters to keep track of the time they worked on artwork for billing purposes. It detects when you haven’t performed actions for a while, and has a precision of ±60 seconds. You can empty it in the document info dialog and of course by unzipping you .kra file and editing the metadata there. These things can be edited in :menuselection:`File --> Document Information`, and for the author's information :menuselection:`Settings --> Configure Krita --> Author Information`. Profiles can be switched under :menuselection:`Settings --> Active Author Profile`. Setting the canvas background color ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can set the canvas background color via :menuselection:`Image --> Image Background Color and Transparency`. This allows you to turn the background color non-transparent and to change the color. This is also useful for certain file formats which force a background color instead of transparency. PNG and JPG export use this color as the default color to fill in transparency if you do not want to export transparency. If you come in from a program like :program:`Paint Tool Sai`, then using this option, or using :guilabel:`Set Canvas Background Color` in the new file options, will allow you to work in a slightly more comfortable environment, where transparency isn't depicted with checkered boxes. Basic transforms ~~~~~~~~~~~~~~~~ There are some basic transforms available in the image menu. Shear Image This will allow you to skew the whole image and its layers. Rotate This will allow you to rotate the image and all its layers quickly. Mirror Horizontal/Vertical This will allow you to mirror the whole image with all its layers. But there are more options than that... Cropping and resizing the canvas -------------------------------- You can crop and image with the :ref:`crop_tool`, to cut away extra space and improve the composition. Trimming ~~~~~~~~ Using :menuselection:`Image --> Trim to Layer`, Krita resizes the image to the dimensions of the layer selected. Useful for when you paste a too large image into the layer and want to resize the canvas to the extent of this layer. :menuselection:`Image --> Trim to Selection` is a faster cousin to the crop tool. This helps us to resize the canvas to the dimension of any active selection. This is especially useful with right clicking the layer on the layer stack and choosing :guilabel:`Select Opaque`. :menuselection:`Image --> Trim to Selection` will then crop the canvas to the selection bounding box. :menuselection:`Image --> Trim to Image Size` is actually for layers, and will trim all layers to the size of the image, making your files lighter by getting rid of invisible data. Resizing the canvas ------------------- You can also resize the canvas via :menuselection:`Image --> Resize Canvas` (or :kbd:`Ctrl + Alt + C`). The dialog box is shown below. .. image:: /images/en/Resize_Canvas.png In this, constraint proportions will make sure the height and width stay in proportion to each other as you change them. Offset indicates where the new canvas space is added around the current image. You basically decide where the current image goes (if you press the left-button, it'll go to the center left, and the new canvas space will be added to the right of the image). Another way to resize the canvas according to the need while drawing is when you scroll away from the end of the canvas, you can see an arrow appear. Clicking this will extend the canvas in that direction. You can -see the arrow marked in red in the example below +see the arrow marked in red in the example below: .. image:: /images/en/Infinite-canvas.png :width: 700px Resizing the image ~~~~~~~~~~~~~~~~~~ :guilabel:`Scale Image to New Size` allows you to resize the whole image. Also, importantly, this is where you can change the resolution or *upres* your image. So for instance, if you were initially working at 72 PPI to block in large shapes and colors, images, etc... And now you want to really get in and do some detail work at 300 or 400 PPI this is where you would make the change. Like all other dialogs where a chain link appears, when the chain is linked the aspect ratio is maintained. To disconnect the chain, just click on the links and the two halves will separate. .. image:: /images/en/Scale_Image_to_New_Size.png Separating Images ~~~~~~~~~~~~~~~~~ .. image:: /images/en/Separate_Image.png This powerful image manipulation feature lets you separate an image into its different components or channels. This is useful for people working in print, or people manipulating game textures. There's no combine functionality, but what you can do, if using colored output, is to set two of the channels to the addition :ref:`blending_modes`. For grayscale images in the RGB space, you can use the copy red, copy green and copy blue blending modes, with using the red one for the red channel image, etc. Saving, Exporting and Opening Files ----------------------------------- When Krita creates or opens a file, it has a copy of the file in memory, that it edits. This is part of the way how computers work: They make a copy of their file in the RAM. Thus, when saving, Krita takes its copy and copies it over the existing file. There's a couple of tricks you can do with saving. Save Krita saves the current image in its memory to a defined place on the hard-drive. If the image hadn't been saved before, Krita will ask you where to save it. Save As Make a copy of your current file by saving it with a different name. Krita will switch to the newly made file as its active document. Open Open a saved file. Fairly straightforward. Export Save a file to a new location without actively opening it. Useful for when you are working on a layered file, but only need to save a flattened version of it to a certain location. Open Existing Document As Untitled Document This is a bit of an odd one, but it opens a file, and forgets where you saved it to, so that when pressing 'save' it asks you where to save it. This is also called 'import' in other programs. Create Copy from Current Image Makes a new copy of the current image. Similar to Open Existing Document As Untitled Document, but then with already opened files. Save Incremental Version Saves the current image as 'filename'\_XXX.kra and switches the current document to it. Save Incremental Backup Copies and renames the last saved version of your file to a back-up file and saves your document under the original name. .. note:: Since Krita's file format is compressed data file, in case of a corrupt or broken file you can open it with archive managers and extract the contents of the layers. This will help you to recover as much as possible data from the file. On Windows, you will need to rename it to filename.zip to open it.