69 lines
2.2 KiB
Markdown
69 lines
2.2 KiB
Markdown
## Title
|
|
|
|
Adopt row-based 7x8 sprite animation semantics with backward-compatible state aliases.
|
|
|
|
## Severity
|
|
|
|
P2
|
|
|
|
## Summary
|
|
|
|
Standardize `sprite.png` packs so each of the 7 rows maps to semantic animation groups, while
|
|
keeping runtime compatibility with existing state names (`active`, `success`, `error`).
|
|
Also retune 8-frame animation tempo to a slower profile for readability.
|
|
|
|
## Scope
|
|
|
|
- `assets/sprite-packs/{default,ferris,demogorgon}/manifest.json`
|
|
- `crates/sprimo-runtime-core/src/lib.rs`
|
|
- `crates/sprimo-app/src/main.rs`
|
|
- docs:
|
|
- `docs/SPRITE_PACK_SCHEMA.md`
|
|
- `docs/TAURI_FRONTEND_DESIGN.md`
|
|
|
|
## Row Mapping Contract
|
|
|
|
- row 1 (`0..7`): `idle`
|
|
- row 2 (`8..15`): `happy`, `love`, alias `active`
|
|
- row 3 (`16..23`): `excited`, `celebrate`, alias `success`
|
|
- row 4 (`24..31`): `sleepy`, `snoring`
|
|
- row 5 (`32..39`): `working`
|
|
- row 6 (`40..47`): `angry`, `surprised`, `shy`, alias `error`
|
|
- row 7 (`48..55`): `dragging`
|
|
|
|
One-shot defaults:
|
|
|
|
- `celebrate` and `success`: one-shot
|
|
- all others: loop
|
|
|
|
## Implementation Notes
|
|
|
|
1. Runtime state mapping updated:
|
|
- `Dragging` now maps to `"dragging"` instead of `"idle"` in runtime-core and Bevy frontend.
|
|
2. All bundled sprite-pack manifests now expose row-based names and compatibility aliases.
|
|
3. Added runtime-core unit test to confirm `SetState::Dragging` selects `"dragging"`.
|
|
4. Updated schema/design docs to formalize the row convention.
|
|
5. Retuned bundled pack fps profile:
|
|
- loops: `1` fps
|
|
- one-shot `celebrate` and `success`: `2` fps
|
|
6. Tauri renderer-level pacing adjusted:
|
|
- added global frame interval slowdown factor (`x2`) in Pixi ticker to further reduce perceived speed
|
|
without changing manifest schema type (`fps` remains integer).
|
|
7. Added persisted tauri slowdown factor control:
|
|
- config key: `frontend.tauri_animation_slowdown_factor` (integer, range `1..20`, default `3`)
|
|
- new tauri commands/events to read/update factor at runtime
|
|
- settings window slider added for live tuning and persistence.
|
|
|
|
## Verification
|
|
|
|
### Commands Run
|
|
|
|
- [x] `cargo test -p sprimo-runtime-core`
|
|
- [x] `cargo check -p sprimo-tauri`
|
|
- [x] `cargo check -p sprimo-app`
|
|
|
|
### Result
|
|
|
|
- Status: `Fix Implemented`
|
|
- Notes: packaged runtime visual verification pending.
|