| Latest version | 1.3.1 |
|---|---|
| Minimum Core | 14 |
| Compatible Core | 14 |
| Last updated | 3 months ago |
| Created | 4 months ago |
| Authors |
|
| Languages |
|
| Systems | All systems |
| Project source | Project URL |
Live Actors listens to your microphone and animates the speaking player in real time. It can animate three places at once, each on its own:
Everything runs peer-to-peer over Foundry's socket — no database writes, no server round-trip.
Allow microphone access when the browser asks — required even if you don't run audio through Foundry. Without it nothing animates.
On Discord (or any external voice) but running Foundry Audio/Video? Turn on Echo Guard in Module Settings → Live Actors (GM, whole table). Mutes everyone's Foundry mic so no one is heard twice. Animation still runs — Live Actors captures the mic itself. GM gets a one-click prompt when Foundry's A/V audio is live.
Lip-sync needs viseme images and a lip-sync mode:
MyToken-sheet.webp or -closed/-AH/-EE/-OO), same folder.No viseme images + a lip-sync mode = falls back to bounce or static. Simple and None never need viseme art.
Same floating portrait, two image sources:
-avatar file (full-body or alternate portrait). One image, so no lip-sync — follows None/Simple bounce only. Chars without an -avatar file fall back to visemes/token art.Each place has the same five modes. Pick a mode per place; they are independent.
| Mode | What it does | Needs viseme images? |
|---|---|---|
| None | No animation. | No |
| Simple | Bounce, wobble, stretch. | No |
| Lip-Sync | Voice maps to mouth shapes, swaps the image live. | Yes |
| Hybrid | Lip-sync where viseme images exist, bounce otherwise. | Optional |
| Both | Visemes and bounce together. | Yes |
The effective mode is decided per token: no viseme images in a Lip-Sync/Hybrid/Both setting just falls back to bounce or static.
Set independently per place. You can have the avatar fully animate while the token only flashes a ring.
Each place has its own config menu and its own bounce preset. Tune them separately.
| Token | Video | Avatar (Talking Head) |
|---|---|---|
The token on the canvas. - Mode — None / Simple / Lip-Sync / Hybrid / Both. - Indicator — Ring / Bubble (see below). - Bounce Preset — ready-made simple-animation feel. - Luminance Mask — clips the token to a shape (-mask). Config: Token Animation Config. |
The A/V camera tile, only while the camera feed is off. - Mode — None / Simple / Lip-Sync / Hybrid / Both. - Bounce Preset — separate from the token's. - Clean Mode — hide Foundry's A/V chrome: name, status, controls, volume, border (each toggle, per client). Config: Video Window Config. Needs A/V enabled. | A floating portrait on screen, placed by the GM. - Mode — None / Simple / Lip-Sync / Hybrid / Both. - Always Visible — stay up vs. fade in only while talking. - Size, Keep Aspect Ratio, Show Name / size. - Mirror (per player) — face inward. - Portrait Mask, Cartoon Outline + speaking glow. - Prefer Avatar Image — use a -avatar file instead of visemes/token art. Chars without avatar fallback to visemes or just token images if they don't have any. Config: Talking Heads Config. GM drags each head; positions save per scene. |
The GM owns all world-level animation settings, so everyone animates the same. Only Mic Sensitivity and Disable Live Actors are per-client.
GM through NPCs: select any on-canvas token not owned by a player — it becomes the GM's talking head / video token. One at a time.
Watch any cartoon character talk and you'll notice the mouth never draws every letter — it snaps between a handful of poses. Those poses are visemes (visual phonemes): the few mouth shapes that cover all the sounds of speech. Animators have used this trick for decades, because many sounds look identical on the lips — p, b and m are the same closed mouth — so a whole sentence collapses into just a few drawings, swapped in time with the voice. Your brain fills in the rest.
Live Actors does this automatically. In Lip-Sync / Hybrid / Both it listens to your mic and picks the matching shape, frame by frame, while you talk. You supply four drawings; it plays them like a flipbook:
| Shape | Sounds | Example |
|---|---|---|
| Closed | M, B, P, silence | hm, bump |
| OO | OO, W, U | you, moon |
| AH | A, O open | father, hot |
| EE | E, I, EE | see, green |
It's approximate, not a phoneme-perfect transcription — the goal is a believable moving mouth, not subtitles.
This is the key rule: the suffixed files must match the filename of the token image (the image set as the token's art), because the module finds them by looking next to that file. The actor's portrait in the sheet can be any image you like — it's not used for discovery.
So if your token art is _Katrinatoken.webp , every extra file is _Katrinatoken-.webp, in the same folder.
Two ways to supply the four shapes. Choose just one per character, but you can use them together in the same game without issues:
A — Flipbook: one image, a 2×2 grid, -sheet suffix.
Position of the images matters:
┌──────────┬──────────┐
│ CLOSED │ AH │ ← top row
├──────────┼──────────┤
│ EE │ OO │ ← bottom row
└──────────┴──────────┘
Goblin_token.webp ← token art (the discovery name)
Goblin_token-sheet.webp ← 2×2 flipbook ← add this
B — Individual files: four separate images — one for each viseme.
Suffixes: -AH, -EE, -OO, -CLOSED
Katrina_token.webp ← token art (untouched)
Katrina_token-closed.webp ← resting mouth (closed)
Katrina_token-AH.webp ← open A / O
Katrina_token-EE.webp ← E / I / EE
Katrina_token-OO.webp ← OO / W / U
Optional
-mask(Katrina_token-mask.webp) — a greyscale image; white = visible, black = transparent, grey = partial. Clips the token to any shape. One single mask per token (not a sheet of masks); it's applied after a frame is sliced from the sheet.Optional
-avatar(Katrina_token-avatar.webp) — a single full-body / alternate portrait for Talking Heads. Same naming rule: matches the token filename. It's one image, so it can't lip-sync (follows None/Simple). Used when Prefer Avatar Image is on.
Four mouth images at the same size, aligned by the eyes and top of the head. If you export as separate images from your preferred application it will be easy to keep them aligned. Software like Character Animator and Unreal Metahuman can give you awesome results using 3D. Or just go crazy and do Robot Chicken / South Park mouths — it's a lot of fun!
Build the base portrait first, then feed it back as the input image for the sheet. This two-step flow is what keeps the frames registered: the model edits one fixed face instead of inventing four from scratch, so the eyes, head, and lens don't drift between cells. Examples:
Portrait of [subject, pose, and style] for a tabletop rpg. Square image. Fully transparent background (alpha channel, PNG) — no background fill, no shadow on the background. No token frame. No text.
From this image, create 4 mouth visemes as a 2×2 sprite sheet on a fully transparent background (alpha PNG): Closed (top-left), AH (top-right), EE (bottom-left), OO (bottom-right). These frames are swapped rapidly in a replacement animation, so they must register pixel-perfectly: keep head size and position, top-of-head line, eye line, nose, camera lens, POV, framing, and lighting IDENTICAL in all four quadrants. Each quadrant exactly equal size, subject centered identically in each cell. Animate only the mouth and chin; eyes near-still (very subtle motion only). No background fill, no shadow on background, no text, no borders, no grid lines.
If frames still jitter, drop the 2×2 sheet and generate each viseme as a separate edit of the same base portrait (
-closed,-AH,-EE,-OO), changing only the mouth each time. Editing one fixed image locks the geometry far harder than any one-shot grid. The module reads either layout.
After the first character you can keep producing images easily:
do the same spritesheet, transparent background, same registration, for a Dwarven Fighter with a warhammer
Fast matching results. Try it!
-mask file (Katrina_token-mask.webp).assets/masks/ (grunge-1, grunge-2).Module Settings → Live Actors (top-level), in panel order:
| Setting | What it does |
|---|---|
| Token Animation Config | Token mode, indicator, bounce preset, mask. |
| Talking Heads Config | Avatar visibility, size, mask, mirror, outline, avatar image, mode, bounce preset. |
| Video Window Config | Video tile mode, clean mode, bounce preset. |
| Echo Guard (External Voice Mode) | On Discord/another app while running Foundry Audio/Video? Mutes everyone's Foundry mic so no one is heard twice. GM-controlled, table-wide. Animation keeps working. |
| Mic Sensitivity | Raise for quiet mics, lower to cut background noise. |
| Speaker Widget | GM toolbar button to speak through NPC tokens. Overrides the current token selection. |
| Pause During Encounters | Auto-disable while a combat encounter is active on the scene. |
| Disable Live Actors | Kills all mic/animation on this client. Per user setting. |
Each config menu has a Bounce Preset dropdown — pick a ready-made simple-animation feel. Presets are tuned per place (token / head / video tile).
To install this package, open your Foundry Setup screen and navigate to your Module tab and click the Install Module button.
From there, you can either search for the package unique name: live-actors or copy its manifest URL:
And paste it to the input box at the bottom of your window.

You can install this package directly to your Forge account.