Skip to content

Pixel Art Studio for Unity · trailer breakdown

Pixel Art Studio Trailer

Three trailers. The 3.0 trailer comes first: 130.8 seconds introducing HD-2D, overworld route navigation, dynamic lighting across day and night, and the multi-phase Bell-Warden boss fight with live mid-battle weapon swaps. The 2.0 trailer: 119 seconds, six new levels on a World 2 map. The 1.x trailer is 104 seconds at 480 × 270. Nine characters, six stages and a UI kit were built as .pas documents by agents working through the plugin's own verbs, then scripted beat by beat, recorded in Unity and checked pixel for pixel.

Trailer 3.0

The 3.0 trailer: 130.8 seconds (7,848 frames at 60 fps) introducing HD-2D. Overworld route navigation, dynamic 24-hour lighting across dawn, midday, sunset dusk, and night, and the multi-phase Bell-Warden street battle with live mid-fight weapon swaps.

130.8 s · 7,848 frames at 60 fps · 1920 × 1080 native HD-2DWatch in 4K on YouTube

Watch in 4K on YouTube

SceneWhat it showsEnvironmentCastAt
3-1Overworld Map: elevation contours, landmark pins, and camera pathingOverworldCamera
3-2The Village: cobblestones, animated well, dynamic shadows, and 24h lighting transitionTown SquareVillagers
3-3The Wake: Belfry dust, bell resonance, and awakening of the Bell-WardenBelfry TowerWren, Bell-Warden
3-4The Street Fight: hammer ground slam, shockwave ring, mid-fight gear swapping, and sunset dusk lightingVillage StreetWren, Bell-Warden
3-5Night Battle & Victory: street lamps ignite, bloom and depth-of-field bokeh, hammer knock-away, and victory poseStreet & BridgeWren

Behind the scenes: 3.0

A tour behind the 3.0 HD-2D pipeline: 3D model baking from Blender, normal map generation, camera depth bias, real-time lighting and shadows, and the custom character rig.

Watch on YouTube

Video on YouTubeFormatChapters
Trailer 3.0 (YouTube 4K)3840 × 2160 H.264, 60 fps7 chapters
Behind the Scenes 3.01920 × 1080 H.264, 60 fps6 chapters

Trailer 2.0

The 2.0 trailer: 119 seconds, six new levels on a World 2 map, one for each thing 2.0 adds. Every line reads at one pace, and every sprite is a Pixel Art Studio file.

119.2 s · 7,152 frames at 60 fps · 480 × 270 nativeshown at x2, nearest neighbour

Watch in 4K on YouTube

LevelWhat it showsStageCastAt
2-1A 3D model from Blender, imported as pixel sprites in eight directionsThe FoundryKettle
2-2Two poses, and the six frames between them made by TweenThe Clockwork TheatreLoll
2-3Hitboxes and hurtboxes stored in the frames, and one hand socket for three weapon files: a sword, an axe and a spearDojo PeakTamsin, the Dummy
2-4A 47-slot auto-tile filling a real Tilemap, cell by cellCanopy FallsPebble
2-5Six layers of one picture as a parallax stage, at full speed from the first frameCanyon ExpressDusty
2-6Speech bubbles, paint on the easel, three mirrors showing the art checks (greyscale, colour-blind, silhouette), then the same sprite swapped into a running gameArcade CityByte, Vela, Prism
P.S.After the credits: Dusty, hatless, and a spare cap on a head socket layerCanyon ExpressDusty

Behind the scenes: 2.0

A minute and forty-five seconds behind the levels: Kettle turning in Blender, the Pixel Art Studio window where each feature was used, in the trailer's order, and a running game that updates when a file is saved.

Watch on YouTube

File on this pageFormatSize
PixelArtStudio-Trailer-2.0-x2.mp4960 × 540 H.264, AAC, 60 fps14.63 MB
PixelArtStudio-BTS-2.0-page.mp4960 × 540 H.264, AAC, 30 fps6.25 MB

Trailer 1.x

104.0 s · 6,240 frames at 60 fps · 480 × 270 nativeshown at x2, nearest neighbour

Watch in 4K on YouTube

Every sprite is a Pixel Art Studio file. The only things on screen that are not sprites are the iris wipe, a computed circle, and the camera's black clear colour.

File on this pageFormatSize
PixelArtStudio-Trailer-native.webm480 × 270 VP9 4:4:4 at CRF 0, Opus 128k (plays on this page)25.10 MB
PixelArtStudio-Trailer-x2.mp4960 × 540 H.264, AAC 192k (the lighter fallback)14.49 MB

The page plays the native WebM, and the x2 MP4 where WebM is not supported. The 4K and 1080p versions are on YouTube. All of them come from the same edit: the thirteen scene takes joined without a resample (level 1-5 is a composite of four captures of one lit scene), and a mix normalised to -14 LUFS.

The script

Thirteen scene files, compiled together into one trailer.json: 599 beats, 67 text rows, 71 audio slots and 280 rows on the cue sheet. A beat is one line of JSON: a camera cut or wipe, a tag to play, layers to hide or show, a palette to swap to, a move, a frozen clock, or a line of dialogue. Click a scene on the bar above to jump the trailer to it.

PRESS START

0:00–0:07 · 7.0 s · 420 frames · 50 beats · music M0

Sells The hub. The whole map starts locked: flat silhouettes under drifting fog. The cursor visits the five nodes, the path to 1-1 draws, the courtyard floods with colour and its preview opens. The title plate, the cursor, the locks, the path and the previews are .pas documents too.

PRESS START, the scene at x2, 30 fps
Master frame 330 of PRESS START at native size
0 px frame 330 5.5 s: the path to 1-1 has been drawn, the courtyard has flooded in colour and the 1-1 COURTYARD preview has opened. The other four zones are still locked silhouettes under fog. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Overworld.pas UI/Titles.pas Cast/Mira.pas Stages/OverworldAnim.pas Stages/Hub/Path2.pas Stages/Hub/Lock1.pas Stages/Hub/Lock2.pas Stages/Hub/Lock3.pas Stages/Hub/Lock4.pas Stages/Hub/Lock5.pas Stages/Hub/Path1.pas Stages/NodePulse.pas Stages/Previews/Preview1-1.pas
Beat kinds
hide 16 move 14 tag 12 camera 4 palette 2 say 2
Master take
FrameCheck 420/420 frames at 0 px

PLAY 1-1

All 50 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00cameracut to [-2000, 0]
0.00hidetitleshide THE END?
0.00hidecursorshow Cursor
0.00hidecursorhide Legs, Body, Head, FarArm, FarForearm, FarUpperArm, Pencil, NearArm, NearSleeve, NearHand, NearFingers
0.00tagcursorcursor (once)
0.00movecursorto [-1769, 143] over 1.35 s
0.00hidep1hide whole actor
0.00hidenodehide whole actor
0.00hidedraw1hide whole actor
0.00hidedraw1hide Cover
0.00hidecover2hide Draw
0.40hidetitleshide PRESS START
0.80hidetitlesshow PRESS START
1.40palettetitlesTitles.pas · flash 2
1.40palettecursorMira.pas · flash 2
1.50cameracut to [0, 0]
1.50camerairis-in over 0.5 s
1.50taganimloop
1.50taglock1fog
1.50taglock2fog
1.50taglock3fog
1.50taglock4fog
1.50taglock5fog
1.75movecursor2 moves, 1.75–1.75 s, ending at [86, 222]
2.00saybox: “Five levels. Five features. Go!” until 4.6
2.00hidenodeshow whole actor
2.00tagnodepulse
2.30movecursorto [134, 158] over 0.1 s
2.40movenodeto [136, 164] over 0.0 s
2.70movecursorto [214, 206] over 0.1 s
2.80movenodeto [216, 212] over 0.0 s
3.10movecursorto [294, 174] over 0.1 s
3.20movenodeto [296, 180] over 0.0 s
3.50movecursorto [374, 142] over 0.1 s
3.60movenodeto [376, 148] over 0.0 s
4.00hidenodehide whole actor
4.00movecursorto [0, 224] over 0.4 s
4.50hidedraw1show whole actor
4.50tagdraw1draw (once)
4.50movecursorto [86, 222] over 0.4 s
4.90taglock1flood (once)
5.25hidelock1hide whole actor
5.30hidep1show whole actor
5.30tagp1open (once)
5.30movenodeto [88, 228] over 0.0 s
5.30hidenodeshow whole actor
5.45tagp1loop
5.80saycallout: “PLAY 1-1” until 6.6
6.60camerairis-out over 0.4 s

1-1 LAYERS

0:07–0:22 · 15.0 s · 900 frames · 29 beats · music M1

Sells Layers and sorting: visibility, complete hidden layers, groups, clipping and Y-sorting at runtime.

1-1 LAYERS, the scene at x2, 30 fps
Master frame 648 of 1-1 LAYERS at native size
0 px frame 648 10.8 s: Sir Stacks runs behind the first pillar and will pass in front of the second (Y-sort). FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Courtyard.pas Cast/SirStacks.pas Stages/Pillar.pas
Beat kinds
hide 10 say 6 tag 5 camera 4 move 3 wait 1
Master take
991 s wall · FrameCheck 21/21 frames at 0 px

1-1 LAYERS CLIP

All 29 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00cameracut to [-2000, 0]
0.00saycard: “1-1 LAYERS” until 1.0
1.00cameracut to [0, 0]
1.00tagstackswalk
1.00movestacksto [120, 200] over 1.5 s
2.50tagstacksidle
2.50saystacksbox: “Every piece of me is a layer.” until 5.0
4.50hidestackshide Helmet, Plume · label -HELMET
5.00hidestackshide Cape · label -CAPE
5.50hidestackshide Pauldrons · label -PAULDRONS
6.00hidestackshide Breastplate · label -BREASTPLATE
6.50hidestackshide Gauntlets, Greaves · label -GREAVES
7.00hidestackshide Tunic · label -TUNIC
7.00hidestacksshow Blush
7.20waitclock frozen 1.8 s
7.20saystacksbox: “Oops. Not that far.” until 9.0
9.00hidestackshide Blush
9.00hidestacksshow Outfit, Cape · label GROUP
9.00tagstacksglint (once)
9.50saystackslabel: “CLIP” until 10.0
10.00hidestackshide Glint
10.00tagstacksrun
10.00movestacksto [400, 200] over 2.8 s
10.00saystacksbox: “Sorting layers too! Look at me go! Woohoo!” until 12.8
12.80tagstacksfall (once)
12.80movestacksto [430, 380] over 0.8 s
13.60camerashake 2 px over 0.3 s
13.60saybox: “...I'm okay.” until 14.6
14.60camerairis-out over 0.4 s

PATH TO 1-2 ROOFTOP

0:22–0:24 · 1.5 s · 90 frames · 31 beats · music M6

Sells Back on the map after level 1-1: the next path draws, the rooftop city floods in and its named preview opens.

PATH TO 1-2 ROOFTOP, the scene at x2, 30 fps
Master frame 60 of PATH TO 1-2 ROOFTOP at native size
0 px frame 60 1.0 s: the 1-2 ROOFTOP preview has just opened; zones 1-1 to 1-1 are open with their stars on, and the rest are still locked. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Overworld.pas Stages/OverworldAnim.pas Stages/Hub/Stars.pas Stages/Hub/Path2.pas Stages/Hub/Path3.pas Stages/Hub/Lock2.pas Stages/Hub/Lock3.pas Stages/Hub/Lock4.pas Stages/Hub/Lock5.pas Stages/NodePulse.pas Stages/Previews/Preview1-2.pas Cast/Mira.pas
Beat kinds
hide 14 tag 12 move 3 camera 2
Master take
FrameCheck 90/90 frames at 0 px
All 31 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00camerairis-in over 0.25 s
0.00taganimloop
0.00hidestarshide Star2, Star3, Star4, Star5
0.00hidecover2hide Draw
0.00hidedraw2hide Cover
0.00hidedraw2hide whole actor
0.00hidenodehide whole actor
0.00hidep2hide whole actor
0.00hidecover3hide Draw
0.00taglock2fog
0.00taglock3fog
0.00taglock4fog
0.00taglock5fog
0.00hidecursorshow Cursor
0.00hidecursorhide Legs, Body, Head, FarArm, FarForearm, FarUpperArm, Pencil, NearArm, NearSleeve, NearHand, NearFingers
0.00tagcursorcursor (once)
0.15hidedraw2show whole actor
0.15tagdraw2draw (once)
0.15tagcover2draw (once)
0.15movecursor3 moves, 0.15–0.45 s, ending at [134, 158]
0.55taglock2flood (once)
0.90hidelock2hide whole actor
0.90hidecover2hide whole actor
0.90hidep2show whole actor
0.90tagp2open (once)
0.90hidenodeshow whole actor
0.90tagnodepulse
1.05tagp2loop
1.20camerairis-out over 0.3 s

1-2 PALETTES

0:24–0:36 · 13.0 s · 780 frames · 32 beats · music M2

Sells Palette swaps: a runtime swap, colour cycling on the emblem, and a swap on a second sprite (Glob).

1-2 PALETTES, the scene at x2, 30 fps
Master frame 420 of 1-2 PALETTES at native size
0 px frame 420 7.0 s: the switch to Captain Palette. Frames 420 and 421 are identical, so the switch is invisible. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Rooftop.pas Cast/Pip.pas Cast/Glob.pas Stages/WaterTower.pas
Beat kinds
say 11 tag 7 palette 6 hide 4 camera 3 move 1
Master take
575 s wall · FrameCheck 19/19 frames at 0 px

1-2 PALETTES GOTH? BANANA? FESTIVE?

All 32 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00cameracut to [-2000, 0]
0.00hidecaptainhide whole actor
0.00saycard: “1-2 PALETTES” until 1.0
0.00tagpipidle
1.00cameracut to [0, 0]
1.00tagglobbounce
1.00moveglobto [330, 214] over 1.5 s · face left
1.30sayglobbox: “BLORP.” until 2.5
2.50tagpipnervous
2.50saypipbox: “Stand back. Palette swap!” until 4.2
4.20palettepipPipGoth.pas · flash 2
4.20saypiplabel: “GOTH?” until 4.8
4.20saypipbox: “No. No. NO.” until 6.0
4.80palettepipPipBanana.pas · flash 2
4.80saypiplabel: “BANANA?” until 5.4
5.40palettepipPipFestive.pas · flash 2
5.40saypiplabel: “FESTIVE?” until 6.0
6.00tagpipspin (once)
6.50palettepipPipHero.pas · flash 2 · cycle
7.00hidepiphide whole actor
7.00hidecaptainshow whole actor
7.00palettecaptainPipHero.pas · cycle
7.00tagcaptainpose
7.00saycaptainbox: “CAPTAIN PALETTE!” until 8.5
8.50tagglobtalk
8.50sayglobbox: “...it's the same guy.” until 10.0
10.00tagglobbounce
10.00saycaptainbox: “Same pixels. New palette.” until 11.6
11.60paletteglobGlobPink.pas · flash 2
11.60hideglobshow Blush
11.60sayglobbox: “blorp <3” until 12.6
12.60camerairis-out over 0.4 s

PATH TO 1-3 ARENA

0:36–0:38 · 1.5 s · 90 frames · 30 beats · music M6

Sells Back on the map after level 1-2: the next path draws, the arena floods in and its named preview opens.

PATH TO 1-3 ARENA, the scene at x2, 30 fps
Master frame 60 of PATH TO 1-3 ARENA at native size
0 px frame 60 1.0 s: the 1-3 ARENA preview has just opened; zones 1-1 to 1-2 are open with their stars on, and the rest are still locked. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Overworld.pas Stages/OverworldAnim.pas Stages/Hub/Stars.pas Stages/Hub/Path3.pas Stages/Hub/Path4.pas Stages/Hub/Lock3.pas Stages/Hub/Lock4.pas Stages/Hub/Lock5.pas Stages/NodePulse.pas Stages/Previews/Preview1-3.pas Cast/Mira.pas
Beat kinds
hide 14 tag 11 move 3 camera 2
Master take
FrameCheck 90/90 frames at 0 px
All 30 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00camerairis-in over 0.25 s
0.00taganimloop
0.00hidestarshide Star3, Star4, Star5
0.00hidecover3hide Draw
0.00hidedraw3hide Cover
0.00hidedraw3hide whole actor
0.00hidenodehide whole actor
0.00hidep3hide whole actor
0.00hidecover4hide Draw
0.00taglock3fog
0.00taglock4fog
0.00taglock5fog
0.00hidecursorshow Cursor
0.00hidecursorhide Legs, Body, Head, FarArm, FarForearm, FarUpperArm, Pencil, NearArm, NearSleeve, NearHand, NearFingers
0.00tagcursorcursor (once)
0.15hidedraw3show whole actor
0.15tagdraw3draw (once)
0.15tagcover3draw (once)
0.15movecursor3 moves, 0.15–0.5 s, ending at [214, 206]
0.55taglock3flood (once)
0.90hidelock3hide whole actor
0.90hidecover3hide whole actor
0.90hidep3show whole actor
0.90tagp3open (once)
0.90hidenodeshow whole actor
0.90tagnodepulse
1.05tagp3loop
1.20camerairis-out over 0.3 s

1-3 ANIMATION + TILES

0:38–0:53 · 15.0 s · 900 frames · 106 beats · music M3

Sells Animation and tiles: tags with hit-stop timing, hits that connect with a flash and an impact spark, a Tile Palette export built row by row, and an adjustment layer (KO Grey).

1-3 ANIMATION + TILES, the scene at x2, 30 fps
Master frame 480 of 1-3 ANIMATION + TILES at native size
0 px frame 480 8.0 s: the counter lands on Brash. A 0.05 s wait freezes the clock on the contact, Brash flashes white, the hit spark plays and the camera shakes 2 px. On every hit of the fight the attacker overlaps the target by 1 to 4 px at contact, measured on the recorded frames. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/ArenaBackdrop.pas Stages/ArenaRows04-06.pas Stages/ArenaRows07-09.pas Stages/ArenaRows10-12.pas Stages/ArenaRows13-14.pas Stages/ArenaRows15-16.pas Stages/Torch.pas Stages/Banner.pas Cast/Brash.pas Cast/Bonk.pas Stages/FxBlock.pas Stages/FxHit.pas
Beat kinds
hide 36 move 24 tag 24 say 13 camera 5 wait 2 palette 2
Master take
about 8.5 min wall · FrameCheck 13/13 frames at 0 px, every contact and hit-stop frame among them

1-3 ANIMATION + TILES TILES FIGHT! [dash] [combo] BLOCKED BLOCKED [counter] K.O. BONK WINS

All 106 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00cameracut to [-2000, 0]
0.00saycard: “1-3 ANIMATION + TILES” until 1.0
0.00hider04hide whole actor
0.00hider07hide whole actor
0.00hider10hide whole actor
0.00hider13hide whole actor
0.00hider15hide whole actor
0.00hidetorchLhide whole actor
0.00hidetorchRhide whole actor
0.00hidebannerhide whole actor
0.00hidebrashhide whole actor
0.00hidebonkhide whole actor
0.00hideblockfxhide whole actor
0.00hidehitfxhide whole actor
0.00hidebonkflashhide whole actor
0.00movebonkflashto [330, 217] over 0.0 s · face left
0.00mover04to [0, 16] over 0.0 s
0.00mover07to [0, 64] over 0.0 s
0.00mover10to [0, 112] over 0.0 s
0.00mover13to [0, 160] over 0.0 s
0.00mover15to [0, 192] over 0.0 s
0.00movebonkto [330, 217] over 0.0 s · face left
1.00cameracut to [0, 0]
1.00hider04show whole actor
1.00mover04to [0, 64] over 0.2 s
1.00sayr04label: “TILES” until 2.5
1.30hider07show whole actor
1.30mover07to [0, 112] over 0.2 s
1.50hidetorchLshow whole actor
1.50hidetorchRshow whole actor
1.50hidebannershow whole actor
1.50tagtorchLburn
1.50tagtorchRburn
1.50tagbannersway
1.60hider10show whole actor
1.60mover10to [0, 160] over 0.2 s
1.90hider13show whole actor
1.90mover13to [0, 208] over 0.2 s
2.20hider15show whole actor
2.20mover15to [0, 240] over 0.2 s
2.50hidebrashshow whole actor
2.50hidebonkshow whole actor
2.50tagbrashidle
2.50tagbonkidle
2.50saybrashbox: “Let me finish this fight quickly.” until 4.5
4.50saycallout: “FIGHT!” until 5.0
5.00tagbrashdash (once)
5.00movebrashto [266, 214] over 0.6 s
5.00saycallout: “[dash]” until 5.6
5.60tagbrashcombo (once)
5.60saycallout: “[combo]” until 7.4
5.80tagbonkblock (once)
5.80saybonklabel: “BLOCKED” until 6.3
5.80hideblockfxshow whole actor
5.80tagblockfxspark (once)
5.85movebrashto [263, 214] over 0.1 s
5.95hideblockfxhide whole actor
6.20movebrashto [271, 214] over 0.2 s
6.40tagbonkblock (once)
6.40saybonklabel: “BLOCKED” until 6.9
6.40hideblockfxshow whole actor
6.40tagblockfxspark (once)
6.45movebrashto [268, 214] over 0.1 s
6.55hideblockfxhide whole actor
6.80movebrashto [275, 214] over 0.2 s
6.80tagbonkidle
7.00waitclock frozen 0.05 s
7.00hidebonkhide whole actor
7.00hidebonkflashshow whole actor
7.00tagbonkflashhurt (once)
7.00palettebonkflashBonk.pas · flash 3
7.00hidehitfxshow whole actor
7.00taghitfxhit (once)
7.00camerashake 1 px over 0.1 s
7.05hidebonkflashhide whole actor
7.05hidebonkshow whole actor
7.05tagbonkhurt (once)
7.05movebonkto [332, 217] over 0.1 s · face left
7.25hidehitfxhide whole actor
7.25tagbonkidle
7.25movebonkto [330, 217] over 0.15 s · face left
7.40tagbonkcounter (once)
7.40tagbrashidle
7.40movebrashto [268, 214] over 0.2 s
7.40movehitfxto [282, 187] over 0.0 s
7.40saycallout: “[counter]” until 8.4
8.00waitclock frozen 0.05 s
8.00tagbrashhurt (once)
8.00palettebrashBrash.pas · flash 3
8.00hidehitfxshow whole actor
8.00taghitfxhit (once)
8.00camerashake 2 px over 0.15 s
8.10movebrashto [262, 214] over 0.3 s
8.25hidehitfxhide whole actor
8.40tagbrashko (once)
8.40hidebrashshow KO Grey
8.40movebrashto [244, 196] over 0.3 s
8.40saycallout: “K.O.” until 10.0
8.70movebrashto [222, 214] over 0.3 s
9.40tagbonkidle
10.00tagbonktalk
10.00saybonkbox: “He forgot to tag a block.” until 12.5
12.50tagbonkshrug (once)
12.50saybonkbox: “Next!” until 14.6
13.00saycallout: “BONK WINS” until 14.6
14.60camerairis-out over 0.4 s

PATH TO 1-4 SKETCHBOOK

0:53–0:54 · 1.5 s · 90 frames · 28 beats · music M6

Sells Back on the map after level 1-3: the next path draws, the sketchbook floods in and its named preview opens.

PATH TO 1-4 SKETCHBOOK, the scene at x2, 30 fps
Master frame 60 of PATH TO 1-4 SKETCHBOOK at native size
0 px frame 60 1.0 s: the 1-4 SKETCHBOOK preview has just opened; zones 1-1 to 1-3 are open with their stars on, and the rest are still locked. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Overworld.pas Stages/OverworldAnim.pas Stages/Hub/Stars.pas Stages/Hub/Path4.pas Stages/Hub/Path5.pas Stages/Hub/Lock4.pas Stages/Hub/Lock5.pas Stages/NodePulse.pas Stages/Previews/Preview1-4.pas Cast/Mira.pas
Beat kinds
hide 14 tag 10 camera 2 move 2
Master take
FrameCheck 90/90 frames at 0 px
All 28 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00camerairis-in over 0.25 s
0.00taganimloop
0.00hidestarshide Star4, Star5
0.00hidecover4hide Draw
0.00hidedraw4hide Cover
0.00hidedraw4hide whole actor
0.00hidenodehide whole actor
0.00hidep4hide whole actor
0.00hidecover5hide Draw
0.00taglock4fog
0.00taglock5fog
0.00hidecursorshow Cursor
0.00hidecursorhide Legs, Body, Head, FarArm, FarForearm, FarUpperArm, Pencil, NearArm, NearSleeve, NearHand, NearFingers
0.00tagcursorcursor (once)
0.15hidedraw4show whole actor
0.15tagdraw4draw (once)
0.15tagcover4draw (once)
0.15movecursor2 moves, 0.15–0.45 s, ending at [294, 174]
0.55taglock4flood (once)
0.90hidelock4hide whole actor
0.90hidecover4hide whole actor
0.90hidep4show whole actor
0.90tagp4open (once)
0.90hidenodeshow whole actor
0.90tagnodepulse
1.05tagp4loop
1.20camerairis-out over 0.3 s

1-4 DRAWING TOOLS

0:54–1:10 · 15.0 s · 900 frames · 189 beats · music M4

Sells Drawing tools: Curve with pixel-perfect, Free Transform, custom brush, pen pressure, Text, Blur and Scramble, with Mira floating beside the page to draw each stroke.

1-4 DRAWING TOOLS, the scene at x2, 30 fps
Master frame 170 of 1-4 DRAWING TOOLS at native size
0 px frame 170 2.8 s: Mira floats over the gap with the pencil tip on the newest pixel of the bridge curve. The tip was checked against the newest stroke pixel on the recorded reveal frames, at 0 px. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Sketch.pas Cast/Mira.pas Stages/Bridge.pas Stages/Boulder.pas Stages/Flowers.pas Stages/Grass.pas Stages/Sign.pas Cast/Doodle.pas
Beat kinds
move 162 say 11 tag 11 camera 3 hide 2
Master take
about 6.6 min wall · FrameCheck 14/14 frames at 0 px

1-4 DRAWING TOOLS CURVE + PIXEL-PERFECT FREE TRANSFORM CUSTOM BRUSH PEN PRESSURE TEXT TOOL

All 189 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00cameracut to [-2000, 0]
0.00hidedoodlehide whole actor
0.00saycard: “1-4 DRAWING TOOLS” until 1.0
1.00cameracut to [0, 0]
1.00tagmiraidle
1.00saymirabox: “Need a bridge?” until 2.25
2.20tagmirafloat
2.20tagbridgecurve (once)
2.20movemirato [168, 198] over 0.05 s · face left
2.20saybridgelabel: “CURVE + PIXEL-PERFECT” until 4.0
2.25movemira36 moves, 2.25–4.0 s, ending at [126, 156]
4.00sayboulderlabel: “FREE TRANSFORM” until 5.5
4.05movemirato [92, 160] over 0.05 s · face left
4.10tagboulderturn (once)
4.10movemira26 moves, 4.1–5.35 s, ending at [277, 169]
5.40tagflowersstamp (once)
5.40movemira3 moves, 5.4–5.5 s, ending at [334, 181]
5.50sayflowerslabel: “CUSTOM BRUSH” until 7.0
5.55movemira29 moves, 5.55–6.95 s, ending at [382, 202]
7.00taggrasspressure (once)
7.00movemirato [382, 198] over 0.05 s · face right
7.00saygrasslabel: “PEN PRESSURE” until 8.3
7.05movemira26 moves, 7.05–8.3 s, ending at [394, 172]
8.30saysignlabel: “TEXT TOOL” until 10.0
8.35movemira3 moves, 8.35–8.45 s, ending at [111, 164]
8.50tagsigntext (once)
8.50movemira29 moves, 8.5–9.9 s, ending at [160, 198]
10.00hidedoodleshow whole actor
10.00tagmiraidle
10.00tagdoodlerise (once)
10.00movemirato [160, 198] over 0.0 s · face right
10.00saydoodlebox: “RAWR.” until 11.0
11.00tagdoodleblur (once)
11.00saymirabox: “Blur!” until 12.0
12.00tagdoodlescramble (once)
12.00saymirabox: “Scramble!” until 13.0
13.00movedoodleto [260, 168] over 0.2 s · face right
13.00saymirabox: “Fixed it.” until 14.6
13.20movedoodle5 moves, 13.2–14.0 s, ending at [510, 200]
14.60camerairis-out over 0.4 s

PATH TO 1-5 ARCHIVE

1:10–1:11 · 1.5 s · 90 frames · 26 beats · music M6

Sells Back on the map after level 1-4: the next path draws, the Archive floods in and its named preview opens.

PATH TO 1-5 ARCHIVE, the scene at x2, 30 fps
Master frame 60 of PATH TO 1-5 ARCHIVE at native size
0 px frame 60 1.0 s: the 1-5 ARCHIVE preview has just opened; zones 1-1 to 1-4 are open with their stars on, and the rest are still locked. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Overworld.pas Stages/OverworldAnim.pas Stages/Hub/Stars.pas Stages/Hub/Path5.pas Stages/Hub/Lock5.pas Stages/NodePulse.pas Stages/Previews/Preview1-5.pas Cast/Mira.pas
Beat kinds
hide 13 tag 9 camera 2 move 2
Master take
FrameCheck 90/90 frames at 0 px
All 26 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00camerairis-in over 0.25 s
0.00taganimloop
0.00hidestarshide Star5
0.00hidecover5hide Draw
0.00hidedraw5hide Cover
0.00hidedraw5hide whole actor
0.00hidenodehide whole actor
0.00hidep5hide whole actor
0.00taglock5fog
0.00hidecursorshow Cursor
0.00hidecursorhide Legs, Body, Head, FarArm, FarForearm, FarUpperArm, Pencil, NearArm, NearSleeve, NearHand, NearFingers
0.00tagcursorcursor (once)
0.15hidedraw5show whole actor
0.15tagdraw5draw (once)
0.15tagcover5draw (once)
0.15movecursor2 moves, 0.15–0.25 s, ending at [374, 142]
0.55taglock5flood (once)
0.90hidelock5hide whole actor
0.90hidecover5hide whole actor
0.90hidep5show whole actor
0.90tagp5open (once)
0.90hidenodeshow whole actor
0.90tagnodepulse
1.05tagp5loop
1.20camerairis-out over 0.3 s

1-5 SCENE LIGHTS

1:11–1:21 · 10.0 s · 600 frames · 18 beats · music M8

Sells Scene lights: one checkbox turns on real 2D lights. Wick carries a lantern through the Archive, Boolean gives him a fright, and the same scene is shown with lights off, in Built-in, in URP 2D and in HDRP.

Master frame 360 of 1-5 SCENE LIGHTS at native size
0 px frame 360 6.0 s: Four 240 × 135 captures of the same dark Archive, where the lantern pool and Boolean's glow carry the light: lights off, then Built-in, URP 2D and HDRP, with the label “...not scary.” over the flat ghost on the unlit panel. The panels are captures of the NightShift sample running in each pipeline, composited into the key-colour pixels of the LightsSplit stage. The divider, the plates, the card and the call-outs are the trailer's own. FrameCheck rebuilt that overlay from fresh plugin renders: 0 of 129,600 pixels different.
Documents
Stages/LightsSplit.pas Stages/NodePulse.pas Stages/LightsFull.pas
Beat kinds
say 8 hide 5 camera 4 move 1
Master take
FrameCheck 600/600 overlay frames at 0 px

1-5 SCENE LIGHTS boo. AAAAH! ONE CHECKBOX ...not scary. THREE PIPELINES

All 18 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00cameracut to [-2000, 0]
0.00hidewickhide whole actor
0.00hidebooleanhide whole actor
0.00hideoffpanelhide whole actor
0.00saycard: “1-5 SCENE LIGHTS” until 1.0
1.00cameracut to [0, 0]
1.25saywickbox: “First night shift. One lantern. Zero training.” until 3.5
3.00movebooleanto [246, 88] over 0 s
3.50saybooleanlabel: “boo.” until 4.0
4.00saycallout: “AAAAH!” until 4.6
4.00camerashake 2 px over 0.3 s
4.60hidefullhide whole actor
5.00saycallout: “ONE CHECKBOX” until 6.6
5.60sayoffpanellabel: “...not scary.” until 6.6
6.80saycallout: “THREE PIPELINES” until 8.3
8.40hidefullshow whole actor
8.40saybooleanbox: “Scared of the dark...” until 10.0
9.60camerairis-out over 0.4 s

ALL CLEAR

1:21–1:29 · 8.0 s · 480 frames · 25 beats · music M5

Sells The agents: the whole cast, every stage and the UI, built through the agent surface.

ALL CLEAR, the scene at x2, 30 fps
Master frame 300 of ALL CLEAR at native size
0 px frame 300 5.0 s: the lineup on the fully unlocked, starred map, with the logo and the end card. The castle stands over the Archive at the end of the path. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/OverworldStarred.pas Stages/OverworldAnim.pas Stages/Castle.pas UI/Logo.pas UI/EndCard.pas Cast/SirStacks.pas Cast/Glob.pas Cast/Pip.pas Cast/Bonk.pas Cast/Brash.pas Cast/Mira.pas Cast/Doodle.pas
Beat kinds
tag 8 hide 6 move 5 camera 2 say 2 palette 2
Master take
FrameCheck 480/480 frames at 0 px

ALL CLEAR

All 25 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00taganimloop
0.00camerairis-in over 0.5 s
0.00saycallout: “ALL CLEAR” until 1.0
0.00hideendcardhide whole actor
0.00palettecaptainPipHero.pas · cycle
0.00tagcaptainpose
0.00tagglobbounce
0.00tagbrashidle
0.00tagbonkidle
0.00tagmiraidle
0.00paletteglobGlobPink.pas
0.00hideglobshow Blush
0.00hidestackshide Outfit, Cape
1.00movestacksto [-20, 213] over 0.0 s
1.00tagstacksrun
1.00movestacksto [80, 213] over 1.0 s
1.00saystacksbox: “Wait for me!” until 2.4
2.00tagstacksidle
2.40hideendcardshow whole actor
2.40hideendcardhide Line 1, Line 2
2.40movelogo2 moves, 2.4–3.6 s, ending at [240, 134]
3.60hideendcardshow Line 1, Line 2
3.70movelogoto [240, 136] over 0.1 s
7.80cameracut to [-2000, 0]

CREDITS

1:29–1:33 · 4.0 s · 240 frames · 1 beats · music M7

Sells The credits sheet is UI/Credits.pas, rising 2 px a frame.

CREDITS, the scene at x2, 30 fps
Master frame 120 of CREDITS at native size
0 px frame 120 2.0 s: the sheet mid-rise: the cast list now ends with Wick and Boolean. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
UI/Credits.pas
Beat kinds
move 1
Master take
FrameCheck 240/240 frames at 0 px
All 1 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00movesheetto [240, -2] over 3.8 s

CONTINUE?

1:33–1:44 · 11.0 s · 660 frames · 34 beats

Sells Undo and Redo through the document history, with their default keys.

CONTINUE?, the scene at x2, 30 fps
Master frame 498 of CONTINUE? at native size
0 px frame 498 8.3 s: CTRL+Y has put the KO back. KO Grey is shown again. FrameCheck rebuilt it from fresh plugin renders: 0 of 129,600 pixels different, and the recorded x4 and x8 frames are exact nearest-neighbour upscales.
Documents
Stages/Arena.pas Cast/Brash.pas Cast/Mira.pas Cast/Bonk.pas UI/Titles.pas Stages/Torch.pas Stages/Banner.pas
Beat kinds
hide 12 tag 8 say 7 camera 3 move 2 palette 2
Master take
254 s wall · FrameCheck 15/15 frames at 0 px

CTRL+Z UNDO CTRL+Y REDO

All 34 beats (runs of moves on one actor folded)
at (s)kindactordetail
0.00cameracut to [-2000, 0]
0.00tagbrashko (once)
0.00hidebrashshow KO Grey
0.00hidebonkhide whole actor
0.00hidetitleshide whole actor
0.00hidetitleshide PRESS START
0.00hidecursorshow Cursor
0.00hidecursorhide Legs, Body, Head, FarArm, FarForearm, FarUpperArm, Pencil, NearArm, NearSleeve, NearHand, NearFingers
0.00tagcursorcursor (once)
0.00tagtorchLburn
0.00tagtorchRburn
0.00tagbannersway
1.00cameracut to [0, 0]
1.00camerairis-in over 0.4 s
1.40saybrashbox: “...Is it over?” until 3.2
3.20movecursorto [183, 187] over 0.5 s
3.20saycursorlabel: “CTRL+Z” until 3.8
3.70palettecursorMira.pas · flash 2
3.80tagbrashrise (once)
3.80hidebrashhide KO Grey
3.80saybrashlabel: “UNDO” until 4.8
4.80tagbrashidle
4.80movecursorto [231, 159] over 0.4 s
4.80saybrashbox: “Undo works on me?! Rematch!” until 6.8
6.80palettecursorMira.pas · flash 2
6.80saycursorlabel: “CTRL+Y” until 7.3
7.30tagbrashko (once)
7.30saybrashlabel: “REDO” until 8.3
7.70hidebrashshow KO Grey
8.30hidecursorhide whole actor
8.30saybonkbox: “Redo works too.” until 9.8
9.80hidetitlesshow whole actor
10.40hidetitleshide THE END?
10.80hidetitlesshow THE END?

The cast

Each character started as one Krea 2 picture. An agent imported it onto a 16 px grid, peeled it into pieces on separate layers, filled what each piece hides, and posed the pieces about their joints to make every frame. The rest frame must equal the design at 0 px, and every frame must have 0 pinholes and 0 islands in every hide state the scenes use.

SIR STACKS

Cast/SirStacks.pas · 128 × 96 Indexed · in PRESS START, 1-1 LAYERS, ALL CLEAR

Every piece of armour is its own layer, so Scene 1 can take it off one piece at a time. Hidden fills under each joint keep every undressed state free of holes.

  1. The Krea 2 design
    Design Krea 2 picture, 64 × 64 cells of 16 px
  2. The design on its grid
    Grid one colour per cell, x3
  3. The design reference
    Reference the imported design, x2
  4. The finished rest frame
    Rest frame the layered sprite, x2 0 px
The pieces of Sir Stacks
26 pieces, cropped, at x2: Blush, Body, Boxers, Breastplate, Cape, FarFoot, FarForearm, FarGauntlet, FarGreave, FarPauldron, FarShin, FarThigh, FarUpperArm, Glint, Head, Helmet, NearFoot, NearForearm, NearGauntlet, NearGreave, NearPauldron, NearShin, NearThigh, NearUpperArm, Plume, Tunic.

Layer tree, front first (35)

  • Outfit
    • Armour
      • Plume
      • Helmet
      • Gauntlets
        • NearGauntlet
        • FarGauntlet
      • Pauldrons
        • NearPauldron
        • FarPauldron
      • Glint
      • Breastplate
      • Greaves
        • NearGreave
        • FarGreave
    • Tunic
  • NearArm
    • NearForearm
    • NearUpperArm
  • Boxers
  • NearLeg
    • NearFoot
    • NearShin
    • NearThigh
  • Blush
  • Head
  • Body
  • FarArm
    • FarForearm
    • FarUpperArm
  • FarLeg
    • FarFoot
    • FarShin
    • FarThigh
  • Cape
idle tag
idle frames 0–3 · 4 f · 200 ms each · loops
walk tag
walk frames 4–11 · 8 f · 100 ms each · loops
run tag
run frames 12–19 · 8 f · 50 ms each · loops
fall tag
fall frames 20–23 · 4 f · 200 ms each · once
glint tag
glint frames 24–27 · 4 f · 250 ms each · once
Strips with per-frame pinhole and island counts
idle
idle strip with per-frame counts
walk
walk strip with per-frame counts
run
run strip with per-frame counts
fall
fall strip with per-frame counts
glint
glint strip with per-frame counts
Layers
35 (26 pixel, 9 groups)
Frames
28
Palette
22 entries in 8 ramps
Hidden overlap
418 px
Frame clean-up
idle 1 + 1, walk 5 + 10, run 14 + 23, fall 13 + 15 (fills + removals)
Tears
0 pinholes, 0 islands in all 9 hide states (S0–S6, S0+Glint, run-boxers) on all 28 frames
Rest vs design
0 px
Agent wall time
still 18 min; overlap pass 67 min; motion 38 min
Editor RSS peak
4.25 GB (motion); 7.11 GB in the first motion pass, which was stopped

PIP / CAPTAIN PALETTE

Cast/Pip.pas · 128 × 96 Indexed · in 1-2 PALETTES, ALL CLEAR

One sprite, five palettes. The Hero palette changes only the ink, scarf, hoodie, trousers, emblem and mask; the emblem entries cycle.

  1. The Krea 2 design
    Design Krea 2 picture, 64 × 64 cells of 16 px
  2. The design on its grid
    Grid one colour per cell, x3
  3. The design reference
    Reference the imported design, x2
  4. The finished rest frame
    Rest frame the layered sprite, x2 0 px
The pieces of Pip / Captain Palette
The pieces sheet from the build.

Layer tree, front first (16)

  • NearArm
    • NearForearm
    • NearUpperArm
  • Scarf
  • Head
  • Bag
  • Body
  • FarArm
    • FarForearm
    • FarUpperArm
  • NearLeg
    • NearThigh
    • NearShin
  • FarLeg
    • FarThigh
    • FarShin
Pip in the five carrier palettes
The five carrier palettes on the same pixels (x4).
idle tag
idle frames 0–3 · 4 f · 200 ms each · loops
nervous tag
nervous frames 4–7 · 4 f · 100 ms each · loops
spin tag
spin frames 8–13 · 6 f · 150 150 150 150 200 200 ms · once
pose tag
pose frames 14–19 · 6 f · 250 ms each · loops
Strips with per-frame pinhole and island counts
idle
idle strip with per-frame counts
nervous
nervous strip with per-frame counts
spin
spin strip with per-frame counts
pose
pose strip with per-frame counts
Layers
16 (12 pixel, 4 groups)
Frames
20
Palette
21 entries in 9 ramps; 5 carrier palettes (Civilian, Goth, Banana, Festive, Hero)
Hidden overlap
908 px
Frame clean-up
17 px (nervous 5, spin 2, pose 10)
Tears
0 pinholes, 0 islands on every frame
Rest vs design
0 px
Agent wall time
still 25 min; motion 14 min
Editor RSS peak
2.21 GB

GLOB

Cast/Glob.pas · 128 × 96 Indexed · in 1-2 PALETTES, ALL CLEAR

Squash and stretch on a bounce of 6 frames. The pink swap at the end of Scene 2 is the same pixels with another palette.

  1. The Krea 2 design
    Design Krea 2 picture, 64 × 64 cells of 16 px
  2. The design on its grid
    Grid one colour per cell, x3
  3. The design reference
    Reference the imported design, x2
  4. The finished rest frame
    Rest frame the layered sprite, x2 0 px
The pieces of Glob
5 pieces, cropped, at x2: Blush, Body, Drip, Eyes, Mouth.

Layer tree, front first (5)

  • Blush
  • Eyes
  • Mouth
  • Body
  • Drip
Glob in green and pink
Base, GlobGreen and GlobPink on the same pixels (x6).
bounce tag
bounce frames 0–5 · 6 f · 100 ms each · loops
talk tag
talk frames 6–7 · 2 f · 150 ms each · loops
Strips with per-frame pinhole and island counts
bounce
bounce strip with per-frame counts
talk
talk strip with per-frame counts
Layers
5 (Drip, Body, Mouth, Eyes, Blush)
Frames
8
Palette
GlobGreen and GlobPink carriers
Hidden overlap
262 px (rig.json)
Frame clean-up
0 px
Tears
0 pinholes, 0 islands on every frame, with and without Blush
Rest vs design
0 px
Agent wall time
about 14 min, still and motion
Editor RSS peak
about 4.3 GB

BRASH

Cast/Brash.pas · 128 × 96 Indexed · in 1-3 ANIMATION + TILES, ALL CLEAR, CONTINUE?

KO Grey is a Hue/Saturation adjustment layer at -100. Every KO frame holds only ink and the six greys.

  1. The Krea 2 design
    Design Krea 2 picture, 64 × 64 cells of 16 px
  2. The design on its grid
    Grid one colour per cell, x3
  3. The design reference
    Reference the imported design, x2
  4. The finished rest frame
    Rest frame the layered sprite, x2 0 px
The pieces of Brash
The pieces sheet from the build.

Layer tree, front first (21)

  • KO Grey (adjustment, hidden)
  • NearArm
    • NearUpperArm
    • NearElbow
      • NearForearm
  • Belt
  • Head
  • Torso
  • FarArm
    • FarUpperArm
    • FarElbow
      • FarForearm
  • NearLeg
    • NearThigh
    • NearKnee
      • NearShin
  • FarLeg
    • FarThigh
    • FarKnee
      • FarShin
  • Tails
The ko tag with KO Grey shown
ko + KO Grey the same 6 frames with the adjustment layer shown
idle tag
idle frames 0–5 · 6 f · 150 ms each · loops
dash tag
dash frames 6–9 · 4 f · 150 ms each · once
combo tag
combo frames 10–18 · 9 f · 200 ms each · once
hurt tag
hurt frames 19–20 · 2 f · 100 ms each · once
ko tag
ko frames 21–26 · 6 f · 150 150 150 150 200 200 ms · once
rise tag
rise frames 21–26 · 6 f · 200 200 150 150 150 150 ms · once, reversed
Strips with per-frame pinhole and island counts
idle
idle strip with per-frame counts
dash
dash strip with per-frame counts
combo
combo strip with per-frame counts
hurt
hurt strip with per-frame counts
ko
ko strip with per-frame counts
rise
rise strip with per-frame counts
Layers
21 (12 pixel, 8 groups, KO Grey adjustment)
Frames
27
Palette
24 entries in 8 ramps (a 6-step grey ramp for the KO)
Hidden overlap
693 px
Frame clean-up
32 pocket + 7 stray px over 26 frames, at most 6 a frame
Tears
0 pinholes, 0 islands on all 27 frames, default and KO Grey
Rest vs design
0 px
Agent wall time
still 31 min; motion 23 min
Editor RSS peak
3.02 GB

BONK

Cast/Bonk.pas · 128 × 96 (a 60 × 60 design) Indexed · in 1-3 ANIMATION + TILES, ALL CLEAR, CONTINUE?

The moss is a clipped layer over the torso, 17 islands at rest. The counter reaches 24 px. When a hit lands, the upper body leans back 3 px and then 2 px, with the head tilted back 8 and then 4 degrees and the eyes squinted.

  1. The Krea 2 design
    Design Krea 2 picture, 64 × 64 cells of 16 px
  2. The design on its grid
    Grid one colour per cell, x3
  3. The design reference
    Reference the imported design, x2
  4. The finished rest frame
    Rest frame the layered sprite, x2 0 px
The pieces of Bonk
The pieces sheet from the build.

Layer tree, front first (15)

  • HeadGroup
    • Eyes
    • Jaw
    • Head
  • NearArm
    • NearUpperArm
    • NearElbow
      • NearForearm
  • Moss
  • Torso
  • FarArm
    • FarUpperArm
    • FarElbow
      • FarForearm
  • Legs
idle tag
idle frames 0–3 · 4 f · 200 ms each · loops
block tag
block frames 4–6 · 3 f · 200 ms each · once
counter tag
counter frames 7–12 · 6 f · 150 150 150 150 200 200 ms · once
talk tag
talk frames 13–14 · 2 f · 150 ms each · loops
shrug tag
shrug frames 15–18 · 4 f · 150 150 300 300 ms · once
hurt tag
hurt frames 19–20 · 2 f · 100 150 ms · once
Strips with per-frame pinhole and island counts
idle
idle strip with per-frame counts
block
block strip with per-frame counts
counter
counter strip with per-frame counts
talk
talk strip with per-frame counts
shrug
shrug strip with per-frame counts
hurt
hurt strip with per-frame counts
Layers
15 (10 pixel, 5 groups)
Frames
21
Palette
16 entries in 5 ramps; amber eyes are emissive
Hidden overlap
1,483 px
Frame clean-up
6 px, plus 8 and 3 px on the two hurt frames
Tears
0 pinholes, 0 islands in S0, moss-hidden and eyes-hidden on every frame
Rest vs design
0 px
Agent wall time
still 37 min; motion 14 min
Editor RSS peak
1.95 GB (still)

MIRA

Cast/Mira.pas · 128 × 96 Indexed · in PRESS START, 1-4 DRAWING TOOLS, ALL CLEAR, CONTINUE?

Her pencil doubles as the trailer's mouse cursor: the Cursor layer is a 14-row copy of the tip with its hotspot at (73, 87). In 1-4 she floats while she draws: the float frames pose her legs back by 24 to 34 degrees so her boots trail, and the pencil layer does not move, so the tip stays at (84, 86).

  1. The Krea 2 design
    Design Krea 2 picture, 64 × 64 cells of 16 px
  2. The design on its grid
    Grid one colour per cell, x3
  3. The design reference
    Reference the imported design, x2
  4. The finished rest frame
    Rest frame the layered sprite, x2 0 px
The pieces of Mira
The pieces sheet from the build.

Layer tree, front first (12)

  • Cursor (hidden)
  • NearArm
    • NearFingers
    • NearHand
    • NearSleeve
  • Pencil
  • FarArm
    • FarUpperArm
    • FarForearm
  • Head
  • Body
  • Legs
idle tag
idle frames 0–3 · 4 f · 200 ms each · loops
draw tag
draw frames 4–9 · 6 f · 100 ms each · loops
stamp tag
stamp frames 10–12 · 3 f · 150 ms each · loops
point tag
point frames 13–14 · 2 f · 200 ms each · loops
cursor tag
cursor frames 15–15 · 1 f · 100 ms each · once
float tag
float frames 16–19 · 4 f · 150 ms each · loops
Strips with per-frame pinhole and island counts
idle
idle strip with per-frame counts
draw
draw strip with per-frame counts
stamp
stamp strip with per-frame counts
point
point strip with per-frame counts
cursor
cursor strip with per-frame counts
float
float strip with per-frame counts
Layers
12 (10 pixel, 2 groups)
Frames
20
Palette
26 entries in 13 ramps, built from the raw design's cell histogram
Hidden overlap
550 px
Frame clean-up
6 px
Tears
0 pinholes, 0 islands in S0, S0 + Cursor and the cursor alone on every frame
Rest vs design
0 px
Agent wall time
still 22 min; motion 10 min
Editor RSS peak
about 2 GB

DOODLE

Cast/Doodle.pas · 64 × 48 Indexed · in 1-4 DRAWING TOOLS, ALL CLEAR

Doodle has no Krea design. He was drawn in the plugin as a pencil sketch (two layers, Body and Wing), and his blur and scramble frames are the Blur and Scramble tools themselves, driven stroke by stroke. Those tool frames are checked for pinholes only, because the tools make islands by design.

rise tag
rise frames 0–3 · 4 f · 150 ms each · once
blur tag
blur frames 4–6 · 3 f · 330 ms each · once
scramble tag
scramble frames 7–11 · 5 f · 200 ms each · once
Strips with per-frame counts
rise
rise strip with per-frame counts
blur
blur strip with per-frame counts
scramble
scramble strip with per-frame counts
Layers
2 (Body, Wing)
Frames
12 (rise 0–3, blur 4–6, scramble 7–11)
Frame clean-up
3 px
Tears
0 pinholes, 0 islands on every rise frame

WICK

Cast/Wick.pas · 128 × 96 Indexed · in 1-5 SCENE LIGHTS (the NightShift sample) and the 1-5 preview on the map

Wick is the night-watch intern of the Archive: a navy guard cap two sizes too big, an oversized mustard raincoat, striped pyjama trousers, bunny slippers and a brass lantern held at arm's length. The lantern is a light source. Its flame is a layer of its own with three flicker cels, and every frame records where the flame is (the light socket, at (81, 68) at rest), so a 2D light can follow it. The flame and the glass are emissive ramps. Each leg is one piece: at 11 px long a thigh and a shin tore into noise, so the tiptoe reads through the leg swing, the slipper tilt and the ears of the bunny slippers flopping on every step.

Every frame of Wick, with its pinhole and island counts and the floor line
Every frame, with its pinhole and island counts and the floor line.

Layer tree, front first (12)

  • Sweat
  • NearArm
  • Cap
  • Body
  • Head
  • FarArm (the lantern arm)
  • Flame
  • Lantern
  • NearSlipper
  • NearLeg
  • FarSlipper
  • FarLeg
Rest frame
rest frame frame 0 · equals the design 0 px
idle tag
idle frames 0–3 · 4 f · 200 ms each · loops
walk scared tag
walk scared frames 4–11 · 8 f · 110 ms each · loops
startle tag
startle frames 12–16 · 5 f · 70 90 120 90 160 ms · once
tremble tag
tremble frames 17–18 · 2 f · 60 ms each · loops
offer tag
offer frames 19–21 · 3 f · 150 150 300 ms · once
flee tag
flee frames 22–29 · 8 f · 70 ms each · loops
Strips with per-frame pinhole and island counts
idle
idle strip with per-frame counts
walk scared
walk scared strip with per-frame counts
startle
startle strip with per-frame counts
tremble
tremble strip with per-frame counts
offer
offer strip with per-frame counts
flee
flee strip with per-frame counts
The normal map, every frame
The normal-map document of Wick
Layers
12
Frames
30 (idle 0–3, walk_scared 4–11, startle 12–16, tremble 17–18, offer 19–21, flee 22–29)
Palette
37 entries, with emissive flame and glass ramps
Advance
about 12 px per walk_scared cycle and 24 px per flee cycle, with no foot slide
Normal map
Cast/Wick_Normal.pas, from the shape (bevel 2 at 45°); all 30 sprites are bound to it
Tears
0 pinholes, 0 islands on every frame, 0 fragments in any piece
Rest vs design
0 px; feet on row 89 in every stance frame

BOOLEAN

Cast/Boolean.pas · 128 × 96 Indexed · in 1-5 SCENE LIGHTS (the NightShift sample) and the 1-5 preview on the map

Boolean is a plump, mint-white ghost with no arms or legs, one curling tail and a floppy lavender night-cap with a pompom. It has two states, BOO and boo, and it is scared of the dark, so it drifts toward the lantern like a moth. Its eyes, its rim and its pompom are emissive, and every frame records the body centre as the light socket, so Boolean's own mint glow follows it. The Face layer is five small parts (two eyes, a mouth, two cheeks) that survive clean-up on purpose. The vanish is the material's dissolve, not cels.

Every frame of Boolean, with its pinhole and island counts and the floor line
Every frame, with its pinhole and island counts and the floor line.

Layer tree, front first (5)

  • Pompom
  • Cap
  • Face
  • Body
  • Tail
Rest frame
rest frame frame 0 · equals the design 0 px
float tag
float frames 0–7 · 8 f · 120 ms each · loops
peek tag
peek frames 8–11 · 4 f · 300 160 140 220 ms · once
spook tag
spook frames 12–15 · 4 f · 90 110 240 140 ms · once
shy tag
shy frames 16–19 · 4 f · 110 120 140 600 ms · once, then holds
drift tag
drift frames 20–25 · 6 f · 130 ms each · loops
scream tag
scream frames 26–28 · 3 f · 70 ms each · loops
Strips with per-frame pinhole and island counts
float
float strip with per-frame counts
peek
peek strip with per-frame counts
spook
spook strip with per-frame counts
shy
shy strip with per-frame counts
drift
drift strip with per-frame counts
scream
scream strip with per-frame counts
The normal map, every frame
The normal-map document of Boolean
Layers
5
Frames
29 (float 0–7, peek 8–11, spook 12–15, shy 16–19, drift 20–25, scream 26–28)
Palette
21 entries, with emissive eyes, rim and pom ramps
Normal map
Cast/Boolean_Normal.pas, from the shape (bevel 5 at 50°) with the Face layer cleared, so the eyes, cheeks and mouth read flat; all 29 sprites are bound to it
Tears
0 pinholes on every frame; 0 islands, except the peek's first frame, where the two eyes are separate by design
Rest vs design
0 px

The world

Six stages on 16 px tiles. The first versions read as plain tilemaps, so each stage was redrawn to game-quality detail, with real games as references. Drag across each picture to compare the first version with the final one.

Overworld

Stages/Overworld.pas, OverworldStarred.pas, OverworldTiles.pas, OverworldAnim.pas, Hub/Lock1.pas to Lock5.pas, Hub/Path1.pas to Path5.pas, Hub/Stars.pas, Previews/Preview1-1.pas to Preview1-5.pas · the hub in the intro and after each level; the outro uses the starred copy

The five-zone hub, fully unlocked Overworld, first version

Real-game references

  • Super Mario Land 2 (zones that own their part of the map)
  • Donkey Kong Country 2 (the Crocodile Isle maps)
  • Sonic Generations and Sonic Superstars (zone previews, colour returning as you clear a zone)
  • Sonic Mania (short animated-tile loops)
  • Super Mario World (the overworld map)

Final version

480 × 272, 539 unique tiles, a 184-entry Indexed palette with one ramp per zone. Five zones tile the whole canvas, with no open meadow between them, and every border has a perimeter that belongs to one side. The path and the five stone discs stay put. 1-1 is a castle courtyard around the lake, which becomes its moat, with a drawbridge where the path crosses. 1-2 is a rooftop city with a water tower, a blinking neon sign and a retaining wall to the south. 1-3 is the arena at night, with braziers. 1-4 is a sketchbook with a torn paper edge all round. 1-5 is the haunted Archive behind an iron fence and a fog line, with a crypt court, candles, graves and dead trees.

The hub with its animated overlay
The map in motion. OverworldAnim.pas lays 12 frames of 100 ms over the stage: moat and lake ripples, the waterfall, banners, torch and brazier flames, the neon sign, window lights, the paper corner, wisps, fog and a few critters. Every loop divides 12 frames, so they repeat together.

The hub unlocks as you go

The map starts locked. Each zone has a lock document: a flat three-tone silhouette of its landmarks, with fog banks drifting over it (a fog tag of 12 frames at 100 ms). After each level the trailer returns to the map for a second and a half. The next path draws itself (a draw tag of 13 short frames, with a bright tip), the zone floods with colour from the end of the path outward (a flood tag of 10 frames at 40 ms, with a bright front), and its named preview pops open. Zones already cleared show their stars. Every overlay is cut from the real renders of the stage, so a pixel of an overlay equals the stage pixel it stands for.

Six frames of the hub: all zones locked, the path to 1-3 drawing, the arena flooding in, its preview open, every zone open, and the starred map in the outro
Left to right, top row: the whole map locked in the intro, the path to 1-3 drawing, the arena flooding in. Bottom row: its preview open, every zone open with the 1-5 ARCHIVE preview, and the starred map the outro stands on.
The return to the hub before level 1-3, at x2
The whole return before 1-3 ARENA, at x2.

A preview for every zone

When a zone unlocks, a framed window opens over the map with that level's own art at 1:1. Each preview is a .pas document of 112 × 99 pixels with an open tag (the window grows from a line) and a loop tag, and its characters are frames rendered by the plugin. Shown at x4.

The starred Overworld
OverworldStarred.pas, the copy the outro uses: the five node cells on gold-star discs, with node glows in the Light layer.
Tileset: 256 × 544 px of 16 px tiles, shown x2
Overworld tileset

Courtyard

Stages/Courtyard.pas · 1-1 LAYERS

Courtyard, version 2 Courtyard, first version

Real-game references

  • Castlevania: Symphony of the Night (the castle entrance and the outer wall)
  • Castlevania: Rondo of Blood
  • Shovel Knight (Pridemoor Keep)

Final version · 21 min of agent time

218 tiles, 45 colours. Far castle, hills and clouds, battlements, 11 brick variants, banners, ivy, a window, sconces, flagstones, a broken ledge and the pit. Sir Stacks' edge contrast 1.02 to 1.61; background noise 0.045 to 0.011.

Tileset: 256 × 224 px of 16 px tiles, shown x2
Courtyard tileset

Rooftop

Stages/Rooftop.pas · 1-2 PALETTES

Rooftop, version 2 Rooftop, first version

Real-game references

  • Katana Zero (dusk city rooftops, neon)
  • Celeste (chapter 3, night-city colours)
  • Gunpoint (rooftop silhouettes)
  • Mega Man X (Highway Stage skyline)
  • Hotline Miami (palettes)

Final version · 22 min of agent time

398 tiles, 63 colours in 13 ramps. Three skyline depths, a neon palette sign, a stair house and a puddle reflection. Edge contrast went up for all seven palette states; noise 0.0285 to 0.0129.

Tileset: 256 × 400 px of 16 px tiles, shown x2
Rooftop tileset

Arena

Stages/Arena.pas, ArenaBackdrop.pas, ArenaRows*.pas · 1-3 ANIMATION + TILES and the post-credit scene

Arena, version 2 Arena, first version

Real-game references

  • Street Fighter II (Ryu's Suzaku Castle, Sagat's Thailand temple)
  • Mortal Kombat II (The Pit II, Kombat Tomb)
  • Blasphemous (stonework, chains, candles)
  • Shovel Knight (tile variety)

Final version · 45 min of agent time

88 tiles, 40 colours. A night gallery with a crowd, niches, a crest, chains, torch plates and a sandstone floor. Readability against the wall: Bonk 1.01 to 1.58, Brash 1.62 to 2.54; band noise 0.043 to 0.008.

Tileset: 256 × 128 px of 16 px tiles, shown x2
Arena tileset

Sketch

Stages/Sketch.pas · 1-4 DRAWING TOOLS

Sketch, version 2 Sketch, first version

Real-game references

  • Drawn to Life (the drawn world)
  • Paper Mario (the paper look)
  • Scribblenauts
  • notebook games like Doodle Jump (graph paper)

Final version · 20 min of agent time

311 tiles. A sketchbook page: spiral binding, margin, header, doodles, a coffee ring, an eraser ghost, a cut-away of earth with a chest and a dragon skull, a hatched gap with spikes and a curled corner. The play band stays plain; noise 0.069 to 0.023.

Tileset: 256 × 320 px of 16 px tiles, shown x2
Sketch tileset

Archive

Stages/Archive.pas, ArchiveTiles.pas, ArchiveAnim.pas, ArchiveAnimTiles.pas · 1-5 SCENE LIGHTS, and the NightShift sample

The Archive with its baked lighting The Archive without lighting

Real-game references

  • Castlevania: Symphony of the Night (the Long Library)
  • Castlevania: Rondo of Blood and Bloodstained: Curse of the Moon (purple-grey brick, a moon window)
  • Blasphemous (the ossuary niche)
  • Luigi's Mansion and Shovel Knight's Lich Yard (the portrait whose eyes follow you)

Final version

An undercroft under an old library, 30 × 17 cells of 16 px that repeat every 480 px so the stage can scroll. Bookcases with labelled crowns, a moon window, a crypt arch onto a receding passage with two eyes, an ossuary niche, a portrait, cobwebs and a red carpet runner. 222 unique tiles, a 98-entry palette with one ramp per material, and emissive ramps for flames, moonlight and eyes. The Light layer is baked from three passes: candle and window pools, a darker vault and a moonbeam. The sample copy of the stage has that layer hidden, so scene lights do the lighting, and every document has a normal-map companion.

The Archive animated
ArchiveAnim.pas: 16 frames of 120 ms. Candle flames, the star twinkle in the window, two swaying webs, dust motes falling through the moonbeam and the passage eyes blinking.
The Archive tiled twice
The map repeats every 480 px, shown twice side by side.
Tileset: 256 × 272 px of 16 px tiles, shown x4
Archive tileset
Props: sconce, candelabra, candles, hook lantern, book stack, skull, portrait, cobweb, spider and bookshelf, x4
Archive props

The arena builds row by row

Scene 3 opens on the backdrop, then five row-group documents slide in, wall first and floor last. Each is a 480-pixel-wide strip cut from the Arena's tile map with 0 px difference.

Backdrop
Arena backdrop at x2
Rows 04-06
Arena rows 4 to 6
Rows 07-09
Arena rows 7 to 9
Rows 10-12
Arena rows 10 to 12
Rows 13-14
Arena rows 13 and 14
Rows 15-16
Arena rows 15 and 16

Props and effects

Pillar
Pillar, x4
Water tower
WaterTower, x4
Castle
Castle, x4
Torch burning
Torch, burn
Banner swaying
Banner, sway
Node pulse
NodePulse, 3 frames at 150 ms
The hit spark
FxHit, hit: 4 frames at 50 ms, x6
The block spark
FxBlock, spark: 3 frames at 50 ms, x8

Tool moments in Scene 4

These props were drawn by the plugin's own drawing tools, driven stroke by stroke and saved as tags, so each frame of the tag is a state the tool really left behind. In the trailer Mira floats beside the page and draws them, and the stroke-by-stroke frames are what the scene shows as it happens. Each animation here pauses on its last frame before it loops.

The Free Transform and custom brush strips, with per-frame counts
Boulder turn strip
Flowers stamp strip

The UI kit, titles and logo

UI/Kit.pas is one 480 × 270 document: the level card, the dialogue box, ten name tags, a star and the iris. Every box and card on this page copies its colours. Text contrast: box 16.31:1, card 17.23:1, name tags 5.0:1 or more.

UI kit, all layers, x2
UI/Kit.pas with every layer shown, x2.
Sir Stacks tag Pip tag Captain Palette tag Glob tag Brash tag Bonk tag Mira tag Doodle tag Wick tag Boolean tag

How it was made

Nine steps, in order. Steps 2 to 4 are agents working through the plugin's public surface; steps 5 to 8 are the trailer rig, which lives in its own Editor-only folder and never ships with the plugin.

The trailer pipeline Design, agent verbs, .pas documents, beat script, bake, Unity scene, Recorder, FrameCheck, edit. 1DESIGNKrea 2 picture through ComfyUI64 × 64 cells of 16 px 2AGENT VERBSpas.* commands and queries54 verbs, 21,628 logged calls 3.PAS DOCUMENTSIndexed, layered, tagged56 in the master script 4BEAT SCRIPT13 scene files, one trailer.json599 beats, 71 audio slots 5BAKEsprites rendered by the plugintear gate on every frame 6UNITY SCENEY-sorted actors, 480 × 270104 actors in 13 scenes 7RECORDERnative, x4 and x8 PNG, 60 fps6,240 frames each 8FRAMECHECKframes rebuilt from fresh renders2,182 frames, 0 px different 9EDITffmpeg join, numpy mix-14 LUFS, five encodes

Behind the scenes: the real window

A 4:07 tour of the Studio window as you get it in Unity: the window itself, Bonk built step by step, every drawing tool at real speed, palettes, animation, tiles, scene lights, an agent driving the open document, and how the trailer above was assembled. Every window shot is the real Editor, recorded on 2026-10-09 and 2026-10-11; the cursor is drawn afterwards from the logged input, and the timelapses carry their speed. The Scene lights chapter has no cursor: the checkbox is turned on with the same call the Inspector's checkbox makes, and an outline marks the row.

Watch on YouTube

The 960 × 540 page copy. The music is an original chiptune score synthesised in code for this video ("workshop", D major, 100 BPM, -14 LUFS). The 1080p version is on YouTube.

Where the plugin fell short

While they built the trailer, the agents wrote down every place where the plugin's verbs were not enough and they had to fall back to a script of their own: 136 notes in all. 86 of them asked for a new verb and 22 for a clearer explanation in the plugin's SKILL.md. The first 40 became a round of new plugin features, among them the verbs that peel a design, clean a frame, grow hidden overlap and check a pose, and the plugin now has 80+ verbs.

The numbers

Every figure here is read from a file: the script, the build logs and reports, the op logs and the capture folders.

6,240frames: 104.0 s at 60 fps, recorded at native, x4 and x8
13scenes, compiled together into one script
599beats, 67 text rows, 71 audio slots, 280 cue rows
56documents in the master (104 actors); 85 .pas files in the trailer folders (9 characters, 7 palettes, 64 stages, props and hub overlays, 5 in UI/), and 15 normal-map companions
123 / 195layers / frames across the nine cast documents
2,182 / 2,182FrameCheck frames at 0 px in the master takes, x4 and x8 exact
54distinct pas.* verbs in 21,628 logged calls (16 op logs)
136places the agents noted where the plugin fell short
7.11 GBhighest Editor RSS (Sir Stacks' first motion pass, stopped)
-14.0LUFS integrated, true peak -1.0 dB, on the release mix

The verbs the agents called most

Logged calls per verb, top 12pas.draw.rect: 4725; pas.read.pixels: 3938; pas.transform.free: 2701; pas.pixels.text: 1966; pas.pixels.set: 1666; pas.palette.addEntry: 1017; pas.read.palette: 656; pas.check.tears: 567; pas.render.frame: 558; pas.read.document: 488; pas.frame.duplicate: 391; pas.palette.ramp: 35601,0002,0003,0004,0005,000pas.draw.rect: 4,725 callspas.draw.rect4,725pas.read.pixels: 3,938 callspas.read.pixels3,938pas.transform.free: 2,701 callspas.transform.free2,701pas.pixels.text: 1,966 callspas.pixels.text1,966pas.pixels.set: 1,666 callspas.pixels.set1,666pas.palette.addEntry: 1,017 callspas.palette.addEntry1,017pas.read.palette: 656 callspas.read.palette656pas.check.tears: 567 callspas.check.tears567pas.render.frame: 558 callspas.render.frame558pas.read.document: 488 callspas.read.document488pas.frame.duplicate: 391 callspas.frame.duplicate391pas.palette.ramp: 356 callspas.palette.ramp356
Logged calls per verb across the op logs, top 12. The first stages were drawn mostly with pas.draw.rect; the final stages wrote their tiles as pixel text with pas.pixels.text, about one call per tile; the cast agents posed their pieces with pas.transform.free, Sir Stacks alone 1,571 times.

Agent wall time, as the logs record it

WorkMinutes
Sir Stacks: still, overlap pass, motion18, 67, 38
Pip: still, motion25, 14
Glob: still and motion14
Brash: still, motion31, 23
Bonk: still, motion37, 14
Mira: still, motion22, 10
Stages, first version (two agents)19, 15
UI kit, credits, Doodle11
Tool captures; Arena wall and rows13, 15
Stages, final version: Arena, Courtyard, Rooftop, Overworld, Sketch45, 21, 22, 18, 20
Scenes: intro, 1-1, 1-2, 1-3, 1-4, outro, credits, post-credit (first versions)6, 8, 7, 22, 25, 8, 3, 7
Re-take of all eight on the final stages25
Edit and release encodes18
Level 1-5, the connecting hits, Mira floating, the fifth node; art, takes and finals105

Credits

SIR STACKS PIP CAPTAIN PALETTE GLOB BRASH BONK MIRA DOODLE WICK BOOLEAN
The credits sheet: CAST, Sir Stacks, Pip / Captain Palette, Glob, Brash, Bonk, Mira, Doodle, Wick, Boolean

Asset Store images, in store order

Eleven 2400 × 1600 images: six are trailer art with callouts, four put the Studio window over the stage, and one compares the lit Archive in three render pipelines with the unlit original. Shown at a quarter of their size.

Store image 1: Captain Palette on the Rooftop, with the five-palette strip
01 Captain Palette on the Rooftop, with the five-palette strip
Store image 2: The Layers panel: hide state S3, groups and the Glint clip
02 The Layers panel: hide state S3, groups and the Glint clip
Store image 3: Brash's KO with the strip of turn frames
03 Brash's KO with the strip of turn frames
Store image 4: The palette menu on the five library palettes
04 The palette menu on the five library palettes
Store image 5: Sir Stacks with the S0–S6 hide-state strip
05 Sir Stacks with the S0–S6 hide-state strip
Store image 6: KO Grey with the Hue/Saturation settings at -100
06 KO Grey with the Hue/Saturation settings at -100
Store image 7: Mira's sketch level with five tools marked
07 Mira's sketch level with five tools marked
Store image 8: The Tileset and the Scratchpad (the Arena map)
08 The Tileset and the Scratchpad (the Arena map)
Store image 9: Bonk's counter, with the moss and the eyes at x2
09 Bonk's counter, with the moss and the eyes at x2
Store image 10: Glob, green to pink
10 Glob, green to pink
Store image 11: the lit Archive with lights off, in Built-in, in URP 2D and in HDRP
11 The Archive with lights off, in Built-in, URP 2D and HDRP