Learning Goals 3 min
By the end of this Build lesson you will have:
- A complete 60-second animated short driven by your storyboard from SCR-L04-29 — 6 beats × 10 seconds, advanced by a chain of broadcasts (beat-1 through beat-6).
- 3 backdrops, 4–5 cutout-style sprites (from L04-25), with lip-sync costume swaps (L04-26), camera pans where the storyboard calls for them (L04-27), and ambient + specific sound layers (L04-28) — all wired together.
- A finished credits scroll on beat 6 and a project saved with the format
L4-30-MyShort-<title>.sb3, ready to share on scratch.mit.edu.
Warm-Up — what cluster E gave you 7 min
You've spent five lessons on animation. Today you stop building new animation tricks and start assembling. Before opening Scratch, line up what you already own:
- L04-25 — Cutout Animation Style: sprites built from flat shapes layered in the Costume editor, with separate costumes for body, arms, head turn.
- L04-26 — Lip-Sync with Costumes: 3–4 mouth-shape costumes (closed, half-open, wide-open) cycled with next costume + wait (0.1) seconds while dialogue plays.
- L04-27 — Camera Pans with Backdrops: wide painted backdrops that scroll horizontally by changing every sprite's x by the same amount, simulating a camera move.
- L04-28 — Sound Effects Library: ambient beds looped on the Stage, specific sounds (footsteps, doors, claps) fired with start sound, dialogue beats timed with play sound until done.
- L04-29 — Storyboarding Tools: the 6-panel plan you brought to class today. Three backdrops, 4–5 sprites, sounds and broadcasts mapped per beat.
Predict puzzle. Look at this beat-advancer fragment on a sprite. What happens when beat 3 finishes?
when I receive (beat-3 v)
switch costume to (talking-1 v)
play sound (Line 3 v) until done
wait (1) seconds
broadcast (beat-4 v)
Reveal the answer
The sprite switches to a talking costume, plays its dialogue line and waits for it to finish (because of play sound (Line 3 v) until done), pauses one more second so the audience has a beat to absorb it, then broadcasts beat-4. Every other sprite (and the Stage) listening for beat-4 springs into action — backdrop swap, camera pan, sound layer change, new dialogue line, whatever the storyboard says.
This is the heart of today's build: one sprite is the "conductor" of each beat — usually whoever's talking — and broadcasts the next beat when its work is done. Every other sprite waits its turn.
New Concept — the beat-chain pattern 15 min
A 60-second animated short is too long for one big script. If you put it all on the cat as a single when ⚑ clicked with 60 seconds of waits and says, you can't debug, can't reorder, and can't change anything without touching every line. Instead, we use the beat-chain pattern.
The beat-chain in three sentences
- Flag-click broadcasts beat-1.
- Every sprite and the Stage has a when I receive (beat-N v) handler for each beat — they all spring into action simultaneously when that beat fires.
- One nominated sprite per beat broadcasts beat-(N+1) at the end of its work, advancing the story.
That's it. Six broadcasts run a 60-second short.
The conductor pattern
For each beat, pick one sprite as the conductor — usually whoever has the longest dialogue or the key action. The conductor fires the next beat when done. All other sprites finish their work earlier and just wait.
when I receive (beat-2 v)
switch costume to (waving v)
say [Eh, abang!] for (2) seconds
glide (5) secs to x: (-30) y: (0)
broadcast (beat-3 v)
How the Stage participates
The Stage gets its own when I receive (beat-N v) handlers — typically for backdrop swaps and ambient sound changes.
when I receive (beat-6 v)
switch backdrop to (night-sky-credits v)
stop all sounds
start sound (Gentle Piano v)
Cutout sprites + costume swaps + lip-sync — quick recap
From L04-25 and L04-26: each sprite has a base costume (mouth closed) and 2–3 talking costumes (mouth half-open, mouth wide). Lip-sync is a small loop that swaps costumes every 0.1 seconds while dialogue is playing.
when I receive (beat-3 v)
start sound (Line 3 v)
repeat (20)
next costume
wait (0.1) seconds
end
switch costume to (mouth-closed v)
broadcast (beat-4 v)
Camera pans inside a beat
From L04-27: a pan means every visible sprite changes x by the same amount in unison. The cleanest way is to give every sprite a when I receive (pan-left v) that runs a change x by (-5) in a small loop.
Where credits live
Make a dedicated Credits sprite. Its costume is a tall rectangle (taller than the Stage) with credit text painted top-to-bottom. It hides on flag-click, shows on beat 6, starts at y: −400 (offscreen below), and glides upward over 10 seconds to y: 400 (offscreen above) so the text scrolls past the visible Stage.
Worked Build — the teh tarik mamak short in twelve steps 35 min
We'll build a complete 60-second short from a sample storyboard. Story: a customer arrives at a mamak stall, orders teh tarik, watches the worker "pull" the tea, drinks it, applauds, credits roll. Five sprites (Customer, Worker, Cup, Crowd, Credits), three backdrops (mamak-day, mamak-counter-close, night-sky-credits), ambient + specific sounds, one camera pan in beat 4.
Step 1 — Import or paint the three backdrops
Stage → Backdrops tab. Add three: mamak-day (wide shot of the stall), mamak-counter-close (zoomed-in counter view for the tea pulling), night-sky-credits (dark backdrop for credits). Library backdrops or your own painted ones — either works.
Step 2 — Build or import the cutout sprites
Apply the cutout style from L04-25. Five sprites:
Customer— 4 costumes: standing, walking-1, walking-2, talking.Worker— 4 costumes: standing, pouring-high, pouring-low, talking.Cup— 1 costume: just a teh tarik glass.Crowd— 3 costumes for variety, will appear as a background crowd.Credits— 1 tall costume painted with the credit text.
Step 3 — Stage's master event chain
The Stage owns the flag-click and ambient bed.
when flag clicked
switch backdrop to (mamak-day v)
set volume to (30) %
broadcast (beat-1 v)
when flag clicked
forever
play sound (Chatter v) until done
end
Step 4 — Beat 1: establishing shot
The Customer walks in. The Worker stands behind the counter. 10 seconds, then beat-2 fires.
when I receive (beat-1 v)
go to x: (-220) y: (-60)
show
start sound (Footsteps v)
glide (7) secs to x: (-80) y: (-60)
wait (3) seconds
broadcast (beat-2 v)
Step 5 — Beat 2: the order, with lip-sync
Customer talks to Worker. Lip-sync swaps costumes while a recorded or library voice clip plays.
when I receive (beat-2 v)
start sound (Order Line v)
repeat (20)
next costume
wait (0.1) seconds
end
switch costume to (standing v)
wait (6) seconds
broadcast (beat-3 v)
Step 6 — Beat 3: Worker confirms order, switches to close-up backdrop
The Stage swaps to mamak-counter-close and the Worker becomes the conductor for beats 3 and 4.
when I receive (beat-3 v)
switch backdrop to (mamak-counter-close v)
when I receive (beat-3 v)
start sound (Confirm Line v)
say [Teh tarik satu, ya!] for (3) seconds
broadcast (beat-4 v)
Step 7 — Beat 4: the tea-pulling action with a camera pan
Worker switches between pouring-high and pouring-low costumes to simulate the famous teh tarik "pull". A camera pan in this beat moves the view slightly to follow the cup.
when I receive (beat-4 v)
repeat (5)
switch costume to (pouring-high v)
start sound (Pour v)
wait (0.5) seconds
switch costume to (pouring-low v)
wait (0.5) seconds
end
switch costume to (standing v)
broadcast (beat-5 v)
Step 8 — Camera pan during beat 4
A second handler on every visible sprite simulates the camera pan. Here's the Customer's pan handler.
when I receive (beat-4 v)
wait (5) seconds
repeat (10)
change x by (-4)
wait (0.1) seconds
end
Step 9 — Beat 5: Customer drinks and applauds
Customer says one final line. The Crowd (or a dedicated applause Stage script) fires a clapping clip.
when I receive (beat-5 v)
say [Sedap!] for (2) seconds
broadcast (applause-now v)
wait (7) seconds
broadcast (beat-6 v)
when I receive (applause-now v)
start sound (Clapping v)
Step 10 — Beat 6: credits roll
Stage swaps to credits backdrop, kills the ambient chatter, starts gentle music. Credits sprite shows and scrolls up.
when I receive (beat-6 v)
switch backdrop to (night-sky-credits v)
stop all sounds
start sound (Gentle Piano v)
when I receive (beat-6 v)
show
go to x: (0) y: (-400)
glide (10) secs to x: (0) y: (400)
hide
Step 11 — Hide-on-flag for credits and other "later" sprites
Add when ⚑ clicked + hide on the Credits sprite, the Cup sprite (only shows in beats 3+), and any other element that shouldn't appear at the start. This prevents the "everything visible on flag-click" mess.
Step 12 — End-to-end test three times
Flag-click. Watch all 60 seconds. Fix one bug. Flag-click again. Watch all 60 seconds. Fix one more bug. Flag-click a third time. If you get end-to-end with no bugs, save as L4-30-MyShort-TehTarik.sb3. Done.
The full assembled stack — Stage master script
when flag clicked
switch backdrop to (mamak-day v)
set volume to (30) %
broadcast (beat-1 v)
when flag clicked
forever
play sound (Chatter v) until done
end
when I receive (beat-3 v)
switch backdrop to (mamak-counter-close v)
when I receive (beat-6 v)
switch backdrop to (night-sky-credits v)
stop all sounds
start sound (Gentle Piano v)
What you just built: a complete, shareable 60-second animated short. Every animation skill from cluster E in one project, driven by one broadcast chain. Upload to scratch.mit.edu and share the link — your friends will think it was made by an animation studio. This is your portfolio piece for the Scratch program.
Try It Yourself — three short-film polish drills 15 min
Goal: Add a title card. Before beat 1 fires, show a "title" sprite for 3 seconds with the short's name. Then hide it and broadcast beat-1. Build this on a new Title sprite.
when flag clicked
show
say [The Teh Tarik Order] for (3) seconds
hide
broadcast (beat-1 v)
Think: The title turns a sketch into a film. Three seconds of "The Teh Tarik Order" tells the audience this is intentional — not just sprites moving randomly.
Goal: Add a music bed under the whole short. Pick a calm library music clip (Cha Cha Cha, Hip Hop, Bossa Nova). Loop it on the Stage at low volume (15–20%) the entire 60 seconds. It must not fight the dialogue. The trick is volume — set it low enough that the chatter ambient and the spoken lines both win.
when flag clicked
set volume to (18) %
forever
play sound (Bossa Nova v) until done
end
Think: Music sets emotional tone independent of dialogue. A teh tarik short with cheerful bossa nova feels different from the same short with melancholy piano. Try swapping and see.
Goal: Add a "skip to next beat" debug feature. When you press the right arrow key during playback, the current beat fires its next broadcast immediately — so you can preview later beats during testing without sitting through every beat. Build it as a Stage script.
when flag clicked
set [current-beat v] to (1)
when I receive (beat-2 v)
set [current-beat v] to (2)
when I receive (beat-3 v)
set [current-beat v] to (3)
when [right arrow v] key pressed
broadcast (join [beat-] ((current-beat) + (1)) v)
Think: Debug features are common in real game/film production. The professionals add cheats and skips to test late content, then strip them before release. You're now doing the same.
Mini-Challenge — the short that races itself 5 min
"Aishah's beat 3 that plays during beat 2"
Aishah builds her 60-second short. Beats 1 and 2 play correctly. But the moment beat 2 starts, beat 3 also starts — the worker's confirmation line plays over the customer's order line. Both sprites are talking simultaneously. Here are her two relevant scripts:
when I receive (beat-2 v)
start sound (Order Line v)
broadcast (beat-3 v)
when I receive (beat-3 v)
say [Teh tarik satu, ya!] for (3) seconds
broadcast (beat-4 v)
What did she misunderstand about start sound, and what's the smallest fix?
Reveal one valid solution
The bug. start sound fires the audio and immediately runs the next block. So beat 2's full script is "start the order line audio (it's now playing in the background), instantly broadcast beat-3". The Worker hears beat-3 within milliseconds and starts confirming the order while the Customer is still placing it. The audience hears two voices on top of each other.
Smallest fix. Use play sound (Order Line v) until done instead. The script waits for the clip to finish before broadcasting beat-3.
when I receive (beat-2 v)
play sound (Order Line v) until done
broadcast (beat-3 v)
The rule for beat conductors. The conductor sprite for a beat should always use play sound until done for its dialogue clip (so the broadcast waits) or use a manual wait (N) seconds matched to the clip length. Background, layered, ambient sounds use start sound. Dialogue beats use play sound until done. Get this wrong and your characters talk over each other.
Recap 3 min
You assembled a complete 60-second animated short. Six beats × 10 seconds, advanced by a chain of broadcasts beat-1 through beat-6. The Stage handled backdrop swaps and ambient sound layers; cutout sprites with multiple costumes provided lip-sync; camera pans simulated by all-sprites-shift-x worked on one beat; the Credits sprite scrolled up on beat 6. The conductor pattern — one sprite per beat is in charge of firing the next broadcast — kept the timing clean. Every piece came from a previous cluster E lesson; today's lesson was the assembly. You have a real animated short. Share it.
- Beat-chain
- The pattern of broadcasts beat-1 through beat-6 that drives a 60-second short. Each beat fires the next when its conductor's work is done.
- Conductor
- The single sprite per beat that is responsible for broadcasting the next beat when its work is complete. Usually whoever has the longest dialogue or key action in that beat.
- Lip-sync loop
- A short repeat (20) + next costume + wait (0.1) seconds pattern that cycles a sprite through 3–4 talking-mouth costumes while a dialogue clip plays.
- Camera pan
- Simulated camera movement made by every visible sprite changing x (or y) by the same amount over a short time. There is no real camera in Scratch — only the illusion of one.
- Ambient bed
- A long, looping background sound (chatter, wind, music) played by the Stage at low volume. Provides scene continuity across beats. Layered under dialogue and effects.
- Hide-on-flag
- The discipline of giving every later-appearing sprite a when ⚑ clicked + hide so the Stage isn't a mess of every-sprite-visible at the start.
Homework 2 min
The Share-and-Watch Drill. Take your assembled 60-second short and prepare it for an audience.
- Save the project as
L4-30-MyShort-<title>.sb3using your short's actual title. - Upload to scratch.mit.edu. Write a short description: the story, who made it, what to expect. Set to Shared.
- Send the link to three people — a parent, a sibling, and a classmate from a different group.
- Watch each of them play it once. Don't help. Just observe.
- Write down one moment where each viewer reacted (laughed, gasped, looked confused, leaned in). Three viewers × one moment = three reactions.
Bring back next class:
- The shared Scratch URL.
- The three reactions you observed, with which beat each one happened in.
- Your answer to: "If you had one more hour to improve the short, which single beat would you re-do, and why?"
- The
.sb3file as a backup.
Heads up for next class: SCR-L04-31 opens the final cluster of Level 4 — game design. You'll set animation aside and start studying the games that influenced everything in modern game design: Pong and Breakout. Bring your short's shared link to class — we'll watch each other's shorts as a warm-up before pivoting to games.