diff --git a/CHANGELOG.md b/CHANGELOG.md index c660e5b..b2c32ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ All notable changes to this package. Versions follow [Semantic Versioning](https://semver.org/). +## Unreleased + +### Story products + +- Story loading, playback and authoring use `nnnotes.product/1` manifests with shared object resources and language-specific UI and fonts. +- Home and live-result stories resolve their host prefabs, room geometry, Spine materials and animation bindings by object identity. +- Data validation checks the story product graph, font bindings, shader variants, audio files and model dependencies. `--lang` selects an explicit language scope. +- Node story loading accepts a manifest or a product layout containing exactly one story. + +### Bug fixes + +- Keep Spine index uploads from changing another renderer's vertex array. +- Keep model and shared-object validation caches independent. +- Clear loading text after language changes and display configured audio volumes in the controls. + ## [0.1.7](https://github.com/empty-sekai/ournotes-player/compare/v0.1.6..v0.1.7) — 2026-10-14 ### Features @@ -159,5 +174,3 @@ All notable changes to this package. Versions follow [Semantic Versioning](https - add performance.md: the CPU cost of a frame - a file holds each controller and clip once; the validator checks every reference _(story)_ - - diff --git a/docs/data-format.md b/docs/data-format.md index b24b525..55861fd 100644 --- a/docs/data-format.md +++ b/docs/data-format.md @@ -965,3 +965,9 @@ exactly the files the viewer and the story player read. It needs Node.js 22 or later and no dependencies. The opt-in data tests (`OURNOTES_DATA= npm run test:data`) go further and run lives and charts through the player in Node (see [CONTRIBUTING.md](../CONTRIBUTING.md)). + +## Song and replay data + +The song catalog example reads `music-data.json` with format `nnnotes.music-data/1`. Replay presets read +`nnnotes.deck-data/1` for the caller-provided deck capabilities, and the replay worker accepts +`nnnotes.replay-manifest/1` references. These are separate inputs from the live, model and story product manifests. diff --git a/docs/fidelity.md b/docs/fidelity.md index e68e9cb..f442652 100644 --- a/docs/fidelity.md +++ b/docs/fidelity.md @@ -528,7 +528,6 @@ Every `ENGINE:` note in `src/`, by file. `npm test` checks that this list matche - the ambient probe of a Flat ambient is built natively from the ambient colour; a white Flat ambient is taken as - the default reflection of a Skybox-mode scene without a skybox material (and without a custom cube) is taken - unity_LightData (native per-object light data): x the offset of the per-object light indices (0), y their -- atlas page texture import settings are not in the data; bilinear, clamped, no mipmaps here. - a Skybox clear without a skybox material clears to the background colour. **`src/story/simple/home/room.js`** diff --git a/docs/story-author.md b/docs/story-author.md index 2d91e83..9515e21 100644 --- a/docs/story-author.md +++ b/docs/story-author.md @@ -11,7 +11,7 @@ The tool is experimental: the script format and the commands may change between ## Requirements - Node.js 22 or later. -- A story site with stories in the model manifest format (`ournotes.story-manifest/2`) and its `models.json` +- A story site with stories in the story product format (`nnnotes.product/1`) and its `models.json` ([story-data-format.md](story-data-format.md)). Pass it with `--site ` or set `OURNOTES_SITE`. - For pictures (`render`, `base --out`, `model --out`): Chrome, Chromium or Edge. The tool starts a headless browser of its own with a temporary profile and ends it when the command ends. It draws with SwiftShader (WebGL2 on the @@ -181,10 +181,11 @@ long auto mode then keeps the line before the next one (`_waitTalkTextUnitTime` ### build -`build