Art
Match Panel Art Pipeline (No AI at Runtime)
Section titled “Match Panel Art Pipeline (No AI at Runtime)”Overview
Section titled “Overview”All match panels are composed at runtime from pre-produced, layered assets. No AI art is generated during gameplay. The system mirrors the exploration view: deterministic, fast, and fully customizable via palette swaps and overlays.
Asset Strategy
Section titled “Asset Strategy”- Base Poses & Body Types:
- 3–5 core body types (e.g. short, tall, lanky, strong, average).
- 6–8 core poses (dribble, pass, shot, block, steal, special, idle, celebrate).
- Each pose/body is a flat-color silhouette (SVG or PNG with alpha).
- Overlays:
- Hair styles (separate layer, palette-swappable).
- Jerseys, shorts, shoes, accessories (separate layers, team color overlays).
- Trait/effect icons (SVG/PNG overlays).
- Asset Sources:
- Use CC0/free sprite bases (Kenney, OpenGameArt) or trace reference photos in a vector editor (Inkscape, Figma).
- All overlays are simple vector or flat color for easy palette swapping.
Customization Pipeline
Section titled “Customization Pipeline”At runtime, for each panel:
- Select the correct body type and pose.
- Apply palette swap for skin tone.
- Overlay chosen hairstyle (palette swap for hair color).
- Apply team color overlays to jersey/shorts.
- Add trait/effect icons as overlays.
- Compose all layers into the final panel image.
Production Workflow
Section titled “Production Workflow”- Asset Organization:
assets/poses/{pose_name}/{body_type}.svgassets/hair/{hair_style}.svgassets/jersey/{type}.svg,assets/shorts/{type}.svg, etc.assets/icons/{trait}.svg
- Manifest:
- JSON or YAML file mapping poses, body types, hair, overlays, and color regions.
- New Assets:
- Add new SVG/PNGs and update manifest—no code changes needed.
Panel System
Section titled “Panel System”- Each match action (e.g. shot, block) is a template: a sequence of 2–3 panels, each referencing a pose and overlays.
- Panel composition script (Node+sharp, or browser canvas) reads the template, loads assets, applies palette swaps, and outputs the final panel.
Scalability
Section titled “Scalability”- New body types, poses, or overlays can be added by dropping new SVG/PNGs and updating the manifest.
- All customization is data-driven.
Optional: Gen AI for Production Only
Section titled “Optional: Gen AI for Production Only”- If desired, use Gen AI to create new base poses or overlays during asset production, but always export to static SVG/PNG for runtime use.
POC: JavaScript Match Panel Composer
Section titled “POC: JavaScript Match Panel Composer”This proof-of-concept demonstrates the layered match panel system using Node.js and SVG/PNG assets.
Folder Structure
Section titled “Folder Structure”assets/ poses/shot_average.svg hair/short.svg jersey/base.svg manifest.jsonoutput/ shot_panel.pngscripts/ compose_panel.jsAsset Manifest Example (assets/manifest.json)
Section titled “Asset Manifest Example (assets/manifest.json)”{ "poses": { "shot": { "average": "assets/poses/shot_average.svg" } }, "hair": { "short": "assets/hair/short.svg" }, "jersey": { "base": "assets/jersey/base.svg" }, "panel_templates": { "shot": [ { "pose": "shot", "body_type": "average", "hair": "short", "jersey": "base" } ] }}Composition Script (scripts/compose_panel.js)
Section titled “Composition Script (scripts/compose_panel.js)”- Uses canvas for Node.js SVG/PNG composition.
- Loads the manifest, assembles the panel from layers, and outputs a PNG.
- Install dependencies:
Terminal window npm install canvas - Run the script:
Terminal window node scripts/compose_panel.js - Output:
output/shot_panel.png(composed panel)