316 lines
11 KiB
Markdown
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
|