# Prologue art direction — candidate build

## Resolution contract

| Element | Current candidate |
|---|---|
| Logical canvas | 640×360, nearest-neighbour integer scaling |
| Full HD presentation | 1920×1080 = exact 3× |
| Environment tiles | 32×32 |
| Sprite cell / foot anchor | 48×64 / (24, 61) |
| Speaker walk atlas | 384×256: eight timed phases from four key drawings, four rows |
| Guard walk atlas | 144×256, unchanged |
| Idle strips | 48×256, stable face/body reference |
| Fiddle-soldier run | 192×256, distinct poses and flight phases |
| Direction rows | south, west, east, north |
| Speaker walk sequence | four limb drawings, each with two timed weight phases |
| Special poses | Ganoes 144×64 with anchored rise; soldiers 48×64 held pose |
| Dialogue bust exports | 160×192, clean transparent alpha |
| Compact bust display | fit proportionally inside 128×160 |

Body height inside each cell: Ganoes44, adolescent50, commander56, Surly54, guards58 pixels. Aseprite uses one uniform scale factor across a character’s sheet; it does not widen the figure.

## Shared visual direction

### Anatomy and optional equipment

Head, neck, shoulders and torso must form a coherent figure before adding equipment. Fiddler’s instrument is optional equipment; its silhouette must never justify an offset head, compressed body or replacement head/back patch. Future equipped/unequipped variants must share body proportions and attachment landmarks. Produce an intact base body and separate instrument layer when we create those variants. Current Fiddler art still contains the painted-in fiddle; it does not yet support removing it at runtime.

Smoke-darkened midday at Mock’s Hold: muted limestone, black iron, smoky blue/mauve greys, restrained rust and ember accents. Characters need simpler readable clusters than the textured background. Sea of Stars and Chained Echoes inform the desired craft and polish; their designs are not copied. Old Fire Emblem portraits are not visual references.

Use the selected neutral portrait and walk sheet as a character’s reference pair for revisions. Expression variants should change brows, eyes and mouth while retaining identity, clothing, framing and lighting. Do not mirror the commander’s portrait: his burn belongs on his anatomical left cheek/jaw.

## Pipeline and consistency limits

New images and substantial revisions use built-in ImageGen. Generated masters and exact prompts remain in `art/source/`; processed images have separate versioned paths. Generated source sheets did not reliably obey equal row spacing. Read-only connected-component analysis identified figure bounds; Aseprite cropped and aligned them. Naive equal-grid exports were superseded because they clipped heads.

Aseprite handles alpha cleanup, uniform nearest-neighbour resizing, padding, slicing and exports. Initial exports resize the generated masters once. Later minor motion cleanup edits native sprite pixels without resizing them again. Current binary alpha avoids soft fringes. A shared 64-colour palette experiment exists in `art/sprites/clean/` but is not selected in the game. The cast has a common visual family; exact shared-palette/native-pixel polish is still pending review.

## Book authority

The entire book can be read for continuity. Prologue age, clothes, equipment and actions take priority. Keep confirmed traits separate from interpretation. Ganoes’s noble civilian tailoring is a user-directed interpretation, not a described house uniform. Do not add banners or heraldry without evidence. Claw faces remain concealed.

## Candidate status

No overnight output is approved by default. Selected versions are recorded in `content/characters.json` and `art/CANDIDATE_MANIFEST.json`. Preserve rejected versions as history, never as production references. See `REVIEW_START_HERE.md` for known defects and review priorities.

## Motion revision

Earlier walks use fixed head/eye pixel patches and head-based horizontal alignment. Surly v5 uses a revised ImageGen sheet with smaller head/hair proportions; the complete head/neck from its own passing pose is held per direction, using explicit bounds above the moving forearms. Do not paste the older oversized head back onto this sheet. Small chest-core patches stabilise details; moving arms/legs remain free. Fiddle attachment is corrected in the north idle and gait frames. Running flight frames translate the whole figure upward 2 pixels while retaining its internal pixel pattern. The tiptoe exporter preserves Ganoes’s neutral head, torso and leg proportions, borrows only the bent forearms, and translates the complete figure by 0/1/2 pixels with short boot/toe contacts. Never stretch shin, thigh or torso bands to make a character rise. Historical soldier lean poses hold rather than loop; the current scene uses upright idle. Pixel snapping is enabled. No smooth fractional camera zoom is used.

## Portrait expression changes

Use the shared portrait_view.gd component for in-place expression blends (0.20 seconds). Keep the face and bust framing aligned; no scale/bounce/deformation is applied. Blend only within the same character's portrait history, never between speakers. Alpha-aware colour blending preserves transparent hair/shoulder edges; both textures use nearest sampling. Static endpoint portraits remain the original selected PNGs.

## Walk weight and head motion

Keep the face pixels consistent while moving the head with the shoulders/body through the stride. Walk_v6 has eight timed weight phases from four existing drawings. Ganoes/Fiddler use a two-pixel low-to-high range; commander/Surly use one pixel. The complete figure moves rigidly, with a one-pixel boot-edge adjustment to retain the authored planted sole. Never stretch the neck, torso or legs to make a bob. Timing weights and offsets are authored in content/characters.json; runtime cadence uses the sum of the relative frame durations and the route speed/stride. The in-game gallery uses the same exported sprites as the cutscene. See WALK_STUDY.md for sources and the before/after preview.

## Distinct identities within one style

The first fishergirl inherited Ganoes's face because his portrait was used as the only style reference. The user rejected that resemblance. A shared palette, pixel density and lighting must not imply a shared face. Define unrelated characters' cheek/jaw shape, eye shape, nose, brows, hairline and silhouette independently. Keep explicit identity references separate from rendering references. Only use a character's own established master to derive expressions and matching sprites. Ganoes and Tavore may have family resemblance; the fishergirl is unrelated.

Fishergirl revision 2: rounder cheek planes, shorter rounded chin, broader small nose, more horizontal brown eyes, straight brows, centre-parted smooth black hair with exposed forehead and no spiky fringe. Those precise features and olive-tan complexion are visual interpretations. Her youth, thick black hair and brown eyes remain source-backed. Prior fishergirl portraits/sprites are historical rejected identity candidates and must not re-enter the review through filename globbing.

## Feedback pass — 17 October

See `SPRITE_CONTRACT.md` for the replacement-body family and gait requirements. The new full-sheet trials still repeat contacts and are not selected as finished walks. The current cast remains coherent while the focused single-direction pilot is developed.

Selected subtle expressions now use `content/portrait_expression_masks.json`: neutral hair, clothes, framing and alpha stay fixed. Aseprite copies only facial rectangles. Reproduce via `tools/prepare_prologue_portraits.py`.

Ganoes has explicitly black hair in chapter1, line625. Child and adult candidates now use near-black/cool-charcoal hair ramps, with geometry preserved. The old warm hair was an interpretation, not stronger book evidence. `tools/recolor_ganoes_hair.lua` records this native colour adjustment. Commander hair is unchanged.

The current prologue uses only spoken dialogue. No narration or internal-thought boxes and no narration toggle. Prose beats remain source references for staging/audio. `content/dialogue_punctuation_audit.json` records the punctuation-only edits needed after removing dialogue tags; source text and original quote fragments remain intact.

The tower at columns16–19 is attached to the wall; the extra stair tile is removed. Commander/Fiddler watch upright. Ganoes retains the approved tiptoe geometry. Surly leads out; followers arrive at the shared threshold0.65s apart and disappear individually.
