Skip to content

Add OTB talking bear sprite pack and runtime assets - #1636

Open
leonnpowell-del wants to merge 2 commits into
HashLips:mainfrom
leonnpowell-del:leonnpowell-del-rendering-logo-asset
Open

Add OTB talking bear sprite pack and runtime assets#1636
leonnpowell-del wants to merge 2 commits into
HashLips:mainfrom
leonnpowell-del:leonnpowell-del-rendering-logo-asset

Conversation

@leonnpowell-del

Copy link
Copy Markdown

Summary

This adds the OTB brand-facing art pipeline needed to generate and run a talking human-bear hybrid sprite set. The goal is to provide production-ready 2000x2000 layered assets, plus a runtime-friendly frame/spritesheet manifest for real-time speech-driven playback.

What changed

  • Updated src/config.js for the 10,000-edition workflow:
    • namePrefix, description, and baseUri placeholder updated
    • output format set to 2000x2000 with smoothing: false
    • layer order changed to Background, Body, Clothing, Eyes, Mouth, Headwear, Accessories
    • shuffleLayerConfigurations enabled
    • disabled generated background to rely on layered PNG traits
  • Added rendered logo assets:
    • official-logo-2000.png
    • layers/Accessories/Logo#1.png
  • Added full OTB talking-bear sprite pack under sprites/otb_talking_bear/:
    • base, mouth (6 viseme frames), eyes, brows, nose, hair FX, and preview frames
  • Added runtime builder:
    • utils/build_otb_sprite_runtime.py
    • package.json script: npm run otb_sprite_runtime
  • Generated runtime outputs:
    • per-frame talk/idle composites
    • talk_spritesheet.png and idle_spritesheet.png
    • runtime/manifest.json with viseme map, state timing, and runtime hints

Notes

  • The runtime builder is implemented in Python/Pillow so it works in environments where native Node canvas binaries are unavailable.
  • Manifest timing hints currently target faceSolveFps: 60, visemeUpdateHz: 24, and audioSmoothingMs: 80.

- configure 10k collection settings for 2000x2000 output and shuffled layer generation\n- add rendered OTB logo asset and wire it into Accessories layer\n- add human-bear talking sprite set with mouth, eye, brow, nose, hair, preview, and runtime frames\n- add Python runtime builder and npm script to generate spritesheets and manifest

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 7, 2026 01:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an OTB “talking bear” sprite/runtime pipeline: new 2000×2000 layer configuration for edition generation, plus a Python (Pillow) runtime builder that composites frames, builds spritesheets, and emits a playback manifest under sprites/otb_talking_bear/runtime/.

Changes:

  • Added utils/build_otb_sprite_runtime.py to generate per-frame composites, spritesheets, and a runtime manifest.json.
  • Updated src/config.js to a 10,000-edition, 2000×2000, non-smoothed output workflow with a new layer order and shuffled layer configurations.
  • Added an otb_sprite_runtime npm script and committed generated runtime outputs (sprites/otb_talking_bear/runtime/manifest.json).

Reviewed changes

Copilot reviewed 4 out of 54 changed files in this pull request and generated 5 comments.

File Description
utils/build_otb_sprite_runtime.py New Python/Pillow runtime builder that composites layers into talk/idle frames, spritesheets, and a manifest.
src/config.js Updates collection and render configuration for 10,000 editions and 2000×2000 layered-trait workflow.
sprites/otb_talking_bear/runtime/manifest.json Generated runtime manifest describing layers, frame lists, spritesheets, and timing hints.
package.json Adds an npm script to run the Python runtime builder.
Suppressed comments (1)

utils/build_otb_sprite_runtime.py:41

  • Same file-handle issue as in composite_frame: with Image.open(frame_path).convert("RGBA") as frame: puts the context manager on the converted image and can leave the original file-backed image open. Use with Image.open(frame_path) as img: and convert inside.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread utils/build_otb_sprite_runtime.py Outdated
Comment thread utils/build_otb_sprite_runtime.py
Comment thread utils/build_otb_sprite_runtime.py Outdated
Comment thread utils/build_otb_sprite_runtime.py
Comment thread package.json Outdated
- anchor paths to script location instead of current working directory\n- ensure image file handles close correctly before conversion\n- validate minimum hair FX frame count to avoid idle pattern index errors\n- add Python dependency manifest and runtime usage docs\n- run sprite runtime via Python 3 launcher with Pillow probe

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants