Briefings for server, client, copy, audio, and joint teams. Sprint goal: complete interaction UI layer and activate basic dialogue system with NPC conversations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
96 lines
4.7 KiB
Markdown
96 lines
4.7 KiB
Markdown
# Sprint 7: Talk — Audio Tasks
|
|
|
|
**Goal:** Complete interaction UI layer and activate basic dialogue system with NPC conversations.
|
|
|
|
**Branch:** `audio`
|
|
**Agents:** Inigo (sound design)
|
|
|
|
## Carry-over from Sprint 6
|
|
|
|
None — no Sprint 6 audio tickets.
|
|
|
|
## New Tickets
|
|
|
|
| # | Title | Blocked by |
|
|
|---|-------|------------|
|
|
| #440 | 6 interaction audio assets — cursor hover, weapon mode, fog recognition, implant, dialogue, confrontation dip | — |
|
|
|
|
Use `db/connectors/ticket show <id>` for full details.
|
|
|
|
## Key Decisions
|
|
|
|
- `decisions/perception.md` — D-056 (cursor states), D-059 (fog entity visualization), D-060 (cognitive delay), D-061 (dialogue box), D-063 (confrontation styling)
|
|
- `decisions/content.md` — D-048 (neural insert overlay)
|
|
|
|
## Notes
|
|
|
|
### #440: 6 interaction audio assets
|
|
**What exists:**
|
|
- Audio manager foundation (client, Sprint 3-4)
|
|
- D-018 three-range sound model
|
|
- Insert-styled UI aesthetic (D-048, D-056)
|
|
|
|
**What the ticket needs:**
|
|
- **6 audio assets** for new interaction states introduced in Sprint 6-7:
|
|
1. **Cursor hover (entity):** Subtle tick/ping when cursor transitions to entity hover state (D-056). Insert-tech sound — clean, precise, synthetic. ~50-100ms, quiet (background confirmation).
|
|
2. **Weapon mode (future):** Harder click/lock sound when cursor enters weapon aim state. Mechanical, deliberate. ~100-150ms. Deferred to future sprint (no weapon selection in Sprint 7), but design now for consistency.
|
|
3. **Fog recognition:** Soft chime when cognitive delay completes and entity transitions from grey blob → recognized (D-060). Organic resolve feeling — "ah, that's Kael". ~200-300ms, warm tone.
|
|
4. **Implant/Insert open:** Smooth hum/activation when insert UI opens (radial menu, inventory, stance toggle). Neural lattice powering up. ~150-250ms, rising tone.
|
|
5. **Dialogue start:** Quiet ambient dip when dialogue box appears (D-061). NOT a sound effect — an audio mix shift. Background audio reduces -6dB to -8dB, dialogue takes focus. Reverses when dialogue ends.
|
|
6. **Confrontation dip:** Deeper ambient dip when confrontation dialogue begins (D-063). Background audio reduces -10dB to -12dB, slight muffling (low-pass filter). Character's focus narrows — world recedes.
|
|
|
|
**Audio aesthetic:**
|
|
- Insert-related sounds (cursor, implant): synthetic, precise, clinical. Neural tech interface.
|
|
- Recognition sound: organic, warm. Human cognition, not machine beep.
|
|
- Ambient dips: subtle mix changes, not hard cuts. World doesn't disappear, just recedes.
|
|
|
|
**Integration points:**
|
|
- Client #429 (cursor states) triggers hover sound
|
|
- Client #431 (fog recognition) triggers recognition chime
|
|
- Client #433 (radial menu), #438 (inventory), #439 (stance toggle) trigger implant open sound
|
|
- Client #434 (dialogue box) triggers dialogue dip and confrontation dip
|
|
- Audio manager plays sounds via autoload (`AudioManager` singleton, if exists, or direct AudioStreamPlayer nodes)
|
|
|
|
**Gotchas:**
|
|
- Ambient dip is NOT a sound file — it's a mix parameter change (AudioBus volume adjustment in Godot)
|
|
- Confrontation dip uses low-pass filter (AudioEffectLowPassFilter on ambient bus) for muffling
|
|
- Recognition chime timing: fires DURING cognitive delay (monologue IS the recognition per D-060), not after
|
|
- All sounds should be non-intrusive — UI feedback, not foreground events
|
|
- Insert sounds reinforce diegetic nature of UI (cursor, radial menu, inventory are all insert-rendered)
|
|
|
|
**File format:**
|
|
- `.ogg` or `.wav` (Godot-compatible)
|
|
- Sample rate: 44.1kHz or 48kHz
|
|
- Mono for point-source sounds (cursor, recognition), stereo for ambient shifts (dialogue dip)
|
|
|
|
**Deliverables:**
|
|
- 5 audio files: `cursor_hover.ogg`, `weapon_aim.ogg`, `fog_recognition.ogg`, `implant_open.ogg`
|
|
- 1 implementation spec: `audio/docs/dialogue-ambient-dip.md` (how to configure AudioBus for dialogue and confrontation dips)
|
|
|
|
## Dependency Chain
|
|
|
|
```
|
|
#440 (6 audio assets) → standalone
|
|
```
|
|
|
|
## Sprint 7 Audio Load
|
|
|
|
Sprint 7 has **1 audio ticket** — 6 sound assets + 1 implementation spec. Estimated 8-12 hours (2-3 hours per asset design + iteration).
|
|
|
|
Asset priority order:
|
|
1. Cursor hover (most frequent, Sprint 7 critical)
|
|
2. Fog recognition (Sprint 7 critical, new mechanic)
|
|
3. Implant open (Sprint 7 critical, radial menu/inventory)
|
|
4. Dialogue dip (Sprint 7, dialogue box foundation)
|
|
5. Confrontation dip (Sprint 7, but low-frequency event)
|
|
6. Weapon aim (future sprint, design now for consistency)
|
|
|
|
If time is constrained, defer weapon aim sound to Sprint 8 or later.
|
|
|
|
## PR Workflow
|
|
|
|
When ready to submit, create a PR with `tea` CLI. All flags are required to avoid TTY prompts:
|
|
```bash
|
|
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(audio): 6 interaction audio assets" --description "See docs/sprints/sprint-7/audio.md" --base main --head audio
|
|
```
|