Art brief: give each asset type its own palette block
The palette constraint is not uniform across assets, so a single generic line was not enough: - Portraits list only the 11 non-sky colours, since a face never shows sky; omitting the sky slots is safer than asking a generator to avoid them. Adds the flat #492424 backdrop requirement (HMMM blits have no transparency, so whatever surrounds the head gets copied literally). - The background block is split by region: four sky colours inside the window opening, eleven interior colours everywhere else, with the frame and mullions counted as interior wood. Also reserves the top 16 and bottom 64 rows the game draws over. - Sprites take no palette at all — they are hardware sprites coloured at runtime, so the art only defines shape. Notes that the available clothing colours are few enough that characters need distinct ones or they blur together in the dialogue box. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -86,13 +86,28 @@ Character notes in `SCRIPT.md` §1. Written as a girl there; that's one word to
|
|||||||
change if you'd rather — the dialogue beats themselves use no gendered
|
change if you'd rather — the dialogue beats themselves use no gendered
|
||||||
pronouns.
|
pronouns.
|
||||||
|
|
||||||
**Common style stem** — prepend to all three:
|
### Portrait palette block — paste into every portrait prompt
|
||||||
|
|
||||||
|
Portraits never show sky, so the four sky slots are simply absent from the
|
||||||
|
list. That is safer than asking the generator to avoid them.
|
||||||
|
|
||||||
|
```
|
||||||
|
Use only these 11 colours and no others:
|
||||||
|
#242424 #492424 #924924 #B66D49 #FFB649 #FFDB92 #6D4949 #6D2400
|
||||||
|
#496DB6 #FFB692 #FFFFDB
|
||||||
|
Skin: #FFDB92 highlight, #FFB692 base, #B66D49 shadow, #924924 deep shadow.
|
||||||
|
Hair and outlines: #242424 or #492424.
|
||||||
|
Eye whites and highlights: #FFFFDB.
|
||||||
|
Fill the entire background behind the head with flat #492424.
|
||||||
|
Do not use pure black #000000 anywhere.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Common style stem** — prepend to all three, then append the palette block:
|
||||||
|
|
||||||
> 48x48 pixel art portrait, 1987 Japanese anime style as drawn for MSX2 or
|
> 48x48 pixel art portrait, 1987 Japanese anime style as drawn for MSX2 or
|
||||||
> PC-88 games, head and shoulders, three-quarter view, hard-edged pixels, no
|
> PC-88 games, head and shoulders, three-quarter view, hard-edged pixels, no
|
||||||
> anti-aliasing, limited 16 colour palette of warm browns oranges and creams,
|
> anti-aliasing, flat cel shading, simple readable silhouette, flat single
|
||||||
> flat cel shading, dark navy school uniform, simple readable silhouette,
|
> colour background
|
||||||
> plain dark background
|
|
||||||
|
|
||||||
**Aki — neutral**
|
**Aki — neutral**
|
||||||
> ...17 year old Japanese high school student, straight dark bob-length hair,
|
> ...17 year old Japanese high school student, straight dark bob-length hair,
|
||||||
@@ -112,7 +127,11 @@ pronouns.
|
|||||||
|
|
||||||
## 4. Prompts — the rest of the cast (M8, not urgent)
|
## 4. Prompts — the rest of the cast (M8, not urgent)
|
||||||
|
|
||||||
Same style stem, swapping the uniform line.
|
Same style stem and the **same portrait palette block from §3**, swapping the
|
||||||
|
clothing line. Note the clothing colours available are only `#496DB6` (blue),
|
||||||
|
`#6D4949` (muted brown-grey), `#6D2400` (dark red-brown), `#492424` and
|
||||||
|
`#242424` — so give each character a distinct one or they'll blur together in
|
||||||
|
the dialogue box.
|
||||||
|
|
||||||
**Ōta-san** — retired stationmaster, ~70, black coffee, punctual.
|
**Ōta-san** — retired stationmaster, ~70, black coffee, punctual.
|
||||||
> elderly Japanese man in his seventies, close-cropped grey hair, deeply
|
> elderly Japanese man in his seventies, close-cropped grey hair, deeply
|
||||||
@@ -158,10 +177,38 @@ Composition is fixed by the code — see `DESIGN.md` §4 and `DrawScene()`:
|
|||||||
> violet and amber dusk sky, wooden door on the right, hanging lamp with warm
|
> violet and amber dusk sky, wooden door on the right, hanging lamp with warm
|
||||||
> glow above the counter, wood panelling, shelves with glassware, cosy and
|
> glow above the counter, wood panelling, shelves with glassware, cosy and
|
||||||
> quiet, 1987 MSX2 game art, hard-edged pixels, no anti-aliasing, flat cel
|
> quiet, 1987 MSX2 game art, hard-edged pixels, no anti-aliasing, flat cel
|
||||||
> shading, warm brown and orange interior with the sky in violet and amber
|
> shading
|
||||||
|
|
||||||
**The sky through that window must use only slots 8–11.** Everything else in
|
### Background palette block — this one is split by region
|
||||||
the room must avoid them. That's the whole seasonal system riding on one rule.
|
|
||||||
|
Unlike the portraits, the background needs all 15 colours — but **which
|
||||||
|
colours may appear is decided by where you are in the image**. This is the
|
||||||
|
constraint that makes seasons free, and it is the easiest one to get wrong.
|
||||||
|
|
||||||
|
```
|
||||||
|
Use only these 15 colours and no others.
|
||||||
|
|
||||||
|
For the sky visible through the window, use ONLY these four:
|
||||||
|
#492492 #9249B6 #DB6D6D #FF9249
|
||||||
|
|
||||||
|
For everything else — walls, floor, counter, door, window frame, lamp,
|
||||||
|
shelves, glassware, every object in the room — use ONLY these eleven:
|
||||||
|
#242424 #492424 #924924 #B66D49 #FFB649 #FFDB92 #6D4949 #6D2400
|
||||||
|
#496DB6 #FFB692 #FFFFDB
|
||||||
|
|
||||||
|
The four sky colours must appear nowhere except inside the window opening.
|
||||||
|
The window frame, mullions and sill are wood and use the interior colours.
|
||||||
|
Do not use pure black #000000 anywhere.
|
||||||
|
Leave the top 16 rows and the bottom 64 rows flat #242424 — the game draws
|
||||||
|
its own status bar and dialogue box over them.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why this one rule matters more than the rest of this document:** each season
|
||||||
|
and hour of day is a 32-byte palette swap on the same bitmap. Repaint slots
|
||||||
|
8–11 and the sky goes from dusk to noon to rain for free. But if a chair leg
|
||||||
|
or a coffee cup is painted in `#9249B6`, that chair leg changes colour every
|
||||||
|
time the sun moves — and you won't find out until M7, long after the art is
|
||||||
|
finished.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -172,5 +219,11 @@ is the same silhouette dilated by one pixel, drawn behind. Sprite mode 2, so
|
|||||||
each layer is a single colour — these are shapes, not shaded art. Current
|
each layer is a single colour — these are shapes, not shaded art. Current
|
||||||
placeholders are in `kissaten.c` as `g_SprCustFill` / `g_SprCustLine`.
|
placeholders are in `kissaten.c` as `g_SprCustFill` / `g_SprCustLine`.
|
||||||
|
|
||||||
|
**Palette does not apply here in the usual sense.** These are hardware
|
||||||
|
sprites, not bitmap art: each layer is one flat colour chosen at runtime by
|
||||||
|
the code, so the image only needs to define *shape*. Draw them as pure
|
||||||
|
black-on-white silhouettes and I'll assign colours — currently `#496DB6` for
|
||||||
|
the fill layer and `#242424` for the outline, per customer.
|
||||||
|
|
||||||
Worth doing by hand rather than generating; a 16×16 single-colour silhouette
|
Worth doing by hand rather than generating; a 16×16 single-colour silhouette
|
||||||
is faster to draw than to prompt for.
|
is faster to draw than to prompt for.
|
||||||
|
|||||||
Reference in New Issue
Block a user