AFIS Workflow Guide¶
Note
This guide covers The Violence Tool v2.0 for Blender 5.1.2 and 5.2 LTS. If you’re using Blender 4.1.1, see the “Stable” documentation version instead.
Before beginning, download and open the practice files to follow along:
Practice File (v2.0): [5.1.2]NEW_SCRIPT.blend pinned in the #GreasePencil channel on Discord. Expected size: ~6 MB | Format: .blend
also:
CLEAN_512_11_REX.py: A keymap file for starting out. See Keyboard Shortcuts Reference for details.
Once opened, verify your setup:
Select the Grease Pencil object in the Outliner
Press
Nto open the SidebarLook for the “Fred” tab (note: FRED panel is not yet implemented in v2.0; use keybinds instead)*
If you see layer buttons, the tool is active. For verification, press F3 and search for gpencil.draw_mode — if it appears, the addon is installed correctly.
Warning
Because the panel isn’t implemented yet, check if the script is working by pressing Shift-1. This should highlight several lines on-screen.
—
Prerequisites: Gap Settings & Visual Aids¶
Before drawing, configure two critical fill settings to avoid frustration:
Gap Closure¶
Select the Bucket Fill tool
In the Tool Settings panel (left side), expand Advanced
Find Gap Closure (default: 0)
Set to 5 or higher for automatic gap bridging
Higher values bridge larger gaps but may “leak” into adjacent areas. Ensure that refer is set to Layer Above and is a line layer. The way Fred has it set up, Lines always are above Fills. *It is possible to create multiple fills in a single space.
Visual Aids¶
In the same Advanced section
Enable Visual Aids
This shows extension lines when clicking to fill, helping you close shapes
If Visual Aids feel too aggressive, disable them and rely on the gap closure slider instead.
Cross over existing strokes by 2-3 pixels while drawing. This creates a physical overlap that guarantees fills work without relying on gap closure.
Fred’s Tip
Make sure you’re always on Dope Sheet, not the Timeline.
—
Core Drawing Workflow¶
The v2.0 workflow is built around keyboard-driven layer switching. Instead of clicking buttons, you use key combinations to instantly jump between line and fill layers.
Basic Principle¶
Shift+[0-9]: Switch to line layer (e.g.,
Shift+1= Layer 1 Lines)Shift+Alt+[0-9]: Switch to fill layer (opens material picker)
Ctrl+1-4: Special face/head layers (Mouth, Mask, Teeth)
Warning
If keybinds don’t work after restarting Blender, you likely need to re-import the keymap:
Edit → Preferences → Keymap
Delete existing Violence Tool keymap entries
Click Import, select Rex’s (or Fred’s, or your own) keybinds file
Save Preferences (bottom left)
—
Drawing Techniques¶
Stroke Overlap (Critical for Fills)¶
When drawing closed shapes (eyes, body parts, etc.):
Start your stroke slightly before the intended endpoint
Continue past the starting point by 2-3 pixels
Release
This creates a guaranteed overlap. Even if lines look disconnected at first glance, the fill tool will recognize them as closed.
Automerge Toggle (Hold-to-Activate)¶
The A key toggles Auto-Merge, which snaps new strokes to existing ones at contact points.
Press and hold
Abefore starting your strokeDraw your shape (vertices will snap on contact)
Release
Aonly after lifting your pen/stylus
Warning
Toggle Hang Warning: If you release A while still drawing, Blender may not register the release event, leaving you stuck in Auto-Merge mode.
Fix: Lift your pen, then tap A once to reset the toggle state.
Fill Workflow¶
Standard Fill (Closed Shapes)¶
Switch to fill layer:
Shift+Alt+[layer number]Bucket fill the enclosed area
If fill leaks: Increase Gap Closure or redraw with better overlaps
Fill Zoom Bug Workaround¶
Blender 5.2 has a known bug where fill detection varies by zoom level. If fills fail at certain zooms:
Zoom out to approximately 50-75% viewport size
Retry the fill
This is a screen-space detection issue; a fix is expected in future Blender updates
Special Workflows¶
Pupils & Small Elements¶
Instead of creating separate Line/Fill layers for pupils:
Switch to the Eye Line Layer:
Shift+3(Layer 3)Press
4to open the Material MenuSelect Black Fill Material (Slot 2)
Draw the pupil as a single circle
Result: One stroke with both stroke and fill data, movable as a single unit.
With this technique, the pupil moves instantly with a single selection.
Mouth Construction (Complex Anatomy)¶
The mouth uses a four-layer system for editability during lip-sync:
Ctrl+1: Mouth Lines (outer muzzle outline)
Ctrl+2: Mouth Mask (invisible 0-alpha layer)
Ctrl+3: Upper Teeth
Ctrl+4: Lower Teeth + Tongue + Throat
Step-by-Step Mouth Build:
Draw the muzzle outline: - Press
Ctrl+1(Mouth Lines) - Select muzzle material via4key (or whichever colour suits this part of the face) - Draw the top half of the muzzle a. Draw the lower jaw: - HoldB(Draw Behind) before drawing if jaw overlaps other facial elements b. Draw the nose. - You can use the same method as for the pupil for the black nose-shape.Create the mask: - Draw a temporary closing line at the throat opening on Ctrl+1/Line layer - just a regular black line is fine - Press
Ctrl+2(Mouth Mask) - Tap to fill the enclosed area (mask is invisible but functional) - Return toCtrl+1, erase the temporary line withEDraw the teeth: - Press
Ctrl+3(Upper Teeth) - Draw teeth (they only appear through the mask) - PressCtrl+4(Lower Teeth) - Draw lower teethAdd tongue/throat (optional): - On
Ctrl+4, press4to change material - Select Throat Material - HoldBto draw behind the teeth - Draw a large oval representing the throat cavity
Note
Why separate layers?: During animation, the upper jaw rarely moves (it’s part of the skull). The lower jaw moves significantly. Separating these allows animators to move just the lower jaw without redrawing the upper teeth every frame.
Fred’s Tip
You don’t have to do all of these steps if the muzzle doesn’t go outside the frame of the face. Then you just need outlines. This longer process is to hide the face contour lines. Experiment!
Sculpt Mode (Butter-Knifing)¶
“Sculpting” or “butter-knifing” refers to nudging existing strokes with the Grab brush to refine shapes without redrawing.
Temporary Sculpt: Hold
Altwhile hovering over a strokeFull Sculpt Mode: Press
Sto enter Sculpt ModeSelection Mode Toggle: Press
Ctrl+Shift+Rto switch between “Selected Only” and “All Visible”
Fred’s Tip
Hold ``Alt`` - if you see gray “edit lines” appearing — this indicates Selected Only mode. Press ``Ctrl+Shift+R`` to remove them (affects all strokes).
Join & Smooth (Post-Drawing Cleanup)¶
If strokes are close but not connected:
Enter Edit Mode:
TabSelect the two endpoints you want to join
Press
Alt+F(Fred’s operator: joins AND smooths simultaneously)Alternatively, use native Blender:
M→ By Distance
Warning
Alt+F (Join & Smooth) is different from C (Trim Tool). Join connects endpoints; Trim cuts strokes at intersections.
—
Layer Management¶
Organizational Philosophy¶
The Violence Tool uses a multi-layer format where each anatomical feature has dedicated Line and Fill layers:
01L/01F: Body Lines / Body Fills
02L/02F: Head Lines / Head Fills
03L/03F: Eyes Lines / Eyes Fills(etc. - further layers sometimes depends on the character.)
Dan’s Tip
Blender groups material ownership by character (in essence) - if there’s more than one character, don’t worry - when you select them and start drawing, these values update and show you the right materials for that character. Setting this up is something Fred’s done for us in these scenes (and will be documented seperately).
Why so many layers?
The short answer is close to traditional reasons - for animation ‘holds’:
Fred’s Tip
“If he’s standing still and it’s just his arm that’s moving, you can adjust the arm and leave the body and the head and everything else alone (if those are on another layer). If a character turns a little bit and the wrinkles change on their shirt, you can interpolate that and tween it and it saves so much time. If all the arms and hands and heads and everything are all on one layer, you won’t be able to do that. It’ll get messy really quick.”
(That said,) If the character is doing a blackflip or something, then I might draw everything on one layer, since it’s all moving every frame.
Why separate Line and Fill?
- Material independence: Line and fill materials are separate slots.
Changing the fill color in a material slot updates every frame using that slot instantly — no re-filling required.
Fred’s Tip
“If I wanted to make Peppy here, if I wanted to make him blue, all I’ve got to do is go to his main fur color here and change it. [Plays animation back] […] now he’s blue on every single frame.”
Layer Ordering (“Z-Depth”)¶
Layers are rendered in Outliner order. To change drawing order:
Page Up / Page Down: Move layer up or down
Warning
Bug Warning: Page Down is broken currently. This has been flagged (and recognized) to the Blender devs.
Alternatively:
Select the layer in the Outliner
Right-click → Move to Top/Bottom
Or use the arrow buttons in the layer properties
Important
Always keep Fill layers UNDER their corresponding Line layers (e.g., 01F below 01L). Otherwise, fills may obscure line art. (or not fill properly with taps)
Fade Inactive Layers¶
Dimming non-active layers helps focus on the current element. Requires Solid View:
IMAGE HERE
Rex’s Binding:
Ctrl+FFred’s Personal Binding:
W
This also automatically enables Overlays (show_overlays = True) if they were disabled.
—
Animation Preparation¶
Keyframes¶
The Violence Tool does not create keyframes — use Blender’s standard workflow:
Select your Grease Pencil object
In the Dope Sheet (set to Grease Pencil mode)
Position cursor over the timeline area
Press
I→ Select Duplicate Active Keyframe
This copies all unlocked layers to the next frame. Lock layers you don’t want to carry forward before duplicating.
Multi-Frame Editing¶
Edit strokes across multiple frames simultaneously:
In the Timeline, Shift-click multiple frames to select them
Enter Edit Mode
Select a stroke — it now selects across all frames in the range
Move, scale, or delete — changes apply to all selected frames
Stroke Simplification (Adaptive Reduction)¶
Reduce vertex count for cleaner files:
Select all strokes (
A)Press Ctrl+A or Search “Adaptive” or “Simplify Stroke”
Set threshold: Start with 0.001 - Higher = more reduction (fewer vertices, more angular) - Lower = preserve detail
Press Enter
You can optionallly switch to another mode after selecting.
Warning
Destructive Operation: Once you save or clear undo history, simplified strokes cannot be restored. Use Ctrl+Z immediately if dissatisfied.
—
Common Issues & Solutions¶
- Key Doesn’t Work After Restart
Re-select the keymap and Save Preferences. See Installation & Setup for steps.
- Toggle Hang (A, B, or E keys stuck)
Tap the affected key once while in Draw Mode.
- Fill Won’t Close (Gaps persist)
Increase Gap Closure to 5-10, or redraw with better overlaps.
- Timer Not Auto-Switching Brush Mode
Open the Text Editor, load
FRED LAYER MANAGER.py, and click Play. The persistent timer should now work.- Alt+~ Doesn’t Center Timeline (Ubuntu Studio)
Ubuntu’s desktop environment hijacks Alt+~. Remap to
Homeor brackets in System Settings → Keyboard.- Pen Pressure Not Working
Restart Blender. This is often a tablet driver issue.
There’s even more troubleshooting, and more elaborate explanations of these issues here: Troubleshooting & Known Issues
—
Usage Next Steps¶
With these fundamentals mastered, you can:
Practice with provided scene files to build muscle memory
Experiment with your own character designs using the same layer format
Share in the Discord Grease Pencil channel for feedback and troubleshooting
For keyboard shortcuts reference, see Keyboard Shortcuts Reference. For installation help, see Installation & Setup. For unresolved issues, check Troubleshooting & Known Issues.