2506 lines
149 KiB
Markdown
2506 lines
149 KiB
Markdown
# Aetherbound Guild - Japanese 2D Art, Animation And Audio
|
|
|
|
Approved hand-drawn direction, runtime asset catalog, animation/VFX language and complete audio plan.
|
|
|
|
## Owner Review / Owner 审核
|
|
|
|
确认唯一允许的日式 2D 手绘方向,以及角色比例、战场层次、动作、特效、界面材质、音乐和音效清单。像素风只保留历史证据,不再使用。
|
|
|
|
本文件是当前六份审核文档之一。历史拆分文件仅保留在 Git 历史中;文内规则、表格和 ID 仍是完整开发依据。
|
|
|
|
## 2026-08-17 Continuous-Growth Presentation Override
|
|
|
|
The Expedition Company is a persistent generated roster, not a disposable cast
|
|
or a fixed set of authored protagonists. A zero-HP Recruit exits the current
|
|
battle as `Knocked Out`, remains owned and is battle-ready again for the next
|
|
stage. Presentation may communicate immediate battle consequence, line collapse
|
|
and temporary absence, but must never imply deletion, memorialization, identity
|
|
replacement or loss of level, XP, Profession, Trait or equipment.
|
|
|
|
Every older row below named `Permanent loss`, `permanent_loss_confirmed`, death
|
|
archive, replacement arrival or run-close Company disposal is
|
|
`FROZEN_LEGACY_FG4`. It documents the preserved midpoint implementation and is
|
|
not current product-facing art/audio authority. Later conversion must rebind
|
|
those roles to knockout, stage return, dismissal or Contract return as
|
|
appropriate. DEV-2 produces no battle, casualty or later-Region media and may
|
|
reuse only the accepted entry art and procedural guild chrome.
|
|
|
|
<!-- Historical section source: VISUAL_DIRECTION; retained in Git history. -->
|
|
|
|
## Aetherbound Guild Japanese 2D Visual Direction
|
|
|
|
> Status: `OWNER-APPROVED DIRECTION / RUNTIME REPAIR REQUIRED`
|
|
> Accepted battle reference:
|
|
> [Accepted battle reference](prototype/generation/phase6_ui_direction_01/outputs/05_battle_ui_japanese_scale.png)
|
|
|
|
### One-Line Identity
|
|
|
|
A bright Japanese 2D hand-drawn fantasy guild crosses softly painted unstable
|
|
worlds as a long line of ordinary, persistent adventurers whose professions,
|
|
equipment and survival are readable directly in battle.
|
|
|
|
### Three-Second Read
|
|
|
|
Without reading the title, the player must recognize:
|
|
|
|
1. a Japanese fantasy auto-battler in a painted side-view world;
|
|
2. one continuous allied Company line facing a materially different enemy line;
|
|
3. an imminent action or danger that will test the player's preparation.
|
|
|
|
### Character Direction
|
|
|
|
- Thin, controlled Japanese animation linework with restrained cel color.
|
|
- Actor proportions follow the accepted reference rather than a fixed
|
|
body-ratio label.
|
|
- Ordinary unit scale has no fixed percentage. It must preserve the complete
|
|
Company line, enemy relation and movement corridor at actual play size, then
|
|
be confirmed by the Owner from a real runtime frame.
|
|
- Profession identity comes from silhouette, weapon/tool, stance and action, not
|
|
a large text label or oversized portrait.
|
|
- Allied units face right; enemies face left. The line has visible horizontal
|
|
travel and real contact before melee impact.
|
|
- Generated Recruits are persistent participants, not fixed authored protagonists.
|
|
- Bosses may be substantially larger, but cannot remove crowd readability or
|
|
cover the full tactical corridor.
|
|
|
|
### Environment Direction
|
|
|
|
- Softly painted sky, architecture, vegetation, route machinery and local
|
|
hazards with clear atmospheric depth.
|
|
- Separate background, midground, playable ground and foreground layers.
|
|
- Bright readable daylight and region-specific weather are preferred over a
|
|
generic dark-blue stage.
|
|
- Environment tells the Region rule visually: heat/constructs, archive clauses,
|
|
echoes, rail order, hidden information and synthesis each require distinct
|
|
shapes and props.
|
|
- The central combat corridor stays readable; tall decoration cannot cut actors
|
|
apart or hide attacks.
|
|
|
|
### UI Direction
|
|
|
|
- World first, compact instruments second.
|
|
- Top HUD carries objective, side pressure and pause/speed/inspect tools.
|
|
- Bottom HUD carries the Company line, HP/resource state and selected details.
|
|
- Materials use charcoal ink, ivory enamel, repaired canvas, weathered brass,
|
|
aether cyan, danger coral and safe green.
|
|
- Repeated offers and inventory cells may use bounded frames. Page sections and
|
|
the gameplay surface may not become nested cards.
|
|
- Engine-rendered Chinese and English remain crisp, with icon plus shape support
|
|
for every important state.
|
|
|
|
### DEV-3 Owner UI Style Contract
|
|
|
|
> Status: `OWNER REVIEW REQUIRED / IMPLEMENTATION FROZEN UNTIL SPEC ACCEPTANCE`
|
|
> Reference: Owner-provided `IMG_8573` UI screenshot plus the accepted battle
|
|
> scale reference above.
|
|
|
|
DEV-3 pages must read as one Japanese 2D hand-drawn world with attached field
|
|
instruments. The screenshot is a composition and material authority, not a
|
|
palette-only reference. A bright painted environment, full readable actors,
|
|
object-led actions and compact HUD rails must be visible in the first frame.
|
|
|
|
#### Composition
|
|
|
|
- The environment occupies the page and remains visible behind every major
|
|
decision. It is never hidden by one continuous opaque application panel.
|
|
- Characters, props and route objects establish the visual hierarchy before
|
|
explanatory copy. Recruit and equipment choices use a person/object-bearing
|
|
stage, not a row of text with a tiny icon.
|
|
- Guild and Contract place the Company in the scene and put the next action on
|
|
a field-attached desk/board. Market keeps offer rows compact but gives the
|
|
inspected Recruit or item a larger stage presence.
|
|
- Recruit Review is portrait-led: a complete figure, readable silhouette and
|
|
sourced equipment/tool are larger than the supporting fact list.
|
|
- One open frame or two aligned HUD rails may organize a page. Nested cards,
|
|
repeated framed rows and a full-page dark rectangle are rejected.
|
|
|
|
#### Actors And Assets
|
|
|
|
- Use the unified non-pixel Recruit family with linear filtering and enough
|
|
screen height to read face, silhouette, tool and stance at actual play size.
|
|
- A Recruit image may not be used as a 40-60px list icon when it is the primary
|
|
choice subject. Lists may show a compact silhouette only when a larger detail
|
|
stage remains simultaneously visible.
|
|
- Props (Contract board, Market requisition, equipment/tool) must be authored
|
|
shapes or accepted raster assets with a clear action meaning. Generic stars,
|
|
diamonds and empty medallions cannot carry the action alone.
|
|
- No nearest-neighbor scaling, palette reduction, pixel filters or retro HUD
|
|
tiles are allowed in the DEV-3 presentation.
|
|
|
|
#### Controls And Information
|
|
|
|
- Primary commands are parchment/ivory or painted object controls with one
|
|
semantic icon and a short label. Secondary commands use open rails or quiet
|
|
canvas ink; they do not repeat the primary frame.
|
|
- Prices, Company count, availability and disabled reasons sit on a compact
|
|
HUD rail with stable spacing. They are not distributed across nested cards.
|
|
- Headings use the engine font and remain legible over the scene through a
|
|
restrained ink strip or local contrast treatment, never a large opaque panel.
|
|
- Chinese and English copy must retain the same visual hierarchy at 100% and
|
|
130% text scale; no text may touch a frame or actor.
|
|
|
|
#### Responsive Acceptance
|
|
|
|
- Required landscape checks are `760x360`, `844x390` and `1280x720`, with
|
|
`zh_CN`/`en` and 100%/130% text where the state is applicable.
|
|
- At the smallest viewport, the complete actor silhouette, action target,
|
|
price/availability and Back/Confirm controls remain visible without scroll
|
|
traps or overlapping text.
|
|
- A DEV-3 visual candidate is rejected if it passes bounds while still reading
|
|
as a card wall, if actors are subordinate to copy, or if the background/props
|
|
cannot be recognized in a three-second glance.
|
|
|
|
## UI-0A Complete UI Style Bible
|
|
|
|
> Status: `OWNER REVIEW REQUIRED / CODE FROZEN`
|
|
> Applies to: Boot, first-launch setup, Title, Initial Company, Guild,
|
|
> Contract, Market, Recruit/Equipment review, Party, Battle, Result and
|
|
> Recovery.
|
|
> Product authority: `01_GAME_DESIGN.md`.
|
|
> Page/component authority: `03_PAGES_AND_UX.md`.
|
|
|
|
This is the production contract for the game's player-facing presentation. It
|
|
is not a palette mood board and it is not a collection of screenshots. Every
|
|
future page, component and asset must satisfy the same world, actor, material,
|
|
type, state, motion and responsive rules below.
|
|
|
|
### UI-0A.1 Visual Identity
|
|
|
|
**Aetherbound Guild is a bright Japanese 2D hand-drawn fantasy world where a
|
|
small, persistent guild makes consequential plans in the field.** The player
|
|
must see the world, the people and the current decision before reading an
|
|
explanation. UI is a repaired field instrument attached to a board, rail,
|
|
ledger, strap, tool rack or screen edge; it is never a separate app dashboard.
|
|
|
|
The first three visual reads are always:
|
|
|
|
1. the current world and focal people/object;
|
|
2. the current Company/Contract state that matters now; and
|
|
3. the next legal action and its immediate consequence.
|
|
|
|
### UI-0A.2 Shape And Material Language
|
|
|
|
| Role | Required language | Avoid |
|
|
| --- | --- | --- |
|
|
| World | softly painted sky, stone, vegetation, banners and readable depth layers | flat gradient, dark generic backdrop, baked UI into background |
|
|
| Recruit | thin controlled line, restrained cel color, complete silhouette, profession tool and stance | tiny icon, pixel sprite, glossy 3D, oversized hero poster |
|
|
| Props | authored board, requisition, tool, seal or stitched marker with clear action meaning | generic star/diamond as the only meaning |
|
|
| Primary action | parchment/ivory field, repaired brass edge, one semantic icon and explicit verb | repeated dark rectangle or identical gold frame |
|
|
| Secondary action | open ink rail, quiet canvas, differentiated icon and lower visual weight | same treatment as primary |
|
|
| Status | compact field rail with value, source and consequence | floating dashboard panel or unexplained badge |
|
|
| Destructive action | split edge, warning sentence and neutral/coral accent | solid red button or silent destructive tap |
|
|
| Disabled action | intact material, cross-pin/lock shape and exact reason | invisible, greyed-out mystery control |
|
|
|
|
Frames are constructed from one or two aligned rails and corner fittings. A
|
|
full-page opaque rectangle, nested decorative cards and repeated framed rows are
|
|
rejected. A repeated offer may have one bounded row because it is a repeated
|
|
decision; a page section may not contain cards inside cards.
|
|
|
|
### UI-0A.3 Palette And Contrast
|
|
|
|
The semantic palette is a material system, not a single hue family:
|
|
|
|
| Token | Use | Backup cue |
|
|
| --- | --- | --- |
|
|
| `ink` | text structure, quiet rail, focus outline | line/shape |
|
|
| `canvas` | paper, parchment, repaired cloth | surface texture |
|
|
| `brass` | frame edge, confirmed structure, navigation | closed contour |
|
|
| `aether_cyan` | inspect, focus, information, active route | sparkle/arrow shape |
|
|
| `safe_green` | committed success, retained growth, recovery | receipt/seal |
|
|
| `danger_coral` | pressure, invalid action, destructive consequence | split edge/warning mark |
|
|
| `sky_blue` | environment and calm state | open contour |
|
|
| `shadow_ink` | local contrast behind text only | never a full-page dashboard |
|
|
|
|
Large UI surfaces use charcoal ink translucency only where text crosses a busy
|
|
scene. Important state cannot rely on color alone; shape, icon and localized
|
|
text repeat the meaning. Text and interactive controls must remain readable at
|
|
100% and 130% text scale on `760x360`, `844x390` and `1280x720`.
|
|
|
|
### UI-0A.4 Actor, Prop And Environment Scale
|
|
|
|
- The focal actor/object gets the largest readable treatment in its decision
|
|
region. It may not be reduced to a 40-60px list icon when it is the choice.
|
|
- Choice screens show equally weighted complete figures or a shared staged
|
|
scene. Inspect/Review expands the selected figure and its sourced tool.
|
|
- Guild shows the current Company as people in a shared world, not as four
|
|
isolated portrait cards.
|
|
- Market shows the selected Recruit or item at planning scale beside compact
|
|
offer rows; the rows never become the only visual content.
|
|
- Backgrounds are separate imported layers. Foreground props frame the action
|
|
without hiding faces, hands, equipment, prices or primary controls.
|
|
- Linear filtering and mipmaps are used for hand-drawn raster actors and props;
|
|
nearest-neighbor, palette reduction and post-process pixelation are forbidden.
|
|
|
|
### UI-0A.5 Motion And Audio Relationship
|
|
|
|
Motion confirms a committed state rather than decorating a click:
|
|
|
|
| Event | Visual response | Timing rule |
|
|
| --- | --- | --- |
|
|
| Focus/hover | local outline, icon lift or rail highlight | immediate, no layout shift |
|
|
| Press | small material depression and icon response | begins within 50ms |
|
|
| Inspect | scene emphasis and detail reveal | short nonblocking transition |
|
|
| Purchase/equip/hire | sourced object moves to its destination and values change | only after receipt |
|
|
| Error | local split edge, exact reason and retained state | never implies success |
|
|
| Receipt | named result/seal and stable final state | no particle-only confirmation |
|
|
| Page transition | brief field slide/fade or rail handoff | 80-200ms; no blocking wipe |
|
|
|
|
Reduced motion removes travel and camera exaggeration but keeps the final state,
|
|
focus, receipt and consequence readable. Reduced flashes removes high-contrast
|
|
pulses. Audio and haptics follow the same authoritative receipt and are never
|
|
required to understand a state.
|
|
|
|
### UI-0A.6 Asset And Runtime Standards
|
|
|
|
Every player-facing asset records:
|
|
|
|
```text
|
|
runtime_role, source/provenance, dimensions, format, import filter,
|
|
pivot/anchor, localization scope, current state, runtime_seen,
|
|
agent_visual_reviewed, human_reviewed, rejection reason
|
|
```
|
|
|
|
Backgrounds are opaque layered landscape masters. Actors, props and icons use
|
|
transparent assets with stable anchors. Engine text, prices and state values
|
|
are never baked into generated images. A raw PNG, contact sheet or imported
|
|
resource is not final until the current runtime shows it at play size.
|
|
|
|
### UI-0A.7 Non-Negotiable Rejections
|
|
|
|
- Pixel art, pixel filters, nearest-neighbor enlargement or low-resolution
|
|
palette reduction.
|
|
- A dark collection of generic panels that could describe any game.
|
|
- Tiny actors, generic icons or text paragraphs replacing the focal subject.
|
|
- A single button/frame treatment repeated for every semantic action.
|
|
- A page whose first action is hidden by copy, HUD, decoration or empty space.
|
|
- A visual state that differs only by color or a hidden tooltip.
|
|
- A H5 or screenshot presented as accepted before Owner visual review.
|
|
|
|
### VA-1A Guild Anchor Asset Binding
|
|
|
|
The first concrete implementation is governed by the decomposition package at
|
|
`docs/prototype/generation/ui0a_guild_anchor_01/`. The runtime scene must bind
|
|
separate layers rather than use the current full-page frame as a background:
|
|
|
|
```text
|
|
background sky -> distant ruins -> midground route -> playable ground
|
|
-> foreground banner/table -> Recruit actors + ground shadows
|
|
-> Contract Board / Route Map / Seal props
|
|
-> top resource rail + bottom field command rail
|
|
-> engine-rendered text and hit areas
|
|
```
|
|
|
|
Each layer has an independent import, z-order, anchor and runtime role. The
|
|
AI reference is a composition/material authority; it is not shipped as one
|
|
flattened screenshot and its generated text is never used as game text.
|
|
|
|
### Motion Direction
|
|
|
|
- Idle motion is subtle and never replaces gameplay animation.
|
|
- Melee uses anticipation, forward travel/contact, impact and recovery.
|
|
- Ranged action visibly releases a projectile or line effect from the attacker
|
|
to the legal target.
|
|
- Healing visibly originates from the healer and changes the recipient's state.
|
|
- Guard, hurt, defeat and victory have distinct poses with stable anchors.
|
|
- Floating damage/healing values appear at the affected actor, rise and settle
|
|
quickly, and never cover the next priority action.
|
|
- Reduced motion removes travel exaggeration and camera motion, but preserves
|
|
readable anticipation, impact and legal final state.
|
|
|
|
### Explicit Rejections
|
|
|
|
- Pixel art, nearest-neighbor enlargement and low-resolution palette reduction.
|
|
- Western steampunk hero-poster rendering or glossy 3D characters.
|
|
- Oversized ordinary characters that leave room for only two or three actors.
|
|
- Card-wall dashboards, generic dark panels and app-like form pages.
|
|
- Decorative particles or idle loops presented as battle animation.
|
|
- Fixed named-hero storytelling, rarity framing or authored social-bond systems.
|
|
- Pseudo-text baked into generated art.
|
|
|
|
### Production Rule
|
|
|
|
One representative runtime battle must pass before bulk page or Region asset
|
|
production. Concept art controls direction; only imported, gameplay-bound and
|
|
normal-rendered assets prove implementation. Owner review remains the final
|
|
visual gate.
|
|
|
|
<!-- Historical section source: ART_ASSET_AND_ANIMATION_CATALOG; retained in Git history. -->
|
|
|
|
## Aetherbound Guild: Art Asset And Animation Catalog
|
|
|
|
> Authority: production specification for generated-recruit art, profession
|
|
> kits, equipment and artifact presentation, region and enemy art, animation,
|
|
> combat staging, UI support art, and VFX.
|
|
>
|
|
> Product source: `01_GAME_DESIGN.md`.
|
|
> Visual direction: `04_ART_ANIMATION_AUDIO.md`.
|
|
>
|
|
> Current gate: design candidate only. Nothing in this catalog is generated,
|
|
> imported, runtime-seen, human-reviewed, device-verified, or release-accepted.
|
|
|
|
### 1. Visual Production Contract
|
|
|
|
#### 1.1 Identity Statement
|
|
|
|
Aetherbound Guild is an original landscape 2D Japanese hand-drawn fantasy
|
|
auto-battler in which a changing company of visibly assembled recruits forms
|
|
one long, readable party line against region-shaped threats. Expressive inked
|
|
silhouettes, restrained cel shading, tactile equipment, and precise effect
|
|
geometry make preparation choices legible while combat executes automatically.
|
|
|
|
The art must communicate, in this order:
|
|
|
|
1. who is exposed at the front and who is protected farther back;
|
|
2. which actor will act, whom the action will affect, and when it will resolve;
|
|
3. which profession, equipment, trait, or artifact caused the result;
|
|
4. whether the company can recover a knocked-out member, recruit another, or improve its
|
|
next plan.
|
|
|
|
Decorative detail never outranks those reads. Generated recruits are visual
|
|
recipes, not authored lead characters, and no recipe receives unique narrative
|
|
illustration obligations.
|
|
|
|
#### 1.2 Visual Pillars
|
|
|
|
| Pillar | Production rule | Rejection signal |
|
|
|---|---|---|
|
|
| Assembled individuality | Body, face, hair, garment, detail, profession kit, palette, and equipment remain separable and deterministic. | A recruit reads as a recolor or changes identity between portrait and battle. |
|
|
| Ordered-line clarity | Front-to-rear order remains visible in silhouette, ground contact, overlap, targeting, and result review. | A player must infer order from text, health bars, or selection alone. |
|
|
| Mechanical ornament | Every emblem, tool, prop, motion, and effect has a gameplay or navigation job. | Decoration resembles a target, hazard, reward, or action without the matching state. |
|
|
| Regional contrast | Each of eight region families has its own shape, material, value, weather, and enemy integration rules. | A region differs only by hue, backdrop swap, or particle tint. |
|
|
| Hand-drawn control | Line weight, key poses, painted edges, and texture are deliberately cleaned at play size. | Anatomy drift, unstable pivots, synthetic detail noise, or inconsistent light survives cleanup. |
|
|
| Quiet automation | Idle motion yields to forecast, impact, casualty, reward, and recovery cues. | Constant motion or glow makes automatic battle unreadable or tiring. |
|
|
|
|
#### 1.3 Mood And Lighting
|
|
|
|
| State | Lighting and value contract |
|
|
|---|---|
|
|
| Shop and preparation | Open mid-values, clear local color, soft overhead light, and low atmospheric motion support comparison. |
|
|
| Battle opening | Region light remains recognizable while actor rims and ground contacts establish the party line and opposing staging. |
|
|
| Normal execution | Background contrast drops behind active silhouettes; action geometry receives the brightest local edge. |
|
|
| Pressure | Shadows cool and tighten locally around threatened actors; the whole screen does not darken or pulse. |
|
|
| Knockout | Motion and saturation withdraw locally from the affected Recruit while the rest of the battlefield remains inspectable; no memorial or deletion cue appears. |
|
|
| Reward | Warm directional light reveals the claimed object; celebration does not cover party condition or next action. |
|
|
| Endgame and high difficulty | More complex region states may layer together, but the same value hierarchy and semantic shapes remain binding. |
|
|
|
|
#### 1.4 Production And Evidence States
|
|
|
|
Every asset follows this non-skippable sequence:
|
|
|
|
`brief -> source -> cleaned_master -> separated -> export_validated -> imported -> integrated -> runtime_seen -> agent_visual_reviewed -> human_reviewed -> device_verified -> release_accepted`
|
|
|
|
Later states are never inferred from earlier ones. Current approval of this
|
|
catalog advances only the `brief` state. Final or bulk media production remains
|
|
outside this Goal.
|
|
|
|
### 2. Authority, Bindings, And IDs
|
|
|
|
#### 2.1 Content Integration Bindings
|
|
|
|
This catalog owns visual production rules, not gameplay identities or screen
|
|
architecture. The following names are mandatory integration bindings. They may
|
|
be replaced only by the corresponding stable IDs from the merged authorities.
|
|
|
|
| Binding | Required resolution |
|
|
|---|---|
|
|
| `CONTENT.PROFESSION.BASE[01..12]` | Twelve base profession rows, in their authoritative order. |
|
|
| `CONTENT.PROFESSION.ADVANCED[01..24]` | Twenty-four advanced profession rows; two resolve to each base row. |
|
|
| `CONTENT.PROFESSION.HIDDEN[01..06]` | Six hidden hybrid profession rows and their prerequisite pairings. |
|
|
| `CONTENT.TRAIT[01..36]` | Thirty-six trait rows, each exposing benefit, cost, trigger, and visibility. |
|
|
| `CONTENT.EQUIPMENT[001..320]` | Three hundred twenty equipment rows, including form, one-slot behavior, anchor need, and manifestation class. |
|
|
| `CONTENT.ARTIFACT[01..60]` | Sixty shared-rule artifact rows and their trigger/conflict states. |
|
|
| `CONTENT.ENEMY[001..100]` | One hundred ordinary or elite enemy identities, including tier and region. |
|
|
| `CONTENT.BOSS[01..16]` | Sixteen boss identities, including region, action set, and phase needs. |
|
|
| `CONTENT.REGION[01..08]` | Eight region identities and encounter grammar. |
|
|
| `SYSTEM.PARTY.CAPACITY_PROFILE` | Simulated deployment capacity and anchor spacing across run progression. |
|
|
| `SYSTEM.COMBAT.EVENT_SCHEMA` | Authoritative targeting, timing, status, casualty, and result event names. |
|
|
| `UX.VIEWPORT.MIN/REFERENCE/MAX` | Landscape review viewports and safe-area masks. |
|
|
| `UX.SCREEN.*` | Player-facing screen and state IDs requiring art support. |
|
|
|
|
Unresolved bindings remain visible in the manifest. Art production cannot
|
|
silently assign a profession mechanic, item form, enemy tier, region placement,
|
|
screen count, or battle formula.
|
|
|
|
#### 2.2 Stable Art IDs
|
|
|
|
| Family | Stable ID range | Exact identity count |
|
|
|---|---|---:|
|
|
| Recruit modular part | `ART-REC-{part}-{index}` | defined in Section 4 |
|
|
| Profession kit | `ART-PRO-B01..B12`, `ART-PRO-A01..A24`, `ART-PRO-H01..H06` | 42 |
|
|
| Trait presentation | `ART-TRT-01..36` | 36 |
|
|
| Equipment presentation | `ART-EQP-001..320` | 320 |
|
|
| Artifact presentation | `ART-AFT-01..60` | 60 |
|
|
| Ordinary or elite enemy | `ART-ENM-001..100` | 100 |
|
|
| Boss | `ART-BOS-01..16` | 16 |
|
|
| Region | `ART-REG-01..08` | 8 |
|
|
| UI support art | `ART-UI-{family}-nnn` | Section 10 ledger |
|
|
| VFX grammar | `ART-VFX-{family}-{state}` | Section 13 ledger |
|
|
|
|
Gameplay identity counts and visual state counts stay separate. A palette,
|
|
frame, expression, equipment attachment, effect, or difficulty treatment is a
|
|
presentation state, never a new recruit, profession, enemy, boss, or item.
|
|
Recruit part values are `BODY`, `FACE`, `HAIR`, `GARMENT`, `DETAIL`,
|
|
`SKINPAL`, `HAIRPAL`, and `GARMENTPAL`. Profession overlays use the separate
|
|
`ART-PRO-*` family.
|
|
|
|
#### 2.3 Manifest Record
|
|
|
|
Every source and export record stores:
|
|
|
|
```text
|
|
id, content_binding, runtime_role, source_type, manual_brief_or_prompt,
|
|
creator_or_provider, provider_task_id, source_revision, source_path,
|
|
processed_path, source_hash, dimensions, format, alpha, layers, palette_id,
|
|
rig_id, anchor_map, pivot, native_play_scale, animation_events, frame_timing,
|
|
reduced_motion_export, reduced_flash_export, low_power_export, license_status,
|
|
import_binding, integration_state, runtime_capture, rejection_reason,
|
|
agent_visual_review, human_review, device_review, release_acceptance
|
|
```
|
|
|
|
Accepted and rejected candidates remain traceable. Regeneration never replaces
|
|
the provenance of an earlier candidate.
|
|
|
|
### 3. Global Drawing, Shape, Color, And Material Rules
|
|
|
|
#### 3.1 Drawing And Camera
|
|
|
|
- Characters use a three-quarter side presentation with the face, leading
|
|
hand, tool, and ground contact readable in a single pose.
|
|
- Outer contours are warm charcoal, not pure black. Interior lines are lighter
|
|
and are removed before they turn into noise at minimum play size.
|
|
- Cel shading uses one principal shadow group and one selective reflected-light
|
|
group. Specular marks belong to the material, not to rarity.
|
|
- Faces retain two readable landmarks at battle scale: brow/eye direction and
|
|
mouth/jaw angle. Portrait assembly adds detail without changing geometry.
|
|
- Background perspective is shallow enough for the ordered party line to keep
|
|
one stable ground rail. Vertical offsets used for overlap separation carry no
|
|
tactical meaning.
|
|
- Camera shake, zoom, and rotation are feedback accents, never the only proof
|
|
of hit weight, threat, or state change.
|
|
|
|
#### 3.2 Shape Language
|
|
|
|
| Subject | Primary shape grammar | Required distinction |
|
|
|---|---|---|
|
|
| Generated recruit | Tapered organic body masses plus one profession-owned outer contour. | Face/hair identity remains visible inside the profession silhouette. |
|
|
| Protective role | Closed arcs, broad planted bases, upright tools. | Protection is visible before an effect fires. |
|
|
| Reach or distance role | Long directional diagonals and clear empty space around the release path. | The projected reach does not resemble a protection field. |
|
|
| Support role | Open cups, paired loops, or outward branches. | Ally benefit and enemy harm use different endpoints. |
|
|
| Enemy | Region material distorted into one dominant threat shape. | Each identity has one recognizable mechanic-bearing contour. |
|
|
| Boss | One large body thesis plus two secondary phase-changing masses. | Hit area and forecast geometry remain distinct from decoration. |
|
|
| Interactable object | Squared base, visible hand contact, one state-bearing mechanism. | It cannot resemble dropped loot or a hazard. |
|
|
| Reward | Compact centered object with a quiet outward reveal. | It cannot resemble an incoming attack. |
|
|
|
|
#### 3.3 Palette And Material Budget
|
|
|
|
The common palette uses seven separated roles: ink charcoal, paper-white,
|
|
verdant green, mineral teal, signal coral, reward gold, and arcane violet.
|
|
Regions replace local hues but keep semantic contrast. Danger uses coral plus a
|
|
toothed or pointed contour; healing uses green plus an open-leaf contour;
|
|
protection uses teal plus a closed bracket; reward uses gold plus a radial seal.
|
|
|
|
Per recruit, skin and hair do not count against the material cap. The visible
|
|
combat costume uses at most:
|
|
|
|
- two garment-base materials;
|
|
- two profession materials;
|
|
- one equipment-specific focal material;
|
|
- one accent hue covering no more than 25 percent of the actor silhouette;
|
|
- emissive detail covering no more than 8 percent, except during a resolved
|
|
action frame.
|
|
|
|
Profession hue never encodes identity alone. Rarity cannot replace local color
|
|
with a full-body tint. Region lighting cannot shift ally and enemy values into
|
|
the same silhouette range.
|
|
|
|
#### 3.4 Asset Scale And Format Targets
|
|
|
|
| Asset | Editable source target | Runtime role | Validation rule |
|
|
|---|---:|---|---|
|
|
| Modular body or outfit master | 1536x2048 | layered actor rig or curated atlas | Full contour, ground, hands, face, and every declared anchor remain uncropped. |
|
|
| Portrait assembly | 1536x1536 | 384/512/768 crops | Same recipe and geometry as battle actor. |
|
|
| Battle actor | shared modular source | reference height bound to `UX.VIEWPORT.REFERENCE` | Silhouette passes at minimum viewport with bars and effects present. |
|
|
| Enemy actor | 1536x1536 or 1536x2048 | layered rig or atlas | Mechanic contour survives region lighting. |
|
|
| Boss actor | 2048x2048 to 3072x2048 | multi-part rig or atlases | Never covers forecast endpoints or priority controls. |
|
|
| Equipment or artifact object | 1024x1024 | 96/192/384 exports | Perceived size normalized without cropping long tools. |
|
|
| UI icon | vector or 512 master | 24/32/48 logical exports | Meaning survives one-color and high-contrast tests. |
|
|
| Environment master | 2560x1440 | layered landscape scene | Actors, UI, interactables, and hazards are not baked in. |
|
|
| VFX master | vector, mesh definition, or 1024 atlas | effect-family export | Alpha fringe, pivot, timing, blend, and final state are explicit. |
|
|
|
|
Atlas pages target 2048. A 4096 page requires measured memory and upload proof
|
|
on the selected device tier. Opaque full-screen plates do not carry alpha.
|
|
|
|
### 4. Generated Recruit Visual System
|
|
|
|
#### 4.1 Deterministic Recipe
|
|
|
|
`05_CONTENT_CATALOG.md` is the sole authority for stored generation options.
|
|
One recruit stores exactly this visual recipe:
|
|
|
|
```text
|
|
body_frame + face_shape + skin_palette + hair_shape + hair_palette
|
|
+ garment_cut + garment_palette + profession_overlay + detail_mark
|
|
```
|
|
|
|
Art does not roll this recipe. Generation stores the selected option IDs after
|
|
its fixed content substream completes; reload, localization, inspection, and
|
|
runtime assembly only consume those IDs. Equipment, scars, expression,
|
|
condition, and motion are derived layers and are never appended as hidden
|
|
generation options.
|
|
|
|
```text
|
|
portrait_assembly = stored_visual_recipe + expression_state + scars[]
|
|
battle_assembly = stored_visual_recipe + body_motion + equipment_attachments
|
|
+ scars[] + condition_state
|
|
result_assembly = stored_visual_recipe + result_expression + equipment_state
|
|
+ scars[] + condition_state
|
|
```
|
|
|
|
The same stored recipe builds shop portrait, inspection portrait, party-line
|
|
actor, result portrait, and collection silhouette. Assemblies may use different
|
|
detail levels but cannot alter face geometry, hair contour, body frame, palette,
|
|
garment cut, profession overlay, or detail-mark placement.
|
|
|
|
#### 4.2 Recruit Record To Art Crosswalk
|
|
|
|
The crosswalk below is exhaustive for the recruit record. `Stored` means the
|
|
content or system authority persists the value; `derived` means art assembles a
|
|
view from stored/runtime state without creating another option authority.
|
|
|
|
| Recruit record field | Stored authority | Art binding | Derived assembly and runtime output |
|
|
|---|---|---|---|
|
|
| `recruit_instance_id` | Unique run identity | Manifest/runtime owner key; no visual option | Joins every portrait, actor, event, result, and history view to one recruit. |
|
|
| `generation_seed` | Content generation seed | Provenance only; art never draws from it after recipe storage | Reproduction audit can verify the stored recipe without rerolling an assembly. |
|
|
| `offer_index` | Stable offer position | Provenance only | Shop portrait binds to the exact offer record. |
|
|
| `display_name_tokens` | Localizable name tokens | No art master | Engine-rendered name beside every derived assembly. |
|
|
| `pronoun_set` | Localization/accessibility field | No visual coupling | Text and accessibility output only. |
|
|
| `voice_effort_set` | Audio field with 8 content options | No art master | Audio binds independently to the same recruit ID. |
|
|
| `body_frame` | Visual grammar: 8 options | `ART-REC-BODY-01..08` | Shared body layers, attachment points, and 16 common motion slots. |
|
|
| `face_shape` | Visual grammar: 12 options | `ART-REC-FACE-01..12` | Six expression assemblies used by portrait/result states. |
|
|
| `skin_palette` | Visual grammar: 12 options | `ART-REC-SKINPAL-01..12` | One reviewed palette data set applied consistently to face and body. |
|
|
| `hair_shape` | Visual grammar: 24 options | `ART-REC-HAIR-01..24` | Portrait, battle-front, and battle-rear assemblies with headwear masks. |
|
|
| `hair_palette` | Visual grammar: 10 options | `ART-REC-HAIRPAL-01..10` | Palette data applied to every assembly of the selected hair shape. |
|
|
| `garment_cut` | Visual grammar: 12 options | `ART-REC-GARMENT-01..12` | Profession-neutral portrait and battle garment layers. |
|
|
| `garment_palette` | Visual grammar: 16 options | `ART-REC-GARMENTPAL-01..16` | Contrast-paired garment palette data; never a quality indicator. |
|
|
| `profession_overlay` | Visual grammar: 42 options | One `ART-PRO-B*`, `ART-PRO-A*`, or `ART-PRO-H*` package | At generation it is the base kit selected by `base_profession_id`; later authoritative profession changes update this stored binding. Counted in Section 5, not in recruit-module totals. |
|
|
| `detail_mark` | Visual grammar: 20 options | `ART-REC-DETAIL-01..20` | One portrait/battle cosmetic assembly; no second accessory or multi-detail draw. |
|
|
| `base_profession_id` | Content profession identity | Must resolve to `ART-PRO-B01..B12` at generation through the profession catalog | Rules, text, and initial overlay use one profession binding; art cannot select a different kit. |
|
|
| `attribute_vector` | Five content grades | No body, face, palette, or garment binding | Engine-rendered grades and sourced comparison markers only. |
|
|
| `trait_id` | One of 36 traits | `ART-TRT-01..36` from Section 6 | Compound emblem and bounded event badge; never changes the stored visual recipe. |
|
|
| `starting_equipment_id` | One content equipment ID | `ART-EQP-001..320` plus its declared attachment point | Shop/result objects and the single battle attachment derive from equipment ownership. |
|
|
| `level`, `xp` | Individual system/content progression values | No visual option | Engine-rendered `LV 1..10` and exact current/next XP progress; never a Company-wide level. |
|
|
| `mastery_by_profession` | System progression map | No implicit overlay change | UI progress output; a profession overlay changes only through an authoritative profession-state update. |
|
|
| `quality_band` | Disclosed content band | No palette, material, body, or effect binding | Engine-rendered band notation only. |
|
|
| `shop_cost_tier` | Economy-derived tier | No art option | Engine-rendered cost treatment around the same portrait assembly. |
|
|
| `duplicate_signature` | Content-owned hash of name, visual parts, profession, trait, and attribute grades | Consumed for validation; not redefined by art | Prevents content duplicates without treating equipment or level as identity parts. |
|
|
| `survival_battles` | Run history | No base-art regeneration | Engine text and result/history context. |
|
|
| `knockouts` | Run history | No base-art regeneration | Engine text and sourced condition presentation. |
|
|
| `scars[]` | Run history overlays | Reuses scar-compatible geometry within `ART-REC-DETAIL-01..20`; no new generation pool | Zero or more acquired overlays added after the base `detail_mark`, with event provenance and occlusion checks. |
|
|
| `acquired_tick` | Run chronology | No visual option | Sort/history metadata only. |
|
|
|
|
At duplicate-protection step 9, content compares the nine stored visual fields
|
|
from Section 4.1 directly to enforce the rule that one exact visible assembly
|
|
cannot recur in a run. This comparison is not `duplicate_signature` and does
|
|
not add a recruit-record field. On visual-pool exhaustion, content rerolls
|
|
`detail_mark`, then `garment_palette`, then `hair_palette`; art consumes the
|
|
resulting stored IDs and never invents an unavailable option.
|
|
|
|
#### 4.3 Modular Source Inventory
|
|
|
|
| Library | Exact masters | Runtime states per master | Total state cells | Notes |
|
|
|---|---:|---:|---:|---|
|
|
| Body frames | 8 | 16 common motion slots | 128 | Four height bands by two mass bands; every profession kit fits every frame. |
|
|
| Face shapes | 12 | 6 expression assemblies | 72 | Neutral, assess, focus, strain, relief, and loss-record. |
|
|
| Hair shapes | 24 | 3 assemblies | 72 | Portrait, battle-front, and battle-rear layers with headwear masks. |
|
|
| Detail marks | 20 | 2 assemblies | 40 | Portrait and battle versions of the one stored cosmetic mark. |
|
|
| Garment cuts | 12 | 2 assemblies | 24 | Profession-neutral portrait and battle layers. |
|
|
| Skin palettes | 12 | palette data | 12 | Highlight, midtone, shadow, lip, and palm values across required lighting. |
|
|
| Hair palettes | 10 | palette data | 10 | Natural and aether-touched ranges with no quality coding. |
|
|
| Garment palettes | 16 | palette data | 16 | Contrast-paired main/accent sets with non-color readability. |
|
|
| **Total** | **114 masters** | | **374 authored state cells** | The 42 profession packages remain separate in Section 5. |
|
|
|
|
Runtime assembles stored recipes from these modules. Production creates 114
|
|
recruit masters and 42 profession packages, not a pre-rendered Cartesian set of
|
|
possible recruits. Compatibility matrices validate masks, attachment points,
|
|
silhouettes, and palettes without turning each combination into another asset.
|
|
|
|
The eight body frames are exactly four height bands by two mass bands. They
|
|
share collision and timing while preserving authored head, hand, ground, and
|
|
equipment proportions. Production may add seated or assisted movement only
|
|
through a later content-schema revision; it cannot become a hidden ninth body
|
|
option.
|
|
|
|
#### 4.4 Standard Attachment Point Map
|
|
|
|
Every body and profession kit declares these named attachment points:
|
|
|
|
```text
|
|
head_top, face_center, shoulder_left, shoulder_right, hand_primary,
|
|
hand_secondary, chest, waist_left, waist_right, back_high, back_low,
|
|
foot_left, foot_right, ground_front, ground_rear, projectile_origin,
|
|
effect_origin, overhead_status
|
|
```
|
|
|
|
Equipment may bind only to a declared point or to `none`. A two-hand item owns
|
|
both hand points and a grip-distance range. Hair, sleeves, capes, back objects,
|
|
and headwear carry explicit occlusion masks rather than relying on import order.
|
|
|
|
#### 4.5 Layer And Occlusion Order
|
|
|
|
```text
|
|
rear VFX
|
|
rear profession mass / back equipment
|
|
rear hair / rear detail mark
|
|
rear arm and rear hand item
|
|
body frame / garment cut
|
|
profession torso and waist overlays
|
|
head / face / expression / front hair
|
|
front arm and primary item
|
|
front profession mass / front equipment
|
|
condition and target contours
|
|
front VFX / engine-rendered state UI
|
|
```
|
|
|
|
At the minimum viewport, another recruit may cover no more than 35 percent of a
|
|
recruit's torso, no more than 15 percent of the head contour, and none of the
|
|
profession's unique tool endpoint. The selected or acting actor receives a
|
|
shape-following ink-and-paper rim; non-actors are not globally dimmed.
|
|
|
|
#### 4.6 Generation Safety And Distinctness
|
|
|
|
- Body, face, skin, hair, and detail distributions are independent of combat
|
|
strength, cost, rarity, profession tier, trait polarity, and survival record.
|
|
- All profession masks pass `8 * 42 = 336` body/kit, `24 * 42 = 1,008`
|
|
hair/kit, `12 * 42 = 504` garment/kit, and `20 * 42 = 840` detail/kit
|
|
combinations before production scale-up.
|
|
- A recipe is rejected when its face contour, hair contour, profession outer
|
|
mass, and primary tool do not produce at least three distinct reads against
|
|
the current deployed party.
|
|
- Direct comparison of the nine stored visual fields prevents an exact visible
|
|
assembly from recurring in a run; `duplicate_signature` remains the broader
|
|
content hash defined in the crosswalk.
|
|
- Names are engine-rendered. No generated name, biography, or localized text is
|
|
baked into art.
|
|
- Trait and equipment changes add state-bearing markers; they do not regenerate
|
|
a recruit's body or face.
|
|
|
|
#### 4.7 Recruit Condition Presentation
|
|
|
|
| State | Portrait change | Battle change | Persistence proof |
|
|
|---|---|---|---|
|
|
| Available | Neutral or assess expression | `idle_observe` | Full recipe visible. |
|
|
| Selected | Focus expression and shaped rim | `ready` final pose | Party-order token shares the same portrait crop. |
|
|
| Pressured | Strain expression, segmented condition edge | `pressure_idle` with lowered center of mass | Effect clears only when authoritative condition clears. |
|
|
| Knocked Out | Eyes and tool lower; no gore | `knockout_hold` preserves ground and silhouette before current-battle exit | Result view retains the same recipe, ownership and next-stage return state. |
|
|
| Victory | Relief expression | restrained `victory_settle` | Equipment and condition remain visible for result review. |
|
|
|
|
### 5. Profession Visual Kits: 42
|
|
|
|
#### 5.1 Kit Package And Motion Codes
|
|
|
|
Each profession receives one package. The visual kit reveals combat
|
|
responsibility without replacing recruit identity.
|
|
|
|
| Deliverable per kit | Per kit | Total for 42 |
|
|
|---|---:|---:|
|
|
| Profession emblem | 1 | 42 |
|
|
| Outer-silhouette overlay set | 1 | 42 |
|
|
| Primary tool set with stow state | 1 | 42 |
|
|
| State-bearing device with empty/active/full | 3 | 126 states |
|
|
| Auto-action pose deviations | 2 | 84 |
|
|
| Passive or cadence marker | 1 | 42 |
|
|
| Signature effect-geometry brief | 1 | 42 |
|
|
| Reduced-motion resolved poses | 2 | 84 |
|
|
|
|
Animation-need codes used below:
|
|
|
|
| Code | Required authored deviation |
|
|
|---|---|
|
|
| `BRACE` | planted anticipation, protected endpoint, absorb recovery |
|
|
| `INTERCEPT` | rapid cross-body entry, contact hold, return to legal order |
|
|
| `THRUST` | two-hand reach line, contact compression, controlled withdrawal |
|
|
| `SWEEP` | broad tool arc with clear start and endpoint, no full-screen trail |
|
|
| `DUAL` | alternating hand contacts with readable first and second event |
|
|
| `RELEASE` | aim, release event, projectile origin, recoil recovery |
|
|
| `CHANNEL` | stable source, sustained tick pose, interruptible recovery |
|
|
| `PULSE` | gather, outward ally/enemy endpoint, quiet return |
|
|
| `DEPLOY` | hand-to-ground or hand-to-object placement, activation, recall |
|
|
| `HEAVY` | long anticipation, high-contact key, weighted settle |
|
|
| `MOBILE` | step-out, action, and return that preserves party order |
|
|
| `RALLY` | upward signal, outward propagation, group response without manual-control implication |
|
|
|
|
All actions are automatic event presentation. The codes do not authorize
|
|
repeated player-activated skills.
|
|
|
|
In the kit tables, `both hands` means `hand_primary + hand_secondary`, `both
|
|
waist points` means `waist_left + waist_right`, `both shoulders` means
|
|
`shoulder_left + shoulder_right`, and `both feet` means `foot_left +
|
|
foot_right`. These are compact references to the standard attachment point map,
|
|
not new anchor names.
|
|
|
|
#### 5.2 Base Profession Kits: 12
|
|
|
|
| Art ID / binding | Silhouette thesis | Equipment anchors | Material and accent limit | Animation needs |
|
|
|---|---|---|---|---|
|
|
| `ART-PRO-B01` / `CONTENT.PROFESSION.BASE[01]` | Broad shoulder shell and high rectangular guard edge; face stays open. | `hand_secondary`, `shoulder_left`, `back_high` | Canvas + dark iron; teal edge <=20%; no cape. | `BRACE`, `INTERCEPT` |
|
|
| `ART-PRO-B02` / `CONTENT.PROFESSION.BASE[02]` | Long forward haft with narrow pennon and low planted stance. | both hands, `back_low`, `projectile_origin` | Ash wood + brushed steel; coral pennon <=15%. | `THRUST`, `MOBILE` |
|
|
| `ART-PRO-B03` / `CONTENT.PROFESSION.BASE[03]` | Split short-coat hem and paired compact hand tools. | both hands, both waist points | Dyed cloth + blackened steel; gold stitches <=12%. | `DUAL`, `MOBILE` |
|
|
| `ART-PRO-B04` / `CONTENT.PROFESSION.BASE[04]` | Tall bow crescent and offset quiver breaking one shoulder. | both hands, `back_high`, `projectile_origin` | Pale wood + woven cord; verdant fletching <=18%. | `RELEASE`, `MOBILE` |
|
|
| `ART-PRO-B05` / `CONTENT.PROFESSION.BASE[05]` | Vertical staff line opposed by a square folio at the waist. | `hand_primary`, `waist_right`, `effect_origin` | Lacquered wood + paper; violet ink <=20%. | `CHANNEL`, `PULSE` |
|
|
| `ART-PRO-B06` / `CONTENT.PROFESSION.BASE[06]` | Hanging lantern mass below the hand and open sleeve arc above it. | `hand_primary`, `waist_left`, `effect_origin` | Frosted glass + linen; green light <=8% idle. | `PULSE`, `CHANNEL` |
|
|
| `ART-PRO-B07` / `CONTENT.PROFESSION.BASE[07]` | Block hammer head, cropped apron, and compact back tool roll. | both hands, `back_low`, `ground_front` | Forged steel + heavy leather; gold sparks only on contact. | `HEAVY`, `DEPLOY` |
|
|
| `ART-PRO-B08` / `CONTENT.PROFESSION.BASE[08]` | Bare forearm wedges, wrapped fists, and short waist sash tails. | both hands, `waist_left`, `waist_right` | Woven wrap + matte leather; coral knots <=12%. | `DUAL`, `INTERCEPT` |
|
|
| `ART-PRO-B09` / `CONTENT.PROFESSION.BASE[09]` | Shoulder vial rack and low triangular satchel balanced across torso. | `shoulder_right`, `waist_left`, `hand_primary` | Clear glass + waxed cloth; three liquid hues maximum. | `DEPLOY`, `RELEASE` |
|
|
| `ART-PRO-B10` / `CONTENT.PROFESSION.BASE[10]` | Narrow upright standard behind one shoulder and short signal baton. | `back_high`, `hand_primary`, `effect_origin` | Dyed cloth + brass; gold trim <=15%. | `RALLY`, `PULSE` |
|
|
| `ART-PRO-B11` / `CONTENT.PROFESSION.BASE[11]` | Weighted cord loop around a low asymmetrical coat and hooked hand tool. | `hand_primary`, `waist_right`, `ground_front` | Dark steel + coarse cloth; violet knots <=14%. | `SWEEP`, `MOBILE` |
|
|
| `ART-PRO-B12` / `CONTENT.PROFESSION.BASE[12]` | Round forearm disc opposed by a long compact launcher silhouette. | `hand_secondary`, `hand_primary`, `projectile_origin` | Patinated bronze + lacquer; teal inlay <=18%. | `RELEASE`, `BRACE` |
|
|
|
|
#### 5.3 Advanced Profession Kits: 24
|
|
|
|
Each pair inherits the indexed base kit's face opening and garment masks, but
|
|
changes the outer contour, tool rhythm, and action endpoints.
|
|
|
|
| Art ID / binding | Parent | Silhouette thesis | Equipment anchors | Material and accent limit | Animation needs |
|
|
|---|---|---|---|---|---|
|
|
| `ART-PRO-A01` / `CONTENT.PROFESSION.ADVANCED[01]` | B01 | Tall slab guard, raised collar, planted triangular foot mass. | `hand_secondary`, both shoulders, `ground_front` | Dark iron + quilted cloth; teal seam <=16%. | `BRACE`, `HEAVY` |
|
|
| `ART-PRO-A02` / `CONTENT.PROFESSION.ADVANCED[02]` | B01 | Small angled guard and long forward blade, leaving torso open. | both hands, `back_low` | Polished steel + canvas; coral edge <=14%. | `INTERCEPT`, `THRUST` |
|
|
| `ART-PRO-A03` / `CONTENT.PROFESSION.ADVANCED[03]` | B02 | Hooked pole head and high forked pennon make two distant endpoints. | both hands, `back_low`, `projectile_origin` | Blue steel + ash; verdant cord <=12%. | `THRUST`, `SWEEP` |
|
|
| `ART-PRO-A04` / `CONTENT.PROFESSION.ADVANCED[04]` | B02 | Narrow lance cone, kite pennon, and backward-streaming waist panels. | both hands, `back_high` | Brushed steel + stiff silk; coral pennon <=18%. | `THRUST`, `MOBILE` |
|
|
| `ART-PRO-A05` / `CONTENT.PROFESSION.ADVANCED[05]` | B03 | Three short tool tips fan from an angular hip sheath. | both hands, both waist points | Blackened steel + soft leather; gold pins <=10%. | `DUAL`, `RELEASE` |
|
|
| `ART-PRO-A06` / `CONTENT.PROFESSION.ADVANCED[06]` | B03 | Long single saber diagonal and one broad trailing scarf plane. | `hand_primary`, `waist_right`, `back_low` | Tempered steel + thin cloth; violet scarf <=20%. | `SWEEP`, `MOBILE` |
|
|
| `ART-PRO-A07` / `CONTENT.PROFESSION.ADVANCED[07]` | B04 | Greatbow exceeds head height; split quiver forms a rear fork. | both hands, `back_high`, `projectile_origin` | Layered wood + horn; verdant fletching <=15%. | `RELEASE`, `HEAVY` |
|
|
| `ART-PRO-A08` / `CONTENT.PROFESSION.ADVANCED[08]` | B04 | Paired compact launchers and squared magazine blocks at both hips. | both hands, both waist points, `projectile_origin` | Dark wood + brass; coral notch <=12%. | `DUAL`, `RELEASE` |
|
|
| `ART-PRO-A09` / `CONTENT.PROFESSION.ADVANCED[09]` | B05 | Ring-topped staff with three flat tablets orbiting the shoulder contour. | `hand_primary`, `shoulder_right`, `effect_origin` | Inked wood + ceramic; violet marks <=18%. | `CHANNEL`, `PULSE` |
|
|
| `ART-PRO-A10` / `CONTENT.PROFESSION.ADVANCED[10]` | B05 | Short wand and oversized clasped volume create a low-wide reading pose. | both hands, `waist_left`, `effect_origin` | Paper + dark leather; gold clasp <=10%. | `CHANNEL`, `DEPLOY` |
|
|
| `ART-PRO-A11` / `CONTENT.PROFESSION.ADVANCED[11]` | B06 | Twin low lanterns join through a high sleeve arc. | both hands, both waist points, `effect_origin` | Frosted glass + linen; green light <=8% idle. | `PULSE`, `DUAL` |
|
|
| `ART-PRO-A12` / `CONTENT.PROFESSION.ADVANCED[12]` | B06 | Bell pole and circular hanging screen create concentric contours. | both hands, `back_high`, `effect_origin` | Brass + translucent paper; teal ring <=16%. | `RALLY`, `CHANNEL` |
|
|
| `ART-PRO-A13` / `CONTENT.PROFESSION.ADVANCED[13]` | B07 | Oversized maul and compact furnace pack form opposing heavy blocks. | both hands, `back_low`, `ground_front` | Forged iron + fired clay; coral heat <=8% idle. | `HEAVY`, `PULSE` |
|
|
| `ART-PRO-A14` / `CONTENT.PROFESSION.ADVANCED[14]` | B07 | Long wrench profile and square folding case near the ground. | `hand_primary`, `back_low`, `ground_front` | Steel + painted wood; gold latches <=12%. | `DEPLOY`, `BRACE` |
|
|
| `ART-PRO-A15` / `CONTENT.PROFESSION.ADVANCED[15]` | B08 | Layered arm guards widen the upper body; leg ribbons point action direction. | both hands, both feet | Lacquered leather + cloth; coral ties <=15%. | `DUAL`, `HEAVY` |
|
|
| `ART-PRO-A16` / `CONTENT.PROFESSION.ADVANCED[16]` | B08 | Long jointed staff held low beneath an open shoulder silhouette. | both hands, `back_low` | Ash wood + woven grip; teal bands <=12%. | `SWEEP`, `INTERCEPT` |
|
|
| `ART-PRO-A17` / `CONTENT.PROFESSION.ADVANCED[17]` | B09 | Circular vial wheel rises behind one shoulder with a short sprayer forward. | `back_high`, `hand_primary`, `projectile_origin` | Glass + brass; three liquid hues maximum. | `RELEASE`, `PULSE` |
|
|
| `ART-PRO-A18` / `CONTENT.PROFESSION.ADVANCED[18]` | B09 | Tall reservoir pack and thin injector cane form a vertical pair. | `back_low`, `hand_primary`, `effect_origin` | Smoked glass + waxed cloth; green fluid <=10%. | `CHANNEL`, `THRUST` |
|
|
| `ART-PRO-A19` / `CONTENT.PROFESSION.ADVANCED[19]` | B10 | Wide split standard and waist drum create high and low signal masses. | `back_high`, `waist_left`, both hands | Dyed cloth + hide; gold trim <=14%. | `RALLY`, `HEAVY` |
|
|
| `ART-PRO-A20` / `CONTENT.PROFESSION.ADVANCED[20]` | B10 | Fan of slender signal needles behind a cropped conducting baton. | `back_high`, `hand_primary`, `projectile_origin` | Spring steel + lacquer; violet tips <=12%. | `RALLY`, `RELEASE` |
|
|
| `ART-PRO-A21` / `CONTENT.PROFESSION.ADVANCED[21]` | B11 | Wide weighted chain crescent stays low around a narrow upright torso. | both hands, `ground_front`, `waist_right` | Dark steel + coarse cloth; coral binding <=10%. | `SWEEP`, `HEAVY` |
|
|
| `ART-PRO-A22` / `CONTENT.PROFESSION.ADVANCED[22]` | B11 | Broad hooked cleaver and short segmented tether create a broken diagonal. | `hand_primary`, `waist_right`, `back_low` | Black iron + leather; violet etch <=12%. | `INTERCEPT`, `SWEEP` |
|
|
| `ART-PRO-A23` / `CONTENT.PROFESSION.ADVANCED[23]` | B12 | Three round plates step from forearm to shoulder in a rising rhythm. | `hand_secondary`, `shoulder_left`, `back_high` | Patinated bronze + canvas; teal centers <=15%. | `BRACE`, `PULSE` |
|
|
| `ART-PRO-A24` / `CONTENT.PROFESSION.ADVANCED[24]` | B12 | Long-barrel tool and rectangular shoulder stock create one exact aim line. | both hands, `shoulder_right`, `projectile_origin` | Dark wood + steel; gold sight <=8%. | `RELEASE`, `HEAVY` |
|
|
|
|
#### 5.4 Hidden Hybrid Profession Kits: 6
|
|
|
|
Each row below resolves the content-owned hybrid ID and both prerequisites
|
|
directly. Art translates the authored combat rule and `P/O/A/V/S` handoff into
|
|
one new focal mass; it does not redefine the mechanic or stack two complete
|
|
parent costumes.
|
|
|
|
| Art ID / content identity | Exact parent pair | Combat-to-silhouette translation | Held / worn props and anchors | Material and accent limit | VFX / event cue | Animation needs / action verbs |
|
|
|---|---|---|---|---|---|---|
|
|
| `ART-PRO-H01` / `CONTENT.PROFESSION.HIDDEN[01]` / `PF-H01` Warmantle | `PF-B01` Hearthguard + `PF-B07` Kindhand | A mantle shield wraps the front shoulder, then opens toward the protected neighbor when an intercepted loss becomes Care Debt and a basic pays that debt as healing. | Mantle shield at `hand_secondary`/`shoulder_left`; tending hand-lamp at `hand_primary`/`effect_origin`; care satchel at `back_low`. | Dark iron + quilted cloth + frosted glass; teal/heart-red accent total <=16%. | A stitched-square debt mark closes on block, then resolves outward as one restrained heartbeat ring toward the healed neighbor. | `BRACE` (intercept/hold), `PULSE` (assess/tend/resolve) |
|
|
| `ART-PRO-H02` / `CONTENT.PROFESSION.HIDDEN[02]` / `PF-H02` Danceshear | `PF-B02` Edgehand + `PF-B11` Bellkeeper | Paired bell-hilt blades form alternating short diagonals; the feet hold a three-beat stance so Edge earned between neighbor actions reads as a deliberate wind-up cut rather than projectile play. | Bell-hilt blade in each hand; compact beat tabs at `waist_right`; shared blade/bell event origin at both hilts. | Brushed steel + aged brass + dark cloth; coral/gold accent total <=16%. | A split metronome cue marks the three cadence bands; only the selected enemy telegraph compresses or stretches when Edge is spent. | `DUAL` (alternate/strike/cutoff), `MOBILE` (beat-step/cut/recover) |
|
|
| `ART-PRO-H03` / `CONTENT.PROFESSION.HIDDEN[03]` / `PF-H03` Horizon Reaver | `PF-B03` Longspoke + `PF-B05` Farstring | A bow-spear assembly plants as a straight guide line, opens into a draw arc for the rearmost piercing shot, then returns to a two-hand basic thrust to recover the guide. | Bow-spear in both hands with `ground_front` plant socket, `projectile_origin` at the string line, and collapsed stow at `back_high`. | Pale layered wood + brushed steel + taut cord; white/verdant accent total <=14%. | One thin horizon line joins planted guide to the legal rear target; the line snaps off on the shot and returns along the haft during recovery. | `THRUST` (plant/recover), `RELEASE` (draw/pierce/reacquire) |
|
|
| `ART-PRO-H04` / `CONTENT.PROFESSION.HIDDEN[04]` / `PF-H04` Switchwright | `PF-B04` Wayrunner + `PF-B09` Coilsmith | A compact backpack automaton shifts from carried high mass to a ground unit as the wearer steps through indexed positions; its contour visibly changes guard, strike, then ally-pull mode. | Automaton at `back_high`/`back_low` while carried and `ground_front` when dropped; hooked control grip at `hand_primary`; mode switch at `effect_origin`. | Blackened steel + waxed canvas + brass; teal/coral/gold mode accents are mutually exclusive and <=12%. | Numbered footprint cues appear only for visited positions; the automaton shows square guard, pointed strike, or rearward hook geometry for its current mode. | `MOBILE` (carry/step/switch), `DEPLOY` (drop/activate/pack) |
|
|
| `ART-PRO-H05` / `CONTENT.PROFESSION.HIDDEN[05]` / `PF-H05` Eventide Scholar | `PF-B06` Riftcaller + `PF-B10` Gloamreader | A split light tablet collapses at an interrupted Charge, closes around the stored area-cast shadow, then opens toward the inscribed enemy when that target's hindrance expires. | Two tablet halves in both hands with closed stow at `waist_right`; shared cast and inscription source at `effect_origin`. | Smoked glass + black paper + lacquered wood; pale gold/violet accent total <=14%. | An eclipsed diamond records Shadow Text; its dark half stays on the target until expiry, when the diamond reverses and releases the stored area geometry. | `CHANNEL` (charge/collapse/inscribe), `RELEASE` (expiry/open/discharge) |
|
|
| `ART-PRO-H06` / `CONTENT.PROFESSION.HIDDEN[06]` / `PF-H06` Covenant Factor | `PF-B08` Bondwright + `PF-B12` Packwarden | A ledger-knot frame fans distinct loan tabs toward eligible recipients; each recipient action pulls its tab closed as repayment and lights one flexible Credit without implying a self-only refresh. | Ledger-knot frame at `hand_primary`/`effect_origin`; tabbed supply pack at `back_high`; closed-loan tags at `waist_left`. | Dark wood + brass + woven cord + paper; teal/gold accent total <=15%. | Shape-coded linked tabs distinguish Guard, Remedy, Parts, Verse, and Supply; repayment closes one link with a stamped pluck and Credit seal. | `PULSE` (loan/mark/link), `DEPLOY` (tab/close/credit) |
|
|
|
|
#### 5.5 Profession Review Gates
|
|
|
|
- All 42 emblems pass silhouette, one-color, 24-logical-pixel, and text-free
|
|
tests.
|
|
- All 42 outer silhouettes remain identifiable on all 8 body frames and
|
|
with hair and equipment attached.
|
|
- All 84 pose deviations declare anticipation, event tick, contact or target
|
|
endpoint, recovery, interrupted final state, and reduced-motion resolution.
|
|
- Tool reach and effect geometry must bind to the profession's authored
|
|
mechanics before production. A visually attractive mismatch is rejected.
|
|
- Advanced and hidden kits preserve the recruit's face, hair, garment cut,
|
|
detail mark, and palettes; progression does not replace personal identity.
|
|
|
|
### 6. Trait Presentation: 36
|
|
|
|
Each trait receives one compound emblem whose left mass represents benefit and
|
|
right notch represents cost. Color follows the affected mechanic, while notch
|
|
direction and border pattern provide the non-color read.
|
|
|
|
| Deliverable | Per trait | Total |
|
|
|---|---:|---:|
|
|
| Compound emblem master | 1 | 36 |
|
|
| Benefit state | 1 | 36 |
|
|
| Cost state | 1 | 36 |
|
|
| Battle trigger badge | 1 | 36 |
|
|
| Inspect and result crop | derived | 36 bindings |
|
|
|
|
The exact trait icon concept binds to `CONTENT.TRAIT[n].benefit`, `.cost`,
|
|
`.trigger`, and `.visibility`. Traits do not receive body, face, costume, or
|
|
full-screen effect variants. A trigger badge appears beside its causal actor
|
|
for one bounded event and remains available in the event inspection record.
|
|
|
|
### 7. Equipment And Artifact Presentation
|
|
|
|
#### 7.1 Equipment: 320
|
|
|
|
Every equipment row receives one object identity and one behavior-read key,
|
|
even when its effect resolves through comparison, timing, targeting, reach,
|
|
resource flow, status policy, or profession behavior rather than an attack.
|
|
|
|
| Required unit | Per equipment row | Exact total | Runtime form |
|
|
|---|---:|---:|---|
|
|
| Object design sheet | 1 | 320 | source-only turnaround, scale, material, and grip notes |
|
|
| Inventory object export | 1 | 320 | transparent 384 master with 192 and 96 derivatives |
|
|
| Compact silhouette | 1 | 320 | shop, comparison, and event-log use |
|
|
| Behavior-read key | 1 | 320 | one of compare, target, timing, reach, resource, status, profession, or trigger geometry |
|
|
| Equipped attachment | `W` | `W` | required when `CONTENT.EQUIPMENT[n].visual_anchor != none` |
|
|
| Stowed attachment | `S` | `S` | required when the content row exposes a stowed state |
|
|
|
|
`0 <= S <= W <= 320`. Integration must resolve `W` and `S` by querying all 320
|
|
content rows; neither may be estimated from item naming. The mandatory package
|
|
therefore contains 320 source sheets and 960 runtime manifestations, plus `W +
|
|
S` attachment manifestations.
|
|
|
|
Equipment state rules:
|
|
|
|
- neutral, selected, unavailable, equipped, compared, and protected states use
|
|
engine frames and shape masks around the same object export;
|
|
- long tools use normalized diagonal bounds so they do not appear weaker merely
|
|
because they occupy fewer pixels;
|
|
- material, construction, and edge profile identify an object before rarity;
|
|
- a behavior-read key appears at the earliest affected decision and at the
|
|
causal battle or result event;
|
|
- head, back, hand, shoulder, waist, and foot attachments use the standard
|
|
anchor map and declare hair, sleeve, and profession occlusion masks;
|
|
- an upgrade adds a bounded construction detail or state marker, never a full
|
|
hue replacement or larger persistent glow.
|
|
|
|
#### 7.2 Artifacts: 60
|
|
|
|
Artifacts are shared rule objects and never appear as worn equipment.
|
|
|
|
| Required unit | Per artifact | Exact total | Runtime form |
|
|
|---|---:|---:|---|
|
|
| Object and material design sheet | 1 | 60 | source-only identity and scale |
|
|
| Inspect object export | 1 | 60 | transparent 384 master |
|
|
| Compact rule emblem | 1 | 60 | shop, build summary, and event log |
|
|
| Trigger seal | 1 | 60 | awaken, modify, conflict, or expire endpoint |
|
|
|
|
The package contains 60 source sheets and 180 runtime manifestations. The
|
|
trigger seal binds to `CONTENT.ARTIFACT[n].rule`, `.trigger`, `.conflict`, and
|
|
`.duration`. Persistent artifact UI uses the compact emblem and engine-rendered
|
|
state; it never adds a permanent full-screen particle layer.
|
|
|
|
### 8. Enemy And Boss Production
|
|
|
|
#### 8.1 Ordinary And Elite Enemies: 100
|
|
|
|
Let `O` be the authoritative ordinary count and `E` the elite count, with
|
|
`O + E = 100`. Let `E_r` be enemy count in region `r`, with
|
|
`sum(E_r for r=01..08) = 100`. These variables must resolve from content IDs.
|
|
|
|
Every enemy identity receives:
|
|
|
|
| Deliverable | Per identity | Exact or formula total |
|
|
|---|---:|---:|
|
|
| Identity and mechanic sheet | 1 | 100 |
|
|
| Battle rig or curated atlas | 1 | 100 |
|
|
| Inspect portrait crop | 1 | 100 |
|
|
| Mechanic glyph | 1 | 100 |
|
|
| Forecast/resolution VFX binding | 1 bundle | 100 bundles |
|
|
| Core motion states | 8 | 800 states |
|
|
| Elite pressure and secondary-mechanic states | 2 when elite | `2 * E` states |
|
|
|
|
The eight core states are `enter`, `idle`, `reposition`, `basic_action`,
|
|
`signature_action`, `hit`, `interrupted`, and `defeat`. Elite additions are
|
|
`pressure_shift` and `secondary_action`. Variant palette, size, difficulty, or
|
|
region dressing does not create another identity.
|
|
|
|
Enemy visual acceptance:
|
|
|
|
- one dominant outer contour exposes the signature mechanic before action;
|
|
- the forecast uses explicit origin, affected order range, resolve direction,
|
|
and cancel state;
|
|
- enemy and recruit tools do not share the same silhouette when they create
|
|
different target rules;
|
|
- defeat poses preserve the body thesis and do not resemble an imminent attack;
|
|
- region materials may grow from or erode the body, but never cover the mechanic
|
|
endpoint or replace identity with a tint.
|
|
|
|
#### 8.2 Bosses: 16
|
|
|
|
Let `B_r` be boss count in region `r`, with
|
|
`sum(B_r for r=01..08) = 16`. Distribution and phase count come from content.
|
|
|
|
| Deliverable | Per boss | Exact total |
|
|
|---|---:|---:|
|
|
| Turnaround, scale, and mechanic sheet | 1 | 16 |
|
|
| Multi-part battle rig | 1 | 16 |
|
|
| Inspect plate | 1 | 16 |
|
|
| Boss emblem | 1 | 16 |
|
|
| Forecast geometry bundles | 3 | 48 |
|
|
| Minimum named motion states | 14 | 224 |
|
|
|
|
The 14 minimum states are `intro`, `idle`, `reposition`, `basic_action`, three
|
|
`signature_action` states, `hit`, `interrupted`, `pressure_shift`,
|
|
`phase_transition`, `recovery`, `defeat`, and `result_hold`. Extra phases add
|
|
only content-bound actions and transitions; they do not duplicate the whole
|
|
package by recolor.
|
|
|
|
Boss staging rules:
|
|
|
|
- a boss has one stable ground and targeting origin even when secondary parts
|
|
extend above or behind it;
|
|
- body area may occupy at most 38 percent of the reference playfield width and
|
|
58 percent of its height before a special camera review is required;
|
|
- no decorative limb, cloth, weather, or effect may cover a forecast endpoint,
|
|
the party's front three head contours, or priority controls;
|
|
- phase change alters at least one outer mass, material state, and motion
|
|
cadence. A hue swap alone fails;
|
|
- all three forecast bundles include preview, imminent, resolve, cancel, and
|
|
reduced-motion final states.
|
|
|
|
### 9. Region Art Families: 8
|
|
|
|
#### 9.1 Exact Package Count
|
|
|
|
Each region receives the same countable shell while its content and composition
|
|
remain distinct.
|
|
|
|
| Deliverable per region | Per region | Total for 8 |
|
|
|---|---:|---:|
|
|
| Shape, palette, light, and material key | 1 | 8 source keys |
|
|
| Layered shop/arrival context | 1 | 8 masters |
|
|
| Layered route context | 1 | 8 masters |
|
|
| Common battle foundation | 1 | 8 masters |
|
|
| Elite battle foundation | 1 | 8 masters |
|
|
| Boss battle foundation | 1 | 8 masters |
|
|
| Prop families | 18 | 144 families |
|
|
| Atmosphere/light overlays | 4 | 32 overlays |
|
|
| Region emblem | 1 | 8 emblems |
|
|
| **Runtime region-bound visual families** | **28** | **224** |
|
|
|
|
Each master environment separates:
|
|
|
|
```text
|
|
opaque sky, far terrain, far structures, midground structures,
|
|
playfield foundation, state-bearing props, atmosphere/light,
|
|
foreground occluders
|
|
```
|
|
|
|
No master bakes actors, text, rewards, target marks, hazards, or UI. Foreground
|
|
occluders declare `keep`, `lower`, `fade`, or `remove` behavior for actor and
|
|
forecast overlap.
|
|
|
|
#### 9.2 Eight Region Keys
|
|
|
|
Each art key binds the same ordinal content region exactly once. The region
|
|
name, biome and landmark, palette/material direction, and hazard readability
|
|
brief remain traceable to the content authority while art owns their production
|
|
translation.
|
|
|
|
| Art ID | Exact content binding | Region name, biome, and landmark brief | Palette, light, and material brief | Hazard/mechanic readability brief | Motion and occlusion rule |
|
|
|---|---|---|---|---|---|
|
|
| `ART-REG-01` | `RG-01` | **Windglass Verge**: open grass terraces and suspended mineral panes become layered wind-cut shelves; the safe trade crossing keeps clear actor sightlines. | Bright terrace values and wind-direction shapes use pale stone, weathered timber, woven cloth, green sky bounce, coral sun edges, and blue distance. | Glass-wind push telegraphs use visible wind-direction shapes one cadence ahead; projectile screens and front-to-rear reach remain distinct without color. | Cloth and grass move in three timed groups; reduced mode holds one bent final pose. |
|
|
| `ART-REG-02` | `RG-02` | **Siltwake Fens**: reed channels carrying luminous sediment between movable banks form layered reeds and a readable ferry-path waterline. | Wet clay, oxidized copper, reed green, mineral teal sediment, and warm bank light separate water depth from safe footing. | Non-color tide notches show the disclosed safe-index shift; pull, hindrance-expiry, and healing-denial states keep separate shapes. | Mist stays below knees; tall reeds lower before an actor enters their bounds. |
|
|
| `ART-REG-03` | `RG-03` | **Emberloom Works**: communal kilns and old ceramic conduits stack into kiln terraces, heavy arches, square vents, and one visible pressure-valve position. | Fired brick, black iron, pale ash, coral heat, charcoal mass, and cool blue smoke separate hot-metal constructs from the playfield. | Pressure gauges read without color and expose the valve countdown, delayed bursts, construct state, item-cooldown attacks, and self-cost heat. | Heat shimmer stays local and is disabled in reduced motion; ash avoids face silhouettes. |
|
|
| `ART-REG-04` | `RG-04` | **Quillroot Archive**: living root shelves and changing leaf-script patterns form public navigation stacks with open inspection windows. | Dark bark, paper-pale root cuts, broad leaf greens, glazed seed-pod accents, and warm archive light distinguish copy sources. | Repeat, alternate, and preserve clauses use separate leaf-script shapes; copy, erase, redirect, and cleanse-trap states never rely on hue alone. | Leaf-script changes pause for inspection; foreground roots fade before covering rule text or forecast endpoints. |
|
|
| `ART-REG-05` | `RG-05` | **Tideglass Reach**: high-contrast salt flats and mirror pools frame rescue beacons while source and repeated silhouettes occupy separate basins. | Chalk crystal, dark mineral, tarnished metal, paper-white salt, teal reflection, and a coral horizon preserve source/echo contrast. | Source and echo use different silhouette treatment and reflection timing for decoys, delayed copies, rearmost intrusion, and empty rear arrivals. | Reflections hold static in low power; glare never sits behind bars, target lines, or source markers. |
|
|
| `ART-REG-06` | `RG-06` | **Skyrail Orchard**: fruit terraces hang from slow freight rails across strong updrafts, with orchard/rail parallax preserving cargo footprints and the contested center. | Leaf green, fruit coral and gold, weathered rail steel, pale timber, and airy blue light keep cars, crops, and open sky distinct. | Stop glyphs announce two future stops; board, leap, fall, airborne-untargetable, and cargo-preserved states retain distinct shapes. | Rail cars move only between shown stops; reduced mode indexes stop poses and holds the distant orchard layers. |
|
|
| `ART-REG-07` | `RG-07` | **Nightcurrent Basin**: dark water channels and a luminous current carve readable night crossings through layered basin shelves. | Dark-but-readable water, blue-black stone, pale current light, and restrained warm route accents preserve luminance-safe reveal contrast. | Current-link VFX and sonar-like captions show the front-to-rear reveal sweep, forecast category, resource theft, linked circuits, and retaliation. | Current light advances in indexed bands; low power holds water and preserves one moving reveal edge. |
|
|
| `ART-REG-08` | `RG-08` | **Crown of Morn**: a ring of dawnlit stone at the high route nexus carries eight readable current motifs through open consecutive-fight staging. | Dawn stone, pale brass, luminous glass, paper-white light, and restrained colors from the eight prior motifs support a layered reprise. | Motif-specific captions and synthesis action shapes identify each inherited push/pull, expiry, construct, copy, echo, rail, or reveal rule source; consecutive fights preserve role redundancy, replacement depth, and the recovery-versus-counter choice. | Ring movement pauses during forecasts; reduced mode swaps rotation for indexed final states. |
|
|
|
|
No content merge may reorder the ordinal bindings, reuse one content region for
|
|
two art keys, omit a region target, or resolve a biome, landmark, palette, or
|
|
hazard conflict through recolor alone.
|
|
|
|
#### 9.3 Prop Family Contract
|
|
|
|
The 18 prop families per region are exactly:
|
|
|
|
- 8 compact context props;
|
|
- 4 wide or tall structural props;
|
|
- 2 state-bearing shop or route objects, each with inactive and active states;
|
|
- 2 battle-interaction props, each with neutral, forecast, resolve, and spent
|
|
states;
|
|
- 1 reward presentation plinth;
|
|
- 1 boss mechanism set with content-bound states.
|
|
|
|
Placements and color variants do not increase the family count. Every prop
|
|
declares playfield bounds, overlap policy, state events, light contribution,
|
|
and reduced-motion and low-power behavior.
|
|
|
|
### 10. UI Support Art Inventory
|
|
|
|
Screen layout, text, controls, and navigation remain owned by the UX authority.
|
|
This section supplies text-free visual material to `UX.SCREEN.*` bindings.
|
|
|
|
| Family | Exact count | Notes |
|
|
|---|---:|---|
|
|
| Core material swatches | 6 | Inked paper, dark enamel, woven cloth, pale ceramic, brushed metal, clear glass. |
|
|
| Nine-slice frame masters | 14 | Dock, drawer, tray, list row, compare, inspect, tooltip, modal, toast, result, warning, settings, tab, and selection. |
|
|
| Universal tool icons | 40 | Navigation, sort/filter, compare, reorder, equip, inspect, pause, speed, retreat, settings, accessibility, and save families. |
|
|
| Universal state icons | 32 | Cost, availability, capacity, lock, warning, target, timing, casualty, recovery, reward, and persistence families. |
|
|
| Party-order and target markers | 18 | Front/rear caps, slot, insertion, swap, exposure, protection, reach, selected, acting, and area shapes. |
|
|
| Status icon containers | 12 | Shape-coded containers; content status glyphs bind after schema merge. |
|
|
| Empty/error support illustrations | 8 | Empty shop, no recruit, no equipment, full party, incompatible, unavailable, interrupted, and recovery-needed states. |
|
|
| Cursor/focus forms | 12 | Touch, mouse, controller, keyboard, and high-contrast variants. |
|
|
| Region emblems | 8 | Counted in Section 9, not duplicated. |
|
|
| Profession emblems | 42 | Counted in Section 5, not duplicated. |
|
|
| Trait emblems | 36 | Counted in Section 6, not duplicated. |
|
|
| Equipment silhouettes | 320 | Counted in Section 7, not duplicated. |
|
|
| Artifact emblems | 60 | Counted in Section 7, not duplicated. |
|
|
| Enemy mechanic glyphs | 100 | Counted in Section 8, not duplicated. |
|
|
| Boss emblems | 16 | Counted in Section 8, not duplicated. |
|
|
|
|
The UI-only subtotal is 142 masters before content-bound status glyphs: `6 +
|
|
14 + 40 + 32 + 18 + 12 + 8 + 12 = 142`. All icons pass one-color, shape-only,
|
|
light-background, dark-background, and 130-percent-text-neighbor tests. Text,
|
|
numbers, bars, timers, ordering numbers, and comparison deltas remain
|
|
engine-rendered and localizable.
|
|
|
|
Each of the 142 UI masters retains its source record, validated export, import
|
|
binding, `UX.SCREEN.*` state binding, and high-contrast evidence. Icon and
|
|
cursor masters export at 24, 32, and 48 logical pixels; these scale derivatives
|
|
are not new visual identities.
|
|
|
|
### 11. Animation Architecture
|
|
|
|
#### 11.1 Common Recruit Motion Slots
|
|
|
|
Each of 8 body frames supplies these 16 motion slots. Profession kits
|
|
replace hand, tool, outer garment, and timing keys where Section 5 requires.
|
|
|
|
| Slot | Timing contract | Event and final state | Reduced-motion form |
|
|
|---|---|---|---|
|
|
| `idle_observe` | 2.8-4.5 s loop | Quiet breathing; stable feet and tool. | Still final pose with occasional eye change. |
|
|
| `ready` | 0.25-0.45 s | Center lowers when battle becomes authoritative. | Two-pose settle. |
|
|
| `enter` | 0.5-0.9 s | Arrives at assigned order point. | Short crossfade into ready pose. |
|
|
| `reorder_step` | 0.25-0.55 s per adjacent move | Feet cross one order marker and settle. | Direct pose swap with moving order token. |
|
|
| `advance` | 0.35-0.7 s | Moves to action rail without changing stored order. | Start and end poses only. |
|
|
| `retreat` | 0.35-0.7 s | Returns to stored order point. | End-pose snap after resolved event. |
|
|
| `basic_close` | 0.55-0.95 s | Contact event at declared tool endpoint. | Anticipation and impact poses. |
|
|
| `basic_distance` | 0.65-1.0 s | Release event at `projectile_origin`. | Aim and release poses. |
|
|
| `channel` | 0.8-1.4 s plus ticks | Stable `effect_origin`; explicit interrupt recovery. | Start, tick marker, final pose. |
|
|
| `support` | 0.6-1.1 s | Ally endpoint receives effect before actor recovers. | Gather and resolved poses. |
|
|
| `guard` | 0.4-0.8 s | Protected relation visible through contact. | Closed guard final pose. |
|
|
| `hit_light` | 0.2-0.4 s | Directional recoil; ground remains stable. | One offset pose plus contour. |
|
|
| `hit_heavy` | 0.35-0.7 s | Lowered center and longer recovery. | Impact and recovery poses. |
|
|
| `forced_move` | 0.35-0.75 s | Displacement and new legal position both visible. | Ghosted origin and final marker. |
|
|
| `casualty_hold` | transition plus hold | Tool lowers and state remains inspectable. | Still final pose. |
|
|
| `victory_settle` | 1.2-2.4 s once | Restrained relief, then stable result pose. | Stable result pose only. |
|
|
|
|
Motion timing scales from `SYSTEM.COMBAT.EVENT_SCHEMA`. Presentation may
|
|
compress recovery and secondary in-betweens at higher battle speed, but never
|
|
removes forecast onset, authoritative event frame, target response, or resolved
|
|
final state.
|
|
|
|
#### 11.2 Event Binding Record
|
|
|
|
Every animated action records:
|
|
|
|
```text
|
|
source_actor, action_id, trigger_event, anticipation_start, commit_event,
|
|
target_snapshot, contact_or_release_event, repeated_tick_events, recovery_end,
|
|
interrupt_event, origin_anchor, endpoint_geometry, ground_pivot,
|
|
occlusion_policy, speed_variant, reduced_motion_final, low_power_variant
|
|
```
|
|
|
|
Animation is rejected if a visible contact occurs before the authoritative
|
|
event, if a target reacts without a committed result, or if interruption leaves
|
|
an effect or tool in the resolved final state.
|
|
|
|
#### 11.3 Source-To-Runtime Animation States
|
|
|
|
| Actor family | Source package | Required runtime motion count |
|
|
|---|---|---:|
|
|
| Recruit bodies | 8 body masters with separated parts | 128 common body states |
|
|
| Profession deviations | 42 kit masters | 84 auto-action deviations |
|
|
| Ordinary/elite enemies | 100 identity masters | `800 + 2 * E` states |
|
|
| Bosses | 16 multi-part masters | 224 minimum states |
|
|
| State-bearing regional props | 40 prop families | 144 states: 16 shop/route props * 2 plus 16 battle props * 4 plus 8 boss mechanism sets * 6 |
|
|
|
|
The regional-prop total assumes one boss mechanism set per region with six
|
|
states and is independent of boss actor motion. Frame counts are chosen after
|
|
play-size key-pose review; extra in-betweens are not extra states.
|
|
|
|
### 12. Horizontal Party-Line Staging
|
|
|
|
#### 12.1 Spatial Grammar
|
|
|
|
- Screen-left is the protected rear and `Last` endpoint; screen-right is
|
|
`First exposed` and the party front. Rendering therefore reads left-to-right
|
|
from rear to exposed front while logical exposure order starts at the
|
|
rightmost marker and proceeds leftward. Enemy staging faces right-to-left
|
|
toward that exposed front; any enemy ordering rule must come from
|
|
`SYSTEM.COMBAT.EVENT_SCHEMA` rather than this catalog.
|
|
- The two fronts face across a central action gap. The player's front marker,
|
|
rear cap, insertion points, and order numbers stay visible during preparation
|
|
and inspection.
|
|
- All deployed recruits remain on one continuous ground rail. A presentation
|
|
offset of at most 8 logical pixels separates overlapping feet; it does not
|
|
create another tactical row.
|
|
- Slot centers derive from `SYSTEM.PARTY.CAPACITY_PROFILE` and the current
|
|
viewport. The minimum gap is the largest value that keeps both fronts, the
|
|
active target, and controls inside safe bounds.
|
|
- When the deployed party grows, spacing compresses before actor scale. Actor
|
|
scale may change only within the approved silhouette range and applies to the
|
|
whole party, never to one supposedly less important recruit.
|
|
|
|
#### 12.2 Depth And Occlusion
|
|
|
|
Draw order follows ground contact from rear to front, then applies explicit
|
|
tool and effect layers. The following invariants hold in the busiest approved
|
|
composition:
|
|
|
|
| Invariant | Limit |
|
|
|---|---:|
|
|
| Recruit torso hidden by allies | <=35% |
|
|
| Recruit head contour hidden by allies | <=15% |
|
|
| Profession tool endpoint hidden | 0% during forecast and action |
|
|
| Target contour hidden by effects | <=10% of perimeter |
|
|
| Party-order marker hidden | 0% |
|
|
| Foreground environment over acting actor | 0% |
|
|
| Simultaneous high-salience allied actions | 2 maximum |
|
|
| Simultaneous high-salience enemy actions | 2 maximum |
|
|
|
|
If the simulation commits more actions at once, the presentation groups
|
|
secondary results into low-salience impacts while preserving each causal event
|
|
in inspection. It does not reorder simulation outcomes.
|
|
|
|
#### 12.3 Action Rail
|
|
|
|
An acting recruit may step from its order point to a temporary action rail in
|
|
the central gap. The stored order marker remains behind, connected by a thin
|
|
paper-white tether. After resolution the recruit returns to the same marker
|
|
unless `SYSTEM.COMBAT.EVENT_SCHEMA` commits displacement or loss. Distance
|
|
actors may act in place; support endpoints remain inside the party line.
|
|
|
|
This device prevents action overlap while preserving the strategic order. It
|
|
must pass at the largest simulated deployment target and with the widest boss
|
|
silhouette.
|
|
|
|
#### 12.4 Target, Damage, Healing, And Protection Read
|
|
|
|
| Event | Forecast shape | Resolution shape | Non-color proof |
|
|
|---|---|---|---|
|
|
| Single target | Pointed bracket around one ground contact | Inward contact wedge | One endpoint and one direction notch |
|
|
| Ordered range | Bracket spans consecutive order markers | Sequential contact ticks | Visible start and stop caps |
|
|
| Whole party | Open baseline beneath every party marker | One low outward wave | Repeated group notches |
|
|
| Damage | Toothed inward contour | Directional ink break and actor response | Jagged edge and hit direction |
|
|
| Healing | Open leaf contour | Upward fill and stable recovery pose | Split leaf endpoint |
|
|
| Protection | Closed double bracket | Intercept line, absorb plane, or break seam | Closed contour and relation line |
|
|
| Deterministic terminal outcome | No terminal cue before resolution; retain the action forecast | Per-recipient shape from the outcome map below | Outcome-specific contour and causal label, never a generic gap |
|
|
| Forced movement | Origin ghost plus destination bracket | Actor lands on destination marker | Arrow body with blocked variant |
|
|
| Knockout | Segmented condition frame | Still final contour and lowered tool before current-battle exit | Broken lower edge plus return marker, never a memorial or reward burst |
|
|
|
|
Terminal cues bind one-to-one to `SYSTEM.COMBAT.EVENT_SCHEMA` records. They do
|
|
not add an undeclared resolution check and do not reinterpret forecast
|
|
divergence as an action result.
|
|
|
|
| Outcome ID | Resolution shape | Required causal read |
|
|
|---|---|---|
|
|
| `AO_APPLIED` | Behavior-specific contact closes at the actual recipient with a filled endpoint. | Applied component and actual recipient; a moved-but-legal target keeps the same endpoint. |
|
|
| `AO_NO_CHANGE` | The contact reaches an intact contour and ends in a flat cap/current-state bar. | Legal recipient plus the cap or current-state reason for zero primary change. |
|
|
| `AO_INVALID_REACH` | A measured reach line breaks between origin and intended target. | Old/current depth and required reach remain inspectable. |
|
|
| `AO_INVALID_UNTARGETABLE` | An outward-facing exclusion notch opens in the intended target contour. | Declared exclusion rule and remaining duration, not actor motion alone. |
|
|
| `AO_INVALID_FALLEN` | The intended marker is left empty and linked to the earlier knockout seal. | Earlier knockout event caused invalidation; no substitute target is implied. The legacy code ID does not mean permanent loss. |
|
|
| `AO_INVALID_FILTER` | A candidate-filter frame closes outside the intended target. | Exact side, state, or tag filter that no longer permits the target. |
|
|
| `AO_INTERCEPTED` | The intended path branches to the interceptor; the intended endpoint stays hollow. | Interceptor and routing/protection rule; the actual recipient receives its own component cue. |
|
|
| `AO_BLOCKED` | A square stop plane meets the component and loses one charge notch when applicable. | Named blocker actor/rule and committed charge or delta. |
|
|
| `AO_IMMUNE` | A closed seal forms around the rejected component glyph at the actual recipient. | Immunity tag and source; no resistance roll is implied. |
|
|
| `AO_RESISTED` | The status glyph reaches the target boundary and stops against a crosshatched threshold line. | Stored status roll, threshold, Potency, and Tenacity. |
|
|
| `AO_FIZZLED` | Source geometry folds inward before any recipient endpoint forms. | Invalid cause, failed retarget or empty ground result, and declared refund. |
|
|
| `AO_INTERRUPTED` | A crossbar cuts the source wind-up/channel and holds the interrupted actor pose. | Interrupter/rule and declared refund; no target defense is implied. |
|
|
|
|
Area and multi-component actions draw the terminal shape at each actual
|
|
recipient. `APPLIED_ALL`, `APPLIED_PARTIAL`, and `APPLIED_NONE` may appear only
|
|
after the per-recipient cues and never replace them or act as trigger IDs. For a
|
|
mixed area result, applied, immune, and no-change recipients therefore retain
|
|
three distinct endpoint shapes in the same resolved frame. When more than two
|
|
results resolve together, secondary endpoints become compact ground-contact
|
|
badges rather than disappearing; inspection preserves every causal label.
|
|
|
|
At 130 percent text, causal labels occupy the UX-defined text-safe band and do
|
|
not cover faces, order markers, or endpoint shapes. Reduced-motion mode uses
|
|
the resolved shape and final actor pose without path travel. Low-power mode
|
|
keeps every endpoint badge and derived summary while removing only secondary
|
|
particles and trails.
|
|
|
|
Floating values are engine-rendered and secondary. They occupy a dedicated
|
|
vertical band above the target, merge repeated low-value ticks, and never cover
|
|
faces, order markers, or forecast endpoints.
|
|
|
|
#### 12.5 Battle-Speed Presentation
|
|
|
|
Every speed mode preserves four visual facts: forecast onset, committed action,
|
|
affected target, and resolved state. Higher speed may remove idle holds,
|
|
secondary arcs, trailing particles, and recovery in-betweens. It may not make a
|
|
telegraph appear after impact or collapse distinct opposing causes into one
|
|
unlabeled burst. Pause freezes actors and VFX at an inspectable frame while UI
|
|
motion settles to its final state.
|
|
|
|
### 13. VFX Language And Count
|
|
|
|
#### 13.1 Global Semantic Masters
|
|
|
|
| VFX family | Authored states | Count | Shape rule |
|
|
|---|---|---:|---|
|
|
| `TARGET` | acquire, hold, release, invalid | 4 | Pointed brackets and explicit endpoint. |
|
|
| `THREAT` | forecast, imminent, resolve, cancel | 4 | Saw-edge clocking toward impact. |
|
|
| `DAMAGE` | light, heavy, critical, repeated | 4 | Directional ink fracture, never a radial reward burst. |
|
|
| `HEAL` | acquire, pulse, excess, blocked | 4 | Open leaf and upward fill. |
|
|
| `PROTECT` | gain, intercept, absorb, break | 4 | Closed double bracket and seam. |
|
|
| `DEFENSE_OUTCOME` | `AO_INTERCEPTED`, `AO_BLOCKED`, `AO_IMMUNE`, `AO_RESISTED` | 4 | Branched route, square stop, closed seal, or crosshatched status threshold. |
|
|
| `INTERRUPT` | windup, interrupt, stagger, recover | 4 | Crossing bars and halted motion line. |
|
|
| `MOVE` | step, forced, pull, blocked | 4 | Origin ghost, destination, and direction body. |
|
|
| `STATUS` | apply, stack, tick, expire, cleanse, resist | 6 | Container shape plus content-bound glyph. |
|
|
| `RESOURCE` | gain, spend, full, insufficient | 4 | Measured segment movement, not free particles. |
|
|
| `TIMING` | ready, cooling, accelerated, delayed | 4 | Radial tick with asymmetrical speed marks. |
|
|
| `TRAIT` | benefit, cost, trigger, blocked | 4 | Compound emblem retains polarity notch. |
|
|
| `EQUIPMENT` | equip, trigger, charge, exhaust | 4 | Object silhouette remains at the origin. |
|
|
| `ARTIFACT` | awaken, modify, conflict, expire | 4 | Rule seal opens, intersects, or closes. |
|
|
| `KNOCKOUT` | danger, hold, current-battle exit, next-stage return | 4 | Segmented lower contour and return marker, no celebratory or memorial shape. |
|
|
| `REWARD` | reveal, select, claim, duplicate-blocked | 4 | Quiet radial seal with object centered. |
|
|
| `SAVE` | saving, saved, recovered, conflict | 4 | Compact UI-only folded-paper mark. |
|
|
| **Total** | | **70 semantic state masters** | |
|
|
|
|
Each master includes normal, reduced-flash, reduced-motion, and low-power
|
|
instructions. These are state definitions; compatible families may share
|
|
brushes, particles, masks, and line shaders without sharing semantic shapes.
|
|
|
|
#### 13.2 Identity-Bound Effect Briefs
|
|
|
|
| Binding family | Exact bundles | States required per bundle | Exact binding-state count |
|
|
|---|---:|---:|---:|
|
|
| Profession signature geometry | 42 | anticipation, active, resolve, reduced final | 168 |
|
|
| Trait trigger | 36 | benefit and cost | 72 |
|
|
| Enemy signature mechanic | 100 | forecast, resolve, cancel | 300 |
|
|
| Boss forecast geometry | 48 | forecast, imminent, resolve, cancel, reduced final | 240 |
|
|
| Equipment behavior-read key | 320 | earliest-decision and causal-result | 640 |
|
|
| Artifact trigger seal | 60 | dormant, trigger, modified, conflict | 240 |
|
|
| **Total** | **606 bundles** | | **1,660 binding states** |
|
|
|
|
Binding states may point to a global semantic master plus authored geometry.
|
|
They are still separate manifest rows because they prove that every content
|
|
identity has a readable cause and endpoint.
|
|
|
|
#### 13.3 Density, Flash, And Layer Rules
|
|
|
|
- Only the current forecast, current impact, and one persistent state effect may
|
|
occupy the highest salience tier at once.
|
|
- Secondary impacts use shorter contours and no camera motion. Ambient region
|
|
particles immediately yield behind a forecast.
|
|
- No full-screen white flash, alternating full-screen value pulse, rapid color
|
|
inversion, or effect that hides faces and order markers is permitted.
|
|
- Standard mode uses at most one strong luminance rise per committed action.
|
|
Reduced-flash mode replaces it with contour thickness and a held endpoint.
|
|
- Trails end at the authoritative endpoint and clear before another actor uses
|
|
the same space. Persistent effects move to compact ground or status markers.
|
|
- Blend mode, edge color, alpha falloff, pivot, event time, lifetime, pool cap,
|
|
and interruption cleanup are specified in every effect manifest.
|
|
|
|
### 14. Accessibility, Reduced Motion, And Low Power
|
|
|
|
#### 14.1 Required Variant Matrix
|
|
|
|
| Feature | Standard | Reduced motion | Reduced flash | Low power |
|
|
|---|---|---|---|---|
|
|
| Recruit idle | Full restrained loop | Held pose plus rare eye change | Same as selected motion mode | Held pose |
|
|
| Reorder | Physical adjacent step | Direct pose swap plus moving order token | No change | Two-pose step |
|
|
| Auto-action | Full anticipation/action/recovery | Anticipation and resolved poses | Contour impact, no luminance spike | Fewer in-betweens and no secondary trail |
|
|
| Forced movement | Actor travel plus origin ghost | Origin ghost and destination pose | No flash on landing | Linear travel only |
|
|
| Boss phase | Body mass shift, material state, bounded effect | Indexed before/after poses | Held outline change | No ambient debris or camera motion |
|
|
| Region atmosphere | Layered loops | Static directional final states | No lightning-like pulses | One near layer at reduced density |
|
|
| UI transition | Short position/fade motion | Immediate state swap or short dissolve | No bright wipe | Immediate state swap |
|
|
| Reward | Object reveal and quiet radial seal | Object present plus seal final state | Shape expansion only | Object and static seal |
|
|
|
|
Reduced motion, reduced flash, and low power are independent toggles. Any
|
|
combination must produce a valid final state. Muting audio never removes visual
|
|
timing or cause. High contrast preserves region identity while adding
|
|
paper-white and charcoal separation contours around actors, targets, and
|
|
controls.
|
|
|
|
#### 14.2 Color And Text Independence
|
|
|
|
- Every semantic color has a unique contour, endpoint, or fill direction.
|
|
- Pattern density remains visible under common color-vision simulations and in
|
|
grayscale.
|
|
- Icons do not bake text, letters, numbers, or direction words.
|
|
- At 130 percent text, art yields within the UX-defined text-safe region rather
|
|
than shrinking labels or covering portraits.
|
|
- Focus and selection use both a contour and a stable marker; hover is never
|
|
required to understand state.
|
|
|
|
#### 14.3 Low-Power Budget
|
|
|
|
Low power removes background parallax, secondary cloth and hair loops,
|
|
nonessential trails, ambient spawn bursts, and more than one atmosphere layer.
|
|
It keeps all forecasts, action events, target responses, casualty states,
|
|
reward claims, order changes, and save states. Particle population targets 30
|
|
percent of standard; actor and effect key poses remain unchanged.
|
|
|
|
### 15. Source-To-Runtime Production Plan
|
|
|
|
#### 15.1 Family Tracking Requirements
|
|
|
|
| Family | Brief/source ledger rows | Required export or runtime bindings |
|
|
|---|---:|---|
|
|
| Recruit modules | 114 masters | 374 authored state cells plus the exhaustive recruit-record crosswalk in Section 4.2 |
|
|
| Profession kits | 42 packages | 42 silhouettes, 42 tool sets, 126 device states, 84 action deviations, and 42 effect briefs |
|
|
| Trait presentation | 36 packages | 36 emblems, 72 polarity states, and 36 trigger badges |
|
|
| Equipment | 320 packages | 960 mandatory manifestations plus `W + S` content-resolved attachments |
|
|
| Artifacts | 60 packages | 180 runtime manifestations |
|
|
| Regions | 8 art keys | 224 region-bound visual families |
|
|
| Ordinary/elite enemies | 100 packages | 100 rigs, portraits, glyphs, and effect bundles plus `800 + 2 * E` motion states |
|
|
| Bosses | 16 packages | 16 rigs, plates, and emblems plus 224 motion states and 48 forecast bundles |
|
|
| UI-only art | 142 masters | 142 screen-state families plus declared scale derivatives |
|
|
| Global VFX | 70 semantic state masters | 1,660 identity-bound states across 606 manifest bundles |
|
|
|
|
Every row advances independently through the lifecycle in Section 1.4. A
|
|
family total cannot mark missing identity rows as complete, and a scale,
|
|
palette, difficulty, frame, or accessibility variant cannot fill an identity
|
|
binding.
|
|
|
|
#### 15.2 Representative Visual Slice
|
|
|
|
Bulk production remains frozen until one content-bound slice proves the system:
|
|
|
|
```text
|
|
BINDING.SLICE.REGION
|
|
BINDING.SLICE.BASE_PROFESSION
|
|
BINDING.SLICE.ADVANCED_PROFESSION
|
|
BINDING.SLICE.TRAIT
|
|
BINDING.SLICE.EQUIPMENT
|
|
BINDING.SLICE.ORDINARY_ENEMY
|
|
BINDING.SLICE.ELITE_ENEMY
|
|
BINDING.SLICE.BOSS
|
|
BINDING.SLICE.ARTIFACT
|
|
```
|
|
|
|
The slice uses generated recipes for at least four recruits across at least
|
|
three body frames, four hair shapes, the two profession kits, distinct
|
|
equipment manifestations, and one visible trait trigger. It shows preparation,
|
|
reorder, battle opening, forecast, automatic action, pressure, casualty or
|
|
recovery, reward, and persistent result at the UX-defined minimum, reference,
|
|
and maximum landscape viewports.
|
|
|
|
The fixed focal order is:
|
|
|
|
1. current acting or threatened actor and target relation;
|
|
2. party front-to-rear order and protection exposure;
|
|
3. the profession, equipment, trait, enemy, boss, or artifact cause.
|
|
|
|
A normal-render interaction recording is required before any runtime gate can
|
|
pass. Static concepts and isolated sprite sheets cannot prove staging, motion,
|
|
occlusion, timing, or accessibility.
|
|
|
|
#### 15.3 Batch Order
|
|
|
|
1. Resolve all content, system, and UX bindings and reject mismatched visual
|
|
kits before media requests.
|
|
2. Graybox the representative region, longest approved party, widest boss, UI
|
|
safe areas, action rail, and all feedback geometry.
|
|
3. Approve one body frame, two contrasting face shapes, two hair shapes, one
|
|
base kit, one advanced kit, and their full anchor masks.
|
|
4. Produce only the representative enemy, boss, equipment, trait, artifact,
|
|
region, UI, animation, and VFX sources needed by the slice.
|
|
5. Import, integrate, capture, and review normal, busy, pressure, result,
|
|
high-contrast, 130-percent-text, reduced-motion, reduced-flash, and low-power
|
|
states.
|
|
6. Repair the earliest failed boundary before expanding a library.
|
|
7. Scale by compatible body, profession, region, enemy, item, and effect
|
|
batches only after source-to-runtime traceability and play-size readability
|
|
pass.
|
|
8. Produce platform and store visuals only from accepted runtime states under a
|
|
later owner-approved Goal.
|
|
|
|
#### 15.4 Human Review Boundaries
|
|
|
|
Design review can approve countability and coherence. It cannot approve final
|
|
drawing quality, animation feel, runtime focal hierarchy, device performance,
|
|
localization fit, photosensitivity comfort, or release presentation. Those
|
|
gates remain open until named evidence exists at the corresponding lifecycle
|
|
state.
|
|
|
|
### 16. Quantitative Coverage Audit
|
|
|
|
| Frozen family | Gameplay count | Production coverage in this catalog |
|
|
|---|---:|---|
|
|
| Generated recruit system | unbounded recipes | 114 modular masters, 374 authored state cells, exhaustive content-to-art crosswalk, deterministic recipe and validation rules |
|
|
| Base professions | 12 | 12 row-specific kits |
|
|
| Advanced professions | 24 | 24 row-specific kits, exactly two per base |
|
|
| Hidden hybrid professions | 6 | 6 row-specific kits with exact content-owned parent pairs and production bindings |
|
|
| **All professions** | **42** | **42 packages, 42 emblems, 42 silhouettes, 42 tool sets, 126 device states, 84 action deviations, 42 effect briefs** |
|
|
| Traits | 36 | 36 compound emblems, 72 polarity states, 36 trigger badges |
|
|
| Equipment | 320 | 320 source sheets, 320 objects, 320 compact silhouettes, 320 behavior-read keys, plus content-bound attachments |
|
|
| Artifacts | 60 | 60 source sheets, 60 objects, 60 compact emblems, 60 trigger seals |
|
|
| Ordinary/elite enemies | 100 | 100 packages, 800 core motion states plus `2 * E`, 100 mechanic effect bundles |
|
|
| Bosses | 16 | 16 packages, 224 minimum motion states, 48 forecast bundles |
|
|
| **All hostile identities** | **116** | **116 identity packages with region and mechanic bindings** |
|
|
| Regions | 8 | 8 keys, 40 layered environments, 144 prop families, 32 atmosphere overlays, 8 emblems |
|
|
| UI-only art | n/a | 142 masters plus explicitly bound content icons |
|
|
| Global VFX | n/a | 70 semantic state masters |
|
|
| Identity-bound VFX | 606 bundles | 1,660 binding states |
|
|
|
|
Counts prove planned coverage only. They do not prove content distinctness,
|
|
asset quality, integration, runtime readability, performance, or fun.
|
|
|
|
### 17. Design Acceptance And Open Gates
|
|
|
|
#### 17.1 Candidate Checklist
|
|
|
|
- [x] Modular body, face, hair, garment, detail, profession, palette, and
|
|
equipment composition is content-bound and production-countable.
|
|
- [x] All 42 profession bindings have distinct silhouettes, equipment anchors,
|
|
material limits, and animation needs.
|
|
- [x] All 36 traits, 320 equipment items, and 60 artifacts have exact visual
|
|
packages and causal presentation bindings.
|
|
- [x] Eight region families, 100 ordinary/elite enemies, and 16 bosses have
|
|
exact packages, source states, motion coverage, and integration formulas.
|
|
- [x] The single horizontal party-line composition defines staging, action
|
|
space, overlap limits, target/damage/heal/protection feedback, and busy
|
|
state salience.
|
|
- [x] Reduced motion, reduced flash, high contrast, large-text adjacency, mute,
|
|
and low-power behavior are specified.
|
|
- [x] The catalog creates specifications only and contains no final media or
|
|
third-party commercial assets.
|
|
|
|
#### 17.2 Gates That Remain Open
|
|
|
|
- [ ] Content, system, and UX bindings are resolved after workstream merge.
|
|
- [ ] Representative graybox proves the longest approved party and widest boss
|
|
at all target landscape viewports.
|
|
- [ ] Representative source art passes identity, anatomy, line, palette,
|
|
material, anchor, and occlusion review.
|
|
- [ ] Animation and VFX pass normal-render timing, causal-event, interruption,
|
|
speed, reduced-mode, and fatigue review.
|
|
- [ ] Named human and target-device reviews accept the integrated presentation.
|
|
- [ ] Owner separately authorizes bulk media production and release work.
|
|
|
|
Failure at any open gate returns to the earliest affected source, composition,
|
|
motion, effect, or integration boundary. No downstream evidence state may be
|
|
claimed early.
|
|
|
|
<!-- Historical section source: AUDIO_MUSIC_AND_VOICE_CATALOG; retained in Git history. -->
|
|
|
|
## Aetherbound Guild: Audio, Music, And Voice Catalog
|
|
|
|
> Revision: `audio-direction-v2-r4`
|
|
>
|
|
> Authority: music, ambience, SFX, voice, mix, caption, accessibility, audio
|
|
> lifecycle, production count, and audio acceptance rules.
|
|
>
|
|
> Product basis: `01_GAME_DESIGN.md` and
|
|
> `04_ART_ANIMATION_AUDIO.md`.
|
|
>
|
|
> Status: design specification only. No audio is generated, recorded, licensed,
|
|
> purchased, integrated, human-listened, device-verified, or release-accepted.
|
|
|
|
### 1. Purpose And Boundaries
|
|
|
|
Audio makes the game's decisions and consequences understandable while leaving
|
|
room for a calm, hand-drawn fantasy presentation. The player must be able to
|
|
hear when an offer changes, a recruit joins, an item is committed, party order
|
|
changes a forecast, an automatic battle changes phase, a recruit is lost, a
|
|
reward becomes owned, or a save operation needs attention.
|
|
|
|
This catalog is independently authored for Aetherbound Guild. Production may
|
|
use only owned recordings, properly licensed sources, or commissioned work with
|
|
documented rights. It may not imitate or reuse the expressive audio of a
|
|
reference product.
|
|
|
|
This file does not define combat formulas, prices, content names, screen
|
|
layouts, visual effects, or final localization scope. It does not authorize
|
|
runtime implementation or media production. It defines the audio response to
|
|
authoritative events supplied by the owning design documents.
|
|
|
|
#### 1.1 Sonic Thesis
|
|
|
|
**A working guild heard through touch, breath, and ordered motion.**
|
|
|
|
The shared palette uses dry wood, cloth, ceramic, tempered metal, hand-driven
|
|
mechanisms, restrained air, and clear paired tones. Player commits sound
|
|
physical and settled. Forecasts are concise and separated by register.
|
|
Automatic action stays light enough that the player can hear a change in
|
|
target, protection, danger, or outcome without a constant wall of impacts.
|
|
|
|
Each region owns a distinct pulse, resonant material, ambience density, and
|
|
musical contour. Regional identities remain recognizable in mono and at low
|
|
volume. The score supports attention; it never carries a rule by itself.
|
|
|
|
#### 1.2 Information Rules
|
|
|
|
1. A sound confirms only an authoritative state change, never anticipated
|
|
success.
|
|
2. A consequence cue differs from a focus, preview, or review cue.
|
|
3. Higher rarity may add finish, but pitch height never means value by itself.
|
|
4. Danger is identified by contour, rhythm, caption, and visual state, not
|
|
loudness alone.
|
|
5. Routine automatic actions yield to forecasts, casualty, retreat, and result
|
|
cues.
|
|
6. Music and ambience may reinforce state but never become the sole state
|
|
channel.
|
|
7. Muting any bus cannot change simulation timing or remove text/event-log
|
|
evidence.
|
|
8. Generated recruits never require bespoke dialogue to remain mechanically
|
|
legible.
|
|
|
|
### 2. Resolved Integration Sources
|
|
|
|
Audio IDs in this file are stable audio authority. The table below binds every
|
|
cross-workstream dependency to its merged owner without redefining that owner's
|
|
rows or formulas. Compact ranges are references; their primary definitions
|
|
remain in the cited authority.
|
|
|
|
| Dependency | Resolved source and value | Audio use |
|
|
|---|---|---|
|
|
| Region IDs | `05_CONTENT_CATALOG.md`, Stable ID Namespaces: `RG-01..RG-08` | attach the eight regional audio packages in stable-ID order |
|
|
| Region display names | `05_CONTENT_CATALOG.md`, Region Matrix: Windglass Verge, Siltwake Fens, Emberloom Works, Quillroot Archive, Tideglass Reach, Skyrail Orchard, Nightcurrent Basin, Crown of Morn | localized music, caption, and metadata labels use the Region Matrix name field |
|
|
| Region environments | `05_CONTENT_CATALOG.md`, Region Matrix: minimal framing, encounter grammar, and production-needs fields | select ambience sources and hazard contours from the owned region brief |
|
|
| Profession IDs | `05_CONTENT_CATALOG.md`, Stable ID Namespaces: `PF-B01..PF-B12`, `PF-A01..PF-A24`, `PF-H01..PF-H06` | instantiate 42 profession signature pairs |
|
|
| Trait IDs | `05_CONTENT_CATALOG.md`, Stable ID Namespaces: `TR-001..TR-036` | complete 36 benefit/cost audio mappings |
|
|
| Equipment IDs | `05_CONTENT_CATALOG.md`, Stable ID Namespaces: `EQ-001..EQ-320` | complete 320 equipment audio mappings |
|
|
| Artifact IDs | `05_CONTENT_CATALOG.md`, Stable ID Namespaces: `AR-001..AR-060` | instantiate 60 artifact rule signatures |
|
|
| Enemy IDs | `05_CONTENT_CATALOG.md`, Count And Assignment Check: `EN-R1-01..EN-R1-12`, `EN-R2-01..EN-R2-12`, `EN-R3-01..EN-R3-12`, `EN-R4-01..EN-R4-12`, `EN-R5-01..EN-R5-13`, `EN-R6-01..EN-R6-13`, `EN-R7-01..EN-R7-13`, `EN-R8-01..EN-R8-13` | instantiate the 100 enemy forecast/resolution pairs from primary enemy rows |
|
|
| Boss IDs | `05_CONTENT_CATALOG.md`, Count And Assignment Check: `BO-R1-01..BO-R1-02`, `BO-R2-01..BO-R2-02`, `BO-R3-01..BO-R3-02`, `BO-R4-01..BO-R4-02`, `BO-R5-01..BO-R5-02`, `BO-R6-01..BO-R6-02`, `BO-R7-01..BO-R7-02`, `BO-R8-01..BO-R8-02` | instantiate 16 five-event boss packages |
|
|
| Status events | `02_GAMEPLAY_AND_BALANCE.md`, Status Effects And Resolution Order: `status_id`, `stack_rule`, dispel/immunity tags, `on_apply`, `on_tick`, `on_expire`, apply-roll, resist, and expiry outcomes | map shared apply, stack, tick, resist, cleanse, and expiry cues without adding status identities |
|
|
| Resources and costs | `02_GAMEPLAY_AND_BALANCE.md`, Resource Ledger and Sections 4-6: `coin`, `replacement_credit`, `xp`, `renown`, `clear_fact`, `discovery_fact`, plus authoritative refresh, purchase, sale, reward, and rebate receipts | select transaction material from the committed resource and receipt; audio defines no price |
|
|
| Party capacity | `02_GAMEPLAY_AND_BALANCE.md`, Run Opening And Capacity Economy: `line_capacity(C) = min(10, 4 + floor(C/2))`, yielding `4,5,6,7,8,9,10` at clear counts `0,2,4,6,8,10,12` | scale preparation density and capacity feedback from four through the selected maximum of ten |
|
|
| Battle speed | `02_GAMEPLAY_AND_BALANCE.md`, Battle Control, Retreat, Timeout, And Outcome: Pause, 1x, 2x, and 4x are presentation-only | configure audio density without changing music tempo, voice speed, simulation time, or draws |
|
|
| Voice locales | `01_GAME_DESIGN.md`, Commercial And Platform Boundary and Localization Rules; `03_PAGES_AND_UX.md`, accessibility matrix: English (`en`) and Simplified Chinese (`zh_CN`) | ship the 32 semantic intents in both launch locales; language-neutral efforts remain shared |
|
|
| Background simulation | `02_GAMEPLAY_AND_BALANCE.md`, Battle Interruption And Deterministic Resume; `03_PAGES_AND_UX.md`, Interruption And Save | complete the current priority batch, snapshot, advance no obscured time, return battle through `BAT-006`, and reconcile non-battle receipts |
|
|
| Headphone unplug | `03_PAGES_AND_UX.md`, Audio-Independent And Visual Accessibility; `03_PAGES_AND_UX.md` row `SET-004` | treat as output loss: stop private output before speaker reopen, raise one nonblocking notice, keep captions/geometry, pause audio tests, and continue the current screen without automatic speaker playback |
|
|
| Screen and action IDs | `03_PAGES_AND_UX.md`, Input Profiles and Complete Screen Inventory: `NAV`, `LIST`, `SELECT`, `ORDER`, `BATTLE`, `MODAL`, `SETTINGS`; `SYS-001..008`, `HUB-001..002`, `SHP-001..003`, `REC-001..003`, `EQP-001..002`, `ART-001`, `PTY-001..002`, `RSK-001..002`, `BAT-001..006`, `OUT-001..006`, `PRO-001..003`, `PST-001..003`, `SET-001..009`; `01_GAME_DESIGN.md`, Input Semantics: focus, inspect, compare, buy, sell, lock, refresh, equip, reorder, confirm, cancel, start, pause, speed, retreat, open event log | bind shared events to all 50 final screens, seven input profiles, and semantic actions |
|
|
|
|
A missing cited ID, event, receipt, or policy is an integration error in the
|
|
audio manifest. It cannot silently fall back to a different semantic event.
|
|
|
|
### 3. Routing And Priority
|
|
|
|
```text
|
|
Master
|
|
|- Music
|
|
| |- MusicBase
|
|
| |- MusicMotion
|
|
| |- MusicPressure
|
|
| `- MusicTransition
|
|
|- Ambience
|
|
| |- AmbienceBed
|
|
| |- AmbienceWeather
|
|
| `- AmbienceSpotter
|
|
|- SFX
|
|
| |- SFXCritical
|
|
| |- SFXPlayerCommit
|
|
| |- SFXCombat
|
|
| |- SFXWorld
|
|
| `- SFXUI
|
|
|- Voice
|
|
| |- VoiceSystem
|
|
| |- VoiceAnnouncer
|
|
| `- VoiceEffort
|
|
`- Accessibility
|
|
`- OptionalCueReinforcement
|
|
```
|
|
|
|
Master, Music, Ambience, SFX, and Voice have separate user controls. The
|
|
Accessibility bus follows Master but has its own enable control. Master mute is
|
|
immediate, reversible, and never stops simulation.
|
|
|
|
#### 3.1 Priority Classes
|
|
|
|
| Priority | Meaning | Examples | Suppression rule |
|
|
|---|---|---|---|
|
|
| `P0` | safety or irreversible consequence | destructive dismissal, save conflict, data reset | never suppressed; later duplicates collapse by transaction ID |
|
|
| `P1` | immediate tactical state | enemy forecast, critical recruit state, retreat completion, boss phase | may suppress `P3-P6`; maximum two distinct cues at once |
|
|
| `P2` | player-authored commit | hire, buy, equip, reorder, battle start, reward accept | delayed up to 120 ms rather than masked |
|
|
| `P3` | result or build information | target/protection change, profession state, level gain | grouped by source and event family |
|
|
| `P4` | routine combat readability | attacks, hits, movement, ordinary status ticks | aggressively pooled and rate-limited |
|
|
| `P5` | non-semantic performance | recruit efforts, decorative UI finish | suppressed before any semantic cue |
|
|
| `P6` | atmosphere | ambience spotters and musical detail | thins or ducks first |
|
|
|
|
#### 3.2 Concurrency And Rate Limits
|
|
|
|
| Bus/family | Global cap | Per-source rule | Overflow behavior |
|
|
|---|---:|---|---|
|
|
| `SFXCritical` | 2 | one active event per semantic key | preserve earliest, queue one later cue for at most 300 ms, then caption/log only |
|
|
| `SFXPlayerCommit` | 2 | one per transaction ID | duplicate callbacks produce no second cue |
|
|
| UI focus | 2 | maximum 8 focus sounds/s | merge traversal into one rising/falling gesture |
|
|
| Shop/recruit preview | 3 | maximum 4 sounds/s | keep latest focused item and committed action |
|
|
| Equipment/party-order preview | 3 | maximum 5 sounds/s | keep changed forecast; discard stale previews |
|
|
| Routine combat impact | 6 | same source/material once per 90 ms | combine amplitude and weight into one representative impact |
|
|
| Profession signature | 3 | same profession once per 700 ms | keep higher priority state cue |
|
|
| Enemy signature | 3 | same enemy once per 900 ms | forecast wins over resolution flourish |
|
|
| Voice semantic | 1 | one system or announcer line | replacement only before speech begins |
|
|
| Voice effort | 2 | same recruit once per 2.5 s | suppress oldest low-priority effort |
|
|
| Ambience spotter | 2 | same family once per 8-30 s | skip, never queue |
|
|
| Music transition | 1 | one transition until its handoff point | jump to correct synchronized state at next legal marker |
|
|
|
|
#### 3.3 Ducking
|
|
|
|
| Trigger | Music | Ambience | Routine SFX | Voice effort | Attack / hold / release |
|
|
|---|---:|---:|---:|---:|---|
|
|
| `P0` consequence | -8 dB | -6 dB | -6 dB | mute | 20 ms / 250 ms / 700 ms |
|
|
| `P1` forecast/state | -5 dB | -4 dB | -4 dB | -8 dB | 35 ms / event / 500 ms |
|
|
| `P2` commit | -3 dB | -2 dB | -2 dB | -5 dB | 25 ms / 120 ms / 300 ms |
|
|
| System/announcer voice | -6 dB | -3 dB | -3 dB | mute | 40 ms / speech / 350 ms |
|
|
|
|
Ducking is side-chain driven per bus. It never restarts music, shifts pitch, or
|
|
silences all environmental context. Repeated automatic impacts cannot hold a
|
|
permanent duck.
|
|
|
|
### 4. Format, Loudness, And Dynamic Range
|
|
|
|
These are production and integration targets, followed by human listening:
|
|
|
|
- release masters: lossless WAV, 48 kHz, 24-bit, interleaved where stereo;
|
|
- individual master true peak: at or below `-1 dBTP` after final processing;
|
|
- standard ten-minute gameplay capture: `-18 LUFS-I +/- 2 LU`, at or below
|
|
`-1 dBTP` on Master;
|
|
- dialogue/announcer program target: `-20 LUFS` gated, with intelligibility
|
|
checked against the busiest approved battle mix;
|
|
- no DC offset, clipped transient, unintended leading silence, truncated tail,
|
|
or hidden normalization metadata;
|
|
- critical cues retain useful energy between 250 Hz and 4 kHz and survive phone
|
|
speakers, mono fold-down, and low playback volume;
|
|
- stereo correlation for semantic cues remains above zero; polarity cancellation
|
|
may not erase an event;
|
|
- no release asset depends on runtime pitch randomization for acceptability.
|
|
|
|
| Preset | Mix behavior | Acceptance target |
|
|
|---|---|---|
|
|
| Wide | full transient and music range; light bus compression | `-20 LUFS-I +/- 2` over the reference sequence |
|
|
| Standard | moderate transient control and default ducking | `-18 LUFS-I +/- 2` over the reference sequence |
|
|
| Night | reduced peak-to-dialogue range, softened low bass, unchanged semantics | `-18 LUFS-I +/- 2`, no critical cue more than 8 LU above dialogue |
|
|
|
|
Changing preset does not interrupt the current cue. A 100-250 ms parameter
|
|
ramp prevents clicks and sudden level jumps.
|
|
|
|
### 5. Music Plan
|
|
|
|
#### 5.1 Scope And Count
|
|
|
|
The music scope is **32 suite identities and 150 delivered stems/cues**. A suite
|
|
is one synchronized state package, not one continuously dense track.
|
|
|
|
| Suite family | Suites | Deliverables per suite | Total | State job |
|
|
|---|---:|---:|---:|---|
|
|
| `MUS-G00-TITLE` | 1 | 3 | 3 | title base, return layer, continue handoff |
|
|
| `MUS-G01-GUILD` | 1 | 4 | 4 | guild base, activity layer, progress layer, departure cue |
|
|
| `MUS-G02-SHOP` | 1 | 4 | 4 | browse base, offer motion, scarcity pressure, purchase handoff |
|
|
| `MUS-G03-PREP` | 1 | 4 | 4 | recruit/equipment/order base, comparison layer, ready layer, battle handoff |
|
|
| `MUS-G04-RUN` | 1 | 4 | 4 | run overview base, risk layer, forward-motion layer, region handoff |
|
|
| `MUS-G05-RESULT-WIN` | 1 | 3 | 3 | survival statement, reward bed, continue cue |
|
|
| `MUS-G06-RESULT-LOSS` | 1 | 3 | 3 | consequence statement, recovery bed, return cue |
|
|
| `MUS-G07-META` | 1 | 5 | 5 | unlock base, mastery layer, ending base, postgame layer, new-run handoff |
|
|
| `MUS-R01..08-ROUTE` | 8 | 4 | 32 | regional route base, motion, pressure, exit cue |
|
|
| `MUS-R01..08-BATTLE` | 8 | 5 | 40 | regional base, pulse, threat, critical state, result handoff |
|
|
| `MUS-R01..08-BOSS` | 8 | 6 | 48 | boss base, pulse, two phase layers, decisive state, result handoff |
|
|
| **Total** | **32** | | **150** | exact planned music delivery |
|
|
|
|
Global suites use 60-92 BPM equivalent motion and leave at least one clear
|
|
half-bar per phrase for UI commits. Regional route suites loop at 96-160 s,
|
|
ordinary battle suites at 64-112 s, and boss suites at 96-160 s. Base and layer
|
|
files share sample-accurate length and loop markers. Handoff cues run 1.5-6 s
|
|
and land on an authored bar boundary.
|
|
|
|
Every loop must pass ten consecutive seam repeats and a 20-minute context
|
|
listen. A transition may wait no more than one bar; an urgent state uses an
|
|
immediate tonal marker while musical layers catch up at the next marker.
|
|
|
|
#### 5.2 Adaptive Parameters
|
|
|
|
| Parameter | Source binding | Music response |
|
|
|---|---|---|
|
|
| shop browse/refresh/commit | screen IDs `SHP-001..003` and the inspect, buy, lock, refresh, confirm, and cancel actions | motion layer follows active browsing; purchase handoff plays only after commit |
|
|
| affordability pressure | economy resources `coin` and `replacement_credit` plus the current authoritative cost receipt | sparse low pulse; no alarm for merely expensive offers |
|
|
| party readiness | core validation event | ready layer enters after all blockers clear |
|
|
| run risk | authoritative risk tier | pressure layer changes at next beat with a non-musical immediate cue |
|
|
| battle start/pause/speed | presentation states Pause, 1x, 2x, and 4x | start at authored marker; pause filters; speed never changes pitch or tempo |
|
|
| battle pressure | target danger, casualty forecast, boss phase | add or remove pressure layers with hysteresis to avoid rapid toggling |
|
|
| result | authoritative victory, defeat, or retreat result | one result handoff, then the matching result bed |
|
|
| region progress | region progression binding | add one stable timbre layer; never replace the region's core soundmark |
|
|
|
|
Battle pressure uses a 2 s entry hold and 4 s exit hold unless a `P0` or `P1`
|
|
event forces immediate entry. Low health alone does not drive music if no
|
|
consequence is imminent.
|
|
|
|
#### 5.3 Eight Regional Families
|
|
|
|
Display names and environmental associations bind directly to the Region
|
|
Matrix. These original soundmarks establish separation while following its
|
|
minimal framing, encounter grammar, and production-needs brief.
|
|
|
|
| Region ID and name | Soundmark | Pulse and register | Ambience bridge | Mono rule |
|
|
|---|---|---|---|---|
|
|
| `RG-01` Windglass Verge | breath-driven glass harmonic settling into a dry timber knock | open 5/4 grouping, middle register | terrace wind, grass, suspended mineral panes, timber fittings | glass answer moves by register, not pan alone |
|
|
| `RG-02` Siltwake Fens | reed buzz answered by a low clay drum and water slap | slow 6/8 with a displaced final beat | layered reeds, luminous sediment, wet banks, ferry fittings | drum fundamental stays centered |
|
|
| `RG-03` Emberloom Works | struck-clay triad closed by one pressure-valve click | squared 4/4, low-mid register | kiln breath, ceramic conduit, measured tools, hot-metal detail | clay and valve transients retain separate envelopes |
|
|
| `RG-04` Quillroot Archive | paper rasp leading two plucked-string notes | alternating 3+3+2, light register | leaf movement, root shelves, pages, hollow wood | paired notes use different envelopes |
|
|
| `RG-05` Tideglass Reach | water-glass phrase followed by a shorter reversed echo | offset 7/8, broad middle register | salt wind, mirror pools, beacon fittings, distant water | echo reversal is rhythmic and spectral, not stereo-only |
|
|
| `RG-06` Skyrail Orchard | rail-joint clack lifting into an airy string triplet | rotating 3/4 to 4/4, wide register | high air, fruit canopy, cable strain, freight-rail movement | rail transient supplies a centered timing mark |
|
|
| `RG-07` Nightcurrent Basin | centered low pulse answered by a delayed bright reveal ping | sparse asymmetric cycle, low-to-high register | dark water, channel flow, linked-current hum, quiet crossing hardware | reveal uses register and delay in addition to position |
|
|
| `RG-08` Crown of Morn | seven prior material attacks passed into one new open cadence | additive meter resolving to 4/4 | dawn stone, route-current layers, observatory fittings, selected prior materials | every contributing attack remains separable |
|
|
|
|
Regional battle arrangements use the same soundmark under greater rhythmic
|
|
pressure, not a disconnected genre switch. Boss music expands phase structure
|
|
without masking forecasts or becoming a continuous maximum-density mix.
|
|
|
|
### 6. Ambience Plan
|
|
|
|
#### 6.1 Configuration Count
|
|
|
|
There are **76 authored ambience configurations**.
|
|
|
|
| Family | Configuration IDs | Count | Required states |
|
|
|---|---|---:|---|
|
|
| Global | `AMB-G01..G12` | 12 | title at rest; guild quiet/active/return; shop idle/busy/low-stock; preparation; run transition; success result; loss result; safe recovery |
|
|
| Per region | `AMB-R{01..08}-01..08` | 64 | region neutral/progressed; run calm/pressure/recovery; battle standard/elite/boss |
|
|
| **Total** | | **76** | every state has entry, steady, and exit behavior |
|
|
|
|
Configurations are assembled from **90 seamless loop masters** and **320
|
|
spotter masters**:
|
|
|
|
- 18 global loop masters;
|
|
- nine loop masters per region, `9 x 8 = 72`;
|
|
- 16 global spotter families with four variations, `16 x 4 = 64`;
|
|
- eight spotter families per region with four variations,
|
|
`8 x 8 x 4 = 256`.
|
|
|
|
Total planned ambience delivery is **410 mastered assets**. Source layers may
|
|
be reused across configurations, but the 76 configuration records remain
|
|
separate review items.
|
|
|
|
#### 6.2 Loop And Density Rules
|
|
|
|
- global and regional identity beds loop at 75-150 s;
|
|
- route beds loop at 90-180 s;
|
|
- battle beds loop at 60-120 s and omit decorative transients;
|
|
- weather/mechanical layers loop at 30-90 s with asynchronous start offsets;
|
|
- spotters never loop and provide four non-pitch-randomized variations;
|
|
- spotter interval is 8-30 s, widened to 18-45 s during preparation and result
|
|
review;
|
|
- no spotter starts within 500 ms before or 700 ms after a `P0-P2` event;
|
|
- a configuration transition crossfades over 1.0-2.5 s unless an interruption
|
|
requires immediate silence;
|
|
- restored/progressed region states must audibly change one persistent process
|
|
layer, not merely raise volume.
|
|
|
|
Ambience supports place and progression but never signals affordability,
|
|
legality, target, casualty, reward ownership, or save success by itself.
|
|
|
|
### 7. Generated-Recruit Voice Contract
|
|
|
|
#### 7.1 Bounded Scope
|
|
|
|
Voice consists of a small localized semantic layer plus reusable nonverbal
|
|
efforts. There are no bespoke dialogue sets for individual recruits, no spoken
|
|
generated names, and no content dependency on a recruit-specific performer.
|
|
|
|
Semantic voice ships in exactly two launch locales: English (`en`) and
|
|
Simplified Chinese (`zh_CN`). Nonverbal recruit efforts are language-neutral.
|
|
|
|
| Voice family | Formula | Release masters | Notes |
|
|
|---|---:|---:|---|
|
|
| system intents | `16 x 2 locales` | 32 | save, input, compatibility, and unavailable-action notices |
|
|
| activity announcer intents | `16 x 2 locales` | 32 | shop, readiness, battle, casualty, reward, and run-result notices |
|
|
| recruit effort banks | `8 banks x 8 functions x 2 variations` | 128 | language-neutral, non-lexical performances |
|
|
| **Total** | | **192** | retakes and rejected takes excluded |
|
|
|
|
The 32 semantic intents are:
|
|
|
|
```text
|
|
VO-SYS-001 save_recovered
|
|
VO-SYS-002 save_conflict
|
|
VO-SYS-003 save_failed
|
|
VO-SYS-004 migration_required
|
|
VO-SYS-005 migration_complete
|
|
VO-SYS-006 offline_state_changed
|
|
VO-SYS-007 input_device_changed
|
|
VO-SYS-008 audio_output_changed
|
|
VO-SYS-009 destructive_action_armed
|
|
VO-SYS-010 destructive_action_cancelled
|
|
VO-SYS-011 purchase_rejected
|
|
VO-SYS-012 equipment_incompatible
|
|
VO-SYS-013 action_unavailable
|
|
VO-SYS-014 content_mismatch
|
|
VO-SYS-015 connection_recovered
|
|
VO-SYS-016 diagnostic_exported
|
|
VO-ANN-001 shop_offers_ready
|
|
VO-ANN-002 shop_refresh_confirmed
|
|
VO-ANN-003 recruit_hired
|
|
VO-ANN-004 recruit_sent_to_reserve
|
|
VO-ANN-005 party_line_ready
|
|
VO-ANN-006 party_line_blocked
|
|
VO-ANN-007 battle_started
|
|
VO-ANN-008 battle_speed_changed
|
|
VO-ANN-009 retreat_started
|
|
VO-ANN-010 retreat_cancelled
|
|
VO-ANN-011 retreat_completed
|
|
VO-ANN-012 casualty_confirmed
|
|
VO-ANN-013 battle_won
|
|
VO-ANN-014 battle_lost
|
|
VO-ANN-015 reward_ready
|
|
VO-ANN-016 run_ended
|
|
```
|
|
|
|
Semantic voice is optional reinforcement. The matching UI text, caption, and
|
|
SFX occur whether or not voice is enabled or a localized file exists.
|
|
|
|
#### 7.2 Effort Banks
|
|
|
|
Each generated recruit receives one of eight effort banks from a stable seed.
|
|
The assignment remains constant for that recruit. Runtime pitch shifting,
|
|
voice cloning, and performer imitation are prohibited. The eight functions are
|
|
light exertion, heavy exertion, light hit, heavy hit, guard/deflect,
|
|
heal/recover, critical condition, and defeated fall. Each has two genuinely
|
|
different performed variations.
|
|
|
|
Efforts contain no words, names, profession calls, or gameplay instructions.
|
|
They are `P5` except critical condition and defeated fall, which become `P3`
|
|
but remain subordinate to semantic casualty SFX and captions. An effort cannot
|
|
delay battle simulation or set animation duration.
|
|
|
|
#### 7.3 Casting And Rights
|
|
|
|
- casting briefs describe performance energy and register, never a living or
|
|
protected performer's likeness;
|
|
- performer consent, territory, term, reuse, edit, and synthetic-use clauses
|
|
are documented before recording;
|
|
- a voice model may not be trained, cloned, or derived from a performer without
|
|
a separate explicit agreement and owner approval;
|
|
- localized direction preserves semantic brevity and urgency rather than
|
|
matching waveform duration exactly;
|
|
- no final voice provider, performer, or synthetic workflow is approved by
|
|
this design Goal.
|
|
|
|
### 8. Shared SFX Event Ledger
|
|
|
|
There are **228 shared semantic event identities**. The ordered lists below are
|
|
the complete shared ledger. An event identity may render from reusable layers,
|
|
but its state meaning, priority, cooldown, caption, and transaction behavior
|
|
remain independently testable.
|
|
|
|
#### 8.1 System And Interface: 24
|
|
|
|
```text
|
|
SFX-UI-001 focus_move
|
|
SFX-UI-002 focus_boundary
|
|
SFX-UI-003 focus_disabled
|
|
SFX-UI-004 tab_change
|
|
SFX-UI-005 page_open
|
|
SFX-UI-006 page_close
|
|
SFX-UI-007 inspect_open
|
|
SFX-UI-008 inspect_close
|
|
SFX-UI-009 compare_on
|
|
SFX-UI-010 compare_off
|
|
SFX-UI-011 filter_apply
|
|
SFX-UI-012 filter_clear
|
|
SFX-UI-013 menu_open
|
|
SFX-UI-014 menu_close
|
|
SFX-UI-015 action_available
|
|
SFX-UI-016 action_blocked
|
|
SFX-UI-017 confirm_arm
|
|
SFX-UI-018 confirm_commit
|
|
SFX-UI-019 confirm_cancel
|
|
SFX-UI-020 destructive_hold_tick
|
|
SFX-UI-021 destructive_commit
|
|
SFX-UI-022 stale_state
|
|
SFX-UI-023 error_recoverable
|
|
SFX-UI-024 notification_new
|
|
```
|
|
|
|
Preview cues are short dry contacts. Commit cues add a low settled component.
|
|
Blocked, stale, and destructive states have different contours and captions.
|
|
|
|
#### 8.2 Shop And Recruitment: 24
|
|
|
|
```text
|
|
SFX-SHP-001 shop_enter
|
|
SFX-SHP-002 offer_reveal
|
|
SFX-SHP-003 refresh_review
|
|
SFX-SHP-004 refresh_commit
|
|
SFX-SHP-005 refresh_unaffordable
|
|
SFX-SHP-006 price_change
|
|
SFX-SHP-007 purchase_review
|
|
SFX-SHP-008 purchase_commit
|
|
SFX-SHP-009 purchase_rejected
|
|
SFX-SHP-010 currency_gain
|
|
SFX-SHP-011 currency_spend
|
|
SFX-SHP-012 recruit_card_reveal
|
|
SFX-SHP-013 recruit_inspect
|
|
SFX-SHP-014 recruit_hire_review
|
|
SFX-SHP-015 recruit_hire_commit
|
|
SFX-SHP-016 deploy_capacity_reached
|
|
SFX-SHP-017 reserve_added
|
|
SFX-SHP-018 recruit_replace_review
|
|
SFX-SHP-019 dismiss_arm
|
|
SFX-SHP-020 dismiss_commit
|
|
SFX-SHP-021 trait_benefit_reveal
|
|
SFX-SHP-022 trait_cost_reveal
|
|
SFX-SHP-023 offer_expire
|
|
SFX-SHP-024 shop_exit
|
|
```
|
|
|
|
`purchase_commit` plays only after the economy receipt commits.
|
|
`recruit_hire_commit` and `reserve_added` may occur in order but cannot overlap.
|
|
Trait benefit and cost use complementary contours so the cost cannot be heard
|
|
as a second bonus.
|
|
|
|
#### 8.3 Equipment And Artifacts: 20
|
|
|
|
```text
|
|
SFX-EQP-001 item_pickup
|
|
SFX-EQP-002 item_inspect
|
|
SFX-EQP-003 compare_better
|
|
SFX-EQP-004 compare_tradeoff
|
|
SFX-EQP-005 slot_select
|
|
SFX-EQP-006 equip_review
|
|
SFX-EQP-007 equip_commit
|
|
SFX-EQP-008 unequip_commit
|
|
SFX-EQP-009 incompatible_item
|
|
SFX-EQP-010 inventory_full
|
|
SFX-EQP-011 sell_review
|
|
SFX-EQP-012 sell_commit
|
|
SFX-EQP-013 item_lock
|
|
SFX-EQP-014 item_unlock
|
|
SFX-EQP-015 artifact_reveal
|
|
SFX-EQP-016 artifact_take
|
|
SFX-EQP-017 artifact_rule_activate
|
|
SFX-EQP-018 equipment_proc_ready
|
|
SFX-EQP-019 equipment_proc_trigger
|
|
SFX-EQP-020 equipment_proc_cooldown
|
|
```
|
|
|
|
Equipment material supplies the transient; semantic state supplies the contour.
|
|
Comparisons never claim a globally better choice when the underlying UI marks
|
|
a tradeoff.
|
|
|
|
#### 8.4 Party Order And Preparation: 20
|
|
|
|
```text
|
|
SFX-ORD-001 unit_select
|
|
SFX-ORD-002 move_preview
|
|
SFX-ORD-003 legal_position
|
|
SFX-ORD-004 illegal_position
|
|
SFX-ORD-005 swap_preview
|
|
SFX-ORD-006 reorder_commit
|
|
SFX-ORD-007 reorder_cancel
|
|
SFX-ORD-008 front_position_change
|
|
SFX-ORD-009 rear_position_change
|
|
SFX-ORD-010 target_projection_change
|
|
SFX-ORD-011 protection_projection_change
|
|
SFX-ORD-012 reach_projection_change
|
|
SFX-ORD-013 healing_projection_change
|
|
SFX-ORD-014 capacity_increase
|
|
SFX-ORD-015 deploy_add
|
|
SFX-ORD-016 deploy_remove
|
|
SFX-ORD-017 ready_check_pass
|
|
SFX-ORD-018 ready_check_blocked
|
|
SFX-ORD-019 battle_start_arm
|
|
SFX-ORD-020 battle_start_commit
|
|
```
|
|
|
|
Move preview uses front-to-rear brightness and a centered low pulse, so order is
|
|
audible in mono without relying on pan. Projection-change cues fire only when
|
|
the forecast actually changes and are paired with the changed visual value.
|
|
|
|
#### 8.5 Automatic Battle: 60
|
|
|
|
```text
|
|
SFX-BAT-001 battle_count_in
|
|
SFX-BAT-002 battle_begin
|
|
SFX-BAT-003 battle_pause
|
|
SFX-BAT-004 battle_resume
|
|
SFX-BAT-005 speed_up
|
|
SFX-BAT-006 speed_down
|
|
SFX-BAT-007 inspect_open
|
|
SFX-BAT-008 inspect_close
|
|
SFX-BAT-009 retreat_available
|
|
SFX-BAT-010 retreat_blocked
|
|
SFX-BAT-011 target_acquired_front
|
|
SFX-BAT-012 target_acquired_rear
|
|
SFX-BAT-013 target_changed
|
|
SFX-BAT-014 reach_blocked
|
|
SFX-BAT-015 protection_applied
|
|
SFX-BAT-016 protection_removed
|
|
SFX-BAT-017 movement_forward
|
|
SFX-BAT-018 movement_backward
|
|
SFX-BAT-019 position_displaced
|
|
SFX-BAT-020 replacement_step_in
|
|
SFX-BAT-021 melee_windup
|
|
SFX-BAT-022 melee_release
|
|
SFX-BAT-023 melee_impact_light
|
|
SFX-BAT-024 melee_impact_heavy
|
|
SFX-BAT-025 ranged_windup
|
|
SFX-BAT-026 ranged_release
|
|
SFX-BAT-027 projectile_arrival
|
|
SFX-BAT-028 area_windup
|
|
SFX-BAT-029 area_resolve
|
|
SFX-BAT-030 channel_start
|
|
SFX-BAT-031 channel_tick
|
|
SFX-BAT-032 channel_end
|
|
SFX-BAT-033 summon_or_device_enter
|
|
SFX-BAT-034 summon_or_device_exit
|
|
SFX-BAT-035 guard_raise
|
|
SFX-BAT-036 guard_absorb
|
|
SFX-BAT-037 guard_break
|
|
SFX-BAT-038 barrier_gain
|
|
SFX-BAT-039 barrier_absorb
|
|
SFX-BAT-040 barrier_end
|
|
SFX-BAT-041 component_blocked
|
|
SFX-BAT-042 immunity
|
|
SFX-BAT-043 heal_small
|
|
SFX-BAT-044 heal_large
|
|
SFX-BAT-045 regeneration_tick
|
|
SFX-BAT-046 overheal_or_waste
|
|
SFX-BAT-047 status_benefit_apply
|
|
SFX-BAT-048 status_cost_apply
|
|
SFX-BAT-049 status_tick
|
|
SFX-BAT-050 status_stack_change
|
|
SFX-BAT-051 status_resist
|
|
SFX-BAT-052 status_cleanse
|
|
SFX-BAT-053 status_expire
|
|
SFX-BAT-054 cooldown_ready
|
|
SFX-BAT-055 enemy_forecast_begin
|
|
SFX-BAT-056 enemy_forecast_escalate
|
|
SFX-BAT-057 enemy_forecast_resolve
|
|
SFX-BAT-058 enemy_forecast_cancel
|
|
SFX-BAT-059 elite_state_change
|
|
SFX-BAT-060 boss_phase_change
|
|
```
|
|
|
|
##### Terminal Outcome Cue And Caption Bindings
|
|
|
|
The following existing shared identities bind only to terminal outcome records
|
|
declared by `02_GAMEPLAY_AND_BALANCE.md`, Section 11.2. This mapping
|
|
adds no SFX identity or rendered master.
|
|
|
|
| Shared cue | Terminal outcome ID | Required causal caption | Exclusion |
|
|
|---|---|---|---|
|
|
| `SFX-BAT-014 reach_blocked` | `AO_INVALID_REACH` | `Out of reach` plus old/current depth and required reach | not a forecast comparison or target-change cue |
|
|
| `SFX-BAT-041 component_blocked` | `AO_BLOCKED` | `Blocked` plus blocker actor or rule ID | barrier absorption remains `AO_APPLIED` and uses the barrier state cue |
|
|
| `SFX-BAT-042 immunity` | `AO_IMMUNE` | `Immune` plus immunity tag and source ID | no resistance draw is consumed |
|
|
| `SFX-BAT-051 status_resist` | `AO_RESISTED` | `Resisted` plus roll, threshold, Potency, and Tenacity | status components only; never a general action result |
|
|
|
|
`FORECAST_DIVERGED` may select `SFX-BAT-013 target_changed` only when the
|
|
authoritative target changes; it is not a terminal outcome. A legal moved target
|
|
with `TARGET_MOVED_STILL_LEGAL` remains `AO_APPLIED` and uses its ordinary
|
|
component/state audio. Every other `AO_*` record uses its exact causal label,
|
|
specific state cue when one exists, and event-log evidence rather than a
|
|
catch-all failure transient.
|
|
|
|
At 2x and 4x, simulation events remain unchanged while
|
|
routine audio density is reduced: keep every forecast, state change, casualty,
|
|
retreat, and result; group attacks by source/material; keep at most one routine
|
|
impact per source per 120 ms at the highest configured speed. Music tempo and
|
|
voice playback speed do not change.
|
|
|
|
#### 8.6 Knockout, Result, Reward, And Recovery: 28
|
|
|
|
```text
|
|
SFX-RES-001 recruit_health_warning
|
|
SFX-RES-002 recruit_critical
|
|
SFX-RES-003 collapse_forecast
|
|
SFX-RES-004 recruit_defeated
|
|
SFX-RES-005 recruit_knockout_confirmed
|
|
SFX-RES-006 stage_absence_open
|
|
SFX-RES-007 recruit_stage_return
|
|
SFX-RES-008 retreat_channel_begin
|
|
SFX-RES-009 retreat_channel_tick
|
|
SFX-RES-010 retreat_interrupted
|
|
SFX-RES-011 retreat_commit
|
|
SFX-RES-012 battle_victory
|
|
SFX-RES-013 battle_defeat
|
|
SFX-RES-014 flawless_result
|
|
SFX-RES-015 narrow_survival
|
|
SFX-RES-016 reward_reveal
|
|
SFX-RES-017 reward_option_focus
|
|
SFX-RES-018 reward_option_compare
|
|
SFX-RES-019 reward_accept
|
|
SFX-RES-020 reward_skip
|
|
SFX-RES-021 reward_inventory_block
|
|
SFX-RES-022 currency_reward
|
|
SFX-RES-023 equipment_reward
|
|
SFX-RES-024 artifact_reward
|
|
SFX-RES-025 experience_gain
|
|
SFX-RES-026 level_gain
|
|
SFX-RES-027 recovery_option_open
|
|
SFX-RES-028 run_summary_close
|
|
```
|
|
|
|
`recruit_knockout_confirmed` is `P1`, plays once after the battle-local knockout
|
|
is committed, and uses no reward sparkle, comic fall or memorial language.
|
|
Defeat and retreat cues describe different results. Reward focus and reveal
|
|
never imply ownership; only
|
|
`reward_accept` or the committed reward-type receipt does.
|
|
|
|
#### 8.7 Run, Progression, And Save: 28
|
|
|
|
```text
|
|
SFX-RUN-001 risk_option_focus
|
|
SFX-RUN-002 risk_compare
|
|
SFX-RUN-003 risk_commit
|
|
SFX-RUN-004 encounter_enter
|
|
SFX-RUN-005 encounter_clear
|
|
SFX-RUN-006 next_choice_open
|
|
SFX-RUN-007 next_choice_closed
|
|
SFX-RUN-008 rest_option_focus
|
|
SFX-RUN-009 rest_commit
|
|
SFX-RUN-010 run_continue
|
|
SFX-RUN-011 run_end_voluntary
|
|
SFX-RUN-012 run_end_forced
|
|
SFX-RUN-013 progression_unlock
|
|
SFX-RUN-014 difficulty_change_review
|
|
SFX-RUN-015 save_begin
|
|
SFX-RUN-016 save_commit
|
|
SFX-RUN-017 save_deferred
|
|
SFX-RUN-018 save_failed
|
|
SFX-RUN-019 backup_recovered
|
|
SFX-RUN-020 migration_begin
|
|
SFX-RUN-021 migration_complete
|
|
SFX-RUN-022 migration_failed
|
|
SFX-RUN-023 conflict_detected
|
|
SFX-RUN-024 rollback_notice
|
|
SFX-RUN-025 corruption_blocked
|
|
SFX-RUN-026 duplicate_claim_rejected
|
|
SFX-RUN-027 clock_rollback_detected
|
|
SFX-RUN-028 offline_state_changed
|
|
```
|
|
|
|
##### `OUT-006` Contract Withdrawal Transaction
|
|
|
|
Contract withdrawal is a voluntary expedition-close transaction, not Recruit
|
|
dismissal, knockout, forced Contract end, or a generic Back action. It reuses existing shared
|
|
events and adds no SFX identity or rendered master.
|
|
|
|
| `OUT-006` state | Existing audio event | Required caption and receipt behavior |
|
|
|---|---|---|
|
|
| review armed | `SFX-UI-017 confirm_arm`; `SFX-UI-020 destructive_hold_tick` only while the configured destructive gesture advances | Caption names the run, cleared run-only state, retained history/progression, destination, and irreversibility; default focus remains Cancel. No close cue plays. |
|
|
| cancel | `SFX-UI-019 confirm_cancel` | `Withdrawal cancelled; Contract unchanged`; return to the invoking Guild desk or Result state. |
|
|
| rejected or illegal | `SFX-UI-016 action_blocked`; use `SFX-UI-023 error_recoverable` only for a recoverable operation failure | Caption gives the authoritative rejection reason and safe return; no resource, Recruit, or run state is presented as changed. |
|
|
| stale review | `SFX-UI-022 stale_state` | `Abandonment consequences changed; review again`; replace the old consequence list and require a new explicit confirm. |
|
|
| committed receipt | `SFX-RUN-011 run_end_voluntary` after the sourced closure receipt commits | Caption states run closed, cleared run-only state, retained history/progression, destination, and operation ID. The event log retains the receipt. |
|
|
| duplicate operation | no new transient; transaction-ID replay guard returns the original receipt | Re-present the original committed caption and receipt; never replay the close cue or partially close the run. |
|
|
|
|
`SFX-SHP-020 dismiss_commit`, `SFX-RES-005 recruit_knockout_confirmed`, and
|
|
`SFX-RUN-012 run_end_forced` never fire for `OUT-006`. Suspend before commit
|
|
changes nothing; suspend after commit verifies the same closure receipt before
|
|
any audio resumes.
|
|
|
|
`save_commit` follows durable commit acknowledgment, never the start of a
|
|
write. Failed, deferred, recovered, migrated, conflicted, rolled back, and
|
|
offline states have distinct captions and cannot reuse the success receipt.
|
|
|
|
#### 8.8 Eight-Region Progression: 24
|
|
|
|
| Region package | Entry | Hazard alert | Progress resolution |
|
|
|---|---|---|---|
|
|
| `R01` | `SFX-REG-001` | `SFX-REG-002` | `SFX-REG-003` |
|
|
| `R02` | `SFX-REG-004` | `SFX-REG-005` | `SFX-REG-006` |
|
|
| `R03` | `SFX-REG-007` | `SFX-REG-008` | `SFX-REG-009` |
|
|
| `R04` | `SFX-REG-010` | `SFX-REG-011` | `SFX-REG-012` |
|
|
| `R05` | `SFX-REG-013` | `SFX-REG-014` | `SFX-REG-015` |
|
|
| `R06` | `SFX-REG-016` | `SFX-REG-017` | `SFX-REG-018` |
|
|
| `R07` | `SFX-REG-019` | `SFX-REG-020` | `SFX-REG-021` |
|
|
| `R08` | `SFX-REG-022` | `SFX-REG-023` | `SFX-REG-024` |
|
|
|
|
Each set uses its Section 5.3 soundmark. Hazard alert binds to the corresponding
|
|
`RG-01..RG-08` Region Matrix encounter grammar and production-needs row, then
|
|
to the final enemy or boss event instance. Progress resolution fires only after
|
|
the persistent region change commits.
|
|
|
|
#### 8.9 Per-Event Priority, Replay, And Caption Policy
|
|
|
|
Ordinals below refer to the definitions in Sections 8.1-8.8. Every ordinal is
|
|
assigned exactly once. The priority determines ducking and overflow through
|
|
Section 3.
|
|
|
|
| Family | Ordinals | Priority |
|
|
|---|---|---:|
|
|
| UI | 001-014 | `P5` |
|
|
| UI | 015-017, 019, 024 | `P3` |
|
|
| UI | 018 | `P2` |
|
|
| UI | 020, 022-023 | `P1` |
|
|
| UI | 021 | `P0` |
|
|
| Shop/recruit | 001-003, 012-014, 023-024 | `P4` |
|
|
| Shop/recruit | 006-007, 018, 021-022 | `P3` |
|
|
| Shop/recruit | 004, 008, 010-011, 015, 017 | `P2` |
|
|
| Shop/recruit | 005, 009, 016, 019 | `P1` |
|
|
| Shop/recruit | 020 | `P0` |
|
|
| Equipment | 001-006 | `P4` |
|
|
| Equipment | 013-015, 017-020 | `P3` |
|
|
| Equipment | 007-008, 011-012, 016 | `P2` |
|
|
| Equipment | 009-010 | `P1` |
|
|
| Party order | 001-005 | `P4` |
|
|
| Party order | 007-017 | `P3` |
|
|
| Party order | 006, 019-020 | `P2` |
|
|
| Party order | 018 | `P1` |
|
|
| Battle | 021-034 | `P4` |
|
|
| Battle | 005-008, 011-020, 035-054 | `P3` |
|
|
| Battle | 001-004 | `P2` |
|
|
| Battle | 009-010, 055-060 | `P1` |
|
|
| Result | 016-018, 020, 025-028 | `P3` |
|
|
| Result | 001, 006-008, 014-015, 019, 022-024 | `P2` |
|
|
| Result | 002-004, 009-010, 012-013, 021 | `P1` |
|
|
| Result | 005, 011 | `P0` |
|
|
| Run/save | 001, 008, 015 | `P4` |
|
|
| Run/save | 002, 004-007, 013, 017 | `P3` |
|
|
| Run/save | 003, 009-011, 014, 016, 019-021 | `P2` |
|
|
| Run/save | 012, 026-028 | `P1` |
|
|
| Run/save | 018, 022-025 | `P0` |
|
|
| Region | 001, 004, 007, 010, 013, 016, 019, 022 | `P3` |
|
|
| Region | 003, 006, 009, 012, 015, 018, 021, 024 | `P2` |
|
|
| Region | 002, 005, 008, 011, 014, 017, 020, 023 | `P1` |
|
|
|
|
Replay and caption policy follows priority:
|
|
|
|
| Priority | Replay guard | Caption class |
|
|
|---|---|---|
|
|
| `P0` | once per authoritative transaction/event instance; no time-based replay | mandatory in critical-only and full modes; retained in event log |
|
|
| `P1` | source + semantic key, 300 ms minimum unless a distinct state replaces it | mandatory in critical-only and full modes; direction/source included |
|
|
| `P2` | once per commit transaction; previews cannot trigger it | mandatory in full mode; existing UI receipt remains visible in every mode |
|
|
| `P3` | family cooldown 300-700 ms; latest changed state wins | full-mode caption when offscreen or not already text-visible |
|
|
| `P4` | pooled by source/material using Section 3 caps | summarized only in full detail or event-log accessibility mode |
|
|
| `P5` | UI traversal and effort caps from Section 3 | no default caption; focus and recruit state remain visually exposed |
|
|
|
|
### 9. Content-Bound SFX Packages
|
|
|
|
Content-bound IDs are pattern contracts. The production manifest expands them
|
|
from the resolved stable namespaces and retains a machine-readable mapping
|
|
record.
|
|
|
|
| Content scope | Event identity pattern | Identities | Minimum rendered masters | Reuse rule |
|
|
|---|---|---:|---:|---|
|
|
| 42 professions | `SFX-PRO-{profession_id}-{ACTION,STATE}`, where `profession_id` is in `PF-B01..PF-B12`, `PF-A01..PF-A24`, or `PF-H01..PF-H06` | 84 | 168 | two performed/rendered variations per identity; shared body/material layers allowed |
|
|
| 36 traits | map each `TR-001..TR-036` row to one benefit and one cost event | 0 new mandatory | 0 | all 36 mappings required; add an identity only if shared semantics are false |
|
|
| 320 equipment items | map each `EQ-001..EQ-320` row to material, equip, and proc events | 0 new mandatory | 0 | all 320 mappings required; no rarity-only signature |
|
|
| 60 artifacts | `SFX-ART-{artifact_id}-RULE`, where `artifact_id` is in `AR-001..AR-060` | 60 | 120 | one activation and one resolution render per rule identity |
|
|
| 100 ordinary/elite enemies | `SFX-ENM-{enemy_id}-{FORECAST,RESOLVE}`, where `enemy_id` is an `EN-Rx-yy` primary row | 200 | 400 | two variations per identity; forecast contour stays stable |
|
|
| 16 bosses | `SFX-BOS-{boss_id}-{ARRIVE,PHASE,THREAT,OPENING,DEFEAT}`, where `boss_id` is a `BO-Rx-yy` primary row | 80 | 80 | five deterministic masters per boss; material layers may be shared |
|
|
| **Content-bound total** | | **424** | **768** | every required catalog row receives a mapping |
|
|
|
|
Shared and content-bound scope therefore totals **652 semantic SFX identities**
|
|
and a minimum of **1,240 mastered SFX renders** (`472 shared + 768
|
|
content-bound`). New content behavior may add identities; integration may not
|
|
remove a required mapping merely because two events currently use the same raw
|
|
material.
|
|
|
|
#### 9.1 Shared SFX Variation Budget
|
|
|
|
| Shared family | Identities | Variant allocation | Rendered masters |
|
|
|---|---:|---|---:|
|
|
| system/interface | 24 | 12 repeatable x4; 12 deterministic x1 | 60 |
|
|
| shop/recruitment | 24 | 6 repeatable x3; 18 deterministic x1 | 36 |
|
|
| equipment/artifacts | 20 | 6 repeatable x3; 14 deterministic x1 | 32 |
|
|
| party order/preparation | 20 | 6 repeatable x3; 14 deterministic x1 | 32 |
|
|
| automatic battle | 60 | 24 high-rate x4; 18 medium-rate x3; 18 deterministic x1 | 168 |
|
|
| casualty/result/reward/recovery | 28 | 4 physical x3; 24 deterministic x1 | 36 |
|
|
| run/progression/save | 28 | 4 repeatable x3; 24 deterministic x1 | 36 |
|
|
| regional progression | 24 | 16 material events x4; 8 deterministic receipts x1 | 72 |
|
|
| **Total** | **228** | | **472** |
|
|
|
|
Deterministic means one stable semantic master, not identical volume in every
|
|
context. Repeated variations use shuffled bags with no immediate repeat. Pitch
|
|
randomization is limited to `+/- 2%` only on non-semantic debris layers and is
|
|
never applied to forecasts, commit receipts, save states, casualty, or voice.
|
|
|
|
#### 9.2 Reusable Source Library
|
|
|
|
The planned raw source library contains **144 selected dry recordings** before
|
|
processing: six physical-action kits x8 sources (48), eight regional surface
|
|
kits x4 (32), eight interface-object kits x4 (32), and eight tonal/process kits
|
|
x4 (32). These sources are production inputs and are not counted as release
|
|
event masters. Every source retains origin, rights, performer, location,
|
|
recording chain, and allowed-use metadata.
|
|
|
|
### 10. Captions, Mute, And Accessible Listening
|
|
|
|
#### 10.1 Caption Contract
|
|
|
|
Every `P0-P2` event and any non-visible offscreen state has a localized caption
|
|
key. Caption data is event data, not speech transcription alone.
|
|
|
|
```text
|
|
[source] + [action/state] + [front/rear/offscreen direction when relevant]
|
|
```
|
|
|
|
Examples of structure, not final localized prose:
|
|
|
|
- `[Front recruit: danger rising]`
|
|
- `[Enemy forecast: heavy strike]`
|
|
- `[Recruit knocked out; returns next stage]`
|
|
- `[Reward added]`
|
|
- `[Save conflict requires review]`
|
|
|
|
Captions never identify urgency by punctuation count or color alone. Direction
|
|
uses words/icons plus optional pan. Repeated routine impacts collapse to a
|
|
summary caption; critical events never collapse across different sources.
|
|
|
|
Caption controls include off/on, critical-only/full detail, 100/115/130% text,
|
|
background opacity, speaker labels, and sound direction. A two-line default and
|
|
three-line large-text maximum protect the battle forecast area; overflow moves
|
|
to the event log without truncating the critical line.
|
|
|
|
#### 10.2 Mute And Channel Independence
|
|
|
|
- Master mute silences all audio within 50 ms and restores with a 150 ms ramp.
|
|
- Music, Ambience, SFX, and Voice can each be muted independently.
|
|
- Voice mute leaves captions and semantic SFX unchanged.
|
|
- SFX mute leaves visual forecasts, captions, and event-log records unchanged.
|
|
- Music or Ambience mute does not reveal hidden timing advantages.
|
|
- The optional Accessibility bus may reinforce critical contours, but cannot
|
|
create an event absent from the simulation.
|
|
|
|
#### 10.3 Mono And Hearing Range
|
|
|
|
- all semantic cues are authored and reviewed in mono;
|
|
- front/rear order uses envelope and register in addition to pan;
|
|
- left/right or offscreen direction includes caption and UI direction;
|
|
- critical cue fundamentals occupy distinct bands from the busiest music layer;
|
|
- high-frequency detail may decorate a cue but never carries its identity;
|
|
- hearing-access presets may substitute a lower-register contour while
|
|
retaining event timing and priority.
|
|
|
|
### 11. Lifecycle And Device Behavior
|
|
|
|
| Lifecycle event | Required audio behavior | State truth requirement |
|
|
|---|---|---|
|
|
| battle pause | 80 ms filter/level transition; halt scheduled transients; preserve music phase | no hidden cue advances while simulation is paused |
|
|
| battle resume | discard stale queued routine cues; 150-350 ms ambience/music restore | reconstruct from current authoritative snapshot |
|
|
| app background/focus loss | fade all buses within 100 ms and cancel non-committed preview cues | complete the current priority batch, write/verify the deterministic snapshot, advance no obscured time, return battle through `BAT-006`, and reconcile any non-battle transaction receipt |
|
|
| foreground return | wait for current state snapshot, then restore loops at saved or legal markers | never replay purchase, reward, casualty, or save receipts |
|
|
| OS interruption | stop output, retain logical music marker, clear transient queues | resume only after interruption-ended callback and state refresh |
|
|
| output route change | 50 ms fade, rebuild output graph, 150 ms fade after route is stable for 250 ms | announce/caption changed route once; no duplicate game event |
|
|
| headphone unplug | stop private output before speaker reopen; do not move active audio to speakers automatically | raise one nonblocking output-loss notice, retain captions/event geometry, pause a settings test, and continue current simulation; only an independent background or input-device interruption routes through `BAT-006` |
|
|
| Bluetooth latency change | adjust presentation scheduling, never simulation timestamps | captions and visuals stay authoritative |
|
|
| suspend/restore | serialize suite ID, musical marker, ambience configuration, and active semantic states | do not serialize transient waveform position as game truth |
|
|
| content/rules migration | use migration audio only after owning save state reports phase | failure cannot sound successful |
|
|
| language change | finish or stop current semantic line, then use new locale | no mixed-language queue survives the switch |
|
|
| dynamic-range change | ramp bus parameters over 100-250 ms | current cue remains the same semantic identity |
|
|
|
|
Every one-shot carries an event instance or transaction ID. Resume, retry, and
|
|
duplicate callback handling use that ID to prevent a second purchase, reward,
|
|
loss, or save-success cue.
|
|
|
|
### 12. Workflow Traceability
|
|
|
|
| Player workflow | Required music/ambience | Required semantic SFX | Voice/caption behavior | Acceptance observation |
|
|
|---|---|---|---|---|
|
|
| shop browse and refresh | shop base/motion/scarcity states; shop ambience | shop/recruit shared family and currency receipts | offers-ready/refresh voice optional; commits captioned | preview, insufficient state, refresh, and purchase are distinguishable eyes closed, then verified against screen state |
|
|
| recruit evaluation and hire | preparation handoff | recruit evaluation, hire, capacity, replacement, dismissal, and trait events | no spoken generated name; benefit and cost caption separately | hire, reserve, capacity, replacement, and dismissal never share receipt contours |
|
|
| equipment comparison | preparation base/comparison layer | equipment/artifact shared family | incompatibility caption/system voice optional | review differs from equip/sell commit; proc cannot mask a forecast |
|
|
| party ordering | preparation base/ready layer | party-order shared family | blocked/ready caption and optional announcer | order move and changed target/protection/reach/heal projections remain readable in mono |
|
|
| automatic battle | regional battle or boss suite; battle ambience | automatic-battle shared family plus content signatures | efforts rate-limited; semantic forecasts captioned | 30-minute battle mix preserves forecasts, phase, retreat, and casualty at every speed |
|
|
| knockout and stage return | consequence handoff/result ambience | knockout and return events | knockout caption is mandatory; optional announcer once | committed current-battle exit differs from danger and next-stage return |
|
|
| reward and progression | success bed or run suite | reward, ownership, and progression events | ownership caption only after commit | reveal, focus, compare, accept, blocked, and owned states remain distinct |
|
|
| recovery after failure | loss bed/safe recovery ambience | recovery and run-end events | neutral system language; no blame performance | player hears consequence, legal recovery options, and return handoff without a celebratory cue |
|
|
| voluntary Contract withdrawal | current safe-state bed continues through review; Guild handoff starts only after receipt | `OUT-006` matrix: confirm arm/hold, cancel, rejected/stale, and `SFX-RUN-011` committed receipt | every state has a localized caption; duplicate operation reuses the original receipt without another cue | withdrawal remains distinct from Recruit dismissal, knockout, forced Contract end, and ordinary Back |
|
|
| save and restore | current music continues unless blocked | save, migration, conflict, rollback, and offline events | critical states captioned; system voice optional | success, failure, defer, conflict, rollback, corruption, duplicate claim, and offline state cannot be confused |
|
|
| eight-region progression | matching route/battle/boss suite and one of 64 regional configurations | regional shared family and bound content packages | localized region name resolves from the `RG-01..RG-08` Region Matrix row | all eight soundmarks are identifiable in mono and progress states change a persistent layer |
|
|
|
|
### 13. Production Manifest And Evidence
|
|
|
|
#### 13.1 Required Metadata
|
|
|
|
Every delivered asset or configuration record contains:
|
|
|
|
```text
|
|
audio_id
|
|
authoritative_event_binding
|
|
asset_or_configuration_type
|
|
bus
|
|
priority
|
|
source_scope
|
|
variant_group
|
|
selection_rule
|
|
cooldown_ms
|
|
concurrency_group
|
|
ducking_trigger
|
|
caption_key
|
|
locale_or_language_neutral
|
|
duration_ms
|
|
loop_start_sample
|
|
loop_end_sample
|
|
integrated_loudness
|
|
true_peak
|
|
rights_record
|
|
content_hash
|
|
evidence_state
|
|
```
|
|
|
|
Non-looping assets set loop samples to null. Missing caption keys on `P0-P2`
|
|
events, unresolved authoritative bindings, duplicate IDs, and absent rights
|
|
records are blocking manifest errors.
|
|
|
|
#### 13.2 Planned Release-Master Count
|
|
|
|
| Domain | Planned mastered deliverables |
|
|
|---|---:|
|
|
| music | 150 |
|
|
| ambience | 410 |
|
|
| shared and content-bound SFX | 1,240 minimum |
|
|
| language-neutral recruit efforts | 128 |
|
|
| localized system/announcer voice | 64 |
|
|
| **Total** | **1,992 minimum** |
|
|
|
|
The separate 144-recording raw SFX source library is not included in release
|
|
master totals. Rejected takes, mix revisions, localization retakes, source
|
|
sessions, and runtime compression variants are tracked but not counted as
|
|
distinct release masters.
|
|
|
|
#### 13.3 Evidence States
|
|
|
|
```text
|
|
specified -> source_rights_cleared -> recorded_or_composed -> edited
|
|
-> machine_checked -> human_selected -> mastered -> imported -> bound
|
|
-> runtime_observed -> human_listened -> device_verified -> release_accepted
|
|
```
|
|
|
|
Evidence is monotonic per asset and per configuration. Machine checks cannot
|
|
set `human_listened`; a screenshot of a waveform cannot set
|
|
`runtime_observed`; one device cannot set `device_verified` for the matrix.
|
|
|
|
#### 13.4 Production Sequence
|
|
|
|
1. Resolve the event binding and approve its semantic role.
|
|
2. Record source, rights, performer, toolchain, and provenance.
|
|
3. Produce at least two candidates for every signature family and document the
|
|
selection reason.
|
|
4. Check file format, channels, leading silence, tail, peak, loudness, and loop
|
|
markers automatically.
|
|
5. Listen in its intended state before mastering the selected candidate.
|
|
6. Import with the manifest-defined bus, priority, cooldown, and caption.
|
|
7. Observe real transitions and idempotent receipts in runtime when runtime work
|
|
is separately authorized.
|
|
8. Perform fatigue, masking, mono, low-volume, interruption, and route-change
|
|
sessions on the device matrix.
|
|
9. Retain rejection reasons and do not promote evidence by assumption.
|
|
|
|
### 14. Acceptance Gates
|
|
|
|
- [ ] All 32 music suites and 150 stems/cues have authored roles, loop or
|
|
handoff markers, regional separation, and state transitions.
|
|
- [ ] All 76 ambience configurations and 410 ambience masters have entry,
|
|
steady, exit, density, and progression behavior.
|
|
- [ ] The 228 shared SFX IDs are present exactly once and the 424 content-bound
|
|
identities expand to the required 42 professions, 60 artifacts, 100
|
|
ordinary/elite enemies, and 16 bosses.
|
|
- [ ] All 36 traits and 320 equipment items have explicit audio mapping rows,
|
|
even when their mapping reuses a shared event.
|
|
- [ ] The 1,240 minimum SFX renders follow the declared variation classes,
|
|
cooldowns, concurrency, priority, and transaction rules.
|
|
- [ ] Voice delivery is exactly 192 release masters until a separately
|
|
approved scope revision; generated recruits require no bespoke speech.
|
|
- [ ] Shop, recruit, equipment, party order, automatic battle, casualty,
|
|
reward, recovery, save, and each regional progression workflow passes the
|
|
Section 12 observation.
|
|
- [ ] Master and per-bus mute, captions, mono, low volume, three dynamic-range
|
|
presets, pause/resume, interruption, background/foreground, output route
|
|
change, and headphone unplug preserve state truth.
|
|
- [ ] Ten-repeat loop checks, 20-minute suite listens, a 30-minute automatic
|
|
battle fatigue session, and a 50-action shop/recruit repetition session
|
|
pass on speakers and headphones before bulk production proceeds.
|
|
- [ ] Machine, human, runtime, device, rights, and release evidence remain
|
|
separate and no unchecked state is represented as accepted.
|
|
|
|
Human listening, casting, rights clearance, localized performance approval,
|
|
runtime integration, device verification, packaging, and release acceptance
|
|
remain open gates outside this design Goal.
|