Summary
Make focused NPC dialogue feel like an RPG conversation instead of debug chat. The player should clearly see which NPC is speaking, with an NPC-side portrait or bust beside the NPC chat text and a simple speaking animation while the NPC response is delivered.
Source Docs
docs/design/56-focused-npc-dialogue-portrait-lipsync-design.md
docs/design/141-alpha-focused-npc-portrait-speaking-builder-brief.md
docs/design/30-alpha-ux-flow.md
docs/design/37-ai-npc-backend-client-roadmap.md
docs/setup/play-mode-smoke-checklist.md
docs/playtests/_templates/focused-dialogue-portrait/README.md
Scope
D1: Focused Dialogue Portrait UI
Add a portrait or bust anchor to the focused dialogue panel.
Place it beside the NPC-side message column.
Resolve portrait presentation from actor profile or local presentation catalog.
Show a stable missing-portrait fallback.
Hide or reduce focused NPC overhead nameplate while focused dialogue is active.
Prove portrait/bust identity matches the focused actor and selected line id.
D2: Text-Timed Speaking Animation
Add a presentation-only NPC speaking state.
Start speaking animation when NPC text reveal begins.
Stop when the line completes, fails, is skipped, times out, becomes stale, is rejected, or dialogue exits.
Clear old portrait and speaking state when the focused NPC switches.
Keep this independent from full voice, TTS, or Convai import.
D3: Dialogue State Polish
Keep player and NPC locked into dialogue state until exit.
Face the player and NPC toward each other during focused dialogue.
Disable normal movement input while typing.
Use non-combat talk or neutral idle animation during dialogue.
Keep ambient bubbles readable and separate from nameplates.
Show source and fallback state only in compact debug form.
D4: Ida Faber ARKit Blendshape Readiness
For Ida-family semi-real bodies, inspect the imported Unity mesh blendshape names before assuming support.
If the body exposes compatible face blendshapes, map it through an IdaFaberArkit52 lip sync profile.
Start with mouth and blink targets only; do not require full emotional facial acting for alpha.
Keep text-timed speaking fallback for Ida bodies without compatible blendshapes.
Future Hook Only
Leave hook points for audio-amplitude or provider viseme/blendshape lip sync.
Use Ida Faber's ARKit 52 blendshape documentation as the semi-real body reference, but verify the actual imported Unity mesh before implementation.
Full voice/TTS/session playback work remains tracked separately in Track scoped NPC voice sessions and playback implementation lane #288 .
Acceptance Criteria
Pressing interact near an NPC enters focused dialogue only when in range.
NPC messages appear on the NPC side and player messages remain on the opposite side.
Focused NPC portrait or bust appears beside NPC-side text.
Portrait actor id matches focused actor id and NPC-side text actor.
Missing portrait fallback does not break layout and keeps actor name visible.
NPC speaking animation starts when NPC answer begins revealing or playing.
Speaking animation stops reliably on complete, skip, exit, fallback, timeout, stale reply, rejected reply, failure, duplicate-send block, or focused NPC switch.
Typing chat does not trigger movement, jump, attack, or interact input.
Player and NPC remain facing each other until dialogue exits.
Ambient bubbles and nameplates do not overlap heavily in the default camera view.
Play Mode smoke verifies one successful model-backed or scripted-smoke NPC reply and one fallback-visible case.
Provider output remains presentation-only and cannot mutate memory, relationship, quest, TIME, SECOND, inventory, combat, or body lifecycle state.
Evidence Template
docs/playtests/_templates/focused-dialogue-portrait/
docs/playtests/_templates/focused-dialogue-portrait/portrait-actor-parity-note.md
References
Summary
Make focused NPC dialogue feel like an RPG conversation instead of debug chat. The player should clearly see which NPC is speaking, with an NPC-side portrait or bust beside the NPC chat text and a simple speaking animation while the NPC response is delivered.
Source Docs
docs/design/56-focused-npc-dialogue-portrait-lipsync-design.mddocs/design/141-alpha-focused-npc-portrait-speaking-builder-brief.mddocs/design/30-alpha-ux-flow.mddocs/design/37-ai-npc-backend-client-roadmap.mddocs/setup/play-mode-smoke-checklist.mddocs/playtests/_templates/focused-dialogue-portrait/README.mdScope
D1: Focused Dialogue Portrait UI
D2: Text-Timed Speaking Animation
D3: Dialogue State Polish
D4: Ida Faber ARKit Blendshape Readiness
IdaFaberArkit52lip sync profile.Future Hook Only
Acceptance Criteria
Evidence Template
docs/playtests/_templates/focused-dialogue-portrait/docs/playtests/_templates/focused-dialogue-portrait/portrait-actor-parity-note.mdReferences
docs/design/56-focused-npc-dialogue-portrait-lipsync-design.mddocs/design/37-ai-npc-backend-client-roadmap.mddocs/design/16-npc-society-multi-agent-architecture.md