Blender 2.78 Grease Pencil
Here are a few helpful hotkeys and pointeres to assist with Blender Grease Pencil 2D animation workflow.
- Draw = D+LMB
- Polyline Draw = CTL+D+LMB
- Toggle Strokes Edit Mode EDIT = D+TAB
- Pie Menu = D+E, D+W, D+Q - learn the variations
- Dissolve = CTL+X
- Sculpt (or whatever the strokes edit mode is) = E+LMB
- Subdivide = W
- Toggle Cyclic (close a shape) = CTL+SHIFT+J
- Move strokes to a new layer = M
- Tweak stroke thickness = ALT+S
Useful deformation tools
- Turn selected strokes into a circle (handy for eyes) - CTL+ALT+S
- Bend Shift-W - Bends selected item between the 3D cursor and the mouse.
- Mirror Ctrl-M - Mirrors selected strokes along one or more axises.
- Shear Shift-Ctrl-Alt-S - Shears selected items along the horizontal screen axis.
- When you are drawing, you can switch between brushes by pressing the number keys (not the numpad). The default does require you to hit escape and not actually be in drawing mode btw, so you have to press D to draw, then ESC, then a number, then D again.
- INK TRANSPARENCY - this one's huge. Generally it is in fashion to have ink lines that are not bold and black but are more muted colors. An easy way to achive this is by having outline opacity on your colors set to about 0.3 - however, if you set your brush sensitivity to .3, then your ink lines have that nice, muted look and you can move the ink lines to any color in your palette and the softness (transparency) of those ink lines is preserved regardless of the outline opacity settings in the color. In other words, brush transparency trumps color outline opacity.
- Two useful drawing tips - NUMPAD 1 = front view, CTL+NUMPAD 1 = rear view effectively flipping the canvas. Also SHIFT+CTL+Mousewheel rotates the view around the views Y axis
- Toggle between having translations center around the SELECTION vs the CURSOR = , and . keys
- O key (proportional editing) - learn the difference between CONNECTED vs PROJECTED 2D
- Select all of a given LAYER or COLOR = SHIFT+G (popup lets you choose layer or color)
- Interpolate a SINGLE new keyframe between two keyframes = CTL+ALT+E with your mouse over the 3D view
- Interpolate a SEQUENCE of new keyframes between two keyframes = SHIFT+CTL+E
- Insert a BLANK FRAME = Dkey+Bkey - lets you leave ADDITIVE DRAWING on all the time
- Generally for final renders set Render > OpenGL Render Options > CHECK Full Sample (eliminates jaggies)
- Someimtes it makes sense for color patches and outlines to be separate. Grab a shape, SHIFT+D (duplicate), then move the newely created points/stroke to a new color (presumably an outline-only one) - I set up CTL+M as my hot key because M moves between layers, so for me CTL+M to move between colors made sense
- For shadows you OFTEN want to clone some points (SHIFT+D), MOVE them to their own layer (Mkey), draw the 4th side of the shadow area, Select all the points in that layer, CTL+J to join them so they can all have the same material, then move the whole kaboodle back to the original layer (or not depending on your preference)
- A big part of keeping things minimally klunky has to do with having lines and points line up or connect exactly, so it's advisable to create hotkeys for SHIFT+S>snape CURSOR to SELECTED and SHIFT+S>snap SELECTED to CURSOR. This way you can quickly snap a point to an exact location. In practice, I have found custom hot keys for this a bit fiddly so I've gotten used to SHIFT+S>4 then SHIFT+S>2 - which selects the respective menu items just described
- The bizarre alpha channel halos associated with openGL rendering of images mapped to planes (I describe the issue HERE) is solved thusly : USER PREFS > SYSTEM > set openGL CLIP ALPHA to 0.5 instead of the default 0.04 - HUGE if you want to leverage work by creating characters in other apps and map to a plane in blnder's 3D view, then (of course) use the grease pencil to animate over it.
- Without getting into all the reasons why, blender's 3D working space is both a blessing and a curse with 2D. The upshot is that you WILL be having to "reproject strokes" a LOT. In fact, everytime you turn around you will discover your strokes look great in one view but when you switch tot eh camera, they are not where you thought they were. Trust me, it happens CONSTANTLY no matter how careful you are. I created two shortcuts - SHIFT+CTL+ALT+ - (minus sign) to move the cursor to the center, then SHOFT+CTL + - to reproject strokes planar. For me the center is home base, that's where I draw. If I want to move stuff in 3D space, fine. Parent the GP layers to an empty and move that, but for drawing it is way easier to just stay in the center. This rapid two keystroke shortcut puts my strokes back where I want them more or less instantly.
- When a character is either shrunk down or moved back in Z space (ie you're trying to render the character smaller or further away in the scene), blender outlines are rendered the same density and thickness all the time, so your "small" version will look clumpy, not properly scaled. The solution is to copy the color you're using for the outlines and make that color about 50% opacity. Then it looks about right rendered compared to the same character in a closeup. Frankly, if you are creating a library of key poses, creating two versions right up front would not be a bad idea...
- To see the grease pencil opengl view in a new 3d window = N > Shading Panel > MULTITEXTURE
- Regarding custom hotkeys, if you SAVE USER PREFS from within the hotkey editor (USER PREFERENCES > INPUT) the hotkeys get saved as part of your startup file but any drawing and whatnot in the 3D view is NOT folded into your startuip file. If you save user preferences from the standards 3D view window, any drawings etc. become part of your startup file. Significantly these don;t play well together. If you change a hot key, jump out of th ehotkey editor then save user prefs, the new hotkeys will NOT be saved with your startup file. LESSON : ALWAYS save user prefs from the hotkey editor if you want your new hotkeys to be in force next time you run Blender.
UPDATE - 07-27-2017 to address UV Mapping image sequences to a plane, OpenGL renders, and live 3D view updates
What you want is to drag an image (that's part of an image sequence) onto a plane and have the animated image sequence update in real time in the 3D viewport and also render (with the image sequence updating, obviously) when you do a (FAST) OpenGL render.
- Having Blender recognize the img seq AS a seq must be done in the UV editing window, CLICK N and it's under IMAGE>SOURCE
- Make sure you indicate the # of frames, use alpha, and autorefresh
- NOW if you hit ALT+A the image in the UV window will animate. Cool. But NOT in the 3D view. As far as I can tell, if you have a UV window open ON THE SAME SCREEN as the 3D view you're working in, the openGL RENDER will update correctly and process the imgseq. Also if you jump thru frames in the 3D view, it will also update in real time. BUT if you want it to ANIMATE live in the 3D view, you have to have your mouse over the UV Editor window when you press ALT+A
UPDATE - This is HUGE as it relates to data management of grease pencil objects
The great shortcoming of GP in my view is data management. For example, it seems absurd, but you can't actually mix grease pencil data blocks in the same scene - which is to say if you have a complex character consisting of many layers and a unique palette, you can't have a different, similarly complex character coexisting in the same scene. And for all practical purposes, you cannot build up a complex character in pieces, keeping each in their own GP datablock, for the simple reason that you can only view one GP datablock at a time.
One teensy weensy workaround is the fact that there CAN be a GP datablock that's linked to an OBJECT coexisting with a GP block linked to the SCENE. But it's a bit of a kludge that limits the realtime combining of multiple GP "objects" (datablocks) to two, which is, of course, a bit rediculous. After all, in practice, you probably want to construct complex objects and later merge or join them together.
Point is, you want to organize your work in logical groupings that can be creatively mixed and matched. On the face of it, GP does not really allow this.
Or does it...? Well, it turns out the following rules can be used creatively - just remember that when you are cutting and pasting GP strokes, you have to be in edit mode in both the source and destination and you should use COPY (CTL+C) not CUT (CTL+X) because if you but, Blender will report that there is no buffer to paste from..
- You CAN import (append) GP data from a completely separate blender file
- You CAN cut and paste strokes (including multiple layers) from one scene or GP data block to another
- Interestingly, pasted strokes RETAIN THEIR LINK TO THEIR PALETTE - which means if you adjust colors in the source block, it updates dynamically in the destination block
- The previous also applies to cutting and pasting between SCENES
- Here's where it gets VERY interesting. If you name your character's layers intelligently so there's no question those GP layers are associated with that character, and your destination scene or GP datablock is given layers with the same names, then when you cut and paste your strokes, they will be placed in the correctly named layers in the destination scene / GP datablock.
What does this all mean? It means you can create characters - or pieces of characters - in separate GP datablocks, scenes, or even blend files and combine them as needed. Yes, it's true that ideally you would click on a GP stroke and magically blender would show you all the layers associated with that character, right? Well, you can't have that, but you CAN keep all the layers associated with one character separate from other characters in the same scene as long as you use a sensible naming convention for your layers.
In practice, I would argue that for anything less than trivial scenes, naming conventions and data organizing ALWAYS becomes important, so you might as well get used to having to scroll through GP layers. Same with palette colors.
If any of this bothers you, then go try animating with OpenToonz. It's super cool in some ways, but again, once you get past the most trivial projects, the data management aspect gets unweildy pretty quick and blender's ability to simply parent GP layers to empties or armatures makes working with complex rigs or dealing with your 2D characters in a 3D space MUCH easier by comparison.
Also, if you want to avoid some of this complexity, remember you can always "bake" a complex character to a still image and just map it to a plane and that becomes part of your character's rig.
Unfortunately, as far as I can tell, if you have a complex character with layers parented to blender objects, such as empties, that linkage does NOT import. So even if you import (append) the blender objects first, they don;t seem to lock up when you import the GP datablock. So if you are going to reuse a complex rig, you wiull have to re-link the GP layers to blender objects one at a time after you import everything.
UPDATE : Wrong, wrong, wrong! Actually, if you have a GP datablock associated to an object, then importing (appending) that object from another blend file imports the associated GP data blocks as well. They are "part" of the imported object! And parented GP layers ARE correctly parented on import. That's a big boon for object reuse.
Just as importantly, you can import multiple objects in a single import. So if you have a complex character you can bring in the whole rig in one swoop. Just remember that while you can have a bunch of layers linked to various blender objects, all the grease pencil layers should be part of the same datablock or else you will only be able to see one piece of your character at a time. In fact, carrying this a bit further, if your GP datablock is associated with an object, then it will disappear whenever you click another object, so in practice the best procedure is to import your linked objects, one of which has GP data / layers connected to it, then immediately link the GP data block to the scene and delete it from the object.
Let me restate this because it is confusing :
- If you associate GP datablock with a SCENE, then the links between grease pencil layers and blender objects are only preserved if you append the whole SCENE into another blender project. THEREFORE
- If you want to simply import the GP datablocks and linked objects, the GP datablock in the source blend file MUST be associated with one of the OBJECTS you are importing. So in practice what you would do is :
- Create a complex character in blender as a global SCENE GP datablock
- Set up all your link relationships (ie parenting certian GP layers to empties or whatever)
- Happy? Now grab a blender object (preferably an empty that's the main controller for your entire rig)
- Over on your GP Layers click OBJECT - you are now looking at the GP data blcok assocaited with the empty you just selected (there probably isn't one)
- In the list of GP datablocks, go ahead and assocaite your main scene GP data bloack with the empty you just selected
- Save your blend file
- Later, you can import the whole articulated rig by doing this :
- Start blender
- SHIFT + F1 to append from file
- browse "into" your previous blend file and select all the objects that comprise your rig
- once they import, immediately u=UN-associate your GP datablock with your main empty and instead assocaite that GP datablock with your SCENE
- Now you'll see your GP layers no matter what object you click on and all the linking/parenting relationships are preserved
COLOR and SHADOWS
- DO your blender scene in either outlines or colored shapes - if you are using colors, add shadows now, if not wait until step 3 -> export img seq
- do fill coloring on a separate layer in krita so that you only have to fil where frames have changed - if you do it in blender you have to fill every frame - not the end of the world but the krita method also ensures tighter fills if it's on a separate layer and you expand and feather the flood fill by one pixel
- bring the imgseq into blender as a bkgd img seq and - add interior shadows with GP - animate as needed on keys --> export img seq
- bring the img seq into blender uv paint as a sequence. Use a marker paintbrush in multiply mode with strength of 0.1. Use curves mode because that way you can create a curve and repeat the application on successive frames. By using multiply mode, it ONLY adds shadows in colored areas, ignoring the alpha channel area (if you try to do this in Krita it will color into the alpha area)
- IMPORTANT! The curves in blender for curve based drawing (at least on my machine) DO NOT SHOW unless you first jump into VIEW mode then BACK to PAINT mode. Dumb but true...
How to Connect with Blended Planet Pictures :
For the icon-challenged :
In a hurry to reach me?
Just call 260-489-4212 - you will get my voicemail, but leave a quick message and I will get back with you promptly. - Dave