- Fix A→B→A audio cutoff: when switching back to a pending-leave agent, cancel the deferred leave instead of force-completing it (was calling StopAgentAudio on the agent we're returning to) - Fix deferred leave firing during TTS gaps: use IsAgentSpeakingOrPending() instead of IsAgentSpeaking() — checks bAgentGenerating and bAgentResponseReceived to avoid premature leave during inter-batch silence - Convert silence detection from tick-based to time-based: SilentTickCount → SilentTime (float seconds), GeneratingTickCount → GeneratingTime. Consistent behavior regardless of frame rate (was 5s@120fps vs 20s@30fps) - Fix lazy binding: add OnAgentConnected/OnAgentDisconnected in LipSync and FacialExpression TickComponent lazy-bind path (bActive stayed false forever in packaged builds when component init order differed) - Fix reconnection: reset bWaitingForAgentResponse and GeneratingTime before entering reconnect mode to avoid stale state on new session - Fix event_ID audio filtering: reset LastInterruptEventId in HandleAgentResponse and SendUserTurnStart so first audio chunks of a new turn are not silently discarded by stale interrupt filter - Preserve retained gaze when switching back to same agent (don't CleanupRetainedGaze if PrevRetained == NewAgent) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Description
Eleven Labs Integration for Unreal Engine 5.5
Languages
C++
90%
Python
4.8%
HTML
4.3%
Batchfile
0.6%
C#
0.3%