Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ questions: `nnnotes config init --user --no-input --set SECTION.KEY=VALUE ...`.
| `config init\|set\|unset\|check\|path` | write, edit and check the config file |
| `servers` | the game API's server list: regions with their CDN and API roots |
| `catalog keys\|browse` | the addressable keys of a region's catalog; a local web page to browse catalogs and bundles |
| `catalog versions\|import\|fetch\|diff` | catalog versions kept in the store, and what changed between two |
| `bundle pull` | fetch and decrypt the bundle closure of keys into the cache |
| `catalog versions\|import\|fetch\|diff` | catalog versions kept in the depot, and what changed between two |
| `bundle pull` | fetch and decrypt the bundle closure of keys into the depot |
| `master version\|download\|decode` | the master data version a region serves, its download and its decoding to JSON |
| `export assets` | every object of the selected bundles in common formats, through the content-addressed store |
| `export assets` | every object of the selected bundles in common formats, through the content-addressed depot |
| `export episode\|story\|live\|live2d\|spot\|room\|shader\|audio\|ui` | one subject: an ADV episode, a story, a live, a Live2D model, a spot, a room, shaders, a cue sheet, the UI library |
| `apk settings\|hca-key` | the player's graphics settings and the CRI HCA keycode of `base.apk` |
| `store plan\|run\|verify` | what `export assets` would run and why, single tasks, the store's check |
| `depot plan\|run\|verify\|gc` | what `export assets` would run and why, single tasks, the depot's check and collection |
| `voices list\|search\|summary\|get` | the character and story voices of the master data |
| `site build` | the static site of ournotes-player: charts, Live2D models and stories, in several regions and languages |
| `music-data` | every song and chart in one JSON file, with the deck model's chart statistics |
Expand Down
8 changes: 4 additions & 4 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ nnnotes site build -o out/site --all --player path/to/ournotes-player
| `config init\|set\|unset\|check\|path` | 写入、修改和检查配置文件 |
| `servers` | 游戏 API 的服务器列表:各区服及其 CDN 与 API 根地址 |
| `catalog keys\|browse` | 区服 catalog 的资源键;在本地网页中浏览 catalog 与资源包 |
| `catalog versions\|import\|fetch\|diff` | store 中保存的 catalog 版本,以及两个版本之间的变化 |
| `bundle pull` | 下载并解密资源键的依赖闭包到缓存 |
| `catalog versions\|import\|fetch\|diff` | depot 中保存的 catalog 版本,以及两个版本之间的变化 |
| `bundle pull` | 下载并解密资源键的依赖闭包到 depot |
| `master version\|download\|decode` | 区服当前的 masterdata 版本、下载,以及解码为 JSON |
| `export assets` | 经内容寻址的 store,把所选资源包中的每个对象导出为通用格式 |
| `export assets` | 经内容寻址的 depot,把所选资源包中的每个对象导出为通用格式 |
| `export episode\|story\|live\|live2d\|spot\|room\|shader\|audio\|ui` | 单个对象:ADV 剧情集、完整剧情、谱面、Live2D 模型、据点、房间、着色器、cue sheet、UI 库 |
| `apk settings\|hca-key` | `base.apk` 中的画面设置与 CRI HCA 密钥 |
| `store plan\|run\|verify` | `export assets` 将运行什么及原因、单独运行任务、检查 store |
| `depot plan\|run\|verify\|gc` | `export assets` 将运行什么及原因、单独运行任务、检查和回收 depot |
| `voices list\|search\|summary\|get` | masterdata 中的角色语音与剧情语音 |
| `site build` | ournotes-player 静态站点:谱面、Live2D 模型与剧情,支持多个区服与语言 |
| `music-data` | 全部歌曲与谱面的单个 JSON 文件,附组卡模型的谱面统计 |
Expand Down
10 changes: 5 additions & 5 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ subpackage of `nnnotes` and imports only the layers below it.
|---|---|---|
| Command line | `nnnotes.cli` | one module per command group; parses options, reads the configuration, prints summaries and `--json` reports |
| Products | `nnnotes.site`, `nnnotes.musicdata` | the ournotes-player site (charts, models, stories, indexes); the music data file and its deck statistics |
| Pipeline | `nnnotes.pipeline` | stages, task descriptions and results, the content-addressed store, plans, layouts, the catalog versions, the views of the master data |
| Pipeline | `nnnotes.pipeline` | stages, task descriptions and results, the content-addressed depot, plans, layouts, the catalog versions, the views of the master data |
| Content | `nnnotes.content` | the game's subjects as exports: ADV episodes and stories, lives and scores, spots, rooms, the UI library |
| Unity objects | `nnnotes.unity` | bundle reading, the typetree exporter, the player data, Live2D prefabs, text styles and TextMesh Pro fonts |
| File formats | `nnnotes.formats` | formats read from bytes: CRI ACB/AWB and HCA, USM movies, CRI Lips data, shaders, motions |
Expand All @@ -27,12 +27,12 @@ and print, and the work they run is in the library modules below them.
Every setting comes from the configuration ([sources and precedence](configuration.md#sources-and-precedence)).
`nnnotes.source.session.Session` turns one configuration into the data sources a command needs: the catalog of a
region, its decoded master data and the master data version it serves, the APK, the bundle and master data keys and
the store root. It reads a setting when it is first needed and raises a `ConfigError` naming the setting when it is missing or wrong;
the depot root. It reads a setting when it is first needed and raises a `ConfigError` naming the setting when it is missing or wrong;
the command line turns that error into exit status 2.

The catalog (`nnnotes.source.catalog.Catalog`) resolves an addressable key to its bundle and the bundle's
dependency closure, takes a bundle from the APK when the APK has it and from the CDN otherwise, and keeps fetched and
decrypted bundles in the cache directory.
decrypted bundles in the depot's `downloads/` directory.

## Two ways to export

Expand All @@ -42,8 +42,8 @@ decrypted bundles in the cache directory.
- **Every asset.** `export assets` splits the work into stages ([stages](stages.md)). A task is one stage applied to
one subject (a bundle, a content id, a view); its key covers exactly what its output depends on: the stage and
converter versions, the input contents and the options ([contracts](contracts.md)). Results and their files are
stored once by content hash in the store, and the output directory is laid out from the store. A second run finds
every unchanged result in the store and only lays out what changed; `store plan` says what would run and why
stored once by content hash in the depot, and the output directory is laid out from the depot. A second run finds
every unchanged result in the depot and only lays out what changed; `depot plan` says what would run and why
([asset export](assets.md)).

Both ways use the same readers below the pipeline layer, so a texture, shader, mesh or audio stream is converted by
Expand Down
Loading
Loading