Files

316 lines
11 KiB
Markdown

# Prompt Rules
Use this file when writing sprite prompts by hand.
Do not delegate prompt writing to a script unless you specifically need parity with an older generated prompt.
## Global Rules
Always keep these constraints:
- background is 100% solid flat magenta `#FF00FF`
- no gradients in the background
- no text
- no labels
- no UI
- no speech bubbles
- exact grid count only
- no borders or frames between cells
- same asset identity across frames
- same bounding box and same pixel scale across frames
- raw sprite art must come from built-in `imagine_text_to_image`, not Three.js, Canvas, SVG, HTML/CSS drawing, PIL shape drawing, procedural geometry, placeholder primitives, or code-rendered screenshots
## Style Rules
Choose the art style from the user request, project context, map context, or reference:
- `pixel_art`: general sprite default for classic 2D game actors and animation sheets.
- `clean_hd`: clean hand-painted HD 2D game asset style, crisp silhouettes, smooth surfaces, low texture noise, controlled lighting, no chunky pixels.
- `pixel_inspired`: clean modern pixel-art-inspired style without 16-bit wording, heavy dithering, or noisy microtexture.
- `retro_pixel`: 16-bit pixel art or retro JRPG pixel art, only when explicitly requested.
- `map_style` or `project-native`: match the visible reference, existing game, or `$generate2dmap` selected art style.
Do not write `16-bit`, `retro JRPG`, or `chunky pixel-art` unless the user asks for that look. For clean HD map props, explicitly say `Do not make pixel art`.
## Reference Rules
Use these rules when the user attaches a reference, points to a local image, asks for consistency with an earlier generated image, or asks for an evolution/variant of an existing sprite:
- Pass the reference to built-in `imagine_image_to_image` as a sandbox `file_path`, and `read_file` it so you can see it too. Do not assume a path string in the prompt is a visual input.
- In the prompt, say `use the provided reference image as the visual reference`.
- State what must stay fixed: silhouette family, palette, face/eyes, costume or markings, accessories, material language, and art style.
- State what may change: pose, animation phase, action energy, size progression, evolution traits, or FX intensity.
- For animation sheets, preserve the same character identity in every cell and only change the animation pose or effect state.
- For evolution lines, keep visible lineage markers while allowing larger silhouette, added details, or stronger colors per form.
- Keep the normal magenta-background and containment rules even when using a reference.
## Layout Guide Rules
Use a layout guide when the sheet needs stronger geometric control than text alone can provide:
- good fit: `3x3` and `4x4` prop packs, tileset-like atlases, fixed atlas rows, and non-directional 16-frame sequences such as casting, summoning, charging, death, or transformation
- possible fit: `3x3` large idles or showcase loops when earlier generations drift in scale, spacing, or edge safety
- risky fit: four-direction walk sheets, because guide pressure can make directional poses too centered and reduce locomotion clarity
When using a layout guide, pass the guide PNG's sandbox path to `imagine_image_to_image`. Use it only to understand the rows, columns, equal invisible frame slots, centering, spacing, and safe padding. Do not reproduce the guide: no visible boxes, no safe-area rectangles, no center marks, no labels, no borders, no guide background.
Keep the creative prompt agent-written. The layout guide only provides geometry; it must not replace the action plan, art style, identity lock, or containment rules.
## Containment Rules
For any sheet mode, say this explicitly when consistency matters:
- the entire subject must fit fully inside each cell
- no body part, effect, weapon, tail, wing tip, orb, spark, or smoke trail may cross a cell edge
- leave magenta margin on all four sides
- use the same silhouette scale in every frame
If detached FX are undesirable, say:
- no floating detached effects outside the main silhouette
If detached FX are required, say:
- detached effects must remain tightly grouped near the main subject and still fit inside the cell
## View Rules
- `topdown`: for overworld actors and player / NPC sheets
- `side`: for projectiles, side-view units, impact FX
- `3/4`: for creature battle sprites, bosses, showcase idles, side-view spellcasters
## Character Style
For `player` and `npc` when the request does not specify another style:
- top-down 2D pixel art for a 16-bit RPG overworld
- 3/4 view from slightly above
- full body visible
- chunky readable pixel-art with crisp dark outlines
- enough margin for clean engine rendering
## Map Prop Style
For `prop` assets requested by `$generate2dmap`, match the selected map art style:
- `clean_hd`: clean hand-painted HD 2D game asset style, crisp silhouettes, smooth painted surfaces, low texture noise, controlled accent lighting, no chunky pixels.
- `pixel_inspired`: clean modern pixel-art-inspired prop, crisp readable shape, no 16-bit wording, no heavy dithering.
- `retro_pixel`: 16-bit or retro JRPG pixel-art prop, only when the map is explicitly retro pixel.
For clean HD props, use mostly front-facing top-down RPG object view: upright objects are vertical and centered, with only a small visible top face. Avoid strong isometric diagonal rotation unless requested.
## Creature and FX Style
For `creature`, `spell`, `projectile`, `impact`, `summon`, and `fx`:
- strong silhouette
- readable body colors or effect shape
- battle-ready or gameplay-readable pose
- avoid painterly composition drift between frames
- if humanoid, keep it clearly non-player unless the user explicitly wants a player-like unit
## Action Rules
### `idle`
Use:
- neutral stance
- subtle motion
- weight shift or aura pulse
- strongest idle accent before looping
Prefer:
- `2x2` for standard actors
- `3x3` for large creatures and showcase idles
### `cast`
A `2x3` cast is often the best default:
- readiness
- energy gather
- stronger gather
- release start
- release peak
- settle or hold
### `attack`
For a compact attack-only sheet, describe:
- wind-up
- strike
- follow-through
- recovery
For controllable heroes, main characters, and fixed-cell game sprites, write attack body prompts as body-only:
- no detached slash arc
- no wide weapon trail
- no muzzle flash
- no projectile
- no impact burst
- no detached dust cloud
- weapon remains close enough that the body bbox stays near idle/run size
- body height and feet/bottom anchor match the accepted idle/run sheet
If the attack needs a large slash arc, sword trail, muzzle flash, or hit spark, generate it as a separate `fx`, `projectile`, or `impact` sheet and layer it in the runtime.
### `hurt`
For a hurt-only sheet, describe:
- impact
- recoil
- stagger
- recovery
### `combat`
For a compact combined sheet:
- top-left: attack wind-up
- top-right: attack strike
- bottom-left: hurt impact
- bottom-right: hurt recovery
### `projectile`
Usually prefer `1x4` or `2x2`.
Describe:
- same projectile identity in all frames
- travel direction stays consistent
- shape changes are small and loopable
- glow or trail stays inside the frame
### `impact` / `explode`
Usually prefer `2x2`.
Describe:
- ignition or contact
- expansion
- peak burst
- fade or collapse
### `walk` / `run` / `hover`
State the travel behavior clearly:
- grounded stride
- hover bob
- crawl
- slither
- mechanical glide
## Sheet-Specific Rules
### Mixed-action atlas guardrail
Do not use a single raw generated sheet to pack unrelated actions just because the target engine wants a `4x4`, `5x5`, or custom atlas.
Avoid prompts like:
- row 1 idle, row 2 run, row 3 shoot, row 4 jump
- first row walk, second row attack, third row hurt, fourth row death
- one big atlas containing every hero action
For controllable heroes, main characters, and high-value player assets:
1. Generate each action as its own multi-row grid sheet, usually `2x2` for 4-frame actions, `2x3` for 6-frame actions, and `2x4`, `3x3`, `3x4`, or `4x4` for longer actions.
2. Keep attack/shoot/cast body animation separate from projectile, muzzle flash, slash arc, weapon trail, impact, and dust unless the runtime explicitly supports wider per-action cells plus explicit origins.
3. Process and visually QC each action independently for feet line, body center, scale, silhouette, and edge safety.
4. Reject a body action when the body appears more than about 10-15% smaller than idle/run because a wide FX bbox forced it to shrink.
5. Assemble a `4x4`, `5x5`, or custom engine atlas only after the separate action sheets pass QC.
Allowed raw multi-row sheets:
- canonical four-direction locomotion sheets where every row is the same walk/run action in a different direction
- one continuous non-directional long action sequence, read left-to-right across rows
- prop packs or tileset-like atlases where each cell is intentionally a separate object
- compact low-stakes enemy combat sheets, but not controllable hero production assets
### `4x4` player sheet
Use:
- row 1: down
- row 2: left
- row 3: right
- row 4: up
- column 1: neutral
- column 2: left foot forward
- column 3: neutral again
- column 4: right foot forward
Do not use a layout guide by default for this sheet. Try an unguided prompt first unless the previous result crossed cell edges or failed the grid shape.
### `3x3` large idle
Say:
- exactly 9 equal cells in a `3x3` grid
- same bounding box in all 9 cells
- subject fills only about 55% to 65% of each cell
- no edge crossing anywhere
Use a layout guide when a previous 3x3 result has uneven spacing, inconsistent scale, or edge-touching frames.
### `4x4` non-directional action sequence
Use for casting, summoning, charging, transformation, death, and other single-action loops:
- exactly 16 equal cells in a `4x4` grid
- read frames left-to-right across each row, then continue on the next row
- describe each phase in order, from anticipation through peak action to settle or loop return
- keep the subject identity stable while allowing pose, energy, and compact attached effects to change
- use a layout guide when the action includes VFX, portals, circles, summons, or other elements that might cross cell boundaries
Do not use this format as a shortcut for four unrelated hero actions. If the requested rows are different actions, treat it as a `hero_action_bundle` or `engine_atlas` delivery problem instead.
### `5x5` and custom grids
Use raw `5x5` or custom-grid generation only when the entire sheet is one coherent action family, a prop pack, a tileset-like atlas, or a single long sequence.
For mixed action requirements, generate each action separately and assemble the final grid after QC. The assembled atlas is a delivery artifact, not the raw image-generation target.
### `1x4` projectile
Say:
- exactly 4 equal cells in one row
- same projectile size in every frame
- only the internal energy or shape pulse changes
## Bundle Prompting
When generating a bundle, write each asset prompt independently.
Good default decomposition:
- caster unit
- projectile
- impact
or:
- idle
- combat
- walk
Do not try to force unrelated assets into one giant sheet.
## Quick Prompt Pattern
1. state the asset type and sheet shape
2. describe the subject identity
3. if applicable, state the reference role and invariants
4. describe frame-by-frame motion
5. restate same-scale and containment rules
6. restate magenta background and no-text rules