Automate Lip Sync in Blender (2D & 3D) with LipKit
Lip syncing animated characters by hand is tedious. You listen to a few milliseconds of audio, pause, insert a keyframe for the mouth shape, move forward, repeat. For a 30-second dialogue, that’s hundreds of clicks.
LipKit solves this. It’s a Blender add‑on that analyzes your audio and automatically generates lip sync keyframes – for both 2D (Grease Pencil) and 3D (shape keys) characters.
Under the hood, it uses the powerful Rhubarb phoneme engine. You don’t need to install anything extra.
Why LipKit?
- Use audio from the Video Sequence Editor or external WAV files
- Works with multiple characters in the same scene
- Generates a controller object for easy tweaking (shape key values or Grease Pencil layer opacity)
- Fully mappable – link any phoneme to any mouth shape
- Clean, non‑destructive workflow: one click to remove all generated keyframes
How It Works (The 30‑Second Version)
- Activate the add‑on – you’ll see a LipKit tab in the 3D Viewport N‑panel.
- Select your audio (WAV file or a strip in the VSE).
- Click Analyze – LipKit runs Rhubarb to detect phonemes.
- Choose your target:
- 3D – map your shape keys (A, B, C, D, E, F, G, H, X)
- 2D – each mouth shape on a separate Grease Pencil layer
- Click Create Controller, then Generate Lip Sync.
That’s it. Your character starts talking.
Mapping Phonemes to Mouth Shapes
Rhubarb uses 9 standard visemes (mouth positions). You don’t have to use all of them, but the more you map, the better the result.
| Viseme | Typical sounds | Mouth shape |
|---|---|---|
| A | (rest / closed) | Neutral / closed |
| B | "P", "B", "M" | Closed lips |
| C | "F", "V" | Lower lip to upper teeth |
| D | "TH", "DH" | Tongue between teeth |
| E | "EH", "AE" | Open, wide mouth |
| F | "AH", "AA", "AW" | Open, jaw dropped |
| G | "AO", "OW", "OY" | Round, open mouth |
| H | "W", "UW", "ER" | Pursed lips |
| X | (rest / pause) | Any neutral shape |
In LipKit’s interface, you simply select the target shape key or Grease Pencil layer for each of these nine sounds.
Example: 3D Character Setup
Let’s say you have Suzanne with 8 shape keys named mouth_A, mouth_B, … mouth_H.
You open the LipKit panel, go to Select Target for Each Sound, and assign:
-
mouth_A→ Phoneme A -
mouth_B→ Phoneme B - … and so on.
LipKit then generates keyframes on the controller object. You can later adjust the weight of any shape key if a pose looks too extreme.
Example: 2D Grease Pencil Character
For a 2D cutout style, create a Grease Pencil object with layers: viseme_A, viseme_B, … viseme_H.
Map each layer to the corresponding phoneme. During generation, LipKit animates the opacity of those layers (1.0 = visible, 0.0 = hidden).
Multi‑Character Workflow
Need two characters talking to each other?
Create a separate controller for each character. Assign different audio sources (or the same audio, split by timing). Generate each independently. LipKit keeps everything organized – no keyframe clash.
Removing or Tweaking Lip Sync
- Clear Controller – removes all LipKit‑generated keyframes from the selected controller.
- Manual tweaking – the controller object’s keyframes are regular Blender keyframes. You can move, scale, or edit them directly in the Dope Sheet.
The interpolation is set to Linear by default, but you can change it to Bezier or Constant after generation.
Try LipKit
You can get LipKit on Gumroad:
Top comments (0)