16 d2 diagrams covering architecture (IPC bridge, system tiers, testability, audio bus), data flow (perception, dialogue, eavesdrop pipelines), entity (knowledge graph, NPC generation, dialogue tags), state (simulation tiers, movement stances, knowledge confidence), and UI (HUD layout, interaction flow, fog layers). PNG output for universal viewer compatibility. Removes test SVG from font debugging. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
163 lines
5.1 KiB
Plaintext
163 lines
5.1 KiB
Plaintext
# Eavesdrop Pipeline — D-071, D-072, D-078
|
|
# Overheard NPC-to-NPC conversation: occlusion filter (server-authoritative),
|
|
# ListeningFocus boost, passive dialogue panel, dual-channel principle.
|
|
|
|
vars: {
|
|
color-bg: "#2a3040"
|
|
color-stroke: "#333340"
|
|
color-text: "#c8d0e0"
|
|
color-accent: "#c8d8f0"
|
|
color-dim: "#1a1e24"
|
|
}
|
|
|
|
direction: down
|
|
|
|
npc_convo: NPC-to-NPC Conversation\n(authored at full fidelity by copy team) {
|
|
shape: oval
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
murmur: Universal Murmur Asset (D-072)\nsingle asset plays everywhere {
|
|
shape: package
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
zone_ambient: Zone Ambient Level {
|
|
shape: diamond
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
conspicuousness: Conversation Conspicuousness {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
|
|
bar: Bar (high ambient)\nhidden in murmur, needs proximity {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
workplace: Workplace (moderate)\nsemi-conspicuous, distance-dependent {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
corridor: Corridor (low ambient)\nconspicuous, audible from distance {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
server_occlusion: Server-side Occlusion Filter (D-078)\nper-word probability roll {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
style.border-radius: 4
|
|
|
|
factors: Factors: distance · ambient noise\n· ListeningFocus stance {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
stochastic: Stochastic per word\n(same scene can yield different fragments) {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
seeded: Seedable RNG per tick\n→ deterministic replay (D-010) {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
listen_focus: ListeningFocus Boost (D-071)\nWorld SFX +2 to +3dB\nstationary 30+ ticks {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
style.border-radius: 4
|
|
}
|
|
|
|
no_ambient_dip: No Ambient Dip for Eavesdrop\n(opposite of direct conversation dip) {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
style.stroke-dash: 4
|
|
}
|
|
|
|
occluded_text: Pre-occluded text\n(words → "..." per roll) {
|
|
shape: page
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
passive_panel: Passive Dialogue Panel (D-078)\n(D-061 box, read-only) {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
style.border-radius: 4
|
|
|
|
speaker_label: Speaker format (e.g. Kael to Mira) {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
reduced_opacity: Reduced opacity (0.9)\nvs active dialogue {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
no_responses: No response options {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
monologue_channel: Monologue Channel\n(D-016 — separate pipeline) {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
|
|
witness_trigger: witness_interaction trigger\n→ character's reaction {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
separate: Character reaction\n(thought · never quoted speech) {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
kg_entry: KnowledgeGraph entry\n(KnowsOf confidence unless\nListeningFocus + proximity → KnowsDetails) {
|
|
shape: cylinder
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
npc_convo -> murmur: "audio" { style.stroke: ${color-stroke} }
|
|
npc_convo -> zone_ambient: "text goes through" { style.stroke: ${color-accent} }
|
|
murmur -> zone_ambient: "conspicuousness shaped by" { style.stroke: ${color-stroke} }
|
|
zone_ambient -> conspicuousness
|
|
zone_ambient -> server_occlusion: "noise penalty" { style.stroke: ${color-stroke} }
|
|
listen_focus -> server_occlusion: "probability curve shift" { style.stroke: ${color-accent} }
|
|
no_ambient_dip -> listen_focus: "instead of dip" { style.stroke: ${color-stroke}; style.stroke-dash: 4 }
|
|
server_occlusion -> occluded_text: "pre-occluded text sent to client" { style.stroke: ${color-accent} }
|
|
occluded_text -> passive_panel: "client renders exactly what it receives" { style.stroke: ${color-accent} }
|
|
passive_panel -> monologue_channel: "triggers witness_interaction" {
|
|
style.stroke: ${color-stroke}
|
|
style.stroke-dash: 4
|
|
}
|
|
passive_panel -> kg_entry: "overheard info enters KG" { style.stroke: ${color-accent} }
|